summaryrefslogtreecommitdiff
path: root/tests/pkgs/securityapp
diff options
context:
space:
mode:
authorTheron Luhn <theron@luhn.com>2019-04-27 14:51:57 -0700
committerTheron Luhn <theron@luhn.com>2019-04-27 15:42:21 -0700
commitad611d2696701b611d2ef9dfe93567ecf6cb338d (patch)
tree6b4c226fd6c5f22b31d765397d2bdd070688d935 /tests/pkgs/securityapp
parent5497c0f7166308031b3cc3ce2510d22eb214b2ef (diff)
downloadpyramid-ad611d2696701b611d2ef9dfe93567ecf6cb338d.tar.gz
pyramid-ad611d2696701b611d2ef9dfe93567ecf6cb338d.tar.bz2
pyramid-ad611d2696701b611d2ef9dfe93567ecf6cb338d.zip
Add simple integration tests for security.
Diffstat (limited to 'tests/pkgs/securityapp')
-rw-r--r--tests/pkgs/securityapp/__init__.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/pkgs/securityapp/__init__.py b/tests/pkgs/securityapp/__init__.py
new file mode 100644
index 000000000..6ddba585b
--- /dev/null
+++ b/tests/pkgs/securityapp/__init__.py
@@ -0,0 +1,41 @@
+from pyramid.response import Response
+from pyramid.security import Allowed, Denied
+
+
+class SecurityPolicy:
+ def identify(self, request):
+ return request.environ.get('REMOTE_USER')
+
+ def permits(self, request, context, identity, permission):
+ if identity and permission == 'foo':
+ return Allowed('')
+ else:
+ return Denied('')
+
+ def remember(self, request, userid, **kw):
+ raise NotImplementedError() # pragma: no cover
+
+ def forget(self, request):
+ raise NotImplementedError() # pragma: no cover
+
+
+def public(context, request):
+ return Response('Hello')
+
+
+def private(context, request):
+ return Response('Secret')
+
+
+def inaccessible(context, request):
+ raise AssertionError() # pragma: no cover
+
+
+def includeme(config):
+ config.set_security_policy(SecurityPolicy())
+ config.add_route('public', '/public')
+ config.add_view(public, route_name='public')
+ config.add_route('private', '/private')
+ config.add_view(private, route_name='private', permission='foo')
+ config.add_route('inaccessible', '/inaccessible')
+ config.add_view(inaccessible, route_name='inaccessible', permission='bar')