From 420a50672067b1a736a30c2f671fcf43495c4df0 Mon Sep 17 00:00:00 2001 From: Cody Logan Date: Wed, 1 Nov 2023 13:33:39 -0700 Subject: Rename some symbols and functions to better match their purpose --- tests/test_wikiget_cli.py | 69 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 tests/test_wikiget_cli.py (limited to 'tests/test_wikiget_cli.py') diff --git a/tests/test_wikiget_cli.py b/tests/test_wikiget_cli.py new file mode 100644 index 0000000..99d113e --- /dev/null +++ b/tests/test_wikiget_cli.py @@ -0,0 +1,69 @@ +# 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 . + +from unittest.mock import MagicMock, patch + +import pytest + +from wikiget import USER_AGENT, __version__ +from wikiget.wikiget import cli + + +def test_cli_no_params(monkeypatch: pytest.MonkeyPatch): + monkeypatch.setattr("sys.argv", ["wikiget"]) + with pytest.raises(SystemExit) as e: + cli() + assert e.value.code == 2 + + +@patch("wikiget.wikiget.process_download") +def test_cli_completed_successfully( + mock_process_download: MagicMock, monkeypatch: pytest.MonkeyPatch +) -> None: + monkeypatch.setattr("sys.argv", ["wikiget", "File:Example.jpg"]) + mock_process_download.return_value = 0 + with pytest.raises(SystemExit) as e: + cli() + assert mock_process_download.called + assert e.value.code == 0 + + +@patch("wikiget.wikiget.process_download") +def test_cli_completed_with_problems( + mock_process_download: MagicMock, monkeypatch: pytest.MonkeyPatch +) -> None: + monkeypatch.setattr("sys.argv", ["wikiget", "File:Example.jpg"]) + mock_process_download.return_value = 1 + with pytest.raises(SystemExit) as e: + cli() + assert mock_process_download.called + assert e.value.code == 1 + + +@patch("wikiget.wikiget.process_download") +def test_cli_logs( + mock_process_download: MagicMock, + monkeypatch: pytest.MonkeyPatch, + caplog: pytest.LogCaptureFixture, +) -> None: + monkeypatch.setattr("sys.argv", ["wikiget", "File:Example.jpg"]) + mock_process_download.return_value = 0 + with pytest.raises(SystemExit): + cli() + assert mock_process_download.called + assert f"Starting download session using wikiget {__version__}" in caplog.text + assert USER_AGENT in caplog.text -- cgit v1.2.3