Esempio n. 1
0
 def test_repr(self):
     """
     The string representation of a L{TunnelAddress} instance includes the
     class name and the values of the C{type} and C{name} attributes.
     """
     if _PY3:
         self.assertRegex(
             repr(TunnelAddress(TunnelFlags.IFF_TUN, name=b"device")),
             "TunnelAddress type=IFF_TUN name=b'device'>")
     else:
         self.assertEqual(
             "<TunnelAddress type=IFF_TUN name='device'>",
             repr(TunnelAddress(TunnelFlags.IFF_TUN, name=b"device")))
Esempio n. 2
0
    def setUp(self):
        self.first = TunnelAddress(TunnelFlags.IFF_TUN, b"device")

        # Construct a different object representing IFF_TUN to make this a little
        # trickier.  Two FlagConstants from the same container and with the same
        # value do not compare equal to each other.
        #
        # The implementation will have to compare their values directly until
        # https://twistedmatrix.com/trac/ticket/6878 is resolved.
        self.second = TunnelAddress(
            TunnelFlags.IFF_TUN | TunnelFlags.IFF_TUN, b"device")

        self.variedType = TunnelAddress(TunnelFlags.IFF_TAP, b"tap1")
        self.variedName = TunnelAddress(TunnelFlags.IFF_TUN, b"tun1")
Esempio n. 3
0
 def test_getHost(self):
     """
     L{TuntapPort.getHost} returns a L{TunnelAddress} including the tunnel's
     type and name.
     """
     self.port.startListening()
     address = self.port.getHost()
     self.assertEqual(
         TunnelAddress(self._tunnelTypeOnly(self.helper.TUNNEL_TYPE),
                       self.system.getTunnel(self.port).name), address)
Esempio n. 4
0
 def setUp(self):
     """
     Create an in-memory I/O system and set up a L{TuntapPort} against it.
     """
     self.name = b"tun0"
     self.system = MemoryIOSystem()
     self.system.registerSpecialDevice(Tunnel._DEVICE_NAME, Tunnel)
     self.protocol = self.factory.buildProtocol(
         TunnelAddress(self.helper.TUNNEL_TYPE, self.name))
     self.reactor = FSSetClock()
     self.port = TuntapPort(
         self.name, self.protocol, reactor=self.reactor, system=self.system)
Esempio n. 5
0
 def test_indexing(self):
     """
     A L{TunnelAddress} instance can be indexed to retrieve either the byte
     string C{"TUNTAP"} or the name of the tunnel interface, while
     triggering a deprecation warning.
     """
     address = TunnelAddress(TunnelFlags.IFF_TAP, "tap0")
     self.assertEqual("TUNTAP", address[0])
     self.assertEqual("tap0", address[1])
     warnings = self.flushWarnings([self.test_indexing])
     message = (
         "TunnelAddress.__getitem__ is deprecated since Twisted 14.0.0  "
         "Use attributes instead.")
     self.assertEqual(DeprecationWarning, warnings[0]['category'])
     self.assertEqual(message, warnings[0]['message'])
     self.assertEqual(DeprecationWarning, warnings[1]['category'])
     self.assertEqual(message, warnings[1]['message'])
     self.assertEqual(2, len(warnings))
Esempio n. 6
0
 def test_interfaces(self):
     """
     A L{TunnelAddress} instances provides L{IAddress}.
     """
     self.assertTrue(
         verifyObject(IAddress, TunnelAddress(TunnelFlags.IFF_TAP, "tap0")))