Distribution can be used without PGWUI_Logout
authorKarl O. Pinc <kop@meme.com>
Thu, 15 Nov 2018 02:27:17 +0000 (20:27 -0600)
committerKarl O. Pinc <kop@meme.com>
Thu, 15 Nov 2018 02:27:17 +0000 (20:27 -0600)
src/pgwui_common/__init__.py
src/pgwui_common/templates/auth_base.mak
tests/test___init__.py

index c0b827fb96cd052c7787159bf80dc32bb772fc61..642e773ba36aa30376d0adab10e163f574394770 100644 (file)
@@ -50,8 +50,12 @@ def auth_base_view(wrapped):
         '''
         response = base_view(wrapped)(request)
         pgwui = response['pgwui']
-        pgwui.setdefault('route.logout',
-                         request.route_url('logout'))
+        try:
+            logout_route = request.route_url('logout')
+        except KeyError:
+            pass         # A logout route is not required
+        else:
+            pgwui.setdefault('route.logout', logout_route)
         return response
     return wrapper
 
index 9edac7ef7214e5e41ddf3a8a62d461b77af1d360..da5317c7419d1625d95e1172d41bd7b73d4f75f5 100644 (file)
@@ -47,7 +47,9 @@
 <%def name="navbar()">
   <p class="navbar">
     <a href="${pgwui['route.home']}">HOME</a>
-    | <a href="${pgwui['route.logout']}">Logout</a>
+    % if 'route.logout' in pgwui:
+      | <a href="${pgwui['route.logout']}">Logout</a>
+    % endif
   </p>
 </%def>
 
index 7ae2173ba18a245f70226e68fcc2898049f5dc40..4759e6ba04fe2cb0e8d0fe5c2e2607ad28235f39 100644 (file)
@@ -69,8 +69,10 @@ def test_base_view_default(pyramid_request_config):
 
 # auth_base_view()
 
-def test_auth_base_view(pyramid_request_config):
-    '''The response contains base_view and auth_base_view variables'''
+def test_auth_base_view_logout(pyramid_request_config):
+    '''The response contains base_view and auth_base_view variables
+    when there is a logout route
+    '''
     pgwui_common_init.includeme(pyramid_request_config)
 
     logout_route = '/logout'
@@ -84,6 +86,20 @@ def test_auth_base_view(pyramid_request_config):
     assert pgwui['route.logout'] == request.application_url + logout_route
 
 
+def test_auth_base_view_nologout(pyramid_request_config):
+    '''The response contains base_view and auth_base_view variables
+    when there is no logout route
+    '''
+    pgwui_common_init.includeme(pyramid_request_config)
+
+    wrapper = pgwui_common_init.auth_base_view(mock_view)
+    request = get_current_request()
+
+    response = wrapper(request)
+    pgwui = response['pgwui']
+    check_base_view_results(request, pgwui)
+
+
 # includeme()
 
 def test_includeme_configurecalled():