From 0168300b0da3c79e05ec87aa777e04674a86cebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89ric=20Araujo?= Date: Sat, 14 Dec 2019 13:32:07 -0500 Subject: start reworking security policy --- tests/pkgs/securityapp/__init__.py | 8 ++++++-- tests/test_authorization.py | 3 +++ tests/test_security.py | 14 +++++++------- tests/test_testing.py | 2 +- tests/test_viewderivers.py | 5 ++++- 5 files changed, 21 insertions(+), 11 deletions(-) (limited to 'tests') diff --git a/tests/pkgs/securityapp/__init__.py b/tests/pkgs/securityapp/__init__.py index 6ddba585b..b869ab541 100644 --- a/tests/pkgs/securityapp/__init__.py +++ b/tests/pkgs/securityapp/__init__.py @@ -4,9 +4,13 @@ from pyramid.security import Allowed, Denied class SecurityPolicy: def identify(self, request): + ... + + def authenticated_userid(self, request): return request.environ.get('REMOTE_USER') - def permits(self, request, context, identity, permission): + def permits(self, request, context, permission): + identity = self.identify(request) if identity and permission == 'foo': return Allowed('') else: @@ -15,7 +19,7 @@ class SecurityPolicy: def remember(self, request, userid, **kw): raise NotImplementedError() # pragma: no cover - def forget(self, request): + def forget(self, request, **kw): raise NotImplementedError() # pragma: no cover diff --git a/tests/test_authorization.py b/tests/test_authorization.py index 399b3da60..b50c1ae3b 100644 --- a/tests/test_authorization.py +++ b/tests/test_authorization.py @@ -3,6 +3,9 @@ import unittest from pyramid.testing import cleanUp +# XXX fix all tests to add request, remove principals + + class TestACLAuthorizationPolicy(unittest.TestCase): def setUp(self): cleanUp() diff --git a/tests/test_security.py b/tests/test_security.py index 2a8847f3b..726fbbbf3 100644 --- a/tests/test_security.py +++ b/tests/test_security.py @@ -350,7 +350,7 @@ class TestAuthenticatedUserId(unittest.TestCase): request = _makeRequest() _registerAuthenticationPolicy(request.registry, 'yo') _registerSecurityPolicy(request.registry, 'wat') - self.assertEqual(request.authenticated_userid, 'yo') + self.assertEqual(request.authenticated_userid, 'wat') def test_with_security_policy(self): request = _makeRequest() @@ -511,10 +511,7 @@ class TestLegacySecurityPolicy(unittest.TestCase): _registerAuthenticationPolicy(request.registry, ['p1', 'p2']) _registerAuthorizationPolicy(request.registry, True) - self.assertIs( - policy.permits(request, request.context, 'userid', 'permission'), - True, - ) + self.assertTrue(policy.permits(request, request.context, 'permission')) _TEST_HEADER = 'X-Pyramid-Test' @@ -532,7 +529,10 @@ class DummySecurityPolicy: def identify(self, request): return self.result - def permits(self, request, context, identity, permission): + def authenticated_userid(self, request): + return self.result + + def permits(self, request, context, permission): return self.result def remember(self, request, userid, **kw): @@ -540,7 +540,7 @@ class DummySecurityPolicy: self._header_remembered = headers[0] return headers - def forget(self, request): + def forget(self, request, **kw): headers = [(_TEST_HEADER, 'logout')] self._header_forgotten = headers[0] return headers diff --git a/tests/test_testing.py b/tests/test_testing.py index ebeafe21d..d0f23a116 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -33,7 +33,7 @@ class TestDummySecurityPolicy(unittest.TestCase): def test_permits(self): policy = self._makeOne() - self.assertEqual(policy.permits(None, None, None, None), True) + self.assertTrue(policy.permits(None, None, None)) def test_forget(self): policy = self._makeOne() diff --git a/tests/test_viewderivers.py b/tests/test_viewderivers.py index e47296b50..f1aa00e5b 100644 --- a/tests/test_viewderivers.py +++ b/tests/test_viewderivers.py @@ -2086,7 +2086,10 @@ class DummySecurityPolicy: def identify(self, request): return 123 - def permits(self, request, context, identity, permission): + def authenticated_userid(self, request): + return 123 + + def permits(self, request, context, permission): return self.permitted -- cgit v1.2.3 From 4af6a51e7edfac4ec88b01f5be97d966742a8757 Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 18:00:20 -0600 Subject: Fix tests for `SesssionAuthenticationHelper` --- tests/test_authentication.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'tests') diff --git a/tests/test_authentication.py b/tests/test_authentication.py index cb2a0a035..e0f5a7963 100644 --- a/tests/test_authentication.py +++ b/tests/test_authentication.py @@ -1706,20 +1706,20 @@ class TestSessionAuthenticationHelper(unittest.TestCase): return SessionAuthenticationHelper(prefix=prefix) - def test_identify(self): + def test_authenticated_userid(self): request = self._makeRequest({'userid': 'fred'}) helper = self._makeOne() - self.assertEqual(helper.identify(request), 'fred') + self.assertEqual(helper.authenticated_userid(request), 'fred') - def test_identify_with_prefix(self): + def test_authenticated_userid_with_prefix(self): request = self._makeRequest({'foo.userid': 'fred'}) helper = self._makeOne(prefix='foo.') - self.assertEqual(helper.identify(request), 'fred') + self.assertEqual(helper.authenticated_userid(request), 'fred') - def test_identify_none(self): + def test_authenticated_userid_none(self): request = self._makeRequest() helper = self._makeOne() - self.assertEqual(helper.identify(request), None) + self.assertEqual(helper.authenticated_userid(request), None) def test_remember(self): request = self._makeRequest() -- cgit v1.2.3 From a7692dbc47a86c8fbf763d095bf567d7e28ab3ff Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 18:02:31 -0600 Subject: Fix security policy integration tests. --- tests/pkgs/securityapp/__init__.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/pkgs/securityapp/__init__.py b/tests/pkgs/securityapp/__init__.py index b869ab541..6c9025e7d 100644 --- a/tests/pkgs/securityapp/__init__.py +++ b/tests/pkgs/securityapp/__init__.py @@ -4,14 +4,14 @@ from pyramid.security import Allowed, Denied class SecurityPolicy: def identify(self, request): - ... + raise NotImplementedError() # pragma: no cover def authenticated_userid(self, request): return request.environ.get('REMOTE_USER') def permits(self, request, context, permission): - identity = self.identify(request) - if identity and permission == 'foo': + userid = self.authenticated_userid(request) + if userid and permission == 'foo': return Allowed('') else: return Denied('') -- cgit v1.2.3 From 0f1ef0d4885ab2fd99d1cf2ccc92886c5519f651 Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 18:45:21 -0600 Subject: Remove failing tests using threadlocal request. It shoud be okay to remove because threadlocal support was removed from the security implementation. However, *I don't understand why they started failing.* In master, `get_current_registry` returns a registry object, which DummyRequest will fall back on, causing the tests to pass and rendering them useless. On this branch, it returns `None`, causing the tests to fail. I can't find any reason in the diff why this would change. This makes me nervous. --- tests/test_security.py | 36 ------------------------------------ 1 file changed, 36 deletions(-) (limited to 'tests') diff --git a/tests/test_security.py b/tests/test_security.py index 726fbbbf3..ca28ec190 100644 --- a/tests/test_security.py +++ b/tests/test_security.py @@ -165,15 +165,6 @@ class TestPrincipalsAllowedByPermission(unittest.TestCase): result = self._callFUT(context, 'view') self.assertEqual(result, [Everyone]) - def test_with_authorization_policy(self): - from pyramid.threadlocal import get_current_registry - - registry = get_current_registry() - _registerAuthorizationPolicy(registry, 'yo') - context = DummyContext() - result = self._callFUT(context, 'view') - self.assertEqual(result, 'yo') - class TestRemember(unittest.TestCase): def setUp(self): @@ -358,15 +349,6 @@ class TestAuthenticatedUserId(unittest.TestCase): _registerSecurityPolicy(request.registry, 123) self.assertEqual(request.authenticated_userid, '123') - def test_with_authentication_policy_no_reg_on_request(self): - from pyramid.threadlocal import get_current_registry - - registry = get_current_registry() - request = _makeRequest() - del request.registry - _registerAuthenticationPolicy(registry, 'yo') - self.assertEqual(request.authenticated_userid, 'yo') - class TestUnAuthenticatedUserId(unittest.TestCase): def setUp(self): @@ -390,15 +372,6 @@ class TestUnAuthenticatedUserId(unittest.TestCase): _registerSecurityPolicy(request.registry, 'yo') self.assertEqual(request.unauthenticated_userid, 'yo') - def test_with_authentication_policy_no_reg_on_request(self): - from pyramid.threadlocal import get_current_registry - - registry = get_current_registry() - request = _makeRequest() - del request.registry - _registerAuthenticationPolicy(registry, 'yo') - self.assertEqual(request.unauthenticated_userid, 'yo') - class TestEffectivePrincipals(unittest.TestCase): def setUp(self): @@ -418,15 +391,6 @@ class TestEffectivePrincipals(unittest.TestCase): _registerAuthenticationPolicy(request.registry, 'yo') self.assertEqual(request.effective_principals, 'yo') - def test_with_authentication_policy_no_reg_on_request(self): - from pyramid.threadlocal import get_current_registry - - registry = get_current_registry() - request = _makeRequest() - del request.registry - _registerAuthenticationPolicy(registry, 'yo') - self.assertEqual(request.effective_principals, 'yo') - class TestHasPermission(unittest.TestCase): def setUp(self): -- cgit v1.2.3 From eda8787d00b31dc90164e5c233bfb1cc1f94eaed Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 19:05:47 -0600 Subject: Don't test request.authenticated_userid stringifies the result. --- tests/test_security.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/test_security.py b/tests/test_security.py index ca28ec190..715d99804 100644 --- a/tests/test_security.py +++ b/tests/test_security.py @@ -345,8 +345,7 @@ class TestAuthenticatedUserId(unittest.TestCase): def test_with_security_policy(self): request = _makeRequest() - # Ensure the identity is stringified. - _registerSecurityPolicy(request.registry, 123) + _registerSecurityPolicy(request.registry, '123') self.assertEqual(request.authenticated_userid, '123') -- cgit v1.2.3 From d699c9ace8028bf74e1c6c3ea085fdf9beeb2586 Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 19:12:01 -0600 Subject: Raise error on kwargs in `LegacySecurityPolicy.forget`. --- tests/test_security.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'tests') diff --git a/tests/test_security.py b/tests/test_security.py index 715d99804..1c969e305 100644 --- a/tests/test_security.py +++ b/tests/test_security.py @@ -466,6 +466,12 @@ class TestLegacySecurityPolicy(unittest.TestCase): policy.forget(request), [('X-Pyramid-Test', 'logout')] ) + def test_forget_with_kwargs(self): + from pyramid.security import LegacySecurityPolicy + + policy = LegacySecurityPolicy() + self.assertRaises(ValueError, lambda: policy.forget(None, foo='bar')) + def test_permits(self): from pyramid.security import LegacySecurityPolicy -- cgit v1.2.3 From 638125171a311b9a6ba7c02da844ca601a2b0e0e Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 19:16:58 -0600 Subject: Fix tests for `DummySecurityPolicy`. --- tests/test_config/test_testing.py | 5 +++-- tests/test_testing.py | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/test_config/test_testing.py b/tests/test_config/test_testing.py index 500aedeae..efbe28f66 100644 --- a/tests/test_config/test_testing.py +++ b/tests/test_config/test_testing.py @@ -17,12 +17,13 @@ class TestingConfiguratorMixinTests(unittest.TestCase): from pyramid.testing import DummySecurityPolicy config = self._makeOne(autocommit=True) - config.testing_securitypolicy('user', permissive=False) + config.testing_securitypolicy('userid', 'identity', permissive=False) from pyramid.interfaces import ISecurityPolicy policy = config.registry.getUtility(ISecurityPolicy) self.assertTrue(isinstance(policy, DummySecurityPolicy)) - self.assertEqual(policy.identity, 'user') + self.assertEqual(policy.userid, 'userid') + self.assertEqual(policy.identity, 'identity') self.assertEqual(policy.permissive, False) def test_testing_securitypolicy_remember_result(self): diff --git a/tests/test_testing.py b/tests/test_testing.py index ad1fca1d9..6eb474f65 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -25,7 +25,7 @@ class TestDummySecurityPolicy(unittest.TestCase): def _makeOne(self, identity=None, permissive=True): klass = self._getTargetClass() - return klass(identity, permissive) + return klass(identity, identity, permissive) def test_identify(self): policy = self._makeOne('user') -- cgit v1.2.3 From 6213507e80d1b77ffd314b88c23ff7eca99aaee4 Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 19:24:40 -0600 Subject: Fix couple final view tests. --- tests/test_config/test_views.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/test_config/test_views.py b/tests/test_config/test_views.py index a1e975756..a474d3754 100644 --- a/tests/test_config/test_views.py +++ b/tests/test_config/test_views.py @@ -2045,10 +2045,9 @@ class TestViewsConfigurationMixin(unittest.TestCase): outerself.assertEqual(r, request) return 123 - def permits(self, r, context, identity, permission): + def permits(self, r, context, permission): outerself.assertEqual(r, request) outerself.assertEqual(context, None) - outerself.assertEqual(identity, 123) outerself.assertEqual(permission, 'view') return True @@ -2070,10 +2069,9 @@ class TestViewsConfigurationMixin(unittest.TestCase): outerself.assertEqual(r, request) return 123 - def permits(self, r, context, identity, permission): + def permits(self, r, context, permission): outerself.assertEqual(r, request) outerself.assertEqual(context, None) - outerself.assertEqual(identity, 123) outerself.assertEqual(permission, 'view') return True -- cgit v1.2.3 From 491e6e15edb6ca35a33a133c323ba1db2664c05f Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 19:26:42 -0600 Subject: Remove unnecessary TODO statement. --- tests/test_authorization.py | 3 --- 1 file changed, 3 deletions(-) (limited to 'tests') diff --git a/tests/test_authorization.py b/tests/test_authorization.py index b50c1ae3b..399b3da60 100644 --- a/tests/test_authorization.py +++ b/tests/test_authorization.py @@ -3,9 +3,6 @@ import unittest from pyramid.testing import cleanUp -# XXX fix all tests to add request, remove principals - - class TestACLAuthorizationPolicy(unittest.TestCase): def setUp(self): cleanUp() -- cgit v1.2.3 From 2e06fa414412688dc3b7e0b422b0fc0b96ec882f Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 20:17:36 -0800 Subject: Bring back identity into permits. --- tests/pkgs/securityapp/__init__.py | 4 ++-- tests/test_config/test_views.py | 6 ++++-- tests/test_security.py | 7 +++++-- tests/test_testing.py | 2 +- tests/test_viewderivers.py | 2 +- 5 files changed, 13 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/pkgs/securityapp/__init__.py b/tests/pkgs/securityapp/__init__.py index 6c9025e7d..caf65ad4c 100644 --- a/tests/pkgs/securityapp/__init__.py +++ b/tests/pkgs/securityapp/__init__.py @@ -4,12 +4,12 @@ from pyramid.security import Allowed, Denied class SecurityPolicy: def identify(self, request): - raise NotImplementedError() # pragma: no cover + return self.authenticated_userid(request) def authenticated_userid(self, request): return request.environ.get('REMOTE_USER') - def permits(self, request, context, permission): + def permits(self, request, context, identity, permission): userid = self.authenticated_userid(request) if userid and permission == 'foo': return Allowed('') diff --git a/tests/test_config/test_views.py b/tests/test_config/test_views.py index a474d3754..a1e975756 100644 --- a/tests/test_config/test_views.py +++ b/tests/test_config/test_views.py @@ -2045,9 +2045,10 @@ class TestViewsConfigurationMixin(unittest.TestCase): outerself.assertEqual(r, request) return 123 - def permits(self, r, context, permission): + def permits(self, r, context, identity, permission): outerself.assertEqual(r, request) outerself.assertEqual(context, None) + outerself.assertEqual(identity, 123) outerself.assertEqual(permission, 'view') return True @@ -2069,9 +2070,10 @@ class TestViewsConfigurationMixin(unittest.TestCase): outerself.assertEqual(r, request) return 123 - def permits(self, r, context, permission): + def permits(self, r, context, identity, permission): outerself.assertEqual(r, request) outerself.assertEqual(context, None) + outerself.assertEqual(identity, 123) outerself.assertEqual(permission, 'view') return True diff --git a/tests/test_security.py b/tests/test_security.py index 1c969e305..3896e008d 100644 --- a/tests/test_security.py +++ b/tests/test_security.py @@ -480,7 +480,10 @@ class TestLegacySecurityPolicy(unittest.TestCase): _registerAuthenticationPolicy(request.registry, ['p1', 'p2']) _registerAuthorizationPolicy(request.registry, True) - self.assertTrue(policy.permits(request, request.context, 'permission')) + self.assertIs( + policy.permits(request, request.context, 'userid', 'permission'), + True, + ) _TEST_HEADER = 'X-Pyramid-Test' @@ -501,7 +504,7 @@ class DummySecurityPolicy: def authenticated_userid(self, request): return self.result - def permits(self, request, context, permission): + def permits(self, request, context, identity, permission): return self.result def remember(self, request, userid, **kw): diff --git a/tests/test_testing.py b/tests/test_testing.py index 6eb474f65..a329b0a04 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -33,7 +33,7 @@ class TestDummySecurityPolicy(unittest.TestCase): def test_permits(self): policy = self._makeOne() - self.assertTrue(policy.permits(None, None, None)) + self.assertEqual(policy.permits(None, None, None, None), True) def test_forget(self): policy = self._makeOne() diff --git a/tests/test_viewderivers.py b/tests/test_viewderivers.py index f1aa00e5b..48a564c7b 100644 --- a/tests/test_viewderivers.py +++ b/tests/test_viewderivers.py @@ -2089,7 +2089,7 @@ class DummySecurityPolicy: def authenticated_userid(self, request): return 123 - def permits(self, request, context, permission): + def permits(self, request, context, identity, permission): return self.permitted -- cgit v1.2.3 From dc4241edd6d433224f62aece153741f7ea63569a Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 22:46:51 -0800 Subject: Fix coverage. --- tests/test_security.py | 9 +++++++++ tests/test_viewderivers.py | 3 --- 2 files changed, 9 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/test_security.py b/tests/test_security.py index 3896e008d..a555fd7f6 100644 --- a/tests/test_security.py +++ b/tests/test_security.py @@ -165,6 +165,15 @@ class TestPrincipalsAllowedByPermission(unittest.TestCase): result = self._callFUT(context, 'view') self.assertEqual(result, [Everyone]) + def test_with_authorization_policy(self): + from pyramid.threadlocal import get_current_registry + + registry = get_current_registry() + _registerAuthorizationPolicy(registry, 'yo') + context = DummyContext() + result = self._callFUT(context, 'view') + self.assertEqual(result, 'yo') + class TestRemember(unittest.TestCase): def setUp(self): diff --git a/tests/test_viewderivers.py b/tests/test_viewderivers.py index 48a564c7b..e47296b50 100644 --- a/tests/test_viewderivers.py +++ b/tests/test_viewderivers.py @@ -2086,9 +2086,6 @@ class DummySecurityPolicy: def identify(self, request): return 123 - def authenticated_userid(self, request): - return 123 - def permits(self, request, context, identity, permission): return self.permitted -- cgit v1.2.3 From 2e55311fec0a539dab87c2ee4b0d7781055dd98a Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sat, 14 Dec 2019 23:21:25 -0800 Subject: Fix coverage. --- tests/test_testing.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/test_testing.py b/tests/test_testing.py index a329b0a04..22bc7332b 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -23,13 +23,17 @@ class TestDummySecurityPolicy(unittest.TestCase): return DummySecurityPolicy - def _makeOne(self, identity=None, permissive=True): + def _makeOne(self, userid=None, identity=None, permissive=True): klass = self._getTargetClass() - return klass(identity, identity, permissive) + return klass(userid, identity, permissive) def test_identify(self): + policy = self._makeOne('user', 'identity') + self.assertEqual(policy.identify(None), 'identity') + + def test_authenticated_userid(self): policy = self._makeOne('user') - self.assertEqual(policy.identify(None), 'user') + self.assertEqual(policy.authenticated_userid(None), 'user') def test_permits(self): policy = self._makeOne() -- cgit v1.2.3 From 32bf9b3669f2ba0c4a0aaf35f4e2cdad8f9314f0 Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sun, 15 Dec 2019 19:55:10 -0800 Subject: Revert "Bring back identity into permits." This reverts commit 2e06fa414412688dc3b7e0b422b0fc0b96ec882f. --- tests/pkgs/securityapp/__init__.py | 4 ++-- tests/test_config/test_views.py | 6 ++---- tests/test_security.py | 7 ++----- tests/test_testing.py | 2 +- tests/test_viewderivers.py | 2 +- 5 files changed, 8 insertions(+), 13 deletions(-) (limited to 'tests') diff --git a/tests/pkgs/securityapp/__init__.py b/tests/pkgs/securityapp/__init__.py index caf65ad4c..6c9025e7d 100644 --- a/tests/pkgs/securityapp/__init__.py +++ b/tests/pkgs/securityapp/__init__.py @@ -4,12 +4,12 @@ from pyramid.security import Allowed, Denied class SecurityPolicy: def identify(self, request): - return self.authenticated_userid(request) + raise NotImplementedError() # pragma: no cover def authenticated_userid(self, request): return request.environ.get('REMOTE_USER') - def permits(self, request, context, identity, permission): + def permits(self, request, context, permission): userid = self.authenticated_userid(request) if userid and permission == 'foo': return Allowed('') diff --git a/tests/test_config/test_views.py b/tests/test_config/test_views.py index a1e975756..a474d3754 100644 --- a/tests/test_config/test_views.py +++ b/tests/test_config/test_views.py @@ -2045,10 +2045,9 @@ class TestViewsConfigurationMixin(unittest.TestCase): outerself.assertEqual(r, request) return 123 - def permits(self, r, context, identity, permission): + def permits(self, r, context, permission): outerself.assertEqual(r, request) outerself.assertEqual(context, None) - outerself.assertEqual(identity, 123) outerself.assertEqual(permission, 'view') return True @@ -2070,10 +2069,9 @@ class TestViewsConfigurationMixin(unittest.TestCase): outerself.assertEqual(r, request) return 123 - def permits(self, r, context, identity, permission): + def permits(self, r, context, permission): outerself.assertEqual(r, request) outerself.assertEqual(context, None) - outerself.assertEqual(identity, 123) outerself.assertEqual(permission, 'view') return True diff --git a/tests/test_security.py b/tests/test_security.py index a555fd7f6..f39e3c730 100644 --- a/tests/test_security.py +++ b/tests/test_security.py @@ -489,10 +489,7 @@ class TestLegacySecurityPolicy(unittest.TestCase): _registerAuthenticationPolicy(request.registry, ['p1', 'p2']) _registerAuthorizationPolicy(request.registry, True) - self.assertIs( - policy.permits(request, request.context, 'userid', 'permission'), - True, - ) + self.assertTrue(policy.permits(request, request.context, 'permission')) _TEST_HEADER = 'X-Pyramid-Test' @@ -513,7 +510,7 @@ class DummySecurityPolicy: def authenticated_userid(self, request): return self.result - def permits(self, request, context, identity, permission): + def permits(self, request, context, permission): return self.result def remember(self, request, userid, **kw): diff --git a/tests/test_testing.py b/tests/test_testing.py index 22bc7332b..be519cd15 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -37,7 +37,7 @@ class TestDummySecurityPolicy(unittest.TestCase): def test_permits(self): policy = self._makeOne() - self.assertEqual(policy.permits(None, None, None, None), True) + self.assertTrue(policy.permits(None, None, None)) def test_forget(self): policy = self._makeOne() diff --git a/tests/test_viewderivers.py b/tests/test_viewderivers.py index e47296b50..ba10eeaac 100644 --- a/tests/test_viewderivers.py +++ b/tests/test_viewderivers.py @@ -2086,7 +2086,7 @@ class DummySecurityPolicy: def identify(self, request): return 123 - def permits(self, request, context, identity, permission): + def permits(self, request, context, permission): return self.permitted -- cgit v1.2.3 From d79e1dfa0f0f52dbce8ec4a9b08c6ef7740f6dea Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sun, 15 Dec 2019 20:25:02 -0800 Subject: Fix coverage. --- tests/test_viewderivers.py | 3 --- 1 file changed, 3 deletions(-) (limited to 'tests') diff --git a/tests/test_viewderivers.py b/tests/test_viewderivers.py index ba10eeaac..3b5349094 100644 --- a/tests/test_viewderivers.py +++ b/tests/test_viewderivers.py @@ -2083,9 +2083,6 @@ class DummySecurityPolicy: def __init__(self, permitted=True): self.permitted = permitted - def identify(self, request): - return 123 - def permits(self, request, context, permission): return self.permitted -- cgit v1.2.3 From 1b127af1412ce9ae24cc993c15162b48283d76e9 Mon Sep 17 00:00:00 2001 From: Theron Luhn Date: Sun, 15 Dec 2019 20:42:49 -0800 Subject: Fix coverage. --- tests/test_config/test_views.py | 8 -------- 1 file changed, 8 deletions(-) (limited to 'tests') diff --git a/tests/test_config/test_views.py b/tests/test_config/test_views.py index a474d3754..d6b08c2f7 100644 --- a/tests/test_config/test_views.py +++ b/tests/test_config/test_views.py @@ -2041,10 +2041,6 @@ class TestViewsConfigurationMixin(unittest.TestCase): outerself = self class DummyPolicy(object): - def identify(self, r): - outerself.assertEqual(r, request) - return 123 - def permits(self, r, context, permission): outerself.assertEqual(r, request) outerself.assertEqual(context, None) @@ -2065,10 +2061,6 @@ class TestViewsConfigurationMixin(unittest.TestCase): outerself = self class DummyPolicy(object): - def identify(self, r): - outerself.assertEqual(r, request) - return 123 - def permits(self, r, context, permission): outerself.assertEqual(r, request) outerself.assertEqual(context, None) -- cgit v1.2.3 From 570243fcf3f9bb7b3da78404b0598011791ac882 Mon Sep 17 00:00:00 2001 From: Michael Merickel Date: Mon, 23 Dec 2019 13:57:14 -0600 Subject: add coverage tests for deprecation warnings --- tests/test_config/test_routes.py | 11 +++++++++++ tests/test_config/test_views.py | 11 +++++++++++ 2 files changed, 22 insertions(+) (limited to 'tests') diff --git a/tests/test_config/test_routes.py b/tests/test_config/test_routes.py index 4ff67cf66..423da5834 100644 --- a/tests/test_config/test_routes.py +++ b/tests/test_config/test_routes.py @@ -1,4 +1,5 @@ import unittest +import warnings from . import dummyfactory from . import DummyContext @@ -308,6 +309,16 @@ class RoutesConfiguratorMixinTests(unittest.TestCase): else: # pragma: no cover raise AssertionError + def test_add_route_effective_principals_deprecated(self): + config = self._makeOne(autocommit=True) + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always', DeprecationWarning) + config.add_route('foo', '/bar', effective_principals=['any']) + self.assertIn( + 'removed the concept of principals', str(w[-1].message) + ) + class DummyRequest: subpath = () diff --git a/tests/test_config/test_views.py b/tests/test_config/test_views.py index d6b08c2f7..dcea02b1d 100644 --- a/tests/test_config/test_views.py +++ b/tests/test_config/test_views.py @@ -1,5 +1,6 @@ import os import unittest +import warnings from zope.interface import implementer from pyramid import testing @@ -2925,6 +2926,16 @@ class TestViewsConfigurationMixin(unittest.TestCase): weighs_more_than='text/plain;charset=utf8', ) + def test_effective_principals_deprecated(self): + config = self._makeOne(autocommit=True) + + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter('always', DeprecationWarning) + config.add_view(lambda: None, effective_principals=['any']) + self.assertIn( + 'removed the concept of principals', str(w[-1].message) + ) + class Test_runtime_exc_view(unittest.TestCase): def _makeOne(self, view1, view2): -- cgit v1.2.3