def test_bridge_ip_versions_line(self):
    """
    Parses the 'bridge-ip-versions' line, which only appears in bridges.
    """

    desc = get_bridge_extrainfo_descriptor({"bridge-ip-versions": "v4=16,v6=40"})
    self.assertEquals({'v4': 16, 'v6': 40}, desc.ip_versions)

    desc_text = get_bridge_extrainfo_descriptor({"bridge-ip-versions": "v4=24.5"}, content = True)
    self.assertRaises(ValueError, RelayExtraInfoDescriptor, desc_text)
    def test_bridge_ip_versions_line(self):
        """
    Parses the 'bridge-ip-versions' line, which only appears in bridges.
    """

        desc = get_bridge_extrainfo_descriptor(
            {"bridge-ip-versions": "v4=16,v6=40"})
        self.assertEquals({'v4': 16, 'v6': 40}, desc.ip_versions)

        desc_text = get_bridge_extrainfo_descriptor(
            {"bridge-ip-versions": "v4=24.5"}, content=True)
        self.assertRaises(ValueError, RelayExtraInfoDescriptor, desc_text)
Пример #3
0
  def test_bridge_ip_transports_line(self):
    """
    Parses the 'bridge-ip-transports' line, which only appears in bridges.
    """

    desc = get_bridge_extrainfo_descriptor({'bridge-ip-transports': '<OR>=16,<??>=40'})
    self.assertEqual({'<OR>': 16, '<??>': 40}, desc.ip_transports)

    desc = get_bridge_extrainfo_descriptor({'bridge-ip-transports': ''})
    self.assertEqual({}, desc.ip_transports)

    desc_text = get_bridge_extrainfo_descriptor({'bridge-ip-transports': '<OR>=24.5'}, content = True)
    self.assertRaises(ValueError, RelayExtraInfoDescriptor, desc_text, True)
Пример #4
0
  def test_bridge_ip_transports_line(self):
    """
    Parses the 'bridge-ip-transports' line, which only appears in bridges.
    """

    desc = get_bridge_extrainfo_descriptor({'bridge-ip-transports': '<OR>=16,<??>=40'})
    self.assertEqual({'<OR>': 16, '<??>': 40}, desc.ip_transports)

    desc = get_bridge_extrainfo_descriptor({'bridge-ip-transports': ''})
    self.assertEqual({}, desc.ip_transports)

    desc_text = get_bridge_extrainfo_descriptor({'bridge-ip-transports': '<OR>=24.5'}, content = True)
    self.assertRaises(ValueError, RelayExtraInfoDescriptor, desc_text, True)
Пример #5
0
  def test_transport_line(self):
    """
    Basic exercise for both a bridge and relay's transport entry.
    """

    desc = get_bridge_extrainfo_descriptor({'transport': 'obfs3'})
    self.assertEqual({'obfs3': (None, None, None)}, desc.transport)
    self.assertEqual([], desc.get_unrecognized_lines())

    desc = get_relay_extrainfo_descriptor({'transport': 'obfs2 83.212.96.201:33570'})
    self.assertEqual({'obfs2': ('83.212.96.201', 33570, [])}, desc.transport)
    self.assertEqual([], desc.get_unrecognized_lines())

    # multiple transport lines
    desc = get_bridge_extrainfo_descriptor({'transport': 'obfs3\ntransport obfs4'})
    self.assertEqual({'obfs3': (None, None, None), 'obfs4': (None, None, None)}, desc.transport)
    self.assertEqual([], desc.get_unrecognized_lines())
Пример #6
0
  def test_transport_line(self):
    """
    Basic exercise for both a bridge and relay's transport entry.
    """

    desc = get_bridge_extrainfo_descriptor({'transport': 'obfs3'})
    self.assertEqual({'obfs3': (None, None, None)}, desc.transport)
    self.assertEqual([], desc.get_unrecognized_lines())

    desc = get_relay_extrainfo_descriptor({'transport': 'obfs2 83.212.96.201:33570'})
    self.assertEqual({'obfs2': ('83.212.96.201', 33570, [])}, desc.transport)
    self.assertEqual([], desc.get_unrecognized_lines())

    # multiple transport lines
    desc = get_bridge_extrainfo_descriptor({'transport': 'obfs3\ntransport obfs4'})
    self.assertEqual({'obfs3': (None, None, None), 'obfs4': (None, None, None)}, desc.transport)
    self.assertEqual([], desc.get_unrecognized_lines())
Пример #7
0
  def test_transport_line(self):
    """
    Basic exercise for both a bridge and relay's transport entry.
    """

    desc = get_bridge_extrainfo_descriptor({"transport": "obfs3"})
    self.assertEquals({"obfs3": (None, None, None)}, desc.transport)
    self.assertEquals([], desc.get_unrecognized_lines())

    desc = get_relay_extrainfo_descriptor({"transport": "obfs2 83.212.96.201:33570"})
    self.assertEquals({"obfs2": ("83.212.96.201", 33570, [])}, desc.transport)
    self.assertEquals([], desc.get_unrecognized_lines())

    # multiple transport lines
    desc = get_bridge_extrainfo_descriptor({"transport": "obfs3\ntransport obfs4"})
    self.assertEquals({"obfs3": (None, None, None), "obfs4": (None, None, None)}, desc.transport)
    self.assertEquals([], desc.get_unrecognized_lines())
Пример #8
0
    def test_transport_line(self):
        """
    Basic exercise for both a bridge and relay's transport entry.
    """

        desc = get_bridge_extrainfo_descriptor({"transport": "obfs3"})
        self.assertEquals({"obfs3": (None, None, None)}, desc.transport)
        self.assertEquals([], desc.get_unrecognized_lines())

        desc = get_relay_extrainfo_descriptor(
            {"transport": "obfs2 83.212.96.201:33570"})
        self.assertEquals({"obfs2": ("83.212.96.201", 33570, [])},
                          desc.transport)
        self.assertEquals([], desc.get_unrecognized_lines())
Пример #9
0
  def test_minimal_bridge_descriptor(self):
    """
    Basic sanity check that we can parse a descriptor with minimal attributes.
    """

    desc = get_bridge_extrainfo_descriptor()

    self.assertEquals("ec2bridgereaac65a3", desc.nickname)
    self.assertEquals("1EC248422B57D9C0BD751892FE787585407479A4", desc.fingerprint)
    self.assertEquals("006FD96BA35E7785A6A3B8B75FE2E2435A13BDB4", desc.digest())
    self.assertEquals([], desc.get_unrecognized_lines())

    # check that we don't have crypto fields
    self.assertRaises(AttributeError, getattr, desc, "signature")
Пример #10
0
  def test_minimal_bridge_descriptor(self):
    """
    Basic sanity check that we can parse a descriptor with minimal attributes.
    """

    desc = get_bridge_extrainfo_descriptor()

    self.assertEqual('ec2bridgereaac65a3', desc.nickname)
    self.assertEqual('1EC248422B57D9C0BD751892FE787585407479A4', desc.fingerprint)
    self.assertEqual('006FD96BA35E7785A6A3B8B75FE2E2435A13BDB4', desc.digest())
    self.assertEqual([], desc.get_unrecognized_lines())

    # check that we don't have crypto fields
    self.assertRaises(AttributeError, getattr, desc, 'signature')