Source code

Revision control

Copy as Markdown

Other Tools

Test Info:

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()