summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Gasch <[email protected]>2021-07-16 21:43:11 -0700
committerScott Gasch <[email protected]>2021-07-16 21:43:11 -0700
commit0e451d3b3bf899b3d9ac0c38e3c3cd9d9be170ba (patch)
tree09fb65e648652ac016ee90ead516f664b71beee0
parent97fbe845e5dfdbda22521117c1783e1fd8515952 (diff)
Rename timer; add a test for OutputContext.
-rw-r--r--stopwatch.py (renamed from timer.py)0
-rwxr-xr-xtests/logging_utils_test.py42
2 files changed, 42 insertions, 0 deletions
diff --git a/timer.py b/stopwatch.py
index 752c7ed..752c7ed 100644
--- a/timer.py
+++ b/stopwatch.py
diff --git a/tests/logging_utils_test.py b/tests/logging_utils_test.py
new file mode 100755
index 0000000..48e5015
--- /dev/null
+++ b/tests/logging_utils_test.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+
+import contextlib
+import tempfile
+import unittest
+
+import bootstrap
+import logging_utils as lutils
+import string_utils as sutils
+
+
+class TestLoggingUtils(unittest.TestCase):
+
+ def test_output_context(self):
+ unique_suffix = sutils.generate_uuid(True)
+ filename = f'/tmp/logging_utils_test.{unique_suffix}'
+ secret_message = f'This is a test, {unique_suffix}.'
+
+ with tempfile.SpooledTemporaryFile(mode='r+') as tmpfile1:
+ with tempfile.SpooledTemporaryFile(mode='r+') as tmpfile2:
+ with contextlib.redirect_stdout(tmpfile1):
+ with lutils.OutputContext(
+ lutils.OutputMultiplexer.Destination.FILENAME |
+ lutils.OutputMultiplexer.Destination.FILEHANDLE |
+ lutils.OutputMultiplexer.Destination.STDOUT,
+ filename = filename,
+ handle = tmpfile2,
+ ) as mplex:
+ mplex.print(secret_message, end='')
+ with open(filename, 'r') as rf:
+ self.assertEqual(rf.readline(), secret_message)
+ tmpfile2.seek(0)
+ tmp = tmpfile2.readline()
+ self.assertEqual(tmp, secret_message)
+ tmpfile1.seek(0)
+ tmp = tmpfile1.readline()
+ self.assertEqual(tmp, secret_message)
+
+
+if __name__ == '__main__':
+ unittest.main = bootstrap.initialize(unittest.main)
+ unittest.main()