Skip to content

Commit 45af695

Browse files
committed
🐛 Fix: Update fake API key generation to use _asdict() for row data
1 parent 462a3bf commit 45af695

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

services/api-server/tests/unit/_with_db/conftest.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,9 @@ async def _generate_fake_api_key(n: PositiveInt):
301301

302302
_generate_fake_api_key.row_ids.append(row.id)
303303

304-
yield ApiKeyInDB.model_validate({"api_secret": plain_api_secret, **row})
304+
yield ApiKeyInDB.model_validate(
305+
{"api_secret": plain_api_secret, **row._asdict()}
306+
)
305307

306308
_generate_fake_api_key.row_ids = []
307309
yield _generate_fake_api_key

services/api-server/tests/unit/_with_db/test_repository_api_keys.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,36 @@
1+
# pylint: disable=redefined-outer-name
2+
# pylint: disable=unused-argument
3+
# pylint: disable=unused-variable
4+
# pylint: disable=too-many-arguments
5+
16
from collections.abc import AsyncGenerator, Callable
27

8+
import httpx
9+
import pytest
310
from models_library.api_schemas_api_server.api_keys import ApiKeyInDB
411
from pydantic import PositiveInt
512
from simcore_service_api_server.repository.api_keys import ApiKeysRepository
613
from 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

3044
async 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

Comments
 (0)