diff options
| author | Cody Logan <cody@lokken.dev> | 2023-10-23 13:19:13 -0700 |
|---|---|---|
| committer | Cody Logan <cody@lokken.dev> | 2023-10-23 13:19:13 -0700 |
| commit | 837e456059019f05736937b58372763751b71738 (patch) | |
| tree | 07eb12e293a50cd2b61ee3ee6ed183504fae5a70 /tests | |
| parent | daf4a17b53ed59ffa4b130ce9bedd4f42ef1bfdb (diff) | |
| download | wikiget-837e456059019f05736937b58372763751b71738.tar.gz wikiget-837e456059019f05736937b58372763751b71738.zip | |
Initial logging tests
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_logging.py | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/test_logging.py b/tests/test_logging.py new file mode 100644 index 0000000..eef67a5 --- /dev/null +++ b/tests/test_logging.py @@ -0,0 +1,66 @@ +# wikiget - CLI tool for downloading files from Wikimedia sites +# Copyright (C) 2023 Cody Logan +# SPDX-License-Identifier: GPL-3.0-or-later +# +# Wikiget is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Wikiget is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Wikiget. If not, see <https://www.gnu.org/licenses/>. + +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 + + +def test_custom_log_adapter(create_logger, caplog): + args = construct_parser().parse_args(["File:Example.jpg"]) + logger = create_logger(args) + adapter = FileLogAdapter(logger, {"filename": "Example.jpg"}) + adapter.warning("test log") + assert "[Example.jpg] test log" in caplog.text + + +def test_default_logging(create_logger): + args = construct_parser().parse_args(["File:Example.jpg"]) + logger = create_logger(args) + assert logger.level == logging.WARNING + + +@pytest.mark.xfail(reason="logging level can't be changed mid-test") +def test_verbose_logging(create_logger): + args = construct_parser().parse_args(["File:Example.jpg", "-v"]) + logger = create_logger(args) + assert logger.level == logging.INFO + + +@pytest.mark.xfail(reason="logging level can't be changed mid-test") +def test_very_verbose_logging(create_logger): + args = construct_parser().parse_args(["File:Example.jpg", "-vv"]) + logger = create_logger(args) + assert logger.level == logging.DEBUG + + +@pytest.mark.xfail(reason="logging level can't be changed mid-test") +def test_quiet_logging(create_logger): + args = construct_parser().parse_args(["File:Example.jpg", "-q"]) + logger = create_logger(args) + assert logger.level == logging.ERROR |
