From afd94218f03e4fd507ba42a77bb33f649b382874 Mon Sep 17 00:00:00 2001 From: Marius van den Beek Date: Wed, 12 Jan 2022 19:48:16 +0100 Subject: [PATCH] Don't need to use a joinedload anymore The cache is only used on startup, not during dependency resolution. Also rename _rebuild, since we only use it once now. --- lib/galaxy/tools/cache.py | 11 ++++------- test/unit/tools/test_tool_shed_repository_cache.py | 10 +++++----- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/lib/galaxy/tools/cache.py b/lib/galaxy/tools/cache.py index 22f82fe488c..12e571e018d 100644 --- a/lib/galaxy/tools/cache.py +++ b/lib/galaxy/tools/cache.py @@ -9,10 +9,7 @@ from collections import defaultdict from threading import Lock from typing import Dict, List, Tuple -from sqlalchemy.orm import ( - defer, - joinedload, -) +from sqlalchemy.orm import defer from sqlalchemy.orm.session import sessionmaker from sqlitedict import SqliteDict @@ -293,16 +290,16 @@ class ToolShedRepositoryCache: # Repositories loaded from database self.repositories = [] self.repos_by_tuple = defaultdict(list) - self._rebuild() + self._build() self.session.close() def add_local_repository(self, repository): self.local_repositories.append(repository) self.repos_by_tuple[(repository.tool_shed, repository.owner, repository.name)].append(repository) - def _rebuild(self): + def _build(self): self.repositories = self.session.query(ToolShedRepository).options( - defer(ToolShedRepository.metadata), joinedload('tool_dependencies') + defer(ToolShedRepository.metadata) ).all() repos_by_tuple = defaultdict(list) for repository in self.repositories + self.local_repositories: diff --git a/test/unit/tools/test_tool_shed_repository_cache.py b/test/unit/tools/test_tool_shed_repository_cache.py index 9b4501f4f4d..436147303ca 100644 --- a/test/unit/tools/test_tool_shed_repository_cache.py +++ b/test/unit/tools/test_tool_shed_repository_cache.py @@ -9,21 +9,21 @@ def test_empty_repo_cache(tool_shed_repository_cache): def test_add_repository_to_repository_cache(tool_shed_repository_cache, repos): - tool_shed_repository_cache._rebuild() + tool_shed_repository_cache._build() assert len(tool_shed_repository_cache.repositories) == 10 assert len(tool_shed_repository_cache.local_repositories) == 0 def test_add_repository_and_tool_conf_repository_to_repository_cache(tool_shed_repository_cache, repos, tool_conf_repos): - tool_shed_repository_cache._rebuild() + tool_shed_repository_cache._build() assert len(tool_shed_repository_cache.repositories) == 10 assert len(tool_shed_repository_cache.local_repositories) == 10 - tool_shed_repository_cache._rebuild() + tool_shed_repository_cache._build() assert len(tool_shed_repository_cache.repositories) == 10 assert len(tool_shed_repository_cache.local_repositories) == 10 create_repo(tool_shed_repository_cache.session, '21', '20') tool_shed_repository_cache.session.flush() - tool_shed_repository_cache._rebuild() + tool_shed_repository_cache._build() assert len(tool_shed_repository_cache.repositories) == 11 assert len(tool_shed_repository_cache.local_repositories) == 10 @@ -41,7 +41,7 @@ def test_add_repository_and_tool_conf_repository_to_repository_cache(tool_shed_r ('github.com', 'example', 'galaxyproject', '19', '18', None, True), ]) def test_get_installed_repository(tool_shed_repository_cache, repos, tool_conf_repos, tool_shed, name, owner, changeset_revision, installed_changeset_revision, repository_id, repo_exists): - tool_shed_repository_cache._rebuild() + tool_shed_repository_cache._build() repo = tool_shed_repository_cache.get_installed_repository( tool_shed=tool_shed, name=name,