Skip to content

Commit

Permalink
test: fix failing unit tests #256
Browse files Browse the repository at this point in the history
  • Loading branch information
Viktor Bozhinov committed Nov 4, 2021
1 parent 0cca696 commit ca9d600
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 56 deletions.
10 changes: 3 additions & 7 deletions test/icat/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
from icat.query import Query
import pytest

from datagateway_api.common.config import APIConfigOptions, config
from datagateway_api.common.config import config
from datagateway_api.src.api_start_utils import (
create_api_endpoints,
create_app_infrastructure,
Expand All @@ -19,13 +19,9 @@

@pytest.fixture(scope="package")
def icat_client():
client = Client(
config.get_config_value(APIConfigOptions.ICAT_URL),
checkCert=config.get_config_value(APIConfigOptions.ICAT_CHECK_CERT),
)
client = Client(config.icat_url, checkCert=config.icat_check_cert)
client.login(
config.get_config_value(APIConfigOptions.TEST_MECHANISM),
config.get_config_value(APIConfigOptions.TEST_USER_CREDENTIALS),
config.test_mechanism, config.test_user_credentials.dict(),
)
return client

Expand Down
3 changes: 2 additions & 1 deletion test/icat/filters/test_skip_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from datagateway_api.common.config import config
from datagateway_api.common.datagateway_api.icat.filters import PythonICATSkipFilter
from datagateway_api.common.exceptions import FilterError
from datagateway_api.common.helpers import get_icat_properties


class TestICATSkipFilter:
Expand All @@ -15,7 +16,7 @@ def test_valid_skip_value(self, icat_query, skip_value):

assert icat_query.limit == (
skip_value,
config.get_icat_properties()["maxEntities"],
get_icat_properties(config.icat_url, config.icat_check_cert)["maxEntities"],
)

@pytest.mark.parametrize(
Expand Down
15 changes: 4 additions & 11 deletions test/icat/test_lru_cache.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from cachetools import cached
from icat.client import Client

from datagateway_api.common.config import APIConfigOptions, config
from datagateway_api.common.config import config
from datagateway_api.common.datagateway_api.icat.icat_client_pool import (
create_client_pool,
)
Expand All @@ -13,27 +13,20 @@
class TestLRUCache:
def test_valid_cache_creation(self):
test_cache = ExtendedLRUCache()
assert test_cache.maxsize == config.get_config_value(
APIConfigOptions.CLIENT_CACHE_SIZE,
)
assert test_cache.maxsize == config.client_cache_size

def test_valid_popitem(self):
test_cache = ExtendedLRUCache()
test_pool = create_client_pool()
test_client = Client(
config.get_config_value(APIConfigOptions.ICAT_URL),
checkCert=config.get_config_value(APIConfigOptions.ICAT_CHECK_CERT),
)
test_client = Client(config.icat_url, checkCert=config.icat_check_cert)

test_cache.popitem = MagicMock(side_effect=test_cache.popitem)

@cached(cache=test_cache)
def get_cached_client(cache_number, client_pool):
return test_client

for cache_number in range(
config.get_config_value(APIConfigOptions.CLIENT_CACHE_SIZE) + 1,
):
for cache_number in range(config.client_cache_size + 1):
get_cached_client(cache_number, test_pool)

assert test_cache.popitem.called
40 changes: 11 additions & 29 deletions test/icat/test_session_handling.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from icat.client import Client
import pytest

from datagateway_api.common.config import APIConfigOptions, config
from datagateway_api.common.config import config
from datagateway_api.common.datagateway_api.backends import create_backend
from datagateway_api.common.datagateway_api.icat.filters import PythonICATWhereFilter
from datagateway_api.common.datagateway_api.icat.icat_client_pool import (
Expand Down Expand Up @@ -35,10 +35,8 @@ def test_get_valid_session_details(
assert time_diff_minutes < 120 and time_diff_minutes >= 118

# Check username is correct
test_mechanism = config.get_config_value(APIConfigOptions.TEST_MECHANISM)
test_username = config.get_config_value(APIConfigOptions.TEST_USER_CREDENTIALS)[
"username"
]
test_mechanism = config.test_mechanism
test_username = config.test_user_credentials.username
assert session_details.json["username"] == f"{test_mechanism}/{test_username}"

# Check session ID matches the header from the request
Expand Down Expand Up @@ -82,26 +80,16 @@ def test_refresh_session(self, valid_icat_credentials_header, flask_test_app_ica
[
pytest.param(
{
"username": config.get_config_value(
APIConfigOptions.TEST_USER_CREDENTIALS,
)["username"],
"password": config.get_config_value(
APIConfigOptions.TEST_USER_CREDENTIALS,
)["password"],
"mechanism": config.get_config_value(
APIConfigOptions.TEST_MECHANISM,
),
"username": config.test_user_credentials.username,
"password": config.test_user_credentials.password,
"mechanism": config.test_mechanism,
},
id="Normal request body",
),
pytest.param(
{
"username": config.get_config_value(
APIConfigOptions.TEST_USER_CREDENTIALS,
)["username"],
"password": config.get_config_value(
APIConfigOptions.TEST_USER_CREDENTIALS,
)["password"],
"username": config.test_user_credentials.username,
"password": config.test_user_credentials.password,
},
id="Missing mechanism in request body",
),
Expand Down Expand Up @@ -130,9 +118,7 @@ def test_valid_login(
{
"username": "Invalid Username",
"password": "InvalidPassword",
"mechanism": config.get_config_value(
APIConfigOptions.TEST_MECHANISM,
),
"mechanism": config.test_mechanism,
},
403,
id="Invalid credentials",
Expand All @@ -155,13 +141,9 @@ def test_expired_session(self):
test_backend.get_session_details("session id", client_pool=client_pool)

def test_valid_logout(self, flask_test_app_icat):
client = Client(
config.get_config_value(APIConfigOptions.ICAT_URL),
checkCert=config.get_config_value(APIConfigOptions.ICAT_CHECK_CERT),
)
client = Client(config.icat_url, checkCert=config.icat_check_cert)
client.login(
config.get_config_value(APIConfigOptions.TEST_MECHANISM),
config.get_config_value(APIConfigOptions.TEST_USER_CREDENTIALS),
config.test_mechanism, config.test_user_credentials.dict(),
)
creds_header = {"Authorization": f"Bearer {client.sessionId}"}

Expand Down
12 changes: 4 additions & 8 deletions test/test_query_filter.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
from unittest.mock import patch

import pytest

import datagateway_api.common.config as config
from datagateway_api.common.datagateway_api.query_filter_factory import (
QueryFilterFactory,
)
Expand All @@ -26,9 +25,6 @@ class DummyQueryFilter(QueryFilter):
assert qf.apply_filter(apply_filter) is None

def test_invalid_query_filter_getter(self):
with patch(
"datagateway_api.common.config.config.get_config_value",
return_value="invalid_backend",
):
with pytest.raises(ApiError):
QueryFilterFactory.get_query_filter({"order": "id DESC"})
config.config.backend = "invalid_backend"
with pytest.raises(ApiError):
QueryFilterFactory.get_query_filter({"order": "id DESC"})

0 comments on commit ca9d600

Please sign in to comment.