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() ] )
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) ])
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)])
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")
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")