def test_raises_error_on_empty_buffer(self, monkeypatch): """ Tests to make sure that a "read ready" socket that has an empty buffer causes the connection to close and the connection reset to be raised. """ mocked_socket = MagicMock() mocked_disconnect = MagicMock() mocked_select = MagicMock(return_value=[True, False, False]) socket_received_data = b"" mocked_recv = MagicMock(return_value=socket_received_data) mocked_socket.recv = mocked_recv conn = Connection() monkeypatch.setattr(conn, "socket", mocked_socket) monkeypatch.setattr("faktory._proto.select.select", mocked_select) monkeypatch.setattr(conn, "disconnect", mocked_disconnect) with pytest.raises(FaktoryConnectionResetError): data = conn.select_data(buffer_size=5_000) mocked_recv.assert_called_once() mocked_disconnect.assert_called_once()
def test_fetches_provided_buffer_size(self, monkeypatch): mocked_socket = MagicMock() mocked_select = MagicMock(return_value=[True, False, False]) mocked_recv = MagicMock(return_value=b"I'm the mocked out data!") mocked_socket.recv = mocked_recv conn = Connection() monkeypatch.setattr(conn, "socket", mocked_socket) monkeypatch.setattr("faktory._proto.select.select", mocked_select) data = conn.select_data(buffer_size=5_000) mocked_recv.assert_called_once_with(5_000)
def test_returns_buffer_if_exists(self, monkeypatch): mocked_socket = MagicMock() mocked_select = MagicMock(return_value=[True, False, False]) socket_received_data = b"I'm the mocked out data!" mocked_recv = MagicMock(return_value=socket_received_data) mocked_socket.recv = mocked_recv conn = Connection() monkeypatch.setattr(conn, "socket", mocked_socket) monkeypatch.setattr("faktory._proto.select.select", mocked_select) data = conn.select_data(buffer_size=5_000) mocked_recv.assert_called_once() assert data == b"I'm the mocked out data!"
def test_raises_error_if_socket_not_ready(self, monkeypatch): mocked_socket = MagicMock() mocked_disconnect = MagicMock() mocked_select = MagicMock(return_value=[False, False, False]) socket_received_data = b"I'm the mocked out data!" mocked_recv = MagicMock(return_value=socket_received_data) mocked_socket.recv = mocked_recv conn = Connection() monkeypatch.setattr(conn, "socket", mocked_socket) monkeypatch.setattr("faktory._proto.select.select", mocked_select) monkeypatch.setattr(conn, "disconnect", mocked_disconnect) with pytest.raises(FaktoryConnectionResetError): data = conn.select_data(buffer_size=5_000) mocked_recv.assert_not_called() mocked_disconnect.assert_called_once()