diff options
| author | Cody Logan <cody@lokken.dev> | 2023-10-30 13:48:03 -0700 |
|---|---|---|
| committer | Cody Logan <cody@lokken.dev> | 2023-10-30 13:48:03 -0700 |
| commit | 27376c3f3ec667fd83c3603652f11d4125b90e5c (patch) | |
| tree | 18a9a025a8b81d718f541c7c7f1ec321569abc33 /tests | |
| parent | d5c8d30f8f17158bb3bc3be1af8959734ead2de4 (diff) | |
| download | wikiget-27376c3f3ec667fd83c3603652f11d4125b90e5c.tar.gz wikiget-27376c3f3ec667fd83c3603652f11d4125b90e5c.zip | |
Check for existing files earlier to avoid unnecessary API calls
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_dl.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/tests/test_dl.py b/tests/test_dl.py index 5c962f9..69ff2bb 100644 --- a/tests/test_dl.py +++ b/tests/test_dl.py @@ -15,6 +15,8 @@ # You should have received a copy of the GNU General Public License # along with Wikiget. If not, see <https://www.gnu.org/licenses/>. +from pathlib import Path + import pytest from wikiget.dl import prep_download @@ -22,9 +24,23 @@ from wikiget.wikiget import construct_parser # TODO: don't hit the actual API when doing tests -@pytest.mark.skip(reason="skip tests that query a live API") class TestPrepDownload: + @pytest.mark.skip(reason="skip tests that query a live API") def test_prep_download(self) -> None: + """ + The prep_download function should create a file object. + """ args = construct_parser().parse_args(["File:Example.jpg"]) file = prep_download(args.FILE, args) assert file is not None + + def test_prep_download_with_existing_file(self, tmp_path: Path) -> None: + """ + Attempting to download a file with the same destination name as an existing file + should raise a FileExistsError. + """ + tmp_file = tmp_path / "File:Example.jpg" + tmp_file.write_text("nothing") + args = construct_parser().parse_args(["File:Example.jpg", "-o", str(tmp_file)]) + with pytest.raises(FileExistsError): + _ = prep_download(args.FILE, args) |
