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.
This commit is contained in:
Marius van den Beek
2022-01-13 12:26:56 +01:00
committed by mvdbeek
parent a327e34c89
commit afd94218f0
2 changed files with 9 additions and 12 deletions
+4 -7
View File
@@ -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:
@@ -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,