commit f248e5ee1137e2d43c832fee722668fb17aab8ac Author: Dave Rolek dmr-x@riseup.net Date: Mon Jul 9 21:55:57 2018 +0000
Refactor 'unused' content specified in test loops into test data
This is in preparation to make it much easier to manage data-driven test cases for 'unused' content. --- test/unit/client/cell.py | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/test/unit/client/cell.py b/test/unit/client/cell.py index b706fcd6..ade5d407 100644 --- a/test/unit/client/cell.py +++ b/test/unit/client/cell.py @@ -34,8 +34,8 @@ PADDING_CELLS = { }
RELAY_CELLS = { - b'\x00\x01\x03\r\x00\x00\x00\x01!\xa3?\xec' + ZERO * 500: ('RELAY_BEGIN_DIR', 13, 1, 1, b'', 564346860, 2), - b'\x00\x01\x03\x02\x00\x00\x00\x01\x15:m\xe0\x00&GET /tor/server/authority HTTP/1.0\r\n\r\n' + ZERO * 460: ('RELAY_DATA', 2, 1, 1, b'GET /tor/server/authority HTTP/1.0\r\n\r\n', 356150752, 2), + b'\x00\x01\x03\r\x00\x00\x00\x01!\xa3?\xec\x00\x00' + ZERO * 498: ('RELAY_BEGIN_DIR', 13, 1, 1, b'', 564346860, ZERO * 498, 2), + b'\x00\x01\x03\x02\x00\x00\x00\x01\x15:m\xe0\x00&GET /tor/server/authority HTTP/1.0\r\n\r\n' + ZERO * 460: ('RELAY_DATA', 2, 1, 1, b'GET /tor/server/authority HTTP/1.0\r\n\r\n', 356150752, ZERO * 460, 2), }
DESTROY_CELLS = { @@ -45,13 +45,13 @@ DESTROY_CELLS = { }
CREATE_FAST_CELLS = { - (b'\x80\x00\x00\x00\x05\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce' + ZERO * 489): (2147483648, b'\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce', 5), - (b'\x80\x00\x00\x00\x05\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\x00' + ZERO * 489): (2147483648, b'\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\x00', 5), + (b'\x80\x00\x00\x00\x05\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce' + ZERO * 489): (2147483648, b'\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce', ZERO * 489, 5), + (b'\x80\x00\x00\x00\x05\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\x00' + ZERO * 489): (2147483648, b'\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\x00', ZERO * 489, 5), }
CREATED_FAST_CELLS = { - (b'\x80\x00\x00\x00\x06\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce\x13Z\x99\xb2\x1e\xb6\x05\x85\x17\xfc\x1c\x00{\xa9\xae\x83^K\x99\xb2' + ZERO * 469): (2147483648, b'\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce', b'\x13Z\x99\xb2\x1e\xb6\x05\x85\x17\xfc\x1c\x00{\xa9\xae\x83^K\x99\xb2', 5), - (b'\x80\x00\x00\x00\x06\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce\x13Z\x99\xb2\x1e\xb6\x05\x85\x17\xfc\x1c\x00{\xa9\xae\x83^K\x99\x00' + ZERO * 469): (2147483648, b'\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce', b'\x13Z\x99\xb2\x1e\xb6\x05\x85\x17\xfc\x1c\x00{\xa9\xae\x83^K\x99\x00', 5), + (b'\x80\x00\x00\x00\x06\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce\x13Z\x99\xb2\x1e\xb6\x05\x85\x17\xfc\x1c\x00{\xa9\xae\x83^K\x99\xb2' + ZERO * 469): (2147483648, b'\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce', b'\x13Z\x99\xb2\x1e\xb6\x05\x85\x17\xfc\x1c\x00{\xa9\xae\x83^K\x99\xb2', ZERO * 469, 5), + (b'\x80\x00\x00\x00\x06\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce\x13Z\x99\xb2\x1e\xb6\x05\x85\x17\xfc\x1c\x00{\xa9\xae\x83^K\x99\x00' + ZERO * 469): (2147483648, b'\x92O\x0c\xcb\xa8\xac\xfb\xc9\x7f\xd0\rz\x1a\x03u\x91\xceas\xce', b'\x13Z\x99\xb2\x1e\xb6\x05\x85\x17\xfc\x1c\x00{\xa9\xae\x83^K\x99\x00', ZERO * 469, 5), }
VERSIONS_CELLS = { @@ -62,7 +62,7 @@ VERSIONS_CELLS = { }
NETINFO_CELLS = { - b'\x00\x00\x08ZZ\xb6\x90\x04\x04\x7f\x00\x00\x01\x01\x04\x04aq\x0f\x02' + ZERO * (FIXED_PAYLOAD_LEN - 17): (datetime.datetime(2018, 1, 14, 1, 46, 56), Address('127.0.0.1'), [Address('97.113.15.2')], 2), + b'\x00\x00\x08ZZ\xb6\x90\x04\x04\x7f\x00\x00\x01\x01\x04\x04aq\x0f\x02' + ZERO * (FIXED_PAYLOAD_LEN - 17): (datetime.datetime(2018, 1, 14, 1, 46, 56), Address('127.0.0.1'), [Address('97.113.15.2')], ZERO * 492, 2), }
VPADDING_CELL_EMPTY_PACKED = b'\x00\x00\x80\x00\x00' @@ -81,7 +81,7 @@ CERTS_CELLS = { }
AUTH_CHALLENGE_CELLS = { - b'\x00\x00\x82\x00&' + CHALLENGE + b'\x00\x02\x00\x01\x00\x03': (CHALLENGE, [1, 3], 2), + b'\x00\x00\x82\x00&' + CHALLENGE + b'\x00\x02\x00\x01\x00\x03': (CHALLENGE, [1, 3], b'', 2), }
@@ -184,7 +184,7 @@ class TestCell(unittest.TestCase): self.assertEqual(cell_bytes, cell.pack(link_protocol))
def test_relay_cell(self): - for cell_bytes, (command, command_int, circ_id, stream_id, data, digest, link_protocol) in RELAY_CELLS.items(): + 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))
@@ -195,7 +195,7 @@ class TestCell(unittest.TestCase): self.assertEqual(data, cell.data) self.assertEqual(digest, cell.digest) self.assertEqual(stream_id, cell.stream_id) - self.assertEqual(ZERO * (498 - len(cell.data)), cell.unused) + self.assertEqual(unused, cell.unused) self.assertEqual(cell_bytes, cell.pack(link_protocol))
digest = hashlib.sha1(b'hi') @@ -235,26 +235,26 @@ class TestCell(unittest.TestCase): self.assertEqual(cell_bytes, cell.pack(link_protocol))
def test_create_fast_cell(self): - for cell_bytes, (circ_id, key_material, link_protocol) in CREATE_FAST_CELLS.items(): + 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))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(circ_id, cell.circ_id) self.assertEqual(key_material, cell.key_material) - self.assertEqual(ZERO * 489, cell.unused) + self.assertEqual(unused, cell.unused) self.assertEqual(cell_bytes, cell.pack(link_protocol))
self.assertRaisesRegexp(ValueError, 'Key material should be 20 bytes, but was 3', CreateFastCell, 5, 'boo')
def test_created_fast_cell(self): - for cell_bytes, (circ_id, key_material, derivative_key, link_protocol) in CREATED_FAST_CELLS.items(): + 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))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(circ_id, cell.circ_id) self.assertEqual(key_material, cell.key_material) self.assertEqual(derivative_key, cell.derivative_key) - self.assertEqual(ZERO * 469, cell.unused) + self.assertEqual(unused, cell.unused) self.assertEqual(cell_bytes, cell.pack(link_protocol))
self.assertRaisesRegexp(ValueError, 'Key material should be 20 bytes, but was 3', CreateFastCell, 5, 'boo') @@ -269,14 +269,14 @@ class TestCell(unittest.TestCase): self.assertEqual(cell_bytes, cell.pack(link_protocol))
def test_netinfo_cell(self): - for cell_bytes, (timestamp, receiver_address, sender_addresses, link_protocol) in NETINFO_CELLS.items(): + 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))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(timestamp, cell.timestamp) self.assertEqual(receiver_address, cell.receiver_address) self.assertEqual(sender_addresses, cell.sender_addresses) - self.assertEqual(ZERO * 492, cell.unused) + self.assertEqual(unused, cell.unused) self.assertEqual(cell_bytes, cell.pack(link_protocol))
def test_vpadding_cell(self): @@ -314,13 +314,13 @@ class TestCell(unittest.TestCase): self.assertRaisesRegexp(ValueError, 'CERTS cell indicates it should have 2 certificates, but only contained 1', Cell.pop, b'\x00\x00\x81\x00\x05\x02\x01\x00\x01\x08', 2)
def test_auth_challenge_cell(self): - for cell_bytes, (challenge, methods, link_protocol) in AUTH_CHALLENGE_CELLS.items(): + for cell_bytes, (challenge, methods, unused, link_protocol) in AUTH_CHALLENGE_CELLS.items(): self.assertEqual(cell_bytes, AuthChallengeCell(methods, challenge).pack(link_protocol))
cell = Cell.pop(cell_bytes, link_protocol)[0] self.assertEqual(challenge, cell.challenge) self.assertEqual(methods, cell.methods) - self.assertEqual(b'', cell.unused) + self.assertEqual(unused, cell.unused) self.assertEqual(cell_bytes, cell.pack(link_protocol))
self.assertRaisesRegexp(ValueError, 'AUTH_CHALLENGE cell should have a payload of 38 bytes, but only had 16', Cell.pop, b'\x00\x00\x82\x00&' + CHALLENGE[:10] + b'\x00\x02\x00\x01\x00\x03', 2)