Skip to content

Commit 13589e3

Browse files
committed
add logger test
1 parent 7bc4a41 commit 13589e3

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/h2/config.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -61,16 +61,16 @@ class OutputLogger:
6161
Defaults to ``sys.stderr``.
6262
:param trace: Enables trace-level output. Defaults to ``False``.
6363
"""
64-
def __init__(self, file=sys.stderr, trace=False):
64+
def __init__(self, file=None, trace_level=False):
6565
super().__init__()
66-
self.file = file
67-
self.trace = trace
66+
self.file = file or sys.stderr
67+
self.trace_level = trace_level
6868

6969
def debug(self, fmtstr, *args):
7070
print(f"h2 (debug): {fmtstr % args}", file=self.file)
7171

7272
def trace(self, fmtstr, *args):
73-
if self.trace:
73+
if self.trace_level:
7474
print(f"h2 (trace): {fmtstr % args}", file=self.file)
7575

7676

test/test_config.py

+14
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class TestH2Config(object):
1515
"""
1616
Tests of the H2 config object.
1717
"""
18+
1819
def test_defaults(self):
1920
"""
2021
The default values of the HTTP/2 config object are sensible.
@@ -128,3 +129,16 @@ def test_logger_instance_is_reflected(self):
128129
config = h2.config.H2Configuration()
129130
config.logger = logger
130131
assert config.logger is logger
132+
133+
@pytest.mark.parametrize("trace_level", [False, True])
134+
def test_output_logger(self, capsys, trace_level):
135+
logger = h2.config.OutputLogger(trace_level=trace_level)
136+
137+
logger.debug("This is a debug message %d.", 123)
138+
logger.trace("This is a trace message %d.", 123)
139+
captured = capsys.readouterr()
140+
assert "h2 (debug): This is a debug message 123.\n" in captured.err
141+
if trace_level:
142+
assert "h2 (trace): This is a trace message 123.\n" in captured.err
143+
else:
144+
assert "h2 (trace): This is a trace message 123.\n" not in captured.err

0 commit comments

Comments
 (0)