Pylog test suite
[logging-analytics.git] / pylog / tests / test_marker_formatter.py
diff --git a/pylog/tests/test_marker_formatter.py b/pylog/tests/test_marker_formatter.py
new file mode 100644 (file)
index 0000000..bda7f24
--- /dev/null
@@ -0,0 +1,67 @@
+# Copyright (c) 2020 Deutsche Telekom.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+
+import sys
+import unittest
+from collections import namedtuple
+
+if sys.version_info[0] < 3:
+    from mock import patch
+if sys.version_info[0] >= 3:
+    from unittest.mock import patch
+
+import pytest
+
+from onaplogging.marker import BaseMarker
+from onaplogging.markerFormatter import MarkerFormatter
+
+
+class TestMarkerFormatter(unittest.TestCase):
+
+    Record = namedtuple("Record", "marker")
+
+    def test_marker_formatter_init(self):
+        marker_formatter = MarkerFormatter()
+        self.assertEqual(marker_formatter.style, "%")
+        self.assertEqual(marker_formatter._marker_tag, "%(marker)s")
+
+        if sys.version_info[0] >= 3:
+            marker_formatter = MarkerFormatter(style="{")
+            self.assertEqual(marker_formatter.style, "{")
+            self.assertEqual(marker_formatter._marker_tag, "{marker}")
+
+            marker_formatter = MarkerFormatter(style="$")
+            self.assertEqual(marker_formatter.style, "$")
+            self.assertEqual(marker_formatter._marker_tag, "${marker}")
+
+            with pytest.raises(ValueError):
+                MarkerFormatter(style="*")
+
+    def test_marker_formatter_format(self):
+        record = self.Record(BaseMarker("test"))
+
+        with patch("onaplogging.markerFormatter.BaseColorFormatter.format") as mock_format:
+            marker_formatter = MarkerFormatter()
+            self.assertEqual(marker_formatter._fmt, "%(message)s")
+            self.assertEqual(marker_formatter._marker_tag, "%(marker)s")
+            marker_formatter.format(record)
+            mock_format.assert_called_once()
+            self.assertEqual(marker_formatter._fmt, "%(message)s")
+            self.assertEqual(marker_formatter._marker_tag, "%(marker)s")
+
+        with patch("onaplogging.markerFormatter.BaseColorFormatter.format") as mock_format:
+            marker_formatter = MarkerFormatter(fmt="%(message)s %(marker)s")
+            self.assertEqual(marker_formatter._fmt, "%(message)s %(marker)s")
+            self.assertEqual(marker_formatter._marker_tag, "%(marker)s")
+            marker_formatter.format(record)
+            mock_format.assert_called_once()
+            self.assertEqual(marker_formatter._fmt, "%(message)s %(marker)s")
+            self.assertEqual(marker_formatter._marker_tag, "%(marker)s")
+            self.assertEqual(marker_formatter._tmpFmt, "%(message)s %(marker)s")