Пример #1
0
    def test_log_error_invokeId_line_framed_log_sink(self):
        with NamedTemporaryFile() as temp_file:
            with bootstrap.FramedTelemetryLogSink(temp_file.name) as log_sink:
                err_to_log = bootstrap.make_error(
                    "Error message",
                    "ErrorType",
                    ["line1", "", "line2"],
                    "testrequestId",
                )
                bootstrap.log_error(err_to_log, log_sink)

            expected_logged_error = (
                "[ERROR] ErrorType: Error message\nTraceback "
                "(most recent call last):\nline1\n\nline2")

            with open(temp_file.name, "rb") as f:
                content = f.read()

                frame_type = int.from_bytes(content[:4], "big")
                self.assertEqual(frame_type, 0xA55A0001)

                length = int.from_bytes(content[4:8], "big")
                self.assertEqual(length, len(expected_logged_error))

                actual_message = content[8:].decode()
                self.assertEqual(actual_message, expected_logged_error)
    def test_log_error_indentation_framed_log_sink(self):
        with NamedTemporaryFile() as temp_file:
            with bootstrap.FramedTelemetryLogSink(
                    os.open(temp_file.name,
                            os.O_CREAT | os.O_RDWR)) as log_sink:
                err_to_log = bootstrap.make_error(
                    "Error message", "ErrorType",
                    ["  line1  ", "  line2  ", "  "])
                bootstrap.log_error(err_to_log, log_sink)

            expected_logged_error = (
                "[ERROR] ErrorType: Error message\nTraceback (most recent call last):"
                "\n\xa0\xa0line1  \n\xa0\xa0line2  \n\xa0\xa0")

            with open(temp_file.name, "rb") as f:
                content = f.read()

                frame_type = int.from_bytes(content[:4], "big")
                self.assertEqual(frame_type, 0xA55A0001)

                length = int.from_bytes(content[4:8], "big")
                self.assertEqual(length,
                                 len(expected_logged_error.encode("utf8")))

                actual_message = content[8:].decode()
                self.assertEqual(actual_message, expected_logged_error)
    def test_log_error_indentation_standard_log_sink(self, mock_stdout):
        err_to_log = bootstrap.make_error("Error message", "ErrorType",
                                          ["  line1  ", "  line2  ", "  "])
        bootstrap.log_error(err_to_log, bootstrap.StandardLogSink())

        expected_logged_error = "[ERROR] ErrorType: Error message\rTraceback (most recent call last):\r\xa0\xa0line1  \r\xa0\xa0line2  \r\xa0\xa0\n"
        self.assertEqual(mock_stdout.getvalue(), expected_logged_error)
Пример #4
0
    def test_log_error_standard_log_sink(self, mock_stdout):
        err_to_log = bootstrap.make_error("Error message", "ErrorType", None)
        bootstrap.log_error(err_to_log, bootstrap.StandardLogSink())

        expected_logged_error = (
            "[ERROR] ErrorType: Error message\rTraceback (most recent call last):\n"
        )
        self.assertEqual(mock_stdout.getvalue(), expected_logged_error)
Пример #5
0
    def test_log_error_framed_log_sink(self):
        with NamedTemporaryFile() as temp_file:
            with bootstrap.FramedTelemetryLogSink(temp_file.name) as log_sink:
                err_to_log = bootstrap.make_error("Error message", "ErrorType", None)
                bootstrap.log_error(err_to_log, log_sink)

            expected_logged_error = "[ERROR] ErrorType: Error message"

            with open(temp_file.name, "rb") as f:
                content = f.read()

                frame_type = int.from_bytes(content[:4], "big")
                self.assertEqual(frame_type, 0xA55A0001)

                length = int.from_bytes(content[4:8], "big")
                self.assertEqual(length, len(expected_logged_error.encode("utf8")))

                actual_message = content[8:].decode()
                self.assertEqual(actual_message, expected_logged_error)