diff --git a/data/model/_basequery.py b/data/model/_basequery.py index 4a7c44a0d..28b0b1952 100644 --- a/data/model/_basequery.py +++ b/data/model/_basequery.py @@ -54,9 +54,13 @@ def get_public_repo_visibility(): return Visibility.get(name='public') -@lru_cache(maxsize=3) def _lookup_team_role(name): - return TeamRole.get(name=name) + return _lookup_team_roles()[name] + + +@lru_cache(maxsize=1) +def _lookup_team_roles(): + return {role.name:role for role in TeamRole.select()} def filter_to_repos_for_user(query, username=None, namespace=None, repo_kind='image', diff --git a/endpoints/api/test/test_search.py b/endpoints/api/test/test_search.py index 4efba0841..00a9cc88b 100644 --- a/endpoints/api/test/test_search.py +++ b/endpoints/api/test/test_search.py @@ -7,29 +7,29 @@ from endpoints.api.search import ConductRepositorySearch, ConductSearch from endpoints.api.test.shared import client_with_identity, conduct_api_call from test.fixtures import * -@pytest.mark.parametrize('query, expected_query_count', [ - ('simple', 7), - ('public', 6), - ('repository', 6), +@pytest.mark.parametrize('query', [ + ('simple'), + ('public'), + ('repository'), ]) -def test_repository_search(query, expected_query_count, client): +def test_repository_search(query, client): with client_with_identity('devtable', client) as cl: params = {'query': query} - with assert_query_count(expected_query_count): + with assert_query_count(6): result = conduct_api_call(cl, ConductRepositorySearch, 'GET', params, None, 200).json assert result['start_index'] == 0 assert result['page'] == 1 assert len(result['results']) -@pytest.mark.parametrize('query, expected_query_count', [ - ('simple', 8), - ('public', 8), - ('repository', 8), +@pytest.mark.parametrize('query', [ + ('simple'), + ('public'), + ('repository'), ]) -def test_search_query_count(query, expected_query_count, client): +def test_search_query_count(query, client): with client_with_identity('devtable', client) as cl: params = {'query': query} - with assert_query_count(expected_query_count): + with assert_query_count(8): result = conduct_api_call(cl, ConductSearch, 'GET', params, None, 200).json assert len(result['results']) diff --git a/test/fixtures.py b/test/fixtures.py index bee8199e1..0a0f970c8 100644 --- a/test/fixtures.py +++ b/test/fixtures.py @@ -125,6 +125,11 @@ def initialized_db(appconfig): # Configure the database. configure(appconfig) + # Initialize caches. + model._basequery._lookup_team_roles() + model._basequery.get_public_repo_visibility() + model.log.get_log_entry_kinds() + # If under a test *real* database, setup a savepoint. under_test_real_database = bool(os.environ.get('TEST_DATABASE_URI')) if under_test_real_database: