'''
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()
-# 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.
#
# Karl O. Pinc <kop@karlpinc.com>
+import pyramid.testing
+
+import pgwui_upload.__init__ as pgwui_upload_init
+
+from pgwui_testing import testing
# Activiate our pytest plugin
pytest_plugins = ("pgwui",)
'''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()