8 import logging_utils as lutils
9 import string_utils as sutils
12 class TestLoggingUtils(unittest.TestCase):
14 def test_output_context(self):
15 unique_suffix = sutils.generate_uuid(True)
16 filename = f'/tmp/logging_utils_test.{unique_suffix}'
17 secret_message = f'This is a test, {unique_suffix}.'
19 with tempfile.SpooledTemporaryFile(mode='r+') as tmpfile1:
20 with tempfile.SpooledTemporaryFile(mode='r+') as tmpfile2:
21 with contextlib.redirect_stdout(tmpfile1):
22 with lutils.OutputContext(
23 lutils.OutputMultiplexer.Destination.FILENAME |
24 lutils.OutputMultiplexer.Destination.FILEHANDLE |
25 lutils.OutputMultiplexer.Destination.STDOUT,
29 mplex.print(secret_message, end='')
30 with open(filename, 'r') as rf:
31 self.assertEqual(rf.readline(), secret_message)
33 tmp = tmpfile2.readline()
34 self.assertEqual(tmp, secret_message)
36 tmp = tmpfile1.readline()
37 self.assertEqual(tmp, secret_message)
40 if __name__ == '__main__':
41 unittest.main = bootstrap.initialize(unittest.main)