def test_with_microdescriptor_router_status_entries(self): """ Includes microdescriptor flavored router status entries within the document. """ entry1 = get_router_status_entry_micro_v3({'s': "Fast"}) entry2 = get_router_status_entry_micro_v3({'s': "Valid"}) document = get_network_status_document_v3({"network-status-version": "3 microdesc"}, routers = (entry1, entry2)) self.assertEquals((entry1, entry2), document.routers) # try with an invalid RouterStatusEntry entry3 = RouterStatusEntryMicroV3(get_router_status_entry_micro_v3({'r': "ugabuga"}, content = True), False) content = get_network_status_document_v3({"network-status-version": "3 microdesc"}, routers = (entry3,), content = True) self.assertRaises(ValueError, NetworkStatusDocumentV3, content) document = NetworkStatusDocumentV3(content, False) self.assertEquals((entry3,), document.routers) # try including microdescriptor entries in a normal consensus content = get_network_status_document_v3(routers = (entry1, entry2), content = True) self.assertRaises(ValueError, NetworkStatusDocumentV3, content) expected_routers = ( RouterStatusEntryV3(str(entry1), False), RouterStatusEntryV3(str(entry2), False), ) document = NetworkStatusDocumentV3(content, False) self.assertEquals(expected_routers, document.routers)
def test_with_microdescriptor_router_status_entries(self): """ Includes microdescriptor flavored router status entries within the document. """ entry1 = get_router_status_entry_micro_v3({'s': 'Fast'}) entry2 = get_router_status_entry_micro_v3({ 'r': 'tornodeviennasil AcWxDFxrHetHYS5m6/MVt8ZN6AM 2013-03-13 22:09:13 78.142.142.246 443 80', 's': 'Valid', }) document = get_network_status_document_v3({'network-status-version': '3 microdesc'}, routers = (entry1, entry2)) self.assertTrue(entry1 in document.routers.values()) self.assertTrue(entry2 in document.routers.values()) # try with an invalid RouterStatusEntry entry3 = RouterStatusEntryMicroV3(get_router_status_entry_micro_v3({'r': 'ugabuga'}, content = True), False) content = get_network_status_document_v3({'network-status-version': '3 microdesc'}, routers = (entry3,), content = True) self.assertRaises(ValueError, NetworkStatusDocumentV3, content, True) document = NetworkStatusDocumentV3(content, False) self.assertEqual([entry3], list(document.routers.values())) # try including microdescriptor entry in a normal consensus content = get_network_status_document_v3(routers = (entry1,), content = True) self.assertRaises(ValueError, NetworkStatusDocumentV3, content, True) document = NetworkStatusDocumentV3(content, False) self.assertEqual([RouterStatusEntryV3(str(entry1), False)], list(document.routers.values()))
def test_with_microdescriptor_router_status_entries(self): """ Includes microdescriptor flavored router status entries within the document. """ entry1 = get_router_status_entry_micro_v3({'s': "Fast"}) entry2 = get_router_status_entry_micro_v3({ 'r': "tornodeviennasil AcWxDFxrHetHYS5m6/MVt8ZN6AM 2013-03-13 22:09:13 78.142.142.246 443 80", 's': "Valid", }) document = get_network_status_document_v3({"network-status-version": "3 microdesc"}, routers = (entry1, entry2)) self.assertTrue(entry1 in document.routers.values()) self.assertTrue(entry2 in document.routers.values()) # try with an invalid RouterStatusEntry entry3 = RouterStatusEntryMicroV3(get_router_status_entry_micro_v3({'r': "ugabuga"}, content = True), False) content = get_network_status_document_v3({"network-status-version": "3 microdesc"}, routers = (entry3,), content = True) self.assertRaises(ValueError, NetworkStatusDocumentV3, content) document = NetworkStatusDocumentV3(content, False) self.assertEquals([entry3], document.routers.values()) # try including microdescriptor entry in a normal consensus content = get_network_status_document_v3(routers = (entry1,), content = True) self.assertRaises(ValueError, NetworkStatusDocumentV3, content) document = NetworkStatusDocumentV3(content, False) self.assertEqual([RouterStatusEntryV3(str(entry1), False)], document.routers.values())
def test_minimal_micro_v3(self): """ Parses a minimal microdescriptor v3 router status entry. """ entry = get_router_status_entry_micro_v3() expected_flags = set([ Flag.FAST, Flag.GUARD, Flag.HSDIR, Flag.NAMED, Flag.RUNNING, Flag.STABLE, Flag.V2DIR, Flag.VALID ]) self.assertEqual(None, entry.document) self.assertEqual('Konata', entry.nickname) self.assertEqual('011209176CDBAA2AC1F48C2C5B4990CE771C5B0C', entry.fingerprint) self.assertEqual(datetime.datetime(2012, 9, 24, 13, 40, 40), entry.published) self.assertEqual('69.64.48.168', entry.address) self.assertEqual(9001, entry.or_port) self.assertEqual(9030, entry.dir_port) self.assertEqual(expected_flags, set(entry.flags)) self.assertEqual(None, entry.version_line) self.assertEqual(None, entry.version) self.assertEqual( '6A252497006BB9AF36A1B1B902C4D7FA2129923400DBE0101F167B1B031F63BD', entry.digest) self.assertEqual([], entry.get_unrecognized_lines())
def test_minimal_micro_v3(self): """ Parses a minimal microdescriptor v3 router status entry. """ entry = get_router_status_entry_micro_v3() expected_flags = set([ Flag.FAST, Flag.GUARD, Flag.HSDIR, Flag.NAMED, Flag.RUNNING, Flag.STABLE, Flag.V2DIR, Flag.VALID ]) self.assertEqual(None, entry.document) self.assertEqual("Konata", entry.nickname) self.assertEqual("011209176CDBAA2AC1F48C2C5B4990CE771C5B0C", entry.fingerprint) self.assertEqual(datetime.datetime(2012, 9, 24, 13, 40, 40), entry.published) self.assertEqual("69.64.48.168", entry.address) self.assertEqual(9001, entry.or_port) self.assertEqual(9030, entry.dir_port) self.assertEqual(expected_flags, set(entry.flags)) self.assertEqual(None, entry.version_line) self.assertEqual(None, entry.version) self.assertEqual("aiUklwBrua82obG5AsTX+iEpkjQA2+AQHxZ7GwMfY70", entry.digest) self.assertEqual([], entry.get_unrecognized_lines())
def test_with_microdescriptor_router_status_entries(self): """ Includes microdescriptor flavored router status entries within the document. """ entry1 = get_router_status_entry_micro_v3({'s': "Fast"}) entry2 = get_router_status_entry_micro_v3({'s': "Valid"}) document = get_network_status_document_v3( {"network-status-version": "3 microdesc"}, routers=(entry1, entry2)) self.assertEquals((entry1, entry2), document.routers) # try with an invalid RouterStatusEntry entry3 = RouterStatusEntryMicroV3( get_router_status_entry_micro_v3({'r': "ugabuga"}, content=True), False) content = get_network_status_document_v3( {"network-status-version": "3 microdesc"}, routers=(entry3, ), content=True) self.assertRaises(ValueError, NetworkStatusDocumentV3, content) document = NetworkStatusDocumentV3(content, False) self.assertEquals((entry3, ), document.routers) # try including microdescriptor entries in a normal consensus content = get_network_status_document_v3(routers=(entry1, entry2), content=True) self.assertRaises(ValueError, NetworkStatusDocumentV3, content) expected_routers = ( RouterStatusEntryV3(str(entry1), False), RouterStatusEntryV3(str(entry2), False), ) document = NetworkStatusDocumentV3(content, False) self.assertEquals(expected_routers, document.routers)
def test_minimal_micro_v3(self): """ Parses a minimal microdescriptor v3 router status entry. """ entry = get_router_status_entry_micro_v3() expected_flags = set([Flag.FAST, Flag.GUARD, Flag.HSDIR, Flag.NAMED, Flag.RUNNING, Flag.STABLE, Flag.V2DIR, Flag.VALID]) self.assertEqual(None, entry.document) self.assertEqual("Konata", entry.nickname) self.assertEqual("011209176CDBAA2AC1F48C2C5B4990CE771C5B0C", entry.fingerprint) self.assertEqual(datetime.datetime(2012, 9, 24, 13, 40, 40), entry.published) self.assertEqual("69.64.48.168", entry.address) self.assertEqual(9001, entry.or_port) self.assertEqual(9030, entry.dir_port) self.assertEqual(expected_flags, set(entry.flags)) self.assertEqual(None, entry.version_line) self.assertEqual(None, entry.version) self.assertEqual("6A252497006BB9AF36A1B1B902C4D7FA2129923400DBE0101F167B1B031F63BD", entry.digest) self.assertEqual([], entry.get_unrecognized_lines())
def test_minimal_micro_v3(self): """ Parses a minimal microdescriptor v3 router status entry. """ entry = get_router_status_entry_micro_v3() expected_flags = set([Flag.FAST, Flag.GUARD, Flag.HSDIR, Flag.NAMED, Flag.RUNNING, Flag.STABLE, Flag.V2DIR, Flag.VALID]) self.assertEqual(None, entry.document) self.assertEqual("Konata", entry.nickname) self.assertEqual("011209176CDBAA2AC1F48C2C5B4990CE771C5B0C", entry.fingerprint) self.assertEqual(datetime.datetime(2012, 9, 24, 13, 40, 40), entry.published) self.assertEqual("69.64.48.168", entry.address) self.assertEqual(9001, entry.or_port) self.assertEqual(9030, entry.dir_port) self.assertEqual(expected_flags, set(entry.flags)) self.assertEqual(None, entry.version_line) self.assertEqual(None, entry.version) self.assertEqual("aiUklwBrua82obG5AsTX+iEpkjQA2+AQHxZ7GwMfY70", entry.digest) self.assertEqual([], entry.get_unrecognized_lines())