@@ -24,6 +24,94 @@ def set_json_formatter(monkeypatch, fields: dict[str, str] | None) -> None:
2424 log .setup ()
2525
2626
27+ def test_set_logger_level_none (capsys , monkeypatch ):
28+ """'set_logger_level' should disable the logger if log level is 'none'"""
29+ set_json_formatter (monkeypatch , None )
30+
31+ logger = logging .getLogger ("test_set_logger_level_none" )
32+ log .set_logger_level (logger , "none" )
33+
34+ logger .info ("Info log message" )
35+ logger .warning ("Warning log message" )
36+ logger .error ("Error log message" )
37+ logger .critical ("Critical log message" )
38+
39+ captured_message = capsys .readouterr ().err .strip ()
40+
41+ assert captured_message == ""
42+
43+
44+ def test_set_logger_level_error (capsys , monkeypatch ):
45+ """'set_logger_level' should show only error and critical messages if log level is 'error'"""
46+ set_json_formatter (monkeypatch , None )
47+
48+ logger = logging .getLogger ("test_set_logger_level_error" )
49+ log .set_logger_level (logger , "error" )
50+
51+ logger .info ("Info log message" )
52+ logger .warning ("Warning log message" )
53+ logger .error ("Error log message" )
54+ logger .critical ("Critical log message" )
55+
56+ captured_message = capsys .readouterr ().err .strip ()
57+
58+ assert captured_message == "\n " .join (
59+ [
60+ '{"message": "Error log message"}' ,
61+ '{"message": "Critical log message"}' ,
62+ ]
63+ )
64+
65+
66+ def test_set_logger_level_warning (capsys , monkeypatch ):
67+ """'set_logger_level' should show only warning, error and critical messages if log level is
68+ 'warning'"""
69+ set_json_formatter (monkeypatch , None )
70+
71+ logger = logging .getLogger ("test_set_logger_level_warning" )
72+ log .set_logger_level (logger , "warning" )
73+
74+ logger .info ("Info log message" )
75+ logger .warning ("Warning log message" )
76+ logger .error ("Error log message" )
77+ logger .critical ("Critical log message" )
78+
79+ captured_message = capsys .readouterr ().err .strip ()
80+
81+ assert captured_message == "\n " .join (
82+ [
83+ '{"message": "Warning log message"}' ,
84+ '{"message": "Error log message"}' ,
85+ '{"message": "Critical log message"}' ,
86+ ]
87+ )
88+
89+
90+ def test_set_logger_level_default (capsys , monkeypatch ):
91+ """'set_logger_level' should show info, warning, error and critical messages if log level is
92+ 'default'"""
93+ set_json_formatter (monkeypatch , None )
94+
95+ logger = logging .getLogger ("test_set_logger_level_default" )
96+ log .set_logger_level (logger , "default" )
97+
98+ logger .info ("Info log message" )
99+ logger .warning ("Warning log message" )
100+ logger .error ("Error log message" )
101+ logger .critical ("Critical log message" )
102+
103+ captured_message = capsys .readouterr ().err .strip ()
104+
105+ assert captured_message == "\n " .join (
106+ [
107+ '{"message": "Info log message"}' ,
108+ '{"message": "Warning log message"}' ,
109+ '{"message": "Error log message"}' ,
110+ '{"message": "Critical log message"}' ,
111+ ]
112+ )
113+
114+
27115@pytest .mark .parametrize (
28116 "log_format" ,
29117 [
0 commit comments