Isolate logging in all test cases

pull/17119/head
Richard Belleville 6 years ago
parent a8d6e14721
commit 056a1a8ea4
  1. 40
      src/python/grpcio_tests/tests/unit/_logging_test.py

@ -36,32 +36,38 @@ def patch_stderr(f):
return _impl
def isolated_logging(f):
@functools.wraps(f)
def _impl(*args, **kwargs):
reload_module(logging)
reload_module(grpc)
try:
f(*args, **kwargs)
finally:
reload_module(logging)
return _impl
class LoggingTest(unittest.TestCase):
@isolated_logging
def test_logger_not_occupied(self):
self.assertEqual(0, len(logging.getLogger().handlers))
@patch_stderr
@isolated_logging
def test_handler_found(self):
try:
reload_module(logging)
reload_module(grpc)
self.assertFalse(
"No handlers could be found" in sys.stderr.getvalue())
finally:
reload_module(logging)
self.assertEqual(0, len(sys.stderr.getvalue()))
@isolated_logging
def test_can_configure_logger(self):
reload_module(logging)
reload_module(grpc)
try:
intended_stream = six.StringIO()
logging.basicConfig(stream=intended_stream)
self.assertEqual(1, len(logging.getLogger().handlers))
self.assertTrue(
logging.getLogger().handlers[0].stream is intended_stream)
finally:
reload_module(logging)
intended_stream = six.StringIO()
logging.basicConfig(stream=intended_stream)
self.assertEqual(1, len(logging.getLogger().handlers))
self.assertTrue(
logging.getLogger().handlers[0].stream is intended_stream)
if __name__ == '__main__':

Loading…
Cancel
Save