blob: 48e5015f12f1f0af1595c3e1aa026bdcb9236123 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
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()
|