Skip to content

Commit 1bd2801

Browse files
committed
Add enable/disable logging unit tests
1 parent 7604800 commit 1bd2801

1 file changed

Lines changed: 67 additions & 0 deletions

File tree

test/test_logging.py

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
"""Logging control tests"""
2+
3+
import logging
4+
import cmdstanpy
5+
6+
7+
def test_disable_logging(caplog):
8+
logger = cmdstanpy.utils.logging.get_logger()
9+
10+
with caplog.at_level(logging.INFO, logger="cmdstanpy"):
11+
logger.info("before")
12+
assert any("before" in m for m in caplog.messages)
13+
14+
caplog.clear()
15+
cmdstanpy.disable_logging()
16+
17+
with caplog.at_level(logging.INFO, logger="cmdstanpy"):
18+
logger.info("after")
19+
20+
assert not caplog.messages
21+
logger.disabled = False
22+
23+
24+
def test_disable_logging_context_manager(caplog):
25+
logger = cmdstanpy.utils.logging.get_logger()
26+
27+
with caplog.at_level(logging.INFO, logger="cmdstanpy"):
28+
logger.info("before")
29+
assert any("before" in m for m in caplog.messages)
30+
31+
caplog.clear()
32+
with cmdstanpy.disable_logging():
33+
with caplog.at_level(logging.INFO, logger="cmdstanpy"):
34+
logger.info("inside context manager")
35+
36+
assert not caplog.messages
37+
38+
with caplog.at_level(logging.INFO, logger="cmdstanpy"):
39+
logger.info("after")
40+
41+
assert any("after" in m for m in caplog.messages)
42+
logger.disabled = False
43+
44+
45+
def test_disable_logging_context_manager_nested(caplog):
46+
logger = cmdstanpy.utils.logging.get_logger()
47+
48+
with caplog.at_level(logging.INFO, logger="cmdstanpy"):
49+
logger.info("before")
50+
assert any("before" in m for m in caplog.messages)
51+
52+
caplog.clear()
53+
with cmdstanpy.disable_logging():
54+
with cmdstanpy.enable_logging():
55+
with caplog.at_level(logging.INFO, logger="cmdstanpy"):
56+
logger.info("inside context manager")
57+
58+
assert any("inside context manager" in m for m in caplog.messages)
59+
60+
caplog.clear()
61+
with cmdstanpy.enable_logging():
62+
with cmdstanpy.disable_logging():
63+
with caplog.at_level(logging.INFO, logger="cmdstanpy"):
64+
logger.info("inside context manager")
65+
66+
assert not caplog.messages
67+
logger.disabled = False

0 commit comments

Comments
 (0)