mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user