# Karl O. Pinc <kop@meme.com>
+import pytest
from pgwui_upload.views import upload
pass
-# Tests
+class MockLogger():
+ def __init__(self):
+ self.info_called = False
-# upload_view()
+ def info(self, *args):
+ self.info_called = True
-def test_upload_view_db_not_changed(monkeypatch):
- '''When the db did not change nothing logs'''
- # Have the pyramid.view.view_config decorator do nothing
- monkeypatch.setattr(upload, 'view_config',
- lambda **kwargs: (lambda func: func))
+# Fixtures
- mock_info_called = False
+@pytest.fixture
+def isolate_upload_view(monkeypatch):
+ '''Keep upload_view() from calling anything
- def mock_info(*args):
- nonlocal mock_info_called
- mock_info_called = True
+ Also, have isolate_upload_view(response)
+ cause UploadEngine to return the supplied "response".
+ '''
+ def run(response):
+ # Have the pyramid.view.view_config decorator do nothing
+ monkeypatch.setattr(upload, 'view_config',
+ lambda **kwargs: (lambda func: func))
- monkeypatch.setattr(upload, 'log', mock_info)
+ def upload_engine(*args):
+ return MockUploadEngine(response)
+
+ monkeypatch.setattr(upload, 'UploadEngine', upload_engine)
+ monkeypatch.setattr(
+ upload, 'TableUploadHandler', MockTableUploadHandler)
+
+ return run
- response = {'db_changed': False}
- def upload_engine(*args):
- return MockUploadEngine(response)
+# Tests
+
+# upload_view()
- monkeypatch.setattr(upload, 'UploadEngine', upload_engine)
- monkeypatch.setattr(upload, 'TableUploadHandler', MockTableUploadHandler)
+def test_upload_view_db_not_changed(monkeypatch, isolate_upload_view):
+ '''When the db did not change nothing logs'''
+
+ mock_logger = MockLogger()
+ monkeypatch.setattr(upload, 'log', mock_logger)
+ response = {'db_changed': False}
+ isolate_upload_view(response)
result = upload.upload_view(None)
assert result == response
- assert mock_info_called is False
+ assert mock_logger.info_called is False