37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
import sys
|
|
import unittest
|
|
|
|
import mozunit
|
|
from mozlog import capture, structuredlog
|
|
from test_structured import TestHandler
|
|
|
|
|
|
class TestCaptureIO(unittest.TestCase):
|
|
"""Tests expected logging output of CaptureIO"""
|
|
|
|
def setUp(self):
|
|
self.logger = structuredlog.StructuredLogger("test")
|
|
self.handler = TestHandler()
|
|
self.logger.add_handler(self.handler)
|
|
|
|
def test_captureio_log(self):
|
|
"""
|
|
CaptureIO takes in two arguments. The second argument must
|
|
be truthy in order for the code to run. Hence, the string
|
|
"capture_stdio" has been used in this test case.
|
|
"""
|
|
with capture.CaptureIO(self.logger, "capture_stdio"):
|
|
print("message 1")
|
|
sys.stdout.write("message 2")
|
|
sys.stderr.write("message 3")
|
|
sys.stdout.write("\xff")
|
|
log = self.handler.items
|
|
messages = [item["message"] for item in log]
|
|
self.assertIn("STDOUT: message 1", messages)
|
|
self.assertIn("STDOUT: message 2", messages)
|
|
self.assertIn("STDERR: message 3", messages)
|
|
self.assertIn("STDOUT: \xff", messages)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
mozunit.main()
|