|
10 | 10 | import pytest |
11 | 11 | from aiohttp import ClientResponseError |
12 | 12 | from aiohttp.test_utils import TestClient |
| 13 | +from common_library.users_enums import AccountRequestStatus |
13 | 14 | from faker import Faker |
14 | 15 | from models_library.api_schemas_webserver.auth import AccountRequestInfo |
| 16 | +from models_library.api_schemas_webserver.users import UserAccountGet |
15 | 17 | from pytest_mock import MockerFixture |
16 | 18 | from pytest_simcore.helpers.assert_checks import assert_status |
| 19 | +from pytest_simcore.helpers.webserver_login import switch_client_session_to |
17 | 20 | from pytest_simcore.helpers.webserver_users import NewUser, UserInfoDict |
18 | 21 | from servicelib.aiohttp import status |
19 | 22 | from simcore_postgres_database.models.users import UserRole |
@@ -194,4 +197,25 @@ async def test_request_an_account( |
194 | 197 | assert mimetext["From"] == product.support_email |
195 | 198 | assert mimetext["To"] == product.product_owners_email or product.support_email |
196 | 199 |
|
197 | | - # TODO: switch to PO user and check if request is listed |
| 200 | + # check it appears in PO center |
| 201 | + async with NewUser( |
| 202 | + user_data={ |
| 203 | + |
| 204 | + "name": "po-user-fixture", |
| 205 | + "role": UserRole.PRODUCT_OWNER, |
| 206 | + }, |
| 207 | + app=client.app, |
| 208 | + ) as product_owner_user, switch_client_session_to(client, product_owner_user): |
| 209 | + |
| 210 | + response = await client.get( |
| 211 | + "v0/admin/user-accounts?limit=20&offset=0&review_status=PENDING" |
| 212 | + ) |
| 213 | + |
| 214 | + data, _ = await assert_status(response, status.HTTP_200_OK) |
| 215 | + |
| 216 | + assert len(data) == 1 |
| 217 | + user = UserAccountGet.model_validate(data[0]) |
| 218 | + assert user.first_name == user_data["firstName"] |
| 219 | + assert not user.registered |
| 220 | + assert user.status is None |
| 221 | + assert user.account_request_status == AccountRequestStatus.PENDING |
0 commit comments