コード例 #1
0
    def test_partial(self):
        def connection_made(transport):
            transport.write(b"foo")

        self.protocol.connection_made = connection_made

        self._run_test(
            self.t,
            [
                TransportMock.Write(
                    b"foo",
                ),
            ],
            partial=True
        )

        self.t.write_eof()
        self.t.close()

        self._run_test(
            self.t,
            [
                TransportMock.WriteEof(),
                TransportMock.Close()
            ]
        )
コード例 #2
0
    def test_response_eof_received(self):
        def connection_made(transport):
            transport.close()

        self.protocol.connection_made = connection_made
        self._run_test(
            self.t, [TransportMock.Close(response=TransportMock.ReceiveEof())])
        self.assertSequenceEqual(self.protocol.mock_calls, [
            unittest.mock.call.eof_received(),
            unittest.mock.call.connection_lost(None)
        ])
コード例 #3
0
    def test_response_lose_connection(self):
        def connection_made(transport):
            transport.close()

        obj = object()

        self.protocol.connection_made = connection_made
        self._run_test(
            self.t,
            [TransportMock.Close(response=TransportMock.LoseConnection(obj))])
        self.assertSequenceEqual(self.protocol.mock_calls,
                                 [unittest.mock.call.connection_lost(obj)])
コード例 #4
0
    def test_request_response(self):
        def data_received(data):
            assert data in {b"foo", b"baz"}
            if data == b"foo":
                self.t.write(b"bar")
            elif data == b"baz":
                self.t.close()

        self.protocol.data_received = data_received
        self._run_test(self.t, [
            TransportMock.Write(b"bar",
                                response=TransportMock.Receive(b"baz")),
            TransportMock.Close()
        ],
                       stimulus=b"foo")
コード例 #5
0
    def test_asynchronous_request_response(self):
        def data_received(data):
            self.assertIn(data, {b"foo", b"baz"})
            if data == b"foo":
                self.loop.call_soon(self.t.write, b"bar")
            elif data == b"baz":
                self.loop.call_soon(self.t.close)

        self.protocol.data_received = data_received
        self._run_test(self.t, [
            TransportMock.Write(b"bar",
                                response=TransportMock.Receive(b"baz")),
            TransportMock.Close()
        ],
                       stimulus=b"foo")