def test_stacking_of_authenticated_userid(self): policies = [TestAuthnPolicy2(), TestAuthnPolicy3()] policy = MultiAuthenticationPolicy(policies) request = DummyRequest() self.assertEquals(policy.authenticated_userid(request), "test2") policies.reverse() self.assertEquals(policy.authenticated_userid(request), "test3")
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_stacking_of_authenticated_userid_with_groupdfinder(self): policies = [TestAuthnPolicy2(), TestAuthnPolicy3()] policy = MultiAuthenticationPolicy(policies, testgroupfinder) request = DummyRequest() self.assertEquals(policy.authenticated_userid(request), "test3") policies.reverse() self.assertEquals(policy.unauthenticated_userid(request), "test3")
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_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"])
def test_policy_selected_event(self): from pyramid.testing import testConfig from pyramid_multiauth import MultiAuthPolicySelected policies = [TestAuthnPolicy2(), TestAuthnPolicy3()] policy = MultiAuthenticationPolicy(policies) with testConfig() as config: request = DummyRequest() selected_policy = [] def track_policy(event): selected_policy.append((event.policy, event.request)) config.add_subscriber(track_policy, MultiAuthPolicySelected) self.assertEquals(policy.authenticated_userid(request), "test2") self.assertEquals(selected_policy[0][0], policies[0]) self.assertEquals(selected_policy[0][1], request) self.assertEquals(len(selected_policy), 1)