18
18
from pyramid .interfaces import ISecurityPolicy
19
19
from zope .interface .verify import verifyClass
20
20
21
- from warehouse .accounts import security_policy
21
+ from warehouse .accounts import UserContext , security_policy
22
22
from warehouse .accounts .interfaces import IUserService
23
23
from warehouse .utils .security_policy import AuthenticationMethod
24
24
@@ -451,7 +451,7 @@ def test_identity(self, monkeypatch):
451
451
remote_addr = "1.2.3.4" ,
452
452
)
453
453
454
- assert policy .identity (request ) is user
454
+ assert policy .identity (request ). user is user
455
455
assert request .authentication_method == AuthenticationMethod .SESSION
456
456
assert session_helper_obj .authenticated_userid .calls == [pretend .call (request )]
457
457
assert session_helper_cls .calls == [pretend .call ()]
@@ -518,14 +518,15 @@ class TestPermits:
518
518
"principals,expected" , [("user:5" , True ), ("user:1" , False )]
519
519
)
520
520
def test_acl (self , monkeypatch , policy_class , principals , expected ):
521
- monkeypatch .setattr (security_policy , "User" , pretend .stub )
522
-
523
521
request = pretend .stub (
524
522
flags = pretend .stub (enabled = lambda flag : False ),
525
- identity = pretend .stub (
526
- __principals__ = lambda : principals ,
527
- has_primary_verified_email = True ,
528
- has_two_factor = True ,
523
+ identity = UserContext (
524
+ user = pretend .stub (
525
+ __principals__ = lambda : principals ,
526
+ has_primary_verified_email = True ,
527
+ has_two_factor = True ,
528
+ ),
529
+ macaroon = None ,
529
530
),
530
531
matched_route = pretend .stub (name = "random.route" ),
531
532
)
@@ -535,13 +536,14 @@ def test_acl(self, monkeypatch, policy_class, principals, expected):
535
536
assert bool (policy .permits (request , context , "myperm" )) == expected
536
537
537
538
def test_permits_with_unverified_email (self , monkeypatch , policy_class ):
538
- monkeypatch .setattr (security_policy , "User" , pretend .stub )
539
-
540
539
request = pretend .stub (
541
- identity = pretend .stub (
542
- __principals__ = lambda : ["user:5" ],
543
- has_primary_verified_email = False ,
544
- has_two_factor = False ,
540
+ identity = UserContext (
541
+ user = pretend .stub (
542
+ __principals__ = lambda : ["user:5" ],
543
+ has_primary_verified_email = False ,
544
+ has_two_factor = False ,
545
+ ),
546
+ macaroon = None ,
545
547
),
546
548
matched_route = pretend .stub (name = "manage.projects" ),
547
549
)
@@ -551,13 +553,14 @@ def test_permits_with_unverified_email(self, monkeypatch, policy_class):
551
553
assert not policy .permits (request , context , "myperm" )
552
554
553
555
def test_permits_manage_projects_with_2fa (self , monkeypatch , policy_class ):
554
- monkeypatch .setattr (security_policy , "User" , pretend .stub )
555
-
556
556
request = pretend .stub (
557
- identity = pretend .stub (
558
- __principals__ = lambda : ["user:5" ],
559
- has_primary_verified_email = True ,
560
- has_two_factor = True ,
557
+ identity = UserContext (
558
+ user = pretend .stub (
559
+ __principals__ = lambda : ["user:5" ],
560
+ has_primary_verified_email = True ,
561
+ has_two_factor = True ,
562
+ ),
563
+ macaroon = None ,
561
564
),
562
565
matched_route = pretend .stub (name = "manage.projects" ),
563
566
)
@@ -567,14 +570,15 @@ def test_permits_manage_projects_with_2fa(self, monkeypatch, policy_class):
567
570
assert policy .permits (request , context , "myperm" )
568
571
569
572
def test_deny_manage_projects_without_2fa (self , monkeypatch , policy_class ):
570
- monkeypatch .setattr (security_policy , "User" , pretend .stub )
571
-
572
573
request = pretend .stub (
573
574
flags = pretend .stub (enabled = lambda flag : False ),
574
- identity = pretend .stub (
575
- __principals__ = lambda : ["user:5" ],
576
- has_primary_verified_email = True ,
577
- has_two_factor = False ,
575
+ identity = UserContext (
576
+ user = pretend .stub (
577
+ __principals__ = lambda : ["user:5" ],
578
+ has_primary_verified_email = True ,
579
+ has_two_factor = False ,
580
+ ),
581
+ macaroon = None ,
578
582
),
579
583
matched_route = pretend .stub (name = "manage.projects" ),
580
584
)
@@ -584,14 +588,15 @@ def test_deny_manage_projects_without_2fa(self, monkeypatch, policy_class):
584
588
assert not policy .permits (request , context , "myperm" )
585
589
586
590
def test_deny_forklift_file_upload_without_2fa (self , monkeypatch , policy_class ):
587
- monkeypatch .setattr (security_policy , "User" , pretend .stub )
588
-
589
591
request = pretend .stub (
590
592
flags = pretend .stub (enabled = lambda flag : False ),
591
- identity = pretend .stub (
592
- __principals__ = lambda : ["user:5" ],
593
- has_primary_verified_email = True ,
594
- has_two_factor = False ,
593
+ identity = UserContext (
594
+ user = pretend .stub (
595
+ __principals__ = lambda : ["user:5" ],
596
+ has_primary_verified_email = True ,
597
+ has_two_factor = False ,
598
+ ),
599
+ macaroon = None ,
595
600
),
596
601
matched_route = pretend .stub (name = "forklift.legacy.file_upload" ),
597
602
)
@@ -614,13 +619,14 @@ def test_deny_forklift_file_upload_without_2fa(self, monkeypatch, policy_class):
614
619
def test_permits_2fa_routes_without_2fa (
615
620
self , monkeypatch , policy_class , matched_route
616
621
):
617
- monkeypatch .setattr (security_policy , "User" , pretend .stub )
618
-
619
622
request = pretend .stub (
620
- identity = pretend .stub (
621
- __principals__ = lambda : ["user:5" ],
622
- has_primary_verified_email = True ,
623
- has_two_factor = False ,
623
+ identity = UserContext (
624
+ user = pretend .stub (
625
+ __principals__ = lambda : ["user:5" ],
626
+ has_primary_verified_email = True ,
627
+ has_two_factor = False ,
628
+ ),
629
+ macaroon = None ,
624
630
),
625
631
matched_route = pretend .stub (name = matched_route ),
626
632
)
0 commit comments