[tor-commits] [stem/master] Stub class constants for cell attributes
atagar at torproject.org
atagar at torproject.org
Sun Jan 21 02:04:04 UTC 2018
commit b3ede37e0aa4910fb0fad78ed4d8d8e5796fab7b
Author: Damian Johnson <atagar at torproject.org>
Date: Mon Jan 8 11:56:07 2018 -0800
Stub class constants for cell attributes
Stem's Event subclsses do a similar pattern. Think this will make things
cleaner...
---
stem/client/cell.py | 14 ++++++++++++++
test/unit/client/cell.py | 8 ++++----
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/stem/client/cell.py b/stem/client/cell.py
index 5cd23c0e..1f10a524 100644
--- a/stem/client/cell.py
+++ b/stem/client/cell.py
@@ -25,6 +25,11 @@ class Cell(collections.namedtuple('Cell', ['name', 'value', 'fixed_size', 'for_c
**False** otherwise
"""
+ NAME = 'UNKNOWN'
+ VALUE = -1
+ IS_FIXED_SIZE = False
+ IS_FOR_CIRCUIT = False
+
@staticmethod
def by_name(name):
"""
@@ -35,6 +40,9 @@ class Cell(collections.namedtuple('Cell', ['name', 'value', 'fixed_size', 'for_c
:raise: **ValueError** if cell type is invalid
"""
+ if name == 'NETINFO':
+ return NetinfoCell
+
for cell_type in CELL_TYPES:
if name == cell_type.name:
return cell_type
@@ -129,6 +137,12 @@ class VersionCell(Cell):
return Cell.pack('VERSIONS', 3, payload)
+class NetinfoCell(Cell):
+ NAME = 'NETINFO'
+ VALUE = 8
+ IS_FIXED_SIZE = True
+
+
CELL_TYPES = (
Cell('PADDING', 0, True, False), # Padding (section 7.2)
Cell('CREATE', 1, True, True), # Create a circuit (section 5.1)
diff --git a/test/unit/client/cell.py b/test/unit/client/cell.py
index 8093b8d9..8a461aba 100644
--- a/test/unit/client/cell.py
+++ b/test/unit/client/cell.py
@@ -12,10 +12,10 @@ from stem.client.cell import Cell
class TestCell(unittest.TestCase):
def test_by_name(self):
cell = Cell.by_name('NETINFO')
- self.assertEqual('NETINFO', cell.name)
- self.assertEqual(8, cell.value)
- self.assertEqual(True, cell.fixed_size)
- self.assertEqual(False, cell.for_circuit)
+ self.assertEqual('NETINFO', cell.NAME)
+ self.assertEqual(8, cell.VALUE)
+ self.assertEqual(True, cell.IS_FIXED_SIZE)
+ self.assertEqual(False, cell.IS_FOR_CIRCUIT)
self.assertRaises(ValueError, Cell.by_name, 'NOPE')
self.assertRaises(ValueError, Cell.by_name, 85)
More information about the tor-commits
mailing list