Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1999)

Unified Diff: third_party/twisted_8_1/twisted/test/test_unix.py

Issue 12261012: Remove third_party/twisted_8_1 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/tools/build
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/twisted_8_1/twisted/test/test_unix.py
diff --git a/third_party/twisted_8_1/twisted/test/test_unix.py b/third_party/twisted_8_1/twisted/test/test_unix.py
deleted file mode 100644
index eddf13ecd9d0c38d9c5e16c933e8e82de5a2e9ba..0000000000000000000000000000000000000000
--- a/third_party/twisted_8_1/twisted/test/test_unix.py
+++ /dev/null
@@ -1,418 +0,0 @@
-# Copyright (c) 2001-2008 Twisted Matrix Laboratories.
-# See LICENSE for details.
-
-"""
-Tests for implementations of L{IReactorUNIX} and L{IReactorUNIXDatagram}.
-"""
-
-import stat, os, sys, types
-import socket
-
-from twisted.internet import interfaces, reactor, protocol, error, address, defer, utils
-from twisted.python import lockfile
-from twisted.trial import unittest
-
-from twisted.test.test_tcp import MyServerFactory, MyClientFactory
-
-
-class FailedConnectionClientFactory(protocol.ClientFactory):
- def __init__(self, onFail):
- self.onFail = onFail
-
- def clientConnectionFailed(self, connector, reason):
- self.onFail.errback(reason)
-
-
-
-class UnixSocketTestCase(unittest.TestCase):
- """
- Test unix sockets.
- """
- def test_peerBind(self):
- """
- The address passed to the server factory's C{buildProtocol} method and
- the address returned by the connected protocol's transport's C{getPeer}
- method match the address the client socket is bound to.
- """
- filename = self.mktemp()
- peername = self.mktemp()
- serverFactory = MyServerFactory()
- connMade = serverFactory.protocolConnectionMade = defer.Deferred()
- unixPort = reactor.listenUNIX(filename, serverFactory)
- self.addCleanup(unixPort.stopListening)
- unixSocket = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
- self.addCleanup(unixSocket.close)
- unixSocket.bind(peername)
- unixSocket.connect(filename)
- def cbConnMade(proto):
- expected = address.UNIXAddress(peername)
- self.assertEqual(serverFactory.peerAddresses, [expected])
- self.assertEqual(proto.transport.getPeer(), expected)
- connMade.addCallback(cbConnMade)
- return connMade
-
-
- def test_dumber(self):
- """
- L{IReactorUNIX.connectUNIX} can be used to connect a client to a server
- started with L{IReactorUNIX.listenUNIX}.
- """
- filename = self.mktemp()
- serverFactory = MyServerFactory()
- serverConnMade = defer.Deferred()
- serverFactory.protocolConnectionMade = serverConnMade
- unixPort = reactor.listenUNIX(filename, serverFactory)
- self.addCleanup(unixPort.stopListening)
- clientFactory = MyClientFactory()
- clientConnMade = defer.Deferred()
- clientFactory.protocolConnectionMade = clientConnMade
- c = reactor.connectUNIX(filename, clientFactory)
- d = defer.gatherResults([serverConnMade, clientConnMade])
- def allConnected((serverProtocol, clientProtocol)):
-
- # Incidental assertion which may or may not be redundant with some
- # other test. This probably deserves its own test method.
- self.assertEqual(clientFactory.peerAddresses,
- [address.UNIXAddress(filename)])
-
- clientProtocol.transport.loseConnection()
- serverProtocol.transport.loseConnection()
- d.addCallback(allConnected)
- return d
-
-
- def test_mode(self):
- """
- The UNIX socket created by L{IReactorUNIX.listenUNIX} is created with
- the mode specified.
- """
- mode = 0600
- filename = self.mktemp()
- serverFactory = MyServerFactory()
- unixPort = reactor.listenUNIX(filename, serverFactory, mode=mode)
- self.addCleanup(unixPort.stopListening)
- self.assertEquals(stat.S_IMODE(os.stat(filename).st_mode), mode)
-
-
- def test_pidFile(self):
- """
- A lockfile is created and locked when L{IReactorUNIX.listenUNIX} is
- called and released when the Deferred returned by the L{IListeningPort}
- provider's C{stopListening} method is called back.
- """
- filename = self.mktemp()
- serverFactory = MyServerFactory()
- serverConnMade = defer.Deferred()
- serverFactory.protocolConnectionMade = serverConnMade
- unixPort = reactor.listenUNIX(filename, serverFactory, wantPID=True)
- self.assertTrue(lockfile.isLocked(filename + ".lock"))
-
- # XXX This part would test something about the checkPID parameter, but
- # it doesn't actually. It should be rewritten to test the several
- # different possible behaviors. -exarkun
- clientFactory = MyClientFactory()
- clientConnMade = defer.Deferred()
- clientFactory.protocolConnectionMade = clientConnMade
- c = reactor.connectUNIX(filename, clientFactory, checkPID=1)
-
- d = defer.gatherResults([serverConnMade, clientConnMade])
- def _portStuff((serverProtocol, clientProto)):
-
- # Incidental assertion which may or may not be redundant with some
- # other test. This probably deserves its own test method.
- self.assertEqual(clientFactory.peerAddresses,
- [address.UNIXAddress(filename)])
-
- clientProto.transport.loseConnection()
- serverProtocol.transport.loseConnection()
- return unixPort.stopListening()
- d.addCallback(_portStuff)
-
- def _check(ignored):
- self.failIf(lockfile.isLocked(filename + ".lock"), 'locked')
- d.addCallback(_check)
- return d
-
-
- def test_socketLocking(self):
- """
- L{IReactorUNIX.listenUNIX} raises L{error.CannotListenError} if passed
- the name of a file on which a server is already listening.
- """
- filename = self.mktemp()
- serverFactory = MyServerFactory()
- unixPort = reactor.listenUNIX(filename, serverFactory, wantPID=True)
-
- self.assertRaises(
- error.CannotListenError,
- reactor.listenUNIX, filename, serverFactory, wantPID=True)
-
- def stoppedListening(ign):
- unixPort = reactor.listenUNIX(filename, serverFactory, wantPID=True)
- return unixPort.stopListening()
-
- return unixPort.stopListening().addCallback(stoppedListening)
-
-
- def _uncleanSocketTest(self, callback):
- self.filename = self.mktemp()
- source = ("from twisted.internet import protocol, reactor\n"
- "reactor.listenUNIX(%r, protocol.ServerFactory(), wantPID=True)\n") % (self.filename,)
- env = {'PYTHONPATH': os.pathsep.join(sys.path)}
-
- d = utils.getProcessValue(sys.executable, ("-u", "-c", source), env=env)
- d.addCallback(callback)
- return d
-
-
- def test_uncleanServerSocketLocking(self):
- """
- If passed C{True} for the C{wantPID} parameter, a server can be started
- listening with L{IReactorUNIX.listenUNIX} when passed the name of a
- file on which a previous server which has not exited cleanly has been
- listening using the C{wantPID} option.
- """
- def ranStupidChild(ign):
- # If this next call succeeds, our lock handling is correct.
- p = reactor.listenUNIX(self.filename, MyServerFactory(), wantPID=True)
- return p.stopListening()
- return self._uncleanSocketTest(ranStupidChild)
-
-
- def test_connectToUncleanServer(self):
- """
- If passed C{True} for the C{checkPID} parameter, a client connection
- attempt made with L{IReactorUNIX.connectUNIX} fails with
- L{error.BadFileError}.
- """
- def ranStupidChild(ign):
- d = defer.Deferred()
- f = FailedConnectionClientFactory(d)
- c = reactor.connectUNIX(self.filename, f, checkPID=True)
- return self.assertFailure(d, error.BadFileError)
- return self._uncleanSocketTest(ranStupidChild)
-
-
- def _reprTest(self, serverFactory, factoryName):
- """
- Test the C{__str__} and C{__repr__} implementations of a UNIX port when
- used with the given factory.
- """
- filename = self.mktemp()
- unixPort = reactor.listenUNIX(filename, serverFactory)
-
- connectedString = "<%s on %r>" % (factoryName, filename)
- self.assertEqual(repr(unixPort), connectedString)
- self.assertEqual(str(unixPort), connectedString)
-
- d = defer.maybeDeferred(unixPort.stopListening)
- def stoppedListening(ign):
- unconnectedString = "<%s (not listening)>" % (factoryName,)
- self.assertEqual(repr(unixPort), unconnectedString)
- self.assertEqual(str(unixPort), unconnectedString)
- d.addCallback(stoppedListening)
- return d
-
-
- def test_reprWithClassicFactory(self):
- """
- The two string representations of the L{IListeningPort} returned by
- L{IReactorUNIX.listenUNIX} contains the name of the classic factory
- class being used and the filename on which the port is listening or
- indicates that the port is not listening.
- """
- class ClassicFactory:
- def doStart(self):
- pass
-
- def doStop(self):
- pass
-
- # Sanity check
- self.assertIsInstance(ClassicFactory, types.ClassType)
-
- return self._reprTest(
- ClassicFactory(), "twisted.test.test_unix.ClassicFactory")
-
-
- def test_reprWithNewStyleFactory(self):
- """
- The two string representations of the L{IListeningPort} returned by
- L{IReactorUNIX.listenUNIX} contains the name of the new-style factory
- class being used and the filename on which the port is listening or
- indicates that the port is not listening.
- """
- class NewStyleFactory(object):
- def doStart(self):
- pass
-
- def doStop(self):
- pass
-
- # Sanity check
- self.assertIsInstance(NewStyleFactory, type)
-
- return self._reprTest(
- NewStyleFactory(), "twisted.test.test_unix.NewStyleFactory")
-
-
-
-class ClientProto(protocol.ConnectedDatagramProtocol):
- started = stopped = False
- gotback = None
-
- def __init__(self):
- self.deferredStarted = defer.Deferred()
- self.deferredGotBack = defer.Deferred()
-
- def stopProtocol(self):
- self.stopped = True
-
- def startProtocol(self):
- self.started = True
- self.deferredStarted.callback(None)
-
- def datagramReceived(self, data):
- self.gotback = data
- self.deferredGotBack.callback(None)
-
-class ServerProto(protocol.DatagramProtocol):
- started = stopped = False
- gotwhat = gotfrom = None
-
- def __init__(self):
- self.deferredStarted = defer.Deferred()
- self.deferredGotWhat = defer.Deferred()
-
- def stopProtocol(self):
- self.stopped = True
-
- def startProtocol(self):
- self.started = True
- self.deferredStarted.callback(None)
-
- def datagramReceived(self, data, addr):
- self.gotfrom = addr
- self.transport.write("hi back", addr)
- self.gotwhat = data
- self.deferredGotWhat.callback(None)
-
-
-
-class DatagramUnixSocketTestCase(unittest.TestCase):
- """
- Test datagram UNIX sockets.
- """
- def test_exchange(self):
- """
- Test that a datagram can be sent to and received by a server and vice
- versa.
- """
- clientaddr = self.mktemp()
- serveraddr = self.mktemp()
- sp = ServerProto()
- cp = ClientProto()
- s = reactor.listenUNIXDatagram(serveraddr, sp)
- self.addCleanup(s.stopListening)
- c = reactor.connectUNIXDatagram(serveraddr, cp, bindAddress=clientaddr)
- self.addCleanup(c.stopListening)
-
- d = defer.gatherResults([sp.deferredStarted, cp.deferredStarted])
- def write(ignored):
- cp.transport.write("hi")
- return defer.gatherResults([sp.deferredGotWhat,
- cp.deferredGotBack])
-
- def _cbTestExchange(ignored):
- self.failUnlessEqual("hi", sp.gotwhat)
- self.failUnlessEqual(clientaddr, sp.gotfrom)
- self.failUnlessEqual("hi back", cp.gotback)
-
- d.addCallback(write)
- d.addCallback(_cbTestExchange)
- return d
-
-
- def test_cannotListen(self):
- """
- L{IReactorUNIXDatagram.listenUNIXDatagram} raises
- L{error.CannotListenError} if the unix socket specified is already in
- use.
- """
- addr = self.mktemp()
- p = ServerProto()
- s = reactor.listenUNIXDatagram(addr, p)
- self.failUnlessRaises(error.CannotListenError, reactor.listenUNIXDatagram, addr, p)
- s.stopListening()
- os.unlink(addr)
-
- # test connecting to bound and connected (somewhere else) address
-
- def _reprTest(self, serverProto, protocolName):
- """
- Test the C{__str__} and C{__repr__} implementations of a UNIX datagram
- port when used with the given protocol.
- """
- filename = self.mktemp()
- unixPort = reactor.listenUNIXDatagram(filename, serverProto)
-
- connectedString = "<%s on %r>" % (protocolName, filename)
- self.assertEqual(repr(unixPort), connectedString)
- self.assertEqual(str(unixPort), connectedString)
-
- stopDeferred = defer.maybeDeferred(unixPort.stopListening)
- def stoppedListening(ign):
- unconnectedString = "<%s (not listening)>" % (protocolName,)
- self.assertEqual(repr(unixPort), unconnectedString)
- self.assertEqual(str(unixPort), unconnectedString)
- stopDeferred.addCallback(stoppedListening)
- return stopDeferred
-
-
- def test_reprWithClassicProtocol(self):
- """
- The two string representations of the L{IListeningPort} returned by
- L{IReactorUNIXDatagram.listenUNIXDatagram} contains the name of the
- classic protocol class being used and the filename on which the port is
- listening or indicates that the port is not listening.
- """
- class ClassicProtocol:
- def makeConnection(self, transport):
- pass
-
- def doStop(self):
- pass
-
- # Sanity check
- self.assertIsInstance(ClassicProtocol, types.ClassType)
-
- return self._reprTest(
- ClassicProtocol(), "twisted.test.test_unix.ClassicProtocol")
-
-
- def test_reprWithNewStyleProtocol(self):
- """
- The two string representations of the L{IListeningPort} returned by
- L{IReactorUNIXDatagram.listenUNIXDatagram} contains the name of the
- new-style protocol class being used and the filename on which the port
- is listening or indicates that the port is not listening.
- """
- class NewStyleProtocol(object):
- def makeConnection(self, transport):
- pass
-
- def doStop(self):
- pass
-
- # Sanity check
- self.assertIsInstance(NewStyleProtocol, type)
-
- return self._reprTest(
- NewStyleProtocol(), "twisted.test.test_unix.NewStyleProtocol")
-
-
-
-if not interfaces.IReactorUNIX(reactor, None):
- UnixSocketTestCase.skip = "This reactor does not support UNIX domain sockets"
-if not interfaces.IReactorUNIXDatagram(reactor, None):
- DatagramUnixSocketTestCase.skip = "This reactor does not support UNIX datagram sockets"
« no previous file with comments | « third_party/twisted_8_1/twisted/test/test_udp.py ('k') | third_party/twisted_8_1/twisted/test/test_usage.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698