コード例 #1
0
ファイル: server_descriptor.py プロジェクト: momor666/stem
    def test_router_digest(self):
        """
    Constructs with a router-digest line with both valid and invalid contents.
    """

        # checks with valid content

        router_digest = '068A2E28D4C934D9490303B7A645BA068DCA0504'
        desc = BridgeDescriptor.create({'router-digest': router_digest})
        self.assertEqual(router_digest, desc.digest())

        # checks when missing

        desc_text = BridgeDescriptor.content(exclude=['router-digest'])
        self.assertRaises(ValueError, BridgeDescriptor, desc_text, True)

        # check that we can still construct it without validation
        desc = BridgeDescriptor(desc_text, validate=False)
        self.assertEqual(None, desc.digest())

        # checks with invalid content

        test_values = (
            '',
            '006FD96BA35E7785A6A3B8B75FE2E2435A13BDB44',
            '006FD96BA35E7785A6A3B8B75FE2E2435A13BDB',
            '006FD96BA35E7785A6A3B8B75FE2E2435A13BDBH',
        )

        for value in test_values:
            desc_text = BridgeDescriptor.content({'router-digest': value})
            self.assertRaises(ValueError, BridgeDescriptor, desc_text, True)

            desc = BridgeDescriptor(desc_text, validate=False)
            self.assertEqual(None, desc.digest())
コード例 #2
0
  def test_router_digest(self):
    """
    Constructs with a router-digest line with both valid and invalid contents.
    """

    # checks with valid content

    router_digest = "068A2E28D4C934D9490303B7A645BA068DCA0504"
    desc = get_bridge_server_descriptor({"router-digest": router_digest})
    self.assertEquals(router_digest, desc.digest())

    # checks when missing

    desc_text = get_bridge_server_descriptor(exclude = ["router-digest"], content = True)
    self.assertRaises(ValueError, BridgeDescriptor, desc_text)

    # check that we can still construct it without validation
    desc = BridgeDescriptor(desc_text, validate = False)
    self.assertEquals(None, desc.digest())

    # checks with invalid content

    test_values = (
      "",
      "006FD96BA35E7785A6A3B8B75FE2E2435A13BDB44",
      "006FD96BA35E7785A6A3B8B75FE2E2435A13BDB",
      "006FD96BA35E7785A6A3B8B75FE2E2435A13BDBH",
    )

    for value in test_values:
      desc_text = get_bridge_server_descriptor({"router-digest": value}, content = True)
      self.assertRaises(ValueError, BridgeDescriptor, desc_text)

      desc = BridgeDescriptor(desc_text, validate = False)
      self.assertEquals(value, desc.digest())
コード例 #3
0
ファイル: server_descriptor.py プロジェクト: ewongbb/stem
  def test_bridge_unsanitized_relay(self):
    """
    Checks that parsing a normal relay descriptor as a bridge will fail due to
    its unsanatized content.
    """

    desc_text = RelayDescriptor.content({'router-digest': '006FD96BA35E7785A6A3B8B75FE2E2435A13BDB4'})
    desc = BridgeDescriptor(desc_text)
    self.assertFalse(desc.is_scrubbed())
コード例 #4
0
  def test_bridge_unsanitized_relay(self):
    """
    Checks that parsing a normal relay descriptor as a bridge will fail due to
    its unsanatized content.
    """

    desc_text = get_relay_server_descriptor({"router-digest": "006FD96BA35E7785A6A3B8B75FE2E2435A13BDB4"}, content = True)
    desc = BridgeDescriptor(desc_text)
    self.assertFalse(desc.is_scrubbed())
コード例 #5
0
    def test_or_address_multiple(self):
        """
    Constructs a bridge descriptor with multiple or-address entries and multiple ports.
    """

        desc_text = b'\n'.join((get_bridge_server_descriptor(content=True),
                                b'or-address 10.45.227.253:9001',
                                b'or-address [fd9f:2e19:3bcf::02:9970]:443'))

        expected_or_addresses = [
            ('10.45.227.253', 9001, False),
            ('fd9f:2e19:3bcf::02:9970', 443, True),
        ]

        desc = BridgeDescriptor(desc_text)
        self.assertEqual(expected_or_addresses, desc.or_addresses)
コード例 #6
0
    def test_or_address_multiple(self):
        """
    Constructs a bridge descriptor with multiple or-address entries and multiple ports.
    """

        desc_text = "\n".join((get_bridge_server_descriptor(content=True),
                               "or-address 10.45.227.253:9001,9005,80",
                               "or-address [fd9f:2e19:3bcf::02:9970]:443"))

        expected_address_alt = [
            ("10.45.227.253", 9001, False),
            ("10.45.227.253", 9005, False),
            ("10.45.227.253", 80, False),
            ("fd9f:2e19:3bcf::02:9970", 443, True),
        ]

        desc = BridgeDescriptor(desc_text)
        self.assertEquals(expected_address_alt, desc.address_alt)