| Index: third_party/twisted_8_1/twisted/test/test_socks.py
|
| diff --git a/third_party/twisted_8_1/twisted/test/test_socks.py b/third_party/twisted_8_1/twisted/test/test_socks.py
|
| deleted file mode 100644
|
| index 28df92cf6b9c7d88b71aac06fefaf1be5f4d1191..0000000000000000000000000000000000000000
|
| --- a/third_party/twisted_8_1/twisted/test/test_socks.py
|
| +++ /dev/null
|
| @@ -1,280 +0,0 @@
|
| -"""SOCKS unit tests."""
|
| -
|
| -from twisted.trial import unittest
|
| -from twisted.test import proto_helpers
|
| -import struct, socket
|
| -from twisted.internet import defer, address
|
| -from twisted.protocols import socks
|
| -
|
| -class StringTCPTransport(proto_helpers.StringTransport):
|
| - stringTCPTransport_closing = False
|
| - peer = None
|
| -
|
| - def getPeer(self):
|
| - return self.peer
|
| -
|
| - def getHost(self):
|
| - return address.IPv4Address('TCP', '2.3.4.5', 42)
|
| -
|
| - def loseConnection(self):
|
| - self.stringTCPTransport_closing = True
|
| -
|
| -
|
| -class SOCKSv4Driver(socks.SOCKSv4):
|
| - # last SOCKSv4Outgoing instantiated
|
| - driver_outgoing = None
|
| -
|
| - # last SOCKSv4IncomingFactory instantiated
|
| - driver_listen = None
|
| -
|
| - def connectClass(self, host, port, klass, *args):
|
| - # fake it
|
| - proto = klass(*args)
|
| - proto.transport = StringTCPTransport()
|
| - proto.transport.peer = address.IPv4Address('TCP', host, port)
|
| - proto.connectionMade()
|
| - self.driver_outgoing = proto
|
| - return defer.succeed(proto)
|
| -
|
| - def listenClass(self, port, klass, *args):
|
| - # fake it
|
| - factory = klass(*args)
|
| - self.driver_listen = factory
|
| - if port == 0:
|
| - port = 1234
|
| - return defer.succeed(('6.7.8.9', port))
|
| -
|
| -class Connect(unittest.TestCase):
|
| - def setUp(self):
|
| - self.sock = SOCKSv4Driver()
|
| - self.sock.transport = StringTCPTransport()
|
| - self.sock.connectionMade()
|
| -
|
| - def tearDown(self):
|
| - outgoing = self.sock.driver_outgoing
|
| - if outgoing is not None:
|
| - self.assert_(outgoing.transport.stringTCPTransport_closing,
|
| - "Outgoing SOCKS connections need to be closed.")
|
| -
|
| - def test_simple(self):
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 1, 34)
|
| - + socket.inet_aton('1.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| - self.assertEqual(sent,
|
| - struct.pack('!BBH', 0, 90, 34)
|
| - + socket.inet_aton('1.2.3.4'))
|
| - self.assert_(not self.sock.transport.stringTCPTransport_closing)
|
| - self.assert_(self.sock.driver_outgoing is not None)
|
| -
|
| - # pass some data through
|
| - self.sock.dataReceived('hello, world')
|
| - self.assertEqual(self.sock.driver_outgoing.transport.value(),
|
| - 'hello, world')
|
| -
|
| - # the other way around
|
| - self.sock.driver_outgoing.dataReceived('hi there')
|
| - self.assertEqual(self.sock.transport.value(), 'hi there')
|
| -
|
| - self.sock.connectionLost('fake reason')
|
| -
|
| - def test_access_denied(self):
|
| - self.sock.authorize = lambda code, server, port, user: 0
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 1, 4242)
|
| - + socket.inet_aton('10.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - self.assertEqual(self.sock.transport.value(),
|
| - struct.pack('!BBH', 0, 91, 0)
|
| - + socket.inet_aton('0.0.0.0'))
|
| - self.assert_(self.sock.transport.stringTCPTransport_closing)
|
| - self.assertIdentical(self.sock.driver_outgoing, None)
|
| -
|
| - def test_eof_remote(self):
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 1, 34)
|
| - + socket.inet_aton('1.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| -
|
| - # pass some data through
|
| - self.sock.dataReceived('hello, world')
|
| - self.assertEqual(self.sock.driver_outgoing.transport.value(),
|
| - 'hello, world')
|
| -
|
| - # now close it from the server side
|
| - self.sock.driver_outgoing.transport.loseConnection()
|
| - self.sock.driver_outgoing.connectionLost('fake reason')
|
| -
|
| - def test_eof_local(self):
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 1, 34)
|
| - + socket.inet_aton('1.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| -
|
| - # pass some data through
|
| - self.sock.dataReceived('hello, world')
|
| - self.assertEqual(self.sock.driver_outgoing.transport.value(),
|
| - 'hello, world')
|
| -
|
| - # now close it from the client side
|
| - self.sock.connectionLost('fake reason')
|
| -
|
| -class Bind(unittest.TestCase):
|
| - def setUp(self):
|
| - self.sock = SOCKSv4Driver()
|
| - self.sock.transport = StringTCPTransport()
|
| - self.sock.connectionMade()
|
| -
|
| -## def tearDown(self):
|
| -## # TODO ensure the listen port is closed
|
| -## listen = self.sock.driver_listen
|
| -## if listen is not None:
|
| -## self.assert_(incoming.transport.stringTCPTransport_closing,
|
| -## "Incoming SOCKS connections need to be closed.")
|
| -
|
| - def test_simple(self):
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 2, 34)
|
| - + socket.inet_aton('1.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| - self.assertEqual(sent,
|
| - struct.pack('!BBH', 0, 90, 1234)
|
| - + socket.inet_aton('6.7.8.9'))
|
| - self.assert_(not self.sock.transport.stringTCPTransport_closing)
|
| - self.assert_(self.sock.driver_listen is not None)
|
| -
|
| - # connect
|
| - incoming = self.sock.driver_listen.buildProtocol(('1.2.3.4', 5345))
|
| - self.assertNotIdentical(incoming, None)
|
| - incoming.transport = StringTCPTransport()
|
| - incoming.connectionMade()
|
| -
|
| - # now we should have the second reply packet
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| - self.assertEqual(sent,
|
| - struct.pack('!BBH', 0, 90, 0)
|
| - + socket.inet_aton('0.0.0.0'))
|
| - self.assert_(not self.sock.transport.stringTCPTransport_closing)
|
| -
|
| - # pass some data through
|
| - self.sock.dataReceived('hello, world')
|
| - self.assertEqual(incoming.transport.value(),
|
| - 'hello, world')
|
| -
|
| - # the other way around
|
| - incoming.dataReceived('hi there')
|
| - self.assertEqual(self.sock.transport.value(), 'hi there')
|
| -
|
| - self.sock.connectionLost('fake reason')
|
| -
|
| - def test_access_denied(self):
|
| - self.sock.authorize = lambda code, server, port, user: 0
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 2, 4242)
|
| - + socket.inet_aton('10.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - self.assertEqual(self.sock.transport.value(),
|
| - struct.pack('!BBH', 0, 91, 0)
|
| - + socket.inet_aton('0.0.0.0'))
|
| - self.assert_(self.sock.transport.stringTCPTransport_closing)
|
| - self.assertIdentical(self.sock.driver_listen, None)
|
| -
|
| - def test_eof_remote(self):
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 2, 34)
|
| - + socket.inet_aton('1.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| -
|
| - # connect
|
| - incoming = self.sock.driver_listen.buildProtocol(('1.2.3.4', 5345))
|
| - self.assertNotIdentical(incoming, None)
|
| - incoming.transport = StringTCPTransport()
|
| - incoming.connectionMade()
|
| -
|
| - # now we should have the second reply packet
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| - self.assertEqual(sent,
|
| - struct.pack('!BBH', 0, 90, 0)
|
| - + socket.inet_aton('0.0.0.0'))
|
| - self.assert_(not self.sock.transport.stringTCPTransport_closing)
|
| -
|
| - # pass some data through
|
| - self.sock.dataReceived('hello, world')
|
| - self.assertEqual(incoming.transport.value(),
|
| - 'hello, world')
|
| -
|
| - # now close it from the server side
|
| - incoming.transport.loseConnection()
|
| - incoming.connectionLost('fake reason')
|
| -
|
| - def test_eof_local(self):
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 2, 34)
|
| - + socket.inet_aton('1.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| -
|
| - # connect
|
| - incoming = self.sock.driver_listen.buildProtocol(('1.2.3.4', 5345))
|
| - self.assertNotIdentical(incoming, None)
|
| - incoming.transport = StringTCPTransport()
|
| - incoming.connectionMade()
|
| -
|
| - # now we should have the second reply packet
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| - self.assertEqual(sent,
|
| - struct.pack('!BBH', 0, 90, 0)
|
| - + socket.inet_aton('0.0.0.0'))
|
| - self.assert_(not self.sock.transport.stringTCPTransport_closing)
|
| -
|
| - # pass some data through
|
| - self.sock.dataReceived('hello, world')
|
| - self.assertEqual(incoming.transport.value(),
|
| - 'hello, world')
|
| -
|
| - # now close it from the client side
|
| - self.sock.connectionLost('fake reason')
|
| -
|
| - def test_bad_source(self):
|
| - self.sock.dataReceived(
|
| - struct.pack('!BBH', 4, 2, 34)
|
| - + socket.inet_aton('1.2.3.4')
|
| - + 'fooBAR'
|
| - + '\0')
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| -
|
| - # connect from WRONG address
|
| - incoming = self.sock.driver_listen.buildProtocol(('1.6.6.6', 666))
|
| - self.assertIdentical(incoming, None)
|
| -
|
| - # Now we should have the second reply packet and it should
|
| - # be a failure. The connection should be closing.
|
| - sent = self.sock.transport.value()
|
| - self.sock.transport.clear()
|
| - self.assertEqual(sent,
|
| - struct.pack('!BBH', 0, 91, 0)
|
| - + socket.inet_aton('0.0.0.0'))
|
| - self.assert_(self.sock.transport.stringTCPTransport_closing)
|
|
|