From fbbe6c0062aad297f13babc4f8ea21cc0d52d6b5 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Thu, 19 Sep 2024 13:28:12 -0500 Subject: [PATCH] Move logging into a function --- src/pgwui_sql/views/sql.py | 32 +++++++++++++++++++------------- tests/views/test_sql.py | 38 ++++++-------------------------------- 2 files changed, 25 insertions(+), 45 deletions(-) diff --git a/src/pgwui_sql/views/sql.py b/src/pgwui_sql/views/sql.py index a7ab78a..538dabd 100644 --- a/src/pgwui_sql/views/sql.py +++ b/src/pgwui_sql/views/sql.py @@ -225,6 +225,24 @@ class SQLResultsHandler(pgwui_core.core.SessionDBHandler): return pgwui_core.core.DataLineProcessor(ue, self) +def log_response(response): + if response['report_success']: + if pgwui_core.utils.is_checked(response['csv_checked']): + download_fmt = 'CSV' + else: + download_fmt = 'TAB' + if pgwui_core.utils.is_checked(response['one_file_checked']): + download_as = 'One file' + else: + download_as = 'A zip file of one file per result set' + log.info(': '.join( + [f'Successful sql: DB {response["db"]}', + # ' File ({filename}):' + f'Download Format {download_fmt}', + f'Download AS {download_as}', + f'By user {response["user"]}'])) + + @view_config(route_name='pgwui_sql', renderer='pgwui_sql:templates/sql.mak') @auth_base_view @@ -239,17 +257,5 @@ def sql_view(request): response['result_rows'] = uh.sql_results - if response['report_success']: - # if pgwui_core.utils.is_checked(response['csv_checked']): - # download_fmt = 'CSV' - # else: - # download_fmt = 'TAB' - log.info('Successful sql: DB {db}:' - # ' File ({filename}):' - # ' Format {format}:' - ' By user {user}' - .format( # filename=response['filename'], - # format=download_fmt, - db=response['db'], - user=response['user'])) + log_response(response) return response diff --git a/tests/views/test_sql.py b/tests/views/test_sql.py index f783c15..00625de 100644 --- a/tests/views/test_sql.py +++ b/tests/views/test_sql.py @@ -20,7 +20,6 @@ # Karl O. Pinc -import logging import pytest from pyramid.testing import DummyRequest from pyramid.threadlocal import get_current_request, get_current_registry @@ -73,7 +72,7 @@ class MockUploadEngine(): @pytest.fixture def isolate_sql_view(monkeypatch, pyramid_request_config): - '''Keep upload_view() from calling anything + '''Keep sql_view() from calling anything Also, have isolate_sql_view(response) cause UploadEngine to return the supplied "response". @@ -101,45 +100,20 @@ def isolate_sql_view(monkeypatch, pyramid_request_config): # sql_view() @pytest.fixture -def return_log_tuples(isolate_sql_view, caplog): - '''Get result and the caplog.record_tuples from the upload_view() call''' - caplog.set_level(logging.DEBUG) - +def cleanup_result(isolate_sql_view): + '''Get result from the upload_view() call, removing pgwui settings''' def run(response): isolate_sql_view(response) result = sql.sql_view(get_current_request()) del result['pgwui'] # Remove variables added by pgwui view decorators - return (result, caplog.record_tuples) + return result return run -def test_upload_view_db_not_changed(return_log_tuples): +def test_upload_view_db_not_changed(cleanup_result): '''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_report_success_csv(return_log_tuples): - '''When the db did change from CSV input something logs''' - response = CHANGED_RESPONSE - response['csv_checked'] = constants.CHECKED - (result, log_tuples) = return_log_tuples(response) - - assert result == response - assert ([tup[:2] for tup in log_tuples] - == [('pgwui_sql.views.sql', logging.INFO)]) - - -def test_upload_view_report_success_no_csv(return_log_tuples): - '''When the db did change from not-CSV input something logs''' - response = CHANGED_RESPONSE - response['csv_checked'] = constants.UNCHECKED - (result, log_tuples) = return_log_tuples(response) - + result = cleanup_result(response) assert result == response - assert ([tup[:2] for tup in log_tuples] - == [('pgwui_sql.views.sql', logging.INFO)]) -- 2.34.1