- 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)
+ with uu.RecordStdout() as record:
+ with lutils.OutputMultiplexerContext(
+ lutils.OutputMultiplexer.Destination.FILENAMES |
+ lutils.OutputMultiplexer.Destination.FILEHANDLES |
+ lutils.OutputMultiplexer.Destination.LOG_INFO,
+ filenames = [filename, '/dev/null'],
+ handles = [tmpfile1, sys.stdout],
+ ) as mplex:
+ mplex.print(secret_message, end='')
+
+ # Make sure it was written to the filename.
+ with open(filename, 'r') as rf:
+ self.assertEqual(rf.readline(), secret_message)
+ os.unlink(filename)
+
+ # Make sure it was written to stdout.
+ tmp = record().readline()
+ self.assertEqual(tmp, secret_message)
+
+ # Make sure it was written to the filehandle.