Fix setup errors in tests
authorKarl O. Pinc <kop@karlpinc.com>
Sat, 23 Mar 2024 17:37:24 +0000 (12:37 -0500)
committerKarl O. Pinc <kop@karlpinc.com>
Sat, 23 Mar 2024 17:37:24 +0000 (12:37 -0500)
src/pgwui_develop/TEMPLATE/src/pgwui_TEMPLATE/views/TEMPLATE.py.mak
src/pgwui_develop/TEMPLATE/tests/test_pgwui_TEMPLATE.py.mak
src/pgwui_develop/TEMPLATE/tests/views/test_TEMPLATE.py.mak

index aa55bf2f962867e45df36a88fa770af0de8c2169..247113db9d7f996498a81d656db208ea6335bf1f 100644 (file)
@@ -27,7 +27,7 @@ from pgwui_common.view import auth_base_view
 from ${component.lower()} import exceptions as ${short_name}_ex
 
 # Useless usage of the imported exceptions to keep `make check` from failing
-${short_name}_ex.ExampleOnOffAskError()
+${short_name}_ex.ExampleOnOffAskError('42')
 
 log = logging.getLogger(__name__)
 
index fd99471108dc70838bc65fc497d3e4b38eb6603c..e7da2d6a0a17a4af9b6d53733fbacb15f68a8967 100644 (file)
@@ -50,8 +50,8 @@ def test_establish_settings_default():
         ${component.lower()}.establish_settings(config)
 
         new_settings = config.get_settings()
-    assert new_settings['pgwui']['${component.lower()}']['menu_label'] \
-        == ${component.lower()}.DEFAULT_UPLOAD_MENU_LABEL
+    assert (new_settings['pgwui']['${component.lower()}']['menu_label']
+            == ${component.lower()}.DEFAULT_UPLOAD_MENU_LABEL)
 
 
 @pytest.mark.unittest
@@ -65,14 +65,14 @@ def test_establish_settings_no_default():
 
         sample_settings['pgwui'] = dict()
         sample_settings['pgwui']['${component.lower()}'] = dict()
-        sample_settings['pgwui']['${component.lower()}']['menu_label'] \
-            = test_menu_label
+        sample_settings[
+            'pgwui']['${component.lower()}']['menu_label'] = test_menu_label
 
         ${component.lower()}.establish_settings(config)
 
         new_settings = config.get_settings()
-    assert new_settings['pgwui']['${component.lower()}']['menu_label'] \
-        == test_menu_label
+    assert (new_settings['pgwui']['${component.lower()}']['menu_label']
+            == test_menu_label)
 
 
 mock_establish_settings = testing.make_mock_fixture(
@@ -81,15 +81,22 @@ mock_establish_settings = testing.make_mock_fixture(
 
 # includeme()
 
-mock_testConfig = testing.make_mock_fixture(pyramid.testing.testConfig)
+mock_add_route = testing.late_instance_mock_fixture(
+    pyramid.testing.testConfig, 'add_route')
+mock_scan = testing.late_instance_mock_fixture(
+    pyramid.testing.testConfig, 'scan')
+
 
 @pytest.mark.unittest
-def test_includeme(mock__settings, mock_testConfig):
+def test_includeme(mock_establish_settings, mock_add_route, mock_scan):
     '''establish_settings, add_route, and scan are all called
     '''
-    with mock_testConfig() as config:
+    with pyramid.testing.testConfig() as config:
+        mocked_add_route = mock_add_route(config)
+        mocked_scan = mock_scan(config)
+
         ${component.lower()}.includeme(config)
-        config.establish_settings.assert_called_once()
-        config.add_route.assert_called_once()
-        config.scan.assert_called_once()
 
+        mock_establish_settings.assert_called_once()
+        mocked_add_route.assert_called_once()
+        mocked_scan.assert_called_once()
index 0523627761ea07340252be7c82621852979b21e2..e786bc38e264d56650d4fdf41cfb85840cac1cd6 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2018, 2019, 2020, 2021 The Meme Factory, Inc.
+# Copyright (C) 2018, 2019, 2020, 2021, 2024 The Meme Factory, Inc.
 # http://www.karlpinc.com/
 
 # This file is part of ${component}.
 
 # Karl O. Pinc <kop@karlpinc.com>
 
+import logging
 import pytest
 from pyramid.testing import DummyRequest
 from pyramid.threadlocal import get_current_request, get_current_registry
 from pgwui_common.__init__ import includeme as pgwui_common_includeme
 from pgwui_core import constants
-from pgwui_upload.__init__ import includeme as pgwui_upload_includeme
+from ${component.lower()}.__init__ import includeme ${'\\'}
+    as ${component.lower()}_includeme
 from ${component.lower()}.views import ${short_name}
 
+# Useless code that utilizes (sometimes) useful imports
+DummyRequest()
+get_current_registry()
+
+
 # Activiate our pytest plugin
 pytest_plugins = ("pgwui",)
 
@@ -48,6 +55,42 @@ CHANGED_RESPONSE = {
 UNCHANGED_RESPONSE = {'db_changed': False}
 
 
+# Helper classes
+
+class MockUploadEngine():
+    def __init__(self, run_result):
+        self.run_result = run_result
+
+    def run(self):
+        return self.run_result
+
+
+# Fixtures
+
+@pytest.fixture
+def isolate_upload_view(monkeypatch, pyramid_request_config):
+    '''Keep upload_view() from calling anything
+
+    Also, have isolate_upload_view(response)
+    cause UploadEngine to return the supplied "response".
+    '''
+    def run(response):
+        def upload_engine(*args):
+            return MockUploadEngine(response)
+
+        monkeypatch.setattr(${short_name}, 'UploadEngine', upload_engine)
+
+        settings = pyramid_request_config.get_settings()
+        settings['pgwui'] = settings.get('pgwui', dict())
+        # settings['pgwui'].update({'home_page': HOME_PAGE_SETTINGS})
+        pgwui_common_includeme(pyramid_request_config)
+        ${component.lower()}_includeme(pyramid_request_config)
+        # settings['pgwui'].update({'urls': DEFAULT_URLS})
+        pyramid_request_config.add_settings(settings)
+
+    return run
+
+
 # Tests
 
 # ${short_name}_view()
@@ -83,7 +126,7 @@ def test_upload_view_db_changed_csv(return_log_tuples):
 
     assert result == response
     assert ([tup[:2] for tup in log_tuples]
-            == [('pgwui_upload.views.upload', logging.INFO)])
+            == [('${component.lower()}.views.${short_name}', logging.INFO)])
 
 
 def test_upload_view_db_changed_no_csv(return_log_tuples):
@@ -94,4 +137,4 @@ def test_upload_view_db_changed_no_csv(return_log_tuples):
 
     assert result == response
     assert ([tup[:2] for tup in log_tuples]
-            == [('pgwui_upload.views.upload', logging.INFO)])
+            == [('${component.lower()}.views.${short_name}', logging.INFO)])