commit dbb648f43fe8803637d1a66d988dd995ac3af2b8 Author: Dave Rolek dmr-x@riseup.net Date: Wed Jul 11 23:17:30 2018 +0000
Don't try to test cell packing with non-blank,non-ZERO 'unused' content without specifying it in constructor
The test for DestroyCell already did this, so apply this structure to tests of all other cell types that may have 'unused' content.
And since this is now such a common pattern in the test file, having a comment for it is less necessary, so also removing that. --- test/unit/client/cell.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/test/unit/client/cell.py b/test/unit/client/cell.py index d45886f8..ad9bb0f0 100644 --- a/test/unit/client/cell.py +++ b/test/unit/client/cell.py @@ -185,8 +185,9 @@ class TestCell(unittest.TestCase):
def test_relay_cell(self): for cell_bytes, (command, command_int, circ_id, stream_id, data, digest, unused, link_protocol) in RELAY_CELLS.items(): - self.assertEqual(cell_bytes, RelayCell(circ_id, command, data, digest, stream_id).pack(link_protocol)) - self.assertEqual(cell_bytes, RelayCell(circ_id, command_int, data, digest, stream_id).pack(link_protocol)) + if not unused.strip(ZERO): + self.assertEqual(cell_bytes, RelayCell(circ_id, command, data, digest, stream_id).pack(link_protocol)) + self.assertEqual(cell_bytes, RelayCell(circ_id, command_int, data, digest, stream_id).pack(link_protocol))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(circ_id, cell.circ_id) @@ -220,9 +221,6 @@ class TestCell(unittest.TestCase):
def test_destroy_cell(self): for cell_bytes, (circ_id, reason, reason_int, unused, link_protocol) in DESTROY_CELLS.items(): - # Packed cells always pad with zeros, so if we're testing something with - # non-zero padding then skip this check. - if not unused.strip(ZERO): self.assertEqual(cell_bytes, DestroyCell(circ_id, reason).pack(link_protocol)) self.assertEqual(cell_bytes, DestroyCell(circ_id, reason_int).pack(link_protocol)) @@ -236,7 +234,8 @@ class TestCell(unittest.TestCase):
def test_create_fast_cell(self): for cell_bytes, (circ_id, key_material, unused, link_protocol) in CREATE_FAST_CELLS.items(): - self.assertEqual(cell_bytes, CreateFastCell(circ_id, key_material).pack(link_protocol)) + if not unused.strip(ZERO): + self.assertEqual(cell_bytes, CreateFastCell(circ_id, key_material).pack(link_protocol))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(circ_id, cell.circ_id) @@ -248,7 +247,8 @@ class TestCell(unittest.TestCase):
def test_created_fast_cell(self): for cell_bytes, (circ_id, key_material, derivative_key, unused, link_protocol) in CREATED_FAST_CELLS.items(): - self.assertEqual(cell_bytes, CreatedFastCell(circ_id, derivative_key, key_material).pack(link_protocol)) + if not unused.strip(ZERO): + self.assertEqual(cell_bytes, CreatedFastCell(circ_id, derivative_key, key_material).pack(link_protocol))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(circ_id, cell.circ_id) @@ -270,7 +270,8 @@ class TestCell(unittest.TestCase):
def test_netinfo_cell(self): for cell_bytes, (timestamp, receiver_address, sender_addresses, unused, link_protocol) in NETINFO_CELLS.items(): - self.assertEqual(cell_bytes, NetinfoCell(receiver_address, sender_addresses, timestamp).pack(link_protocol)) + if not unused.strip(ZERO): + self.assertEqual(cell_bytes, NetinfoCell(receiver_address, sender_addresses, timestamp).pack(link_protocol))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(timestamp, cell.timestamp) @@ -298,7 +299,8 @@ class TestCell(unittest.TestCase):
def test_certs_cell(self): for cell_bytes, (certs, unused, link_protocol) in CERTS_CELLS.items(): - self.assertEqual(cell_bytes, CertsCell(certs).pack(link_protocol)) + if not unused.strip(ZERO): + self.assertEqual(cell_bytes, CertsCell(certs).pack(link_protocol))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(certs, cell.certificates) @@ -316,7 +318,8 @@ class TestCell(unittest.TestCase):
def test_auth_challenge_cell(self): for cell_bytes, (challenge, methods, unused, link_protocol) in AUTH_CHALLENGE_CELLS.items(): - self.assertEqual(cell_bytes, AuthChallengeCell(methods, challenge).pack(link_protocol)) + if not unused.strip(ZERO): + self.assertEqual(cell_bytes, AuthChallengeCell(methods, challenge).pack(link_protocol))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(challenge, cell.challenge)