예제 #1
0
 def test_outReceived(self):
     """
     L{LocalWorker.outReceived} logs the output into its C{_outLog} log
     file.
     """
     fakeTransport = FakeTransport()
     localWorker = LocalWorker(FakeAMProtocol(), '.', 'test.log')
     localWorker.makeConnection(fakeTransport)
     localWorker._outLog = BytesIO()
     data = b"The quick brown fox jumps over the lazy dog"
     localWorker.outReceived(data)
     self.assertEqual(data, localWorker._outLog.getvalue())
예제 #2
0
 def test_outReceived(self):
     """
     L{LocalWorker.outReceived} logs the output into its C{_outLog} log
     file.
     """
     fakeTransport = FakeTransport()
     localWorker = LocalWorker(FakeAMProtocol(), '.', 'test.log')
     localWorker.makeConnection(fakeTransport)
     localWorker._outLog = StringIO()
     data = "The quick brown fox jumps over the lazy dog"
     localWorker.outReceived(data)
     self.assertEqual(data, localWorker._outLog.getvalue())
예제 #3
0
 def test_childDataReceived(self):
     """
     L{LocalWorker.childDataReceived} forwards the received data to linked
     L{AMP} protocol if the right file descriptor, otherwise forwards to
     C{ProcessProtocol.childDataReceived}.
     """
     fakeTransport = FakeTransport()
     localWorker = LocalWorker(FakeAMProtocol(), '.', 'test.log')
     localWorker.makeConnection(fakeTransport)
     localWorker._outLog = BytesIO()
     localWorker.childDataReceived(4, b"foo")
     localWorker.childDataReceived(1, b"bar")
     self.assertEqual(b"foo", localWorker._ampProtocol.dataString)
     self.assertEqual(b"bar", localWorker._outLog.getvalue())
예제 #4
0
 def test_childDataReceived(self):
     """
     L{LocalWorker.childDataReceived} forwards the received data to linked
     L{AMP} protocol if the right file descriptor, otherwise forwards to
     C{ProcessProtocol.childDataReceived}.
     """
     fakeTransport = FakeTransport()
     localWorker = LocalWorker(FakeAMProtocol(), '.', 'test.log')
     localWorker.makeConnection(fakeTransport)
     localWorker._outLog = StringIO()
     localWorker.childDataReceived(4, "foo")
     localWorker.childDataReceived(1, "bar")
     self.assertEqual("foo", localWorker._ampProtocol.dataString)
     self.assertEqual("bar", localWorker._outLog.getvalue())
예제 #5
0
    def test_connectionLost(self):
        """
        L{LocalWorker.connectionLost} closes the log streams.
        """
        class FakeStream(object):
            callNumber = 0

            def close(self):
                self.callNumber += 1

        transport = FakeTransport()
        localWorker = LocalWorker(FakeAMProtocol(), '.', 'test.log')
        localWorker.makeConnection(transport)
        localWorker._outLog = FakeStream()
        localWorker._errLog = FakeStream()
        localWorker.connectionLost(None)
        self.assertEqual(localWorker._outLog.callNumber, 1)
        self.assertEqual(localWorker._errLog.callNumber, 1)
예제 #6
0
    def test_processEnded(self):
        """
        L{LocalWorker.processEnded} calls C{connectionLost} on itself and on
        the L{AMP} protocol.
        """
        class FakeStream(object):
            callNumber = 0

            def close(self):
                self.callNumber += 1

        transport = FakeTransport()
        protocol = FakeAMProtocol()
        localWorker = LocalWorker(protocol, '.', 'test.log')
        localWorker.makeConnection(transport)
        localWorker._outLog = FakeStream()
        localWorker.processEnded(Failure(CONNECTION_DONE))
        self.assertEqual(localWorker._outLog.callNumber, 1)
        self.assertIdentical(None, protocol.transport)
        return self.assertFailure(localWorker.endDeferred, ConnectionDone)
예제 #7
0
    def test_connectionLost(self):
        """
        L{LocalWorker.connectionLost} closes the log streams.
        """

        class FakeStream(object):
            callNumber = 0

            def close(self):
                self.callNumber += 1


        transport = FakeTransport()
        localWorker = LocalWorker(FakeAMProtocol(), '.', 'test.log')
        localWorker.makeConnection(transport)
        localWorker._outLog = FakeStream()
        localWorker._errLog = FakeStream()
        localWorker.connectionLost(None)
        self.assertEqual(localWorker._outLog.callNumber, 1)
        self.assertEqual(localWorker._errLog.callNumber, 1)
예제 #8
0
    def test_processEnded(self):
        """
        L{LocalWorker.processEnded} calls C{connectionLost} on itself and on
        the L{AMP} protocol.
        """

        class FakeStream(object):
            callNumber = 0

            def close(self):
                self.callNumber += 1


        transport = FakeTransport()
        protocol = FakeAMProtocol()
        localWorker = LocalWorker(protocol, '.', 'test.log')
        localWorker.makeConnection(transport)
        localWorker._outLog = FakeStream()
        localWorker.processEnded(Failure(CONNECTION_DONE))
        self.assertEqual(localWorker._outLog.callNumber, 1)
        self.assertIdentical(None, protocol.transport)
        return self.assertFailure(localWorker.endDeferred, ConnectionDone)