On startup fail also print to stderr
authorKarl O. Pinc <kop@karlpinc.com>
Thu, 12 Dec 2019 07:07:15 +0000 (01:07 -0600)
committerKarl O. Pinc <kop@karlpinc.com>
Thu, 12 Dec 2019 07:07:15 +0000 (01:07 -0600)
src/pgwui_server/__init__.py
tests/test___init__.py

index be9fa286069f646ca95e4be7818921e478d274ad..a69595817a169fc2caeb7bc33f7d122f4fcbf590 100644 (file)
@@ -188,6 +188,7 @@ def exit_on_invalid_settings(settings):
         validate_settings(settings)
     except Error as ex:
         log.critical(ex)
+        print(ex, file=sys.stderr)    # in case logging is broken
         sys.exit(1)
 
 
index 2891807dd9d7065dac3b61171676d6945346e330..743145ab5a046a1b2388a4093f184ffde10b892f 100644 (file)
@@ -258,8 +258,10 @@ def test_validate_settings(monkeypatch):
 
 # exit_on_invalid_settings()
 
-def test_exit_on_invalid_settings_exits(monkeypatch, caplog):
-    '''Logs critical and exits with 1 when a setting is invalid'''
+def test_exit_on_invalid_settings_exits(monkeypatch, capsys, caplog):
+    '''Logs critical, prints on stderr, and exits with 1 when a
+    setting is invalid
+    '''
     caplog.set_level(logging.CRITICAL)
 
     exit1_called = False
@@ -279,10 +281,13 @@ def test_exit_on_invalid_settings_exits(monkeypatch, caplog):
 
     assert exit1_called
     assert len(caplog.record_tuples) == 1
+    (out, err) = capsys.readouterr()
+    assert out == ''
+    assert err != ''
 
 
-def test_exit_on_invalid_settings_valid(monkeypatch, caplog):
-    '''Returns without logging when all settings are valid'''
+def test_exit_on_invalid_settings_valid(monkeypatch, capsys, caplog):
+    '''Returns, without logging or printing, when all settings are valid'''
     caplog.set_level(logging.INFO)
 
     def mock_validate_settings(settings):
@@ -294,6 +299,9 @@ def test_exit_on_invalid_settings_valid(monkeypatch, caplog):
     pgwui_server_init.exit_on_invalid_settings({})
 
     assert len(caplog.record_tuples) == 0
+    (out, err) = capsys.readouterr()
+    assert out == ''
+    assert err == ''
 
 
 # parse_assignments()