19
19
20
20
from . import presets
21
21
from .common_testing import OAuth2ProviderTestCase as TestCase
22
+ from .common_testing import retrieve_current_databases
22
23
23
24
24
25
@pytest .mark .usefixtures ("oauth2_settings" )
@@ -221,7 +222,7 @@ def mock_request_for(user):
221
222
return request
222
223
223
224
224
- @pytest .mark .django_db
225
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
225
226
def test_validate_logout_request (oidc_tokens , public_application , rp_settings ):
226
227
oidc_tokens = oidc_tokens
227
228
application = oidc_tokens .application
@@ -299,7 +300,7 @@ def test_validate_logout_request(oidc_tokens, public_application, rp_settings):
299
300
)
300
301
301
302
302
- @pytest .mark .django_db
303
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
303
304
@pytest .mark .parametrize ("ALWAYS_PROMPT" , [True , False ])
304
305
def test_must_prompt (oidc_tokens , other_user , rp_settings , ALWAYS_PROMPT ):
305
306
rp_settings .OIDC_RP_INITIATED_LOGOUT_ALWAYS_PROMPT = ALWAYS_PROMPT
@@ -320,14 +321,14 @@ def is_logged_in(client):
320
321
return get_user (client ).is_authenticated
321
322
322
323
323
- @pytest .mark .django_db
324
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
324
325
def test_rp_initiated_logout_get (logged_in_client , rp_settings ):
325
326
rsp = logged_in_client .get (reverse ("oauth2_provider:rp-initiated-logout" ), data = {})
326
327
assert rsp .status_code == 200
327
328
assert is_logged_in (logged_in_client )
328
329
329
330
330
- @pytest .mark .django_db
331
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
331
332
def test_rp_initiated_logout_get_id_token (logged_in_client , oidc_tokens , rp_settings ):
332
333
rsp = logged_in_client .get (
333
334
reverse ("oauth2_provider:rp-initiated-logout" ), data = {"id_token_hint" : oidc_tokens .id_token }
@@ -337,7 +338,7 @@ def test_rp_initiated_logout_get_id_token(logged_in_client, oidc_tokens, rp_sett
337
338
assert not is_logged_in (logged_in_client )
338
339
339
340
340
- @pytest .mark .django_db
341
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
341
342
def test_rp_initiated_logout_get_revoked_id_token (logged_in_client , oidc_tokens , rp_settings ):
342
343
validator = oauth2_settings .OAUTH2_VALIDATOR_CLASS ()
343
344
validator ._load_id_token (oidc_tokens .id_token ).revoke ()
@@ -348,7 +349,7 @@ def test_rp_initiated_logout_get_revoked_id_token(logged_in_client, oidc_tokens,
348
349
assert is_logged_in (logged_in_client )
349
350
350
351
351
- @pytest .mark .django_db
352
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
352
353
def test_rp_initiated_logout_get_id_token_redirect (logged_in_client , oidc_tokens , rp_settings ):
353
354
rsp = logged_in_client .get (
354
355
reverse ("oauth2_provider:rp-initiated-logout" ),
@@ -359,7 +360,7 @@ def test_rp_initiated_logout_get_id_token_redirect(logged_in_client, oidc_tokens
359
360
assert not is_logged_in (logged_in_client )
360
361
361
362
362
- @pytest .mark .django_db
363
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
363
364
def test_rp_initiated_logout_get_id_token_redirect_with_state (logged_in_client , oidc_tokens , rp_settings ):
364
365
rsp = logged_in_client .get (
365
366
reverse ("oauth2_provider:rp-initiated-logout" ),
@@ -374,7 +375,7 @@ def test_rp_initiated_logout_get_id_token_redirect_with_state(logged_in_client,
374
375
assert not is_logged_in (logged_in_client )
375
376
376
377
377
- @pytest .mark .django_db
378
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
378
379
def test_rp_initiated_logout_get_id_token_missmatch_client_id (
379
380
logged_in_client , oidc_tokens , public_application , rp_settings
380
381
):
@@ -386,7 +387,7 @@ def test_rp_initiated_logout_get_id_token_missmatch_client_id(
386
387
assert is_logged_in (logged_in_client )
387
388
388
389
389
- @pytest .mark .django_db
390
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
390
391
def test_rp_initiated_logout_public_client_redirect_client_id (
391
392
logged_in_client , oidc_non_confidential_tokens , public_application , rp_settings
392
393
):
@@ -402,7 +403,7 @@ def test_rp_initiated_logout_public_client_redirect_client_id(
402
403
assert not is_logged_in (logged_in_client )
403
404
404
405
405
- @pytest .mark .django_db
406
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
406
407
def test_rp_initiated_logout_public_client_strict_redirect_client_id (
407
408
logged_in_client , oidc_non_confidential_tokens , public_application , oauth2_settings
408
409
):
@@ -419,7 +420,7 @@ def test_rp_initiated_logout_public_client_strict_redirect_client_id(
419
420
assert is_logged_in (logged_in_client )
420
421
421
422
422
- @pytest .mark .django_db
423
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
423
424
def test_rp_initiated_logout_get_client_id (logged_in_client , oidc_tokens , rp_settings ):
424
425
rsp = logged_in_client .get (
425
426
reverse ("oauth2_provider:rp-initiated-logout" ), data = {"client_id" : oidc_tokens .application .client_id }
@@ -428,7 +429,7 @@ def test_rp_initiated_logout_get_client_id(logged_in_client, oidc_tokens, rp_set
428
429
assert is_logged_in (logged_in_client )
429
430
430
431
431
- @pytest .mark .django_db
432
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
432
433
def test_rp_initiated_logout_post (logged_in_client , oidc_tokens , rp_settings ):
433
434
form_data = {
434
435
"client_id" : oidc_tokens .application .client_id ,
@@ -438,7 +439,7 @@ def test_rp_initiated_logout_post(logged_in_client, oidc_tokens, rp_settings):
438
439
assert is_logged_in (logged_in_client )
439
440
440
441
441
- @pytest .mark .django_db
442
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
442
443
def test_rp_initiated_logout_post_allowed (logged_in_client , oidc_tokens , rp_settings ):
443
444
form_data = {"client_id" : oidc_tokens .application .client_id , "allow" : True }
444
445
rsp = logged_in_client .post (reverse ("oauth2_provider:rp-initiated-logout" ), form_data )
@@ -447,7 +448,7 @@ def test_rp_initiated_logout_post_allowed(logged_in_client, oidc_tokens, rp_sett
447
448
assert not is_logged_in (logged_in_client )
448
449
449
450
450
- @pytest .mark .django_db
451
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
451
452
def test_rp_initiated_logout_post_no_session (client , oidc_tokens , rp_settings ):
452
453
form_data = {"client_id" : oidc_tokens .application .client_id , "allow" : True }
453
454
rsp = client .post (reverse ("oauth2_provider:rp-initiated-logout" ), form_data )
@@ -456,7 +457,7 @@ def test_rp_initiated_logout_post_no_session(client, oidc_tokens, rp_settings):
456
457
assert not is_logged_in (client )
457
458
458
459
459
- @pytest .mark .django_db
460
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
460
461
@pytest .mark .oauth2_settings (presets .OIDC_SETTINGS_RP_LOGOUT )
461
462
def test_rp_initiated_logout_expired_tokens_accept (logged_in_client , application , expired_id_token ):
462
463
# Accepting expired (but otherwise valid and signed by us) tokens is enabled. Logout should go through.
@@ -471,7 +472,7 @@ def test_rp_initiated_logout_expired_tokens_accept(logged_in_client, application
471
472
assert not is_logged_in (logged_in_client )
472
473
473
474
474
- @pytest .mark .django_db
475
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
475
476
@pytest .mark .oauth2_settings (presets .OIDC_SETTINGS_RP_LOGOUT_DENY_EXPIRED )
476
477
def test_rp_initiated_logout_expired_tokens_deny (logged_in_client , application , expired_id_token ):
477
478
# Expired tokens should not be accepted by default.
@@ -486,30 +487,30 @@ def test_rp_initiated_logout_expired_tokens_deny(logged_in_client, application,
486
487
assert is_logged_in (logged_in_client )
487
488
488
489
489
- @pytest .mark .django_db
490
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
490
491
@pytest .mark .oauth2_settings (presets .OIDC_SETTINGS_RP_LOGOUT )
491
492
def test_load_id_token_accept_expired (expired_id_token ):
492
493
id_token , _ = _load_id_token (expired_id_token )
493
494
assert isinstance (id_token , get_id_token_model ())
494
495
495
496
496
- @pytest .mark .django_db
497
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
497
498
@pytest .mark .oauth2_settings (presets .OIDC_SETTINGS_RP_LOGOUT )
498
499
def test_load_id_token_wrong_aud (id_token_wrong_aud ):
499
500
id_token , claims = _load_id_token (id_token_wrong_aud )
500
501
assert id_token is None
501
502
assert claims is None
502
503
503
504
504
- @pytest .mark .django_db
505
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
505
506
@pytest .mark .oauth2_settings (presets .OIDC_SETTINGS_RP_LOGOUT_DENY_EXPIRED )
506
507
def test_load_id_token_deny_expired (expired_id_token ):
507
508
id_token , claims = _load_id_token (expired_id_token )
508
509
assert id_token is None
509
510
assert claims is None
510
511
511
512
512
- @pytest .mark .django_db
513
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
513
514
@pytest .mark .oauth2_settings (presets .OIDC_SETTINGS_RP_LOGOUT )
514
515
def test_validate_claims_wrong_iss (id_token_wrong_iss ):
515
516
id_token , claims = _load_id_token (id_token_wrong_iss )
@@ -518,15 +519,15 @@ def test_validate_claims_wrong_iss(id_token_wrong_iss):
518
519
assert not _validate_claims (mock_request (), claims )
519
520
520
521
521
- @pytest .mark .django_db
522
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
522
523
@pytest .mark .oauth2_settings (presets .OIDC_SETTINGS_RP_LOGOUT )
523
524
def test_validate_claims (oidc_tokens ):
524
525
id_token , claims = _load_id_token (oidc_tokens .id_token )
525
526
assert claims is not None
526
527
assert _validate_claims (mock_request_for (oidc_tokens .user ), claims )
527
528
528
529
529
- @pytest .mark .django_db
530
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
530
531
@pytest .mark .parametrize ("method" , ["get" , "post" ])
531
532
def test_userinfo_endpoint (oidc_tokens , client , method ):
532
533
auth_header = "Bearer %s" % oidc_tokens .access_token
@@ -539,7 +540,7 @@ def test_userinfo_endpoint(oidc_tokens, client, method):
539
540
assert data ["sub" ] == str (oidc_tokens .user .pk )
540
541
541
542
542
- @pytest .mark .django_db
543
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
543
544
def test_userinfo_endpoint_bad_token (oidc_tokens , client ):
544
545
# No access token
545
546
rsp = client .get (reverse ("oauth2_provider:user-info" ))
@@ -552,7 +553,7 @@ def test_userinfo_endpoint_bad_token(oidc_tokens, client):
552
553
assert rsp .status_code == 401
553
554
554
555
555
- @pytest .mark .django_db
556
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
556
557
def test_token_deletion_on_logout (oidc_tokens , logged_in_client , rp_settings ):
557
558
AccessToken = get_access_token_model ()
558
559
IDToken = get_id_token_model ()
@@ -575,7 +576,7 @@ def test_token_deletion_on_logout(oidc_tokens, logged_in_client, rp_settings):
575
576
assert all ([token .revoked <= timezone .now () for token in RefreshToken .objects .all ()])
576
577
577
578
578
- @pytest .mark .django_db
579
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
579
580
def test_token_deletion_on_logout_expired_session (oidc_tokens , client , rp_settings ):
580
581
AccessToken = get_access_token_model ()
581
582
IDToken = get_id_token_model ()
@@ -616,7 +617,7 @@ def test_token_deletion_on_logout_expired_session(oidc_tokens, client, rp_settin
616
617
assert all (token .revoked <= timezone .now () for token in RefreshToken .objects .all ())
617
618
618
619
619
- @pytest .mark .django_db
620
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
620
621
@pytest .mark .oauth2_settings (presets .OIDC_SETTINGS_RP_LOGOUT_KEEP_TOKENS )
621
622
def test_token_deletion_on_logout_disabled (oidc_tokens , logged_in_client , rp_settings ):
622
623
rp_settings .OIDC_RP_INITIATED_LOGOUT_DELETE_TOKENS = False
@@ -652,7 +653,7 @@ def claim_user_email(request):
652
653
return EXAMPLE_EMAIL
653
654
654
655
655
- @pytest .mark .django_db
656
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
656
657
def test_userinfo_endpoint_custom_claims_callable (oidc_tokens , client , oauth2_settings ):
657
658
class CustomValidator (OAuth2Validator ):
658
659
oidc_claim_scope = None
@@ -680,7 +681,7 @@ def get_additional_claims(self):
680
681
assert data ["email" ] == EXAMPLE_EMAIL
681
682
682
683
683
- @pytest .mark .django_db
684
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
684
685
def test_userinfo_endpoint_custom_claims_email_scope_callable (
685
686
oidc_email_scope_tokens , client , oauth2_settings
686
687
):
@@ -707,7 +708,7 @@ def get_additional_claims(self):
707
708
assert data ["email" ] == EXAMPLE_EMAIL
708
709
709
710
710
- @pytest .mark .django_db
711
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
711
712
def test_userinfo_endpoint_custom_claims_plain (oidc_tokens , client , oauth2_settings ):
712
713
class CustomValidator (OAuth2Validator ):
713
714
oidc_claim_scope = None
@@ -735,7 +736,7 @@ def get_additional_claims(self, request):
735
736
assert data ["email" ] == EXAMPLE_EMAIL
736
737
737
738
738
- @pytest .mark .django_db
739
+ @pytest .mark .django_db ( databases = retrieve_current_databases ())
739
740
def test_userinfo_endpoint_custom_claims_email_scopeplain (oidc_email_scope_tokens , client , oauth2_settings ):
740
741
class CustomValidator (OAuth2Validator ):
741
742
def get_additional_claims (self , request ):
0 commit comments