Abstract common test pattern into a fixture
authorKarl O. Pinc <kop@karlpinc.com>
Thu, 5 Dec 2019 14:08:18 +0000 (08:08 -0600)
committerKarl O. Pinc <kop@karlpinc.com>
Thu, 5 Dec 2019 14:08:18 +0000 (08:08 -0600)
tests/views/test_upload.py

index dde7e77185660005eb5550f8d9d8470b36eee3a9..c5b322a9abf643fc5ca48024d2a74173b3acc5a1 100644 (file)
@@ -87,50 +87,46 @@ def isolate_upload_view(monkeypatch, pyramid_request_config):
 
 # upload_view()
 
-def test_upload_view_db_not_changed(isolate_upload_view, caplog):
-    '''When the db did not change nothing logs'''
+@pytest.fixture
+def return_log_tuples(isolate_upload_view, caplog):
+    '''Get result and the caplog.record_tuples from the upload_view() call'''
     caplog.set_level(logging.DEBUG)
 
-    response = {'db_changed': False}
+    def run(response):
+        isolate_upload_view(response)
+        result = upload.upload_view(get_current_request())
+        del result['pgwui']  # Remove variables added by pgwui view decorators
 
-    isolate_upload_view(response)
-    result = upload.upload_view(get_current_request())
-    del result['pgwui']  # Remove variables added by pgwui view decorators
+        return (result, caplog.record_tuples)
 
-    log_tuples = caplog.record_tuples
+    return run
+
+
+def test_upload_view_db_not_changed(return_log_tuples):
+    '''When the db did not change nothing logs'''
+    response = UNCHANGED_RESPONSE
+    (result, log_tuples) = return_log_tuples(response)
     assert result == response
     assert log_tuples == []
 
 
-def test_upload_view_db_changed_csv(isolate_upload_view, caplog):
+def test_upload_view_db_changed_csv(return_log_tuples):
     '''When the db did change from CSV input something logs'''
-    caplog.set_level(logging.DEBUG)
-
     response = CHANGED_RESPONSE
     response['csv_checked'] = form_constants.CHECKED
+    (result, log_tuples) = return_log_tuples(response)
 
-    isolate_upload_view(response)
-    result = upload.upload_view(get_current_request())
-    del result['pgwui']  # Remove variables added by pgwui view decorators
-
-    log_tuples = caplog.record_tuples
     assert result == response
     assert ([tup[:2] for tup in log_tuples]
             == [('pgwui_upload.views.upload', logging.INFO)])
 
 
-def test_upload_view_db_changed_no_csv(isolate_upload_view, caplog):
+def test_upload_view_db_changed_no_csv(return_log_tuples):
     '''When the db did change from not-CSV input something logs'''
-    caplog.set_level(logging.DEBUG)
-
     response = CHANGED_RESPONSE
     response['csv_checked'] = form_constants.UNCHECKED
+    (result, log_tuples) = return_log_tuples(response)
 
-    isolate_upload_view(response)
-    result = upload.upload_view(get_current_request())
-    del result['pgwui']  # Remove variables added by pgwui view decorators
-
-    log_tuples = caplog.record_tuples
     assert result == response
     assert ([tup[:2] for tup in log_tuples]
             == [('pgwui_upload.views.upload', logging.INFO)])