tests/test_log.py (1295B)
1 """Tests for ap_scanner.log — logging level save/restore."""
2
3 import logging
4 import sys
5
6 from ap_scanner.log import (
7 restore_stderr_after_scan,
8 setup_logging,
9 suppress_stderr_during_scan,
10 )
11
12
13 def _get_stderr_handler_level() -> int | None:
14 """Return the level of the stderr handler on the ap_scanner logger."""
15 root = logging.getLogger("ap_scanner")
16 for h in root.handlers:
17 if isinstance(h, logging.StreamHandler) and h.stream is sys.stderr:
18 return h.level
19 return None
20
21
22 def test_restore_level_info():
23 """After setup(verbose=False), restore returns to INFO (not DEBUG)."""
24 setup_logging(verbose=False, log_file=None)
25 assert _get_stderr_handler_level() == logging.INFO
26
27 suppress_stderr_during_scan()
28 assert _get_stderr_handler_level() == logging.CRITICAL
29
30 restore_stderr_after_scan()
31 assert _get_stderr_handler_level() == logging.INFO
32
33
34 def test_restore_level_debug():
35 """After setup(verbose=True), restore returns to DEBUG."""
36 setup_logging(verbose=True, log_file=None)
37 assert _get_stderr_handler_level() == logging.DEBUG
38
39 suppress_stderr_during_scan()
40 assert _get_stderr_handler_level() == logging.CRITICAL
41
42 restore_stderr_after_scan()
43 assert _get_stderr_handler_level() == logging.DEBUG