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)
Exemple #2
0
  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()))
Exemple #3
0
  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())
Exemple #4
0
    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())
Exemple #6
0
    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())