Make home route configurable
authorKarl O. Pinc <kop@meme.com>
Wed, 14 Nov 2018 00:24:54 +0000 (18:24 -0600)
committerKarl O. Pinc <kop@meme.com>
Wed, 14 Nov 2018 01:31:31 +0000 (19:31 -0600)
src/pgwui_common/__init__.py
src/pgwui_common/templates/auth_base.mak
src/pgwui_common/templates/base.mak
tests/test___init__.py

index 6f7add28cba3cf3d4506fd4601e70de00993e692..6669527a5c2c952ae35b26ea451d43d4e35e7767 100644 (file)
@@ -22,6 +22,8 @@
 '''Provide a way to configure PGWUI.
 '''
 
+DEFAULT_HOME_ROUTE = '/'
+
 
 def base_view(wrapped):
     '''Decorator for any view which includes base.mk.
@@ -33,6 +35,8 @@ def base_view(wrapped):
         pgwui = response.get('pgwui', {})
         pgwui.setdefault('url.css',
                          request.static_url('pgwui_common:static/pgwui.css'))
+        pgwui.setdefault('route.home',
+                         request.route_url('home'))
         response['pgwui'] = pgwui
         return response
     return wrapper
@@ -53,3 +57,4 @@ def includeme(config):
         'static',
         'pgwui_common:static/',
         cache_max_age=3600)
+    config.add_route('home', DEFAULT_HOME_ROUTE)
index dc976c089212b68d937cf4a5ff55009a86b69719..9eda5154323ec1647b780fa9bf51fbc506a8c334 100644 (file)
@@ -48,7 +48,7 @@
 
 <%def name="navbar()">
   <p class="navbar">
-    <a href="/gombemiwiki/">HOME</a>
+    <a href="${pgwui['route.home']}">HOME</a>
     | <a href="${request.route_url('logout')}">Logout</a>
   </p>
 </%def>
index c51e2e6590cabb933218afd508964fc0491e21fb..b4b259d697004fd83686f2804e45f2cb73203af6 100644 (file)
@@ -33,7 +33,7 @@
 
 <%def name="navbar()">
   <p class="navbar">
-    <a href="/gombemiwiki/">HOME</a>
+    <a href="${pgwui['route.home']}">HOME</a>
   </p>
 </%def>
 
index 4fa7dffd6630b13c3009bbf8f586c27600058f9a..b0025091c1a0cd0dc4fb5396e30a343dbd14ed77 100644 (file)
@@ -50,8 +50,13 @@ def test_base_view_default(pyramid_request_config):
 
     pgwui_common_init.includeme(pyramid_request_config)
     wrapper = pgwui_common_init.base_view(mock_view)
-    response = wrapper(get_current_request())
-    assert response['pgwui']['url.css'] == css_url
+    request = get_current_request()
+    response = wrapper(request)
+    pgwui = response['pgwui']
+    assert pgwui['url.css'] == css_url
+    url = (request.application_url
+           + pgwui_common_init.DEFAULT_HOME_ROUTE)
+    assert pgwui['route.home'] == url
 
 
 # auth_base_view()
@@ -78,6 +83,7 @@ def test_includeme_configurecalled():
         def __init__(self):
             self.include_called = False
             self.add_static_view_called = False
+            self.home_route = None
 
         def include(self, *args):
             self.include_called = True
@@ -85,10 +91,15 @@ def test_includeme_configurecalled():
         def add_static_view(self, *args, **kwargs):
             self.add_static_view_called = True
 
+        def add_route(self, name, route):
+            if name == 'home':
+                self.home_route = route
+
     config = MockConfig()
     pgwui_common_init.includeme(config)
     assert config.include_called
     assert config.add_static_view_called
+    assert config.home_route == '/'
 
 
 # Integration tests