From 59cff45fb132829252be8fdf4a7f710339ba395f Mon Sep 17 00:00:00 2001 From: John Chilton Date: Thu, 23 Feb 2023 11:19:38 -0500 Subject: [PATCH] Decompose tool shed + schema package. This commit creates two new packages - below a description of these packages and why they are being created. galaxy-schema: This package contains the pydantic models that power the API. The purpose of packaging them is to ensure they can be reused by clients with minimal external dependencies. Reusing the schema in client code would very quickly provide rapid documentation and validation and static checking for Python clients using the Galaxy API. galaxy-tool-shed: This package contains the tool shed server code. This has been a long term project to allow the tool shed to be spun out but maintain real galaxy dependencies and maintain testing. More discussions around this project can be found as part of https://github.com/galaxyproject/galaxy/pull/8830. --- lib/galaxy/schema/fields.py | 6 +- lib/galaxy/tool_shed/util/repository_util.py | 6 +- lib/tool_shed/py.typed | 0 lib/tool_shed_client/py.typed | 0 packages/data/galaxy/schema | 1 - packages/data/setup.cfg | 1 + packages/packages_by_dep_dag.txt | 2 + packages/schema/HISTORY.rst | 10 ++ packages/schema/LICENSE | 1 + packages/schema/MANIFEST.in | 1 + packages/schema/Makefile | 1 + packages/schema/README.rst | 14 ++ packages/schema/dev-requirements.txt | 1 + packages/schema/galaxy/__init__.py | 1 + packages/schema/galaxy/py.typed | 0 packages/schema/galaxy/schema | 1 + packages/schema/mypy.ini | 1 + packages/schema/pyproject.toml | 1 + packages/schema/scripts | 1 + packages/schema/setup.cfg | 41 +++++ packages/schema/test-requirements.txt | 1 + packages/schema/tests/__init__.py | 0 packages/schema/tests/schema | 1 + packages/tool_shed/HISTORY.rst | 10 ++ packages/tool_shed/LICENSE | 1 + packages/tool_shed/MANIFEST.in | 1 + packages/tool_shed/Makefile | 1 + packages/tool_shed/README.rst | 14 ++ packages/tool_shed/dev-requirements.txt | 1 + packages/tool_shed/mypy.ini | 1 + packages/tool_shed/pyproject.toml | 1 + packages/tool_shed/scripts | 1 + packages/tool_shed/setup.cfg | 40 +++++ packages/tool_shed/test-requirements.txt | 1 + packages/tool_shed/tests/__init__.py | 0 packages/tool_shed/tests/tool_shed | 1 + packages/{web_apps => tool_shed}/tool_shed | 0 test/unit/schema/__init__.py | 0 test/unit/{data => schema}/test_schema.py | 0 .../test_installed_repository_manager.py | 141 ------------------ .../unit/{shed_unit => tool_shed}/__init__.py | 0 test/unit/tool_shed/model/__init__.py | 0 .../{shed_unit => tool_shed}/test_dbscript.py | 0 .../{shed_unit => tool_shed}/test_hg_util.py | 0 .../test_shed_index.py | 0 .../test_tool_panel_manager.py | 8 +- 46 files changed, 162 insertions(+), 152 deletions(-) create mode 100644 lib/tool_shed/py.typed create mode 100644 lib/tool_shed_client/py.typed delete mode 120000 packages/data/galaxy/schema create mode 100644 packages/schema/HISTORY.rst create mode 120000 packages/schema/LICENSE create mode 100644 packages/schema/MANIFEST.in create mode 120000 packages/schema/Makefile create mode 100644 packages/schema/README.rst create mode 120000 packages/schema/dev-requirements.txt create mode 100644 packages/schema/galaxy/__init__.py create mode 100644 packages/schema/galaxy/py.typed create mode 120000 packages/schema/galaxy/schema create mode 120000 packages/schema/mypy.ini create mode 120000 packages/schema/pyproject.toml create mode 120000 packages/schema/scripts create mode 100644 packages/schema/setup.cfg create mode 100644 packages/schema/test-requirements.txt create mode 100644 packages/schema/tests/__init__.py create mode 120000 packages/schema/tests/schema create mode 100644 packages/tool_shed/HISTORY.rst create mode 120000 packages/tool_shed/LICENSE create mode 100644 packages/tool_shed/MANIFEST.in create mode 120000 packages/tool_shed/Makefile create mode 100644 packages/tool_shed/README.rst create mode 120000 packages/tool_shed/dev-requirements.txt create mode 120000 packages/tool_shed/mypy.ini create mode 120000 packages/tool_shed/pyproject.toml create mode 120000 packages/tool_shed/scripts create mode 100644 packages/tool_shed/setup.cfg create mode 100644 packages/tool_shed/test-requirements.txt create mode 100644 packages/tool_shed/tests/__init__.py create mode 120000 packages/tool_shed/tests/tool_shed rename packages/{web_apps => tool_shed}/tool_shed (100%) create mode 100644 test/unit/schema/__init__.py rename test/unit/{data => schema}/test_schema.py (100%) delete mode 100644 test/unit/shed_unit/test_installed_repository_manager.py rename test/unit/{shed_unit => tool_shed}/__init__.py (100%) create mode 100644 test/unit/tool_shed/model/__init__.py rename test/unit/{shed_unit => tool_shed}/test_dbscript.py (100%) rename test/unit/{shed_unit => tool_shed}/test_hg_util.py (100%) rename test/unit/{shed_unit => tool_shed}/test_shed_index.py (100%) rename test/unit/{shed_unit => tool_shed}/test_tool_panel_manager.py (99%) diff --git a/lib/galaxy/schema/fields.py b/lib/galaxy/schema/fields.py index 40eec4f2b12..687785e6eff 100644 --- a/lib/galaxy/schema/fields.py +++ b/lib/galaxy/schema/fields.py @@ -3,7 +3,11 @@ import re from pydantic import Field from typing_extensions import get_args -from galaxy.security.idencoding import IdEncodingHelper +try: + from galaxy.security.idencoding import IdEncodingHelper +except ImportError: + IdEncodingHelper = object # type: ignore[assignment,misc] + ENCODED_DATABASE_ID_PATTERN = re.compile("f?[0-9a-f]+") ENCODED_ID_LENGTH_MULTIPLE = 16 diff --git a/lib/galaxy/tool_shed/util/repository_util.py b/lib/galaxy/tool_shed/util/repository_util.py index d13e1b3d274..11e9a675039 100644 --- a/lib/galaxy/tool_shed/util/repository_util.py +++ b/lib/galaxy/tool_shed/util/repository_util.py @@ -21,10 +21,7 @@ from sqlalchemy import ( ) from sqlalchemy.orm import joinedload -from galaxy import ( - util, - web, -) +from galaxy import util from galaxy.model.base import transaction from galaxy.model.scoped_session import install_model_scoped_session from galaxy.model.tool_shed_install import ToolShedRepository @@ -726,7 +723,6 @@ def repository_was_previously_installed(app, tool_shed_url, repository_name, rep # Get all previous changeset revisions from the tool shed for the repository back to, but excluding, # the previous valid changeset revision to see if it was previously installed using one of them. params = dict( - galaxy_url=web.url_for("/", qualified=True), name=repository_name, owner=repository_owner, changeset_revision=changeset_revision, diff --git a/lib/tool_shed/py.typed b/lib/tool_shed/py.typed new file mode 100644 index 00000000000..e69de29bb2d diff --git a/lib/tool_shed_client/py.typed b/lib/tool_shed_client/py.typed new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/data/galaxy/schema b/packages/data/galaxy/schema deleted file mode 120000 index 14df7cabc56..00000000000 --- a/packages/data/galaxy/schema +++ /dev/null @@ -1 +0,0 @@ -../../../lib/galaxy/schema \ No newline at end of file diff --git a/packages/data/setup.cfg b/packages/data/setup.cfg index a0e4228e33f..02f74386b9d 100644 --- a/packages/data/setup.cfg +++ b/packages/data/setup.cfg @@ -36,6 +36,7 @@ install_requires = galaxy-objectstore galaxy-util[template] alembic + alembic-utils bdbag bx-python dnspython diff --git a/packages/packages_by_dep_dag.txt b/packages/packages_by_dep_dag.txt index 2975c52c515..3d9bc1f307a 100644 --- a/packages/packages_by_dep_dag.txt +++ b/packages/packages_by_dep_dag.txt @@ -1,4 +1,5 @@ util +schema config files job_metrics @@ -17,3 +18,4 @@ web_apps test_base test_driver test_api +tool_shed \ No newline at end of file diff --git a/packages/schema/HISTORY.rst b/packages/schema/HISTORY.rst new file mode 100644 index 00000000000..e947a90a461 --- /dev/null +++ b/packages/schema/HISTORY.rst @@ -0,0 +1,10 @@ +History +------- + +.. to_doc + +--------------------- +21.1.0.dev0 +--------------------- + +* First release. diff --git a/packages/schema/LICENSE b/packages/schema/LICENSE new file mode 120000 index 00000000000..1ef648f64b3 --- /dev/null +++ b/packages/schema/LICENSE @@ -0,0 +1 @@ +../../LICENSE.txt \ No newline at end of file diff --git a/packages/schema/MANIFEST.in b/packages/schema/MANIFEST.in new file mode 100644 index 00000000000..12302eb8dff --- /dev/null +++ b/packages/schema/MANIFEST.in @@ -0,0 +1 @@ +include *.rst *.txt LICENSE */py.typed diff --git a/packages/schema/Makefile b/packages/schema/Makefile new file mode 120000 index 00000000000..37af8bae5ba --- /dev/null +++ b/packages/schema/Makefile @@ -0,0 +1 @@ +../package.Makefile \ No newline at end of file diff --git a/packages/schema/README.rst b/packages/schema/README.rst new file mode 100644 index 00000000000..aed8193c9a8 --- /dev/null +++ b/packages/schema/README.rst @@ -0,0 +1,14 @@ + +.. image:: https://badge.fury.io/py/galaxy-schema.svg + :target: https://pypi.org/project/galaxy-schema/ + + + +Overview +-------- + +The Galaxy_ API schema objects. + +* Code: https://github.com/galaxyproject/galaxy + +.. _Galaxy: http://galaxyproject.org/ diff --git a/packages/schema/dev-requirements.txt b/packages/schema/dev-requirements.txt new file mode 120000 index 00000000000..467b90d7a23 --- /dev/null +++ b/packages/schema/dev-requirements.txt @@ -0,0 +1 @@ +../package-dev-requirements.txt \ No newline at end of file diff --git a/packages/schema/galaxy/__init__.py b/packages/schema/galaxy/__init__.py new file mode 100644 index 00000000000..2e50d9cce89 --- /dev/null +++ b/packages/schema/galaxy/__init__.py @@ -0,0 +1 @@ +__path__ = __import__("pkgutil").extend_path(__path__, __name__) # type: ignore[has-type] diff --git a/packages/schema/galaxy/py.typed b/packages/schema/galaxy/py.typed new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/schema/galaxy/schema b/packages/schema/galaxy/schema new file mode 120000 index 00000000000..baebb232dbd --- /dev/null +++ b/packages/schema/galaxy/schema @@ -0,0 +1 @@ +../../../lib/galaxy/schema/ \ No newline at end of file diff --git a/packages/schema/mypy.ini b/packages/schema/mypy.ini new file mode 120000 index 00000000000..141a30f41af --- /dev/null +++ b/packages/schema/mypy.ini @@ -0,0 +1 @@ +../../mypy.ini \ No newline at end of file diff --git a/packages/schema/pyproject.toml b/packages/schema/pyproject.toml new file mode 120000 index 00000000000..01a3b08b887 --- /dev/null +++ b/packages/schema/pyproject.toml @@ -0,0 +1 @@ +../package-pyproject.toml \ No newline at end of file diff --git a/packages/schema/scripts b/packages/schema/scripts new file mode 120000 index 00000000000..9aec9dc5a06 --- /dev/null +++ b/packages/schema/scripts @@ -0,0 +1 @@ +../build_scripts \ No newline at end of file diff --git a/packages/schema/setup.cfg b/packages/schema/setup.cfg new file mode 100644 index 00000000000..507f563909e --- /dev/null +++ b/packages/schema/setup.cfg @@ -0,0 +1,41 @@ +[metadata] +author = Galaxy Project and Community +author_email = galaxy-committers@lists.galaxyproject.org +classifiers = + Development Status :: 5 - Production/Stable + Environment :: Console + Intended Audience :: Developers + License :: OSI Approved :: Academic Free License (AFL) + Natural Language :: English + Operating System :: POSIX + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + Topic :: Software Development + Topic :: Software Development :: Code Generators + Topic :: Software Development :: Testing +description = Galaxy auth framework and implementations +keywords = + Galaxy +license = AFL +license_files = + LICENSE +long_description = file: README.rst, HISTORY.rst +long_description_content_type = text/x-rst +name = galaxy-schema +url = https://github.com/galaxyproject/galaxy +version = 23.1.0.dev0 + +[options] +include_package_data = True +install_requires = + galaxy-util + pydantic[email] +packages = find: +python_requires = >=3.7 + +[options.packages.find] +exclude = + tests* diff --git a/packages/schema/test-requirements.txt b/packages/schema/test-requirements.txt new file mode 100644 index 00000000000..e079f8a6038 --- /dev/null +++ b/packages/schema/test-requirements.txt @@ -0,0 +1 @@ +pytest diff --git a/packages/schema/tests/__init__.py b/packages/schema/tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/schema/tests/schema b/packages/schema/tests/schema new file mode 120000 index 00000000000..f2bc0c0ba5c --- /dev/null +++ b/packages/schema/tests/schema @@ -0,0 +1 @@ +../../../test/unit/schema/ \ No newline at end of file diff --git a/packages/tool_shed/HISTORY.rst b/packages/tool_shed/HISTORY.rst new file mode 100644 index 00000000000..7fccc8db62e --- /dev/null +++ b/packages/tool_shed/HISTORY.rst @@ -0,0 +1,10 @@ +History +------- + +.. to_doc + +--------------------- +23.1.0.dev0 +--------------------- + +* First release. diff --git a/packages/tool_shed/LICENSE b/packages/tool_shed/LICENSE new file mode 120000 index 00000000000..1ef648f64b3 --- /dev/null +++ b/packages/tool_shed/LICENSE @@ -0,0 +1 @@ +../../LICENSE.txt \ No newline at end of file diff --git a/packages/tool_shed/MANIFEST.in b/packages/tool_shed/MANIFEST.in new file mode 100644 index 00000000000..12302eb8dff --- /dev/null +++ b/packages/tool_shed/MANIFEST.in @@ -0,0 +1 @@ +include *.rst *.txt LICENSE */py.typed diff --git a/packages/tool_shed/Makefile b/packages/tool_shed/Makefile new file mode 120000 index 00000000000..37af8bae5ba --- /dev/null +++ b/packages/tool_shed/Makefile @@ -0,0 +1 @@ +../package.Makefile \ No newline at end of file diff --git a/packages/tool_shed/README.rst b/packages/tool_shed/README.rst new file mode 100644 index 00000000000..6ae09c66ae5 --- /dev/null +++ b/packages/tool_shed/README.rst @@ -0,0 +1,14 @@ + +.. image:: https://badge.fury.io/py/galaxy-tool-shed.svg + :target: https://pypi.org/project/galaxy-tool-shed/ + + + +Overview +-------- + +The Galaxy_ tool shed server. + +* Code: https://github.com/galaxyproject/galaxy + +.. _Galaxy: http://galaxyproject.org/ diff --git a/packages/tool_shed/dev-requirements.txt b/packages/tool_shed/dev-requirements.txt new file mode 120000 index 00000000000..467b90d7a23 --- /dev/null +++ b/packages/tool_shed/dev-requirements.txt @@ -0,0 +1 @@ +../package-dev-requirements.txt \ No newline at end of file diff --git a/packages/tool_shed/mypy.ini b/packages/tool_shed/mypy.ini new file mode 120000 index 00000000000..141a30f41af --- /dev/null +++ b/packages/tool_shed/mypy.ini @@ -0,0 +1 @@ +../../mypy.ini \ No newline at end of file diff --git a/packages/tool_shed/pyproject.toml b/packages/tool_shed/pyproject.toml new file mode 120000 index 00000000000..01a3b08b887 --- /dev/null +++ b/packages/tool_shed/pyproject.toml @@ -0,0 +1 @@ +../package-pyproject.toml \ No newline at end of file diff --git a/packages/tool_shed/scripts b/packages/tool_shed/scripts new file mode 120000 index 00000000000..9aec9dc5a06 --- /dev/null +++ b/packages/tool_shed/scripts @@ -0,0 +1 @@ +../build_scripts \ No newline at end of file diff --git a/packages/tool_shed/setup.cfg b/packages/tool_shed/setup.cfg new file mode 100644 index 00000000000..4c5cc82377d --- /dev/null +++ b/packages/tool_shed/setup.cfg @@ -0,0 +1,40 @@ +[metadata] +author = Galaxy Project and Community +author_email = galaxy-committers@lists.galaxyproject.org +classifiers = + Development Status :: 5 - Production/Stable + Environment :: Console + Intended Audience :: Developers + License :: OSI Approved :: Academic Free License (AFL) + Natural Language :: English + Operating System :: POSIX + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Programming Language :: Python :: 3.10 + Topic :: Software Development + Topic :: Software Development :: Code Generators + Topic :: Software Development :: Testing +description = Galaxy auth framework and implementations +keywords = + Galaxy +license = AFL +license_files = + LICENSE +long_description = file: README.rst, HISTORY.rst +long_description_content_type = text/x-rst +name = galaxy-tool-shed +url = https://github.com/galaxyproject/galaxy +version = 23.1.0.dev0 + +[options] +include_package_data = True +install_requires = + galaxy-webapps +packages = find: +python_requires = >=3.7 + +[options.packages.find] +exclude = + tests* diff --git a/packages/tool_shed/test-requirements.txt b/packages/tool_shed/test-requirements.txt new file mode 100644 index 00000000000..e079f8a6038 --- /dev/null +++ b/packages/tool_shed/test-requirements.txt @@ -0,0 +1 @@ +pytest diff --git a/packages/tool_shed/tests/__init__.py b/packages/tool_shed/tests/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/packages/tool_shed/tests/tool_shed b/packages/tool_shed/tests/tool_shed new file mode 120000 index 00000000000..8f2e9fcd98e --- /dev/null +++ b/packages/tool_shed/tests/tool_shed @@ -0,0 +1 @@ +../../../test/unit/tool_shed \ No newline at end of file diff --git a/packages/web_apps/tool_shed b/packages/tool_shed/tool_shed similarity index 100% rename from packages/web_apps/tool_shed rename to packages/tool_shed/tool_shed diff --git a/test/unit/schema/__init__.py b/test/unit/schema/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/unit/data/test_schema.py b/test/unit/schema/test_schema.py similarity index 100% rename from test/unit/data/test_schema.py rename to test/unit/schema/test_schema.py diff --git a/test/unit/shed_unit/test_installed_repository_manager.py b/test/unit/shed_unit/test_installed_repository_manager.py deleted file mode 100644 index 58dc9d331b7..00000000000 --- a/test/unit/shed_unit/test_installed_repository_manager.py +++ /dev/null @@ -1,141 +0,0 @@ -import os -from typing import ( - Any, - Dict, -) -from unittest.mock import MagicMock - -from galaxy.tool_shed.galaxy_install.install_manager import InstallRepositoryManager -from galaxy.tool_shed.galaxy_install.installed_repository_manager import InstalledRepositoryManager -from galaxy.tool_shed.galaxy_install.update_repository_manager import UpdateRepositoryManager -from galaxy.tool_shed.util import ( - hg_util, - repository_util, -) -from galaxy.util.tool_shed import common_util -from ..app.tools.test_toolbox import ( - BaseToolBoxTestCase, - DEFAULT_TEST_REPO, -) - - -class ToolShedRepoBaseTestCase(BaseToolBoxTestCase): - def setUp(self): - super().setUp() - self._init_dynamic_tool_conf() - self.app.config.tool_configs = self.config_files - self.app.config.manage_dependency_relationships = False - self.app._toolbox = self.toolbox - - def _setup_repository(self): - return self._repo_install(changeset="1", config_filename=self.config_files[0]) - - -class TestInstallRepositoryManager(ToolShedRepoBaseTestCase): - def setUp(self): - super().setUp() - self.irm = InstallRepositoryManager(self.app) - self.app.config.enable_tool_shed_check = False - self.app.update_repository_manager = UpdateRepositoryManager(self.app) - - def test_tool_shed_repository_install(self): - hg_util.clone_repository = MagicMock(return_value=(True, None)) - repository_util.get_tool_shed_status_for = MagicMock(return_value={"revision_update": "true"}) - self._install_tool_shed_repository(start_status="New", end_status="Installed", changeset_revision="1") - hg_util.clone_repository.assert_called_with( - "github.com/repos/galaxyproject/example", - os.path.abspath(os.path.join("../shed_tools", "github.com/repos/galaxyproject/example/1/example")), - "1", - ) - - def test_tool_shed_repository_update(self): - common_util.get_tool_shed_url_from_tool_shed_registry = MagicMock(return_value="https://github.com") - repository_util.get_tool_shed_status_for = MagicMock(return_value={"revision_update": "false"}) - hg_util.pull_repository = MagicMock() - hg_util.update_repository = MagicMock(return_value=(True, None)) - self._install_tool_shed_repository(start_status="Installed", end_status="Installed", changeset_revision="2") - assert hg_util.pull_repository.call_args[0][0].endswith("github.com/repos/galaxyproject/example/1/example") - assert hg_util.pull_repository.call_args[0][1] == "https://github.com/repos/galaxyproject/example" - assert hg_util.pull_repository.call_args[0][2] == "2" - assert hg_util.update_repository.call_args[0][0].endswith("github.com/repos/galaxyproject/example/1/example") - assert hg_util.update_repository.call_args[0][1] == "2" - - def _install_tool_shed_repository(self, start_status, end_status, changeset_revision): - repository = self._setup_repository() - repository.status = start_status - repo_info_dict: Dict[str, Any] = { - "example": ( - "description", - "github.com/repos/galaxyproject/example", - changeset_revision, - changeset_revision, - "galaxyproject", - [], - [], - ) - } - self.irm.install_tool_shed_repository( - repository, - repo_info_dict, - "section_key", - self.app.config.tool_configs[0], - "../shed_tools", - False, - False, - reinstalling=False, - ) - assert repository.status == end_status - assert repository.changeset_revision == changeset_revision - - -class TestInstalledRepositoryManager(ToolShedRepoBaseTestCase): - def setUp(self): - super().setUp() - self.irm = InstalledRepositoryManager(self.app) - - def test_uninstall_repository(self): - repository = self._setup_repository() - assert repository.uninstalled is False - self.irm.uninstall_repository(repository=repository, remove_from_disk=True) - assert repository.uninstalled is True - - def test_deactivate_repository(self): - self._deactivate_repository() - - def test_activate_repository(self): - repository = self._deactivate_repository() - self.irm.activate_repository(repository) - assert repository.status == self.app.install_model.ToolShedRepository.installation_status.INSTALLED - - def test_create_or_update_tool_shed_repository_update(self): - repository = self._setup_repository() - self._create_or_update_tool_shed_repository(repository=repository, changeset_revision="2") - - def test_create_or_update_tool_shed_repository_create(self): - self._create_or_update_tool_shed_repository(repository=None, changeset_revision="2") - - def _create_or_update_tool_shed_repository(self, repository=None, changeset_revision="2"): - if repository is None: - repository = DEFAULT_TEST_REPO - new_repository = repository_util.create_or_update_tool_shed_repository( - app=self.app, - name=repository.name, - description=repository.description, - installed_changeset_revision=repository.installed_changeset_revision, - ctx_rev=repository.changeset_revision, - repository_clone_url=f"https://github.com/galaxyproject/example/test_tool/0.{repository.installed_changeset_revision}", # not needed if owner is given - status=repository.status, - metadata_dict=None, - current_changeset_revision=str(int(repository.changeset_revision) + 1), - owner=repository.owner, - dist_to_shed=False, - ) - assert new_repository.changeset_revision == changeset_revision - - def _deactivate_repository(self): - repository = self._setup_repository() - assert repository.uninstalled is False - self.irm.uninstall_repository(repository=repository, remove_from_disk=False) - assert repository.uninstalled is False - assert repository.status == self.app.install_model.ToolShedRepository.installation_status.DEACTIVATED - return repository diff --git a/test/unit/shed_unit/__init__.py b/test/unit/tool_shed/__init__.py similarity index 100% rename from test/unit/shed_unit/__init__.py rename to test/unit/tool_shed/__init__.py diff --git a/test/unit/tool_shed/model/__init__.py b/test/unit/tool_shed/model/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/test/unit/shed_unit/test_dbscript.py b/test/unit/tool_shed/test_dbscript.py similarity index 100% rename from test/unit/shed_unit/test_dbscript.py rename to test/unit/tool_shed/test_dbscript.py diff --git a/test/unit/shed_unit/test_hg_util.py b/test/unit/tool_shed/test_hg_util.py similarity index 100% rename from test/unit/shed_unit/test_hg_util.py rename to test/unit/tool_shed/test_hg_util.py diff --git a/test/unit/shed_unit/test_shed_index.py b/test/unit/tool_shed/test_shed_index.py similarity index 100% rename from test/unit/shed_unit/test_shed_index.py rename to test/unit/tool_shed/test_shed_index.py diff --git a/test/unit/shed_unit/test_tool_panel_manager.py b/test/unit/tool_shed/test_tool_panel_manager.py similarity index 99% rename from test/unit/shed_unit/test_tool_panel_manager.py rename to test/unit/tool_shed/test_tool_panel_manager.py index a206bfff60d..751a7c5f5c4 100644 --- a/test/unit/shed_unit/test_tool_panel_manager.py +++ b/test/unit/tool_shed/test_tool_panel_manager.py @@ -1,12 +1,12 @@ import os -from galaxy.tool_shed.galaxy_install.tools import tool_panel_manager -from galaxy.util import parse_xml -from tool_shed.tools import tool_version_manager -from ..app.tools.test_toolbox import ( +from galaxy.app_unittest_utils.toolbox_support import ( BaseToolBoxTestCase, SimplifiedToolBox, ) +from galaxy.tool_shed.galaxy_install.tools import tool_panel_manager +from galaxy.util import parse_xml +from tool_shed.tools import tool_version_manager DEFAULT_GUID = "123456"