def test_serialized_data_digest_in_header(self): """ The data header is formed by: <serialized data digest> <serialized data length>\n """ mock_digest = self.mocker.mock() mock_digest(mocker.ANY) self.mocker.result("e5fcf4f4606df6368779205e29b22e5851355de3") self.mocker.replay() stream = StringIO() utils.send_message(stream, "message", mock_digest) self.assertEqual(stream.getvalue().split("\n")[0].split(" ")[0], "e5fcf4f4606df6368779205e29b22e5851355de3")
def test_socket_stream_support(self): import socket sock_one, sock_two = socket.socketpair() mock_digest = self.mocker.mock() mock_pickle = self.mocker.mock() mock_digest(mocker.ANY) self.mocker.result("e5fcf4f4606df6368779205e29b22e5851355de3") mock_pickle.HIGHEST_PROTOCOL self.mocker.result("foo") mock_pickle.dumps(mocker.ANY, mocker.ANY) self.mocker.result("serialized-data-byte-string") self.mocker.replay() utils.send_message(sock_one, "message", mock_digest, pickle_dep=mock_pickle) self.assertEqual(int(sock_two.recv(1024).split("\n")[0].split(" ")[1]), len("serialized-data-byte-string"))
def test_stream_is_flushed(self): mock_stream = self.mocker.mock() mock_stream.write(mocker.ANY) self.mocker.result(None) self.mocker.count(2) mock_stream.flush() self.mocker.result(None) self.mocker.replay() self.assertIsNone(utils.send_message(mock_stream, "message", utils.make_digest))
def test_unix_socket_stream_support(self): import socket mock_digest = self.mocker.mock() mock_pickle = self.mocker.mock() mock_digest(mocker.ANY) self.mocker.result("e5fcf4f4606df6368779205e29b22e5851355de3") mock_pickle.HIGHEST_PROTOCOL self.mocker.result("foo") mock_pickle.dumps(mocker.ANY, mocker.ANY) self.mocker.result("serialized-data-byte-string") self.mocker.replay() out_stream = utils.get_readable_socket(self.sock_path) out_stream.setblocking(1) # avoid blocking in_stream = utils.get_writable_socket(self.sock_path) utils.send_message(in_stream, "message", mock_digest, pickle_dep=mock_pickle) conn, _ = out_stream.accept() self.assertEqual(int(conn.recv(1024).split("\n")[0].split(" ")[1]), len("serialized-data-byte-string"))
def test_serialized_data_length_in_header(self): """ The data header is formed by: <serialized data digest> <serialized data length>\n """ mock_digest = self.mocker.mock() mock_pickle = self.mocker.mock() mock_digest(mocker.ANY) self.mocker.result("e5fcf4f4606df6368779205e29b22e5851355de3") mock_pickle.HIGHEST_PROTOCOL self.mocker.result("foo") mock_pickle.dumps(mocker.ANY, mocker.ANY) self.mocker.result("serialized-data-byte-string") self.mocker.replay() stream = StringIO() utils.send_message(stream, "message", mock_digest, pickle_dep=mock_pickle) self.assertEqual(int(stream.getvalue().split("\n")[0].split(" ")[1]), len("serialized-data-byte-string"))