def test_policy_selected_event(self): from pyramid.testing import testConfig from pyramid_multiauth import MultiAuthPolicySelected policies = [TestAuthnPolicy2(), TestAuthnPolicy3()] policy = MultiAuthenticationPolicy(policies) # Simulate loading from config: policies[0]._pyramid_multiauth_name = "name" with testConfig() as config: request = DummyRequest() selected_policy = [] def track_policy(event): selected_policy.append(event) config.add_subscriber(track_policy, MultiAuthPolicySelected) self.assertEquals(policy.authenticated_userid(request), "test2") self.assertEquals(selected_policy[0].policy, policies[0]) self.assertEquals(selected_policy[0].policy_name, "name") self.assertEquals(selected_policy[0].userid, "test2") self.assertEquals(selected_policy[0].request, request) self.assertEquals(len(selected_policy), 1) # Effective principals also triggers an event when groupfinder # is provided. policy_with_group = MultiAuthenticationPolicy(policies, lambda u, r: ['foo']) policy_with_group.effective_principals(request) self.assertEquals(len(selected_policy), 2)
def test_policy_selected_event(self): from pyramid.testing import testConfig from pyramid_multiauth import MultiAuthPolicySelected policies = [TestAuthnPolicy2(), TestAuthnPolicy3()] policy = MultiAuthenticationPolicy(policies) # Simulate loading from config: policies[0]._pyramid_multiauth_name = "name" with testConfig() as config: request = DummyRequest() selected_policy = [] def track_policy(event): selected_policy.append(event) config.add_subscriber(track_policy, MultiAuthPolicySelected) self.assertEquals(policy.authenticated_userid(request), "test2") self.assertEquals(selected_policy[0].policy, policies[0]) self.assertEquals(selected_policy[0].policy_name, "name") self.assertEquals(selected_policy[0].userid, "test2") self.assertEquals(selected_policy[0].request, request) self.assertEquals(len(selected_policy), 1) # Effective principals also triggers an event when groupfinder # is provided. policy_with_group = MultiAuthenticationPolicy( policies, lambda u, r: ['foo']) policy_with_group.effective_principals(request) self.assertEquals(len(selected_policy), 2)
def test_stacking_of_effective_principals(self): policies = [TestAuthnPolicy2(), TestAuthnPolicy3()] policy = MultiAuthenticationPolicy(policies) request = DummyRequest() self.assertEquals(sorted(policy.effective_principals(request)), [Authenticated, Everyone, "test2", "test3", "test4"]) policies.reverse() self.assertEquals(sorted(policy.effective_principals(request)), [Authenticated, Everyone, "test2", "test3", "test4"]) policies.append(TestAuthnPolicy1()) self.assertEquals(sorted(policy.effective_principals(request)), [Authenticated, Everyone, "test1", "test2", "test3", "test4"])
def test_stacking_of_effective_principals(self): policies = [TestAuthnPolicy2(), TestAuthnPolicy3()] policy = MultiAuthenticationPolicy(policies) request = DummyRequest() self.assertEquals(sorted(policy.effective_principals(request)), [Authenticated, Everyone, "test2", "test3", "test4"]) policies.reverse() self.assertEquals(sorted(policy.effective_principals(request)), [Authenticated, Everyone, "test2", "test3", "test4"]) policies.append(TestAuthnPolicy1()) self.assertEquals( sorted(policy.effective_principals(request)), [Authenticated, Everyone, "test1", "test2", "test3", "test4"])
def test_authenticated_userid_unauthenticated_with_groupfinder(self): policies = [TestAuthnPolicy2()] policy = MultiAuthenticationPolicy(policies, testgroupfinder) request = DummyRequest() self.assertEquals(policy.authenticated_userid(request), None) self.assertEquals(sorted(policy.effective_principals(request)), [Everyone, 'test2'])
def test_only_unauthenticated_userid_with_groupfinder(self): policies = [TestAuthnPolicyUnauthOnly()] policy = MultiAuthenticationPolicy(policies, testgroupfinder) request = DummyRequest() self.assertEquals(policy.unauthenticated_userid(request), "test3") self.assertEquals(policy.authenticated_userid(request), None) self.assertEquals(policy.effective_principals(request), [Everyone])
def test_basic_stacking(self): policies = [TestAuthnPolicy1(), TestAuthnPolicy2()] policy = MultiAuthenticationPolicy(policies) request = DummyRequest() self.assertEquals(policy.authenticated_userid(request), "test2") self.assertEquals(sorted(policy.effective_principals(request)), [Authenticated, Everyone, "test1", "test2"])