diff options
| author | Cody Logan <cody@lokken.dev> | 2023-10-24 10:59:39 -0700 |
|---|---|---|
| committer | Cody Logan <cody@lokken.dev> | 2023-10-24 10:59:39 -0700 |
| commit | 0b700624f79461a0d9f52eeb0370d15f16d49c90 (patch) | |
| tree | 7bfe7a1e402dc8559780e9344720112c52a916b2 | |
| parent | 837e456059019f05736937b58372763751b71738 (diff) | |
| download | wikiget-0b700624f79461a0d9f52eeb0370d15f16d49c90.tar.gz wikiget-0b700624f79461a0d9f52eeb0370d15f16d49c90.zip | |
Revise logging tests
| -rw-r--r-- | tests/test_logging.py | 56 |
1 files changed, 30 insertions, 26 deletions
diff --git a/tests/test_logging.py b/tests/test_logging.py index eef67a5..3c386e4 100644 --- a/tests/test_logging.py +++ b/tests/test_logging.py @@ -17,50 +17,54 @@ import logging -import pytest - from wikiget.logging import FileLogAdapter, configure_logging from wikiget.wikiget import construct_parser - -@pytest.fixture -def create_logger(): - def _create_logger(args): - configure_logging(args.verbose, args.logfile, quiet=args.quiet) - return logging.getLogger() - return _create_logger +logger = logging.getLogger() -def test_custom_log_adapter(create_logger, caplog): +def test_custom_log_adapter(caplog): args = construct_parser().parse_args(["File:Example.jpg"]) - logger = create_logger(args) + configure_logging(args.verbose, args.logfile, quiet=args.quiet) adapter = FileLogAdapter(logger, {"filename": "Example.jpg"}) adapter.warning("test log") assert "[Example.jpg] test log" in caplog.text -def test_default_logging(create_logger): +def test_file_logging(tmp_path): + logfile_location = tmp_path / "test.log" + args = construct_parser().parse_args( + ["File:Example.jpg", "-l", str(logfile_location)] + ) + configure_logging(args.verbose, args.logfile, quiet=args.quiet) + assert logfile_location.is_file() + + +def test_default_logging(): args = construct_parser().parse_args(["File:Example.jpg"]) - logger = create_logger(args) - assert logger.level == logging.WARNING + configure_logging(args.verbose, args.logfile, quiet=args.quiet) + # each call of configure_logging() adds a new handler to the logger, so we need to + # grab the most recently added one to test + handler = logger.handlers[-1] + assert handler.level == logging.WARNING -@pytest.mark.xfail(reason="logging level can't be changed mid-test") -def test_verbose_logging(create_logger): +def test_verbose_logging(): args = construct_parser().parse_args(["File:Example.jpg", "-v"]) - logger = create_logger(args) - assert logger.level == logging.INFO + configure_logging(args.verbose, args.logfile, quiet=args.quiet) + handler = logger.handlers[-1] + assert handler.level == logging.INFO -@pytest.mark.xfail(reason="logging level can't be changed mid-test") -def test_very_verbose_logging(create_logger): +def test_very_verbose_logging(): args = construct_parser().parse_args(["File:Example.jpg", "-vv"]) - logger = create_logger(args) - assert logger.level == logging.DEBUG + configure_logging(args.verbose, args.logfile, quiet=args.quiet) + handler = logger.handlers[-1] + assert handler.level == logging.DEBUG -@pytest.mark.xfail(reason="logging level can't be changed mid-test") -def test_quiet_logging(create_logger): +def test_quiet_logging(): args = construct_parser().parse_args(["File:Example.jpg", "-q"]) - logger = create_logger(args) - assert logger.level == logging.ERROR + configure_logging(args.verbose, args.logfile, quiet=args.quiet) + handler = logger.handlers[-1] + assert handler.level == logging.ERROR |
