From 1ccb94976eac8b0cbc0b43c940d103f10a4a4651 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Thu, 27 Aug 2020 14:59:21 -0500 Subject: [PATCH] Establish default menu label --- src/pgwui_upload/__init__.py | 12 +++++ src/pgwui_upload/templates/upload.mak | 2 +- tests/test___init__.py | 64 ++++++++++++++++++++++++++- 3 files changed, 76 insertions(+), 2 deletions(-) diff --git a/src/pgwui_upload/__init__.py b/src/pgwui_upload/__init__.py index 167613a..d38a3b7 100644 --- a/src/pgwui_upload/__init__.py +++ b/src/pgwui_upload/__init__.py @@ -23,10 +23,22 @@ ''' PGWUI_COMPONENT = 'pgwui_upload' DEFAULT_UPLOAD_ROUTE = '/upload' +DEFAULT_UPLOAD_MENU_LABEL = 'upload -- Upload File Into Database' + + +def init_menu(config): + '''Add default menu information into settings when they are not present + ''' + settings = config.get_settings() + settings.setdefault('pgwui', dict()) + settings['pgwui'].setdefault(PGWUI_COMPONENT, dict()) + settings['pgwui'][PGWUI_COMPONENT].setdefault( + 'menu_label', DEFAULT_UPLOAD_MENU_LABEL) def includeme(config): '''Pyramid configuration for PGWUI_Upload ''' + init_menu(config) config.add_route(PGWUI_COMPONENT, DEFAULT_UPLOAD_ROUTE) config.scan() diff --git a/src/pgwui_upload/templates/upload.mak b/src/pgwui_upload/templates/upload.mak index 35ffca9..eb24146 100644 --- a/src/pgwui_upload/templates/upload.mak +++ b/src/pgwui_upload/templates/upload.mak @@ -36,7 +36,7 @@ <%inherit file="${auth_base_mak}" /> -<%block name="title">upload -- Upload File Into Database +<%block name="title">${pgwui['pgwui_upload']['menu_label']} <%block name="meta_keywords"> diff --git a/tests/test___init__.py b/tests/test___init__.py index b77e477..a2e6bc1 100644 --- a/tests/test___init__.py +++ b/tests/test___init__.py @@ -1,4 +1,4 @@ -# Copyright (C) 2019 The Meme Factory, Inc. http://www.karlpinc.com/ +# Copyright (C) 2019, 2020 The Meme Factory, Inc. http://www.karlpinc.com/ # This file is part of PGWUI_Upload. # @@ -19,6 +19,11 @@ # Karl O. Pinc +import pyramid.testing + +import pgwui_upload.__init__ as pgwui_upload_init + +from pgwui_testing import testing # Activiate our pytest plugin pytest_plugins = ("pgwui",) @@ -30,3 +35,60 @@ def test_pgwui_upload_is_pgwui_component(pgwui_component_entry_point): '''Ensure that pgwui_upload is a pgwui.component entry point ''' assert pgwui_component_entry_point('pgwui_upload') is True + + +# init_menu() + +def test_init_menu_default(): + '''The settings get the module's default value when no settings exist + ''' + with pyramid.testing.testConfig() as config: + + pgwui_upload_init.init_menu(config) + + new_settings = config.get_settings() + assert new_settings['pgwui']['pgwui_upload']['menu_label'] \ + == pgwui_upload_init.DEFAULT_UPLOAD_MENU_LABEL + + +def test_init_menu_no_default(): + '''The settings keep their value when they exist + ''' + test_menu_label = 'test label' + + with pyramid.testing.testConfig() as config: + sample_settings = config.get_settings() + + sample_settings['pgwui'] = dict() + sample_settings['pgwui']['pgwui_upload'] = dict() + sample_settings['pgwui']['pgwui_upload']['menu_label'] \ + = test_menu_label + + pgwui_upload_init.init_menu(config) + + new_settings = config.get_settings() + assert new_settings['pgwui']['pgwui_upload']['menu_label'] \ + == test_menu_label + + +mock_init_menu = testing.make_mock_fixture(pgwui_upload_init, 'init_menu') + + +# includeme() + +mock_add_route = testing.instance_method_mock_fixture('add_route') +mock_scan = testing.instance_method_mock_fixture('scan') + + +def test_includeme(mock_init_menu, mock_add_route, mock_scan): + '''init_menu, add_route, and scan are all called + ''' + with pyramid.testing.testConfig() as config: + mocked_add_route = mock_add_route(config) + mocked_scan = mock_scan(config) + + pgwui_upload_init.includeme(config) + + mock_init_menu.assert_called_once() + mocked_add_route.assert_called_once() + mocked_scan.assert_called_once() -- 2.34.1