@@ -97,6 +97,7 @@ async def perform_test_create(
97
97
98
98
99
99
async def perform_test_limits_create (
100
+ check_domain : bool ,
100
101
domain : str ,
101
102
is_secure : bool ,
102
103
status_code : int ,
@@ -109,15 +110,22 @@ async def perform_test_limits_create(
109
110
) -> None :
110
111
data : dict [str , Any ] = {"domain" : domain , "is_secure" : is_secure }
111
112
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 :
116
114
response = await client .post (
117
115
"websites/" ,
118
116
headers = admin_user .token_headers ,
119
117
json = data ,
120
118
)
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
+ )
121
129
assert response .status_code == status_code
122
130
entry : dict [str , Any ] = response .json ()
123
131
if error_type == "message" :
@@ -182,6 +190,7 @@ async def perform_test_update(
182
190
183
191
184
192
async def perform_test_limits_update (
193
+ check_domain : bool ,
185
194
domain : str | None ,
186
195
status_code : int ,
187
196
error_type : str ,
@@ -197,17 +206,23 @@ async def perform_test_limits_update(
197
206
update_dict = {"domain" : a_website .domain , "is_secure" : not a_website .is_secure }
198
207
else :
199
208
update_dict = {"domain" : domain , "is_secure" : not a_website .is_secure }
200
-
201
209
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 :
206
211
response : Response = await client .patch (
207
212
f"websites/{ a_website .id } " ,
208
213
headers = admin_user .token_headers ,
209
214
json = update_dict ,
210
215
)
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
+ )
211
226
entry : dict [str , Any ] = response .json ()
212
227
assert response .status_code == status_code
213
228
if error_type == "message" :
@@ -319,14 +334,14 @@ async def test_create_website_as_unverified_user(
319
334
)
320
335
321
336
# LIMITS
322
- @pytest .mark .xfail (reason = ERROR_MESSAGE_DOMAIN_INVALID )
323
337
async def test_create_website_as_admin_user_website_limits_domain_invalid (
324
338
self , client , db_session , admin_user
325
339
) -> None :
326
340
await perform_test_limits_create (
341
+ True ,
327
342
random_domain (16 , "co" ),
328
343
random_boolean (),
329
- 400 ,
344
+ 422 ,
330
345
"message" ,
331
346
ERROR_MESSAGE_DOMAIN_INVALID ,
332
347
True ,
@@ -339,6 +354,7 @@ async def test_create_website_as_admin_user_website_limits_domain_short(
339
354
self , client , db_session , admin_user
340
355
) -> None :
341
356
await perform_test_limits_create (
357
+ False ,
342
358
random_domain (1 , "co" ),
343
359
random_boolean (),
344
360
422 ,
@@ -354,6 +370,7 @@ async def test_create_website_as_admin_user_website_limits_domain_long(
354
370
self , client , db_session , admin_user
355
371
) -> None :
356
372
await perform_test_limits_create (
373
+ False ,
357
374
random_domain (DB_STR_TINYTEXT_MAXLEN_INPUT + 1 , "com" ),
358
375
random_boolean (),
359
376
422 ,
@@ -371,6 +388,7 @@ async def test_create_website_as_admin_user_website_limits_domain_schema_invalid
371
388
self , client , db_session , admin_user
372
389
) -> None :
373
390
await perform_test_limits_create (
391
+ False ,
374
392
"https://" + random_domain (3 , "pub" ),
375
393
random_boolean (),
376
394
422 ,
@@ -543,6 +561,7 @@ async def test_update_website_as_superuser_website_limits_domain_exists(
543
561
self , client , db_session , admin_user
544
562
) -> None :
545
563
await perform_test_limits_update (
564
+ False ,
546
565
None ,
547
566
400 ,
548
567
"message" ,
@@ -553,13 +572,13 @@ async def test_update_website_as_superuser_website_limits_domain_exists(
553
572
admin_user ,
554
573
)
555
574
556
- @pytest .mark .xfail (reason = ERROR_MESSAGE_DOMAIN_INVALID )
557
575
async def test_update_website_as_superuser_website_limits_domain_invalid (
558
576
self , client , db_session , admin_user
559
577
) -> None :
560
578
await perform_test_limits_update (
579
+ True ,
561
580
random_domain (16 , "co" ),
562
- 400 ,
581
+ 422 ,
563
582
"message" ,
564
583
ERROR_MESSAGE_DOMAIN_INVALID ,
565
584
True ,
@@ -572,6 +591,7 @@ async def test_update_website_as_superuser_website_limits_domain_short(
572
591
self , client , db_session , admin_user
573
592
) -> None :
574
593
await perform_test_limits_update (
594
+ False ,
575
595
"a.co" ,
576
596
422 ,
577
597
"detail" ,
@@ -586,6 +606,7 @@ async def test_update_website_as_superuser_website_limits_domain_long(
586
606
self , client , db_session , admin_user
587
607
) -> None :
588
608
await perform_test_limits_update (
609
+ False ,
589
610
random_lower_string () * 10 + ".com" ,
590
611
422 ,
591
612
"detail" ,
@@ -602,6 +623,7 @@ async def test_update_website_as_superuser_website_limits_domain_invalid_schema(
602
623
self , client , db_session , admin_user
603
624
) -> None :
604
625
await perform_test_limits_update (
626
+ False ,
605
627
"https://" + random_lower_string () + ".com" ,
606
628
422 ,
607
629
"detail" ,
0 commit comments