Exemple #1
0
    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")
Exemple #2
0
    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"))
Exemple #3
0
    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))
Exemple #4
0
    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"))
Exemple #5
0
    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"))