1+ # pylint: disable=redefined-outer-name
2+ # pylint: disable=unused-argument
3+ # pylint: disable=unused-variable
4+ # pylint: disable=too-many-arguments
5+
16from collections .abc import AsyncGenerator , Callable
27
8+ import httpx
9+ import pytest
310from models_library .api_schemas_api_server .api_keys import ApiKeyInDB
411from pydantic import PositiveInt
512from simcore_service_api_server .repository .api_keys import ApiKeysRepository
613from sqlalchemy .ext .asyncio import AsyncEngine
714
815
9- async def test_get_user_with_valid_credentials (
16+ @pytest .fixture
17+ def api_key_repo (
18+ client : httpx .AsyncClient , # ensures app context is available
1019 async_engine : AsyncEngine ,
20+ ) -> ApiKeysRepository :
21+
22+ return ApiKeysRepository (db_engine = async_engine )
23+
24+
25+ async def test_get_user_with_valid_credentials (
1126 create_fake_api_keys : Callable [[PositiveInt ], AsyncGenerator [ApiKeyInDB , None ]],
27+ api_key_repo : ApiKeysRepository ,
1228):
13- # Arrange
14- repo = ApiKeysRepository (db_engine = async_engine )
1529
1630 # Generate a fake API key
1731 async for api_key_in_db in create_fake_api_keys (1 ):
1832 # Act
19- result = await repo .get_user (
33+ result = await api_key_repo .get_user (
2034 api_key = api_key_in_db .api_key , api_secret = api_key_in_db .api_secret
2135 )
2236
@@ -28,16 +42,14 @@ async def test_get_user_with_valid_credentials(
2842
2943
3044async def test_get_user_with_invalid_credentials (
31- async_engine : AsyncEngine ,
45+ api_key_repo : ApiKeysRepository ,
3246 create_fake_api_keys : Callable [[PositiveInt ], AsyncGenerator [ApiKeyInDB , None ]],
3347):
34- # Arrange
35- repo = ApiKeysRepository (db_engine = async_engine )
3648
3749 # Generate a fake API key
3850 async for api_key_in_db in create_fake_api_keys (1 ):
3951 # Act - use wrong secret
40- result = await repo .get_user (
52+ result = await api_key_repo .get_user (
4153 api_key = api_key_in_db .api_key , api_secret = "wrong_secret"
4254 )
4355
0 commit comments