Skip to content

Commit 665c401

Browse files
committed
fixed all tests, trying to resolve warnings
1 parent 0c78045 commit 665c401

File tree

4 files changed

+79
-35
lines changed

4 files changed

+79
-35
lines changed

requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ pytest==8.3.4
7070
pytest-asyncio==0.25.3
7171
pytest-cov==6.0.0
7272
pytest-profiling==1.8.1
73-
pytest-testmon==2.1.3
7473
python-dateutil==2.9.0.post0
7574
python-dotenv==1.0.1
7675
python-multipart==0.0.20

tests/app/routes/test_go_property-ga4_stream.py

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ async def ga4_stream_db_session(
4444

4545

4646
async def perform_test_list(
47+
status_code: int,
48+
error_msg: str | None,
4749
item_count: int,
4850
client: AsyncClient,
4951
ga4_stream_db_session: AsyncSession,
@@ -71,11 +73,14 @@ async def perform_test_list(
7173
headers=current_user.token_headers,
7274
)
7375
data: dict[str, Any] = response.json()
74-
assert 200 <= response.status_code < 300
75-
assert data["page"] == 1
76-
assert data["total"] == item_count
77-
assert data["size"] == 1000
78-
assert len(data["results"]) == item_count
76+
assert response.status_code == status_code
77+
if error_msg is None:
78+
assert data["page"] == 1
79+
assert data["total"] == item_count
80+
assert data["size"] == 1000
81+
assert len(data["results"]) == item_count
82+
else:
83+
assert error_msg in data["detail"]
7984

8085

8186
async def perform_test_create(
@@ -385,23 +390,33 @@ class TestListGoPropertyGa4Stream:
385390
async def test_list_go_property_ga4_stream_by_id_as_admin_user(
386391
self, client, ga4_stream_db_session, admin_user
387392
) -> None:
388-
await perform_test_list(2, client, ga4_stream_db_session, admin_user)
393+
await perform_test_list(200, None, 2, client, ga4_stream_db_session, admin_user)
389394

390395
async def test_list_go_property_ga4_stream_by_id_as_manager_user(
391396
self, client, ga4_stream_db_session, manager_user
392397
) -> None:
393-
await perform_test_list(4, client, ga4_stream_db_session, manager_user)
398+
await perform_test_list(
399+
200, None, 4, client, ga4_stream_db_session, manager_user
400+
)
394401

395402
async def test_list_go_property_ga4_stream_by_id_as_employee_user(
396403
self, client, ga4_stream_db_session, employee_user
397404
) -> None:
398-
await perform_test_list(0, client, ga4_stream_db_session, employee_user)
405+
await perform_test_list(
406+
200, None, 0, client, ga4_stream_db_session, employee_user
407+
)
399408

400-
@pytest.mark.xfail(reason=ERROR_MESSAGE_INSUFFICIENT_PERMISSIONS_PAGINATION)
401409
async def test_list_go_property_ga4_stream_by_id_as_verified_user(
402410
self, client, ga4_stream_db_session, verified_user
403411
) -> None:
404-
await perform_test_list(0, client, ga4_stream_db_session, verified_user)
412+
await perform_test_list(
413+
405,
414+
ERROR_MESSAGE_INSUFFICIENT_PERMISSIONS_PAGINATION,
415+
0,
416+
client,
417+
ga4_stream_db_session,
418+
verified_user,
419+
)
405420

406421
# CASES
407422
async def test_list_go_property_ga4_stream_as_superuser_by_website_id(

tests/app/routes/test_public_secure.py

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from os import urandom
33
from typing import Any
44

5-
import pytest
65
from httpx import AsyncClient, Headers, Response
76
from itsdangerous import URLSafeTimedSerializer
87
from sqlalchemy.ext.asyncio import AsyncSession
@@ -16,10 +15,18 @@
1615

1716

1817
async def perform_status_test(
19-
client_user: ClientAuthorizedUser, status_code: int, client: AsyncClient
18+
status_code: int,
19+
error_msg: str | None,
20+
client: AsyncClient,
21+
current_user: ClientAuthorizedUser,
2022
) -> None:
21-
response = await client.get("/status", headers=client_user.token_headers)
23+
response = await client.get("/status", headers=current_user.token_headers)
2224
assert response.status_code == status_code
25+
entry: dict[str, Any] = response.json()
26+
if error_msg is None:
27+
assert entry["status"] == "ok"
28+
else:
29+
assert entry["detail"] == error_msg
2330

2431

2532
class TestPublicSecureRoutes:
@@ -54,38 +61,39 @@ async def test_encrypt_decrypt_message_as_admin(
5461
async def test_public_status_as_admin_user(
5562
self, admin_user: ClientAuthorizedUser, client: AsyncClient
5663
) -> None:
57-
await perform_status_test(admin_user, 200, client)
64+
await perform_status_test(200, None, client, admin_user)
5865

5966
async def test_public_status_as_manager_user(
6067
self, manager_user: ClientAuthorizedUser, client: AsyncClient
6168
) -> None:
62-
await perform_status_test(manager_user, 200, client)
69+
await perform_status_test(200, None, client, manager_user)
6370

6471
async def test_public_status_as_employee_user(
6572
self, employee_user: ClientAuthorizedUser, client: AsyncClient
6673
) -> None:
67-
await perform_status_test(employee_user, 200, client)
74+
await perform_status_test(200, None, client, employee_user)
6875

6976
async def test_public_status_as_client_a_user(
7077
self, client_a_user: ClientAuthorizedUser, client: AsyncClient
7178
) -> None:
72-
await perform_status_test(client_a_user, 200, client)
79+
await perform_status_test(200, None, client, client_a_user)
7380

7481
async def test_public_status_as_client_b_user(
7582
self, client_b_user: ClientAuthorizedUser, client: AsyncClient
7683
) -> None:
77-
await perform_status_test(client_b_user, 200, client)
84+
await perform_status_test(200, None, client, client_b_user)
7885

7986
async def test_public_status_as_verified_user(
8087
self, verified_user: ClientAuthorizedUser, client: AsyncClient
8188
) -> None:
82-
await perform_status_test(verified_user, 200, client)
89+
await perform_status_test(200, None, client, verified_user)
8390

84-
@pytest.mark.xfail(reason=ERROR_MESSAGE_UNVERIFIED_ACCESS_DENIED)
8591
async def test_public_status_as_unverified_user(
8692
self, unverified_user: ClientAuthorizedUser, client: AsyncClient
8793
) -> None:
88-
await perform_status_test(unverified_user, 403, client)
94+
await perform_status_test(
95+
403, ERROR_MESSAGE_UNVERIFIED_ACCESS_DENIED, client, unverified_user
96+
)
8997

9098

9199
class TestCsrfProtection:

tests/app/routes/test_websites.py

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ async def perform_test_create(
9797

9898

9999
async def perform_test_limits_create(
100+
check_domain: bool,
100101
domain: str,
101102
is_secure: bool,
102103
status_code: int,
@@ -109,15 +110,22 @@ async def perform_test_limits_create(
109110
) -> None:
110111
data: dict[str, Any] = {"domain": domain, "is_secure": is_secure}
111112
response: Response
112-
with unittest.mock.patch(
113-
"app.entities.website.crud.WebsiteRepository.validate"
114-
) as mock_validate_website_domain:
115-
mock_validate_website_domain.return_value = valid_domain
113+
if check_domain:
116114
response = await client.post(
117115
"websites/",
118116
headers=admin_user.token_headers,
119117
json=data,
120118
)
119+
else:
120+
with unittest.mock.patch(
121+
"app.entities.website.crud.WebsiteRepository.validate"
122+
) as mock_validate_website_domain:
123+
mock_validate_website_domain.return_value = valid_domain
124+
response = await client.post(
125+
"websites/",
126+
headers=admin_user.token_headers,
127+
json=data,
128+
)
121129
assert response.status_code == status_code
122130
entry: dict[str, Any] = response.json()
123131
if error_type == "message":
@@ -182,6 +190,7 @@ async def perform_test_update(
182190

183191

184192
async def perform_test_limits_update(
193+
check_domain: bool,
185194
domain: str | None,
186195
status_code: int,
187196
error_type: str,
@@ -197,17 +206,23 @@ async def perform_test_limits_update(
197206
update_dict = {"domain": a_website.domain, "is_secure": not a_website.is_secure}
198207
else:
199208
update_dict = {"domain": domain, "is_secure": not a_website.is_secure}
200-
201209
response: Response
202-
with unittest.mock.patch(
203-
"app.entities.website.crud.WebsiteRepository.validate"
204-
) as mock_validate_website_domain:
205-
mock_validate_website_domain.return_value = valid_domain
210+
if check_domain:
206211
response: Response = await client.patch(
207212
f"websites/{a_website.id}",
208213
headers=admin_user.token_headers,
209214
json=update_dict,
210215
)
216+
else:
217+
with unittest.mock.patch(
218+
"app.entities.website.crud.WebsiteRepository.validate"
219+
) as mock_validate_website_domain:
220+
mock_validate_website_domain.return_value = valid_domain
221+
response: Response = await client.patch(
222+
f"websites/{a_website.id}",
223+
headers=admin_user.token_headers,
224+
json=update_dict,
225+
)
211226
entry: dict[str, Any] = response.json()
212227
assert response.status_code == status_code
213228
if error_type == "message":
@@ -319,14 +334,14 @@ async def test_create_website_as_unverified_user(
319334
)
320335

321336
# LIMITS
322-
@pytest.mark.xfail(reason=ERROR_MESSAGE_DOMAIN_INVALID)
323337
async def test_create_website_as_admin_user_website_limits_domain_invalid(
324338
self, client, db_session, admin_user
325339
) -> None:
326340
await perform_test_limits_create(
341+
True,
327342
random_domain(16, "co"),
328343
random_boolean(),
329-
400,
344+
422,
330345
"message",
331346
ERROR_MESSAGE_DOMAIN_INVALID,
332347
True,
@@ -339,6 +354,7 @@ async def test_create_website_as_admin_user_website_limits_domain_short(
339354
self, client, db_session, admin_user
340355
) -> None:
341356
await perform_test_limits_create(
357+
False,
342358
random_domain(1, "co"),
343359
random_boolean(),
344360
422,
@@ -354,6 +370,7 @@ async def test_create_website_as_admin_user_website_limits_domain_long(
354370
self, client, db_session, admin_user
355371
) -> None:
356372
await perform_test_limits_create(
373+
False,
357374
random_domain(DB_STR_TINYTEXT_MAXLEN_INPUT + 1, "com"),
358375
random_boolean(),
359376
422,
@@ -371,6 +388,7 @@ async def test_create_website_as_admin_user_website_limits_domain_schema_invalid
371388
self, client, db_session, admin_user
372389
) -> None:
373390
await perform_test_limits_create(
391+
False,
374392
"https://" + random_domain(3, "pub"),
375393
random_boolean(),
376394
422,
@@ -543,6 +561,7 @@ async def test_update_website_as_superuser_website_limits_domain_exists(
543561
self, client, db_session, admin_user
544562
) -> None:
545563
await perform_test_limits_update(
564+
False,
546565
None,
547566
400,
548567
"message",
@@ -553,13 +572,13 @@ async def test_update_website_as_superuser_website_limits_domain_exists(
553572
admin_user,
554573
)
555574

556-
@pytest.mark.xfail(reason=ERROR_MESSAGE_DOMAIN_INVALID)
557575
async def test_update_website_as_superuser_website_limits_domain_invalid(
558576
self, client, db_session, admin_user
559577
) -> None:
560578
await perform_test_limits_update(
579+
True,
561580
random_domain(16, "co"),
562-
400,
581+
422,
563582
"message",
564583
ERROR_MESSAGE_DOMAIN_INVALID,
565584
True,
@@ -572,6 +591,7 @@ async def test_update_website_as_superuser_website_limits_domain_short(
572591
self, client, db_session, admin_user
573592
) -> None:
574593
await perform_test_limits_update(
594+
False,
575595
"a.co",
576596
422,
577597
"detail",
@@ -586,6 +606,7 @@ async def test_update_website_as_superuser_website_limits_domain_long(
586606
self, client, db_session, admin_user
587607
) -> None:
588608
await perform_test_limits_update(
609+
False,
589610
random_lower_string() * 10 + ".com",
590611
422,
591612
"detail",
@@ -602,6 +623,7 @@ async def test_update_website_as_superuser_website_limits_domain_invalid_schema(
602623
self, client, db_session, admin_user
603624
) -> None:
604625
await perform_test_limits_update(
626+
False,
605627
"https://" + random_lower_string() + ".com",
606628
422,
607629
"detail",

0 commit comments

Comments
 (0)