aboutsummaryrefslogtreecommitdiff
path: root/tests/test_dl.py
diff options
context:
space:
mode:
authorCody Logan <cody@lokken.dev>2023-10-30 13:48:03 -0700
committerCody Logan <cody@lokken.dev>2023-10-30 13:48:03 -0700
commit27376c3f3ec667fd83c3603652f11d4125b90e5c (patch)
tree18a9a025a8b81d718f541c7c7f1ec321569abc33 /tests/test_dl.py
parentd5c8d30f8f17158bb3bc3be1af8959734ead2de4 (diff)
downloadwikiget-27376c3f3ec667fd83c3603652f11d4125b90e5c.tar.gz
wikiget-27376c3f3ec667fd83c3603652f11d4125b90e5c.zip
Check for existing files earlier to avoid unnecessary API calls
Diffstat (limited to 'tests/test_dl.py')
-rw-r--r--tests/test_dl.py18
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)