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")))
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")
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)
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)
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))
def test_interfaces(self): """ A L{TunnelAddress} instances provides L{IAddress}. """ self.assertTrue( verifyObject(IAddress, TunnelAddress(TunnelFlags.IFF_TAP, "tap0")))