Skip to content

Commit

Permalink
Mark additional tests requiring network (#412)
Browse files Browse the repository at this point in the history
Add `network` pytest mark to test functions that require network
connection to hit third party servers. Improve
`test_check_availability_invalid_downloader` to remove the need to use
network connection just to test an error raised after an invalid
argument to a custom downloader.

---------

Co-authored-by: Santiago Soler <[email protected]>
  • Loading branch information
penguinpee and santisoler authored May 21, 2024
1 parent 78945b7 commit 2e47b8d
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 5 deletions.
9 changes: 4 additions & 5 deletions pooch/tests/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -525,12 +525,9 @@ def downloader(url, output, pooch): # pylint: disable=unused-argument
return None

pup = Pooch(path=DATA_DIR, base_url=BASEURL, registry=REGISTRY)
# First check that everything works without the custom downloader
assert pup.is_available("tiny-data.txt")
# Now use the bad one
with pytest.raises(NotImplementedError) as error:
msg = "does not support availability checks."
with pytest.raises(NotImplementedError, match=msg):
pup.is_available("tiny-data.txt", downloader=downloader)
assert "does not support availability checks" in str(error)


@pytest.mark.network
Expand Down Expand Up @@ -627,6 +624,7 @@ def test_stream_download(fname):
check_tiny_data(str(destination))


@pytest.mark.network
@pytest.mark.parametrize(
"url",
[FIGSHAREURL, ZENODOURL, DATAVERSEURL],
Expand All @@ -649,6 +647,7 @@ def test_load_registry_from_doi(url):
pup.fetch(filename)


@pytest.mark.network
def test_load_registry_from_doi_zenodo_with_slash():
"""
Check that the registry is correctly populated from the Zenodo API when
Expand Down
4 changes: 4 additions & 0 deletions pooch/tests/test_downloaders.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ def test_unsupported_protocol():
choose_downloader("doii:XXX/XXX/file")


@pytest.mark.network
def test_invalid_doi_repository():
"Should fail if data repository is not supported"
with pytest.raises(ValueError) as exc:
Expand All @@ -96,13 +97,15 @@ def test_invalid_doi_repository():
assert "Invalid data repository 'joss.theoj.org'" in str(exc.value)


@pytest.mark.network
def test_doi_url_not_found():
"Should fail if the DOI is not found"
with pytest.raises(ValueError) as exc:
doi_to_url(doi="NOTAREALDOI")
assert "Is the DOI correct?" in str(exc.value)


@pytest.mark.network
@pytest.mark.parametrize(
"repository,doi",
[
Expand All @@ -121,6 +124,7 @@ def test_figshare_url_file_not_found(repository, doi):
assert "File 'bla.txt' not found" in str(exc.value)


@pytest.mark.network
@pytest.mark.parametrize(
"url",
[FIGSHAREURL, ZENODOURL, DATAVERSEURL],
Expand Down

0 comments on commit 2e47b8d

Please sign in to comment.