Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[24.0] Skip tests if toolshed, dx.doi not responding #18250

Merged
merged 8 commits into from
May 30, 2024
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions lib/galaxy/managers/citations.py
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ def _raw_get_bibtex(self, doi):
# content encoding from the Content-Type header (res.encoding), and if
# that fails, falls back to guessing from the content itself (res.apparent_encoding).
# The guessed encoding is sometimes wrong, better to default to utf-8.
res.raise_for_status()
if res.encoding is None:
res.encoding = "utf-8"
return res.text
Expand Down
6 changes: 6 additions & 0 deletions lib/galaxy_test/driver/uses_shed.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@
import string
import tempfile
from typing import ClassVar
from unittest import SkipTest

from galaxy.app import UniverseApplication
from galaxy.model.base import transaction
from galaxy.util.unittest_utils import is_site_up
from galaxy_test.base.populators import DEFAULT_TIMEOUT
from galaxy_test.base.uses_shed_api import UsesShedApi
from galaxy_test.driver.driver_util import (
Expand Down Expand Up @@ -34,6 +36,8 @@
<tables>
</tables>"""

TOOLSHED_URL = "https://toolshed.g2.bx.psu.edu/"
nsoranzo marked this conversation as resolved.
Show resolved Hide resolved


class UsesShed(UsesShedApi):
@property
Expand All @@ -47,6 +51,8 @@ def _app(self) -> UniverseApplication: ...

@classmethod
def configure_shed(cls, config):
if not is_site_up(TOOLSHED_URL):
raise SkipTest(f"Test depends on [{TOOLSHED_URL}] being up and it appears to be down.")
cls.shed_tools_dir = tempfile.mkdtemp()
cls.shed_tool_data_dir = tempfile.mkdtemp()
cls._test_driver.temp_directories.extend([cls.shed_tool_data_dir, cls.shed_tools_dir])
Expand Down
10 changes: 8 additions & 2 deletions test/unit/app/managers/test_CitationsManager_db.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
from unittest import SkipTest

import requests
from beaker.cache import CacheManager
from beaker.util import parse_cache_config_options

Expand Down Expand Up @@ -29,8 +32,11 @@ def test_DoiCache(url_factory): # noqa: F811
with create_and_drop_database(db_url):
doi_cache = MockDoiCache(galaxy.config.GalaxyAppConfiguration(override_tempdir=False), db_url)
assert is_cache_empty(db_url, "doi")
assert "Jörg" in doi_cache.get_bibtex("10.1093/bioinformatics/bts252")
assert "Özkurt" in doi_cache.get_bibtex("10.1101/2021.12.24.474111")
try:
assert "Jörg" in doi_cache.get_bibtex("10.1093/bioinformatics/bts252")
assert "Özkurt" in doi_cache.get_bibtex("10.1101/2021.12.24.474111")
except requests.exceptions.RequestException as e:
raise SkipTest(f"dx.doi failed to respond: {e}")
assert not is_cache_empty(db_url, "doi")
doi_cache._cache.clear()
assert is_cache_empty(db_url, "doi")
2 changes: 2 additions & 0 deletions test/unit/app/test_galaxy_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@
from galaxy.tool_shed.unittest_utils import StandaloneInstallationTarget
from galaxy.tool_shed.util.repository_util import check_for_updates
from galaxy.util.tool_shed.tool_shed_registry import DEFAULT_TOOL_SHED_URL
from galaxy.util.unittest_utils import skip_if_site_down


@skip_if_site_down(DEFAULT_TOOL_SHED_URL)
def test_against_production_shed(tmp_path: Path):
repo_owner = "iuc"
repo_name = "featurecounts"
Expand Down
Loading