diff --git a/tests/test_base_init.py b/tests/test_base_init.py new file mode 100644 index 00000000..c45dc65f --- /dev/null +++ b/tests/test_base_init.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +"""novelWriter Main Init Tester +""" + +import nw +import pytest +import logging +import sys + +@pytest.mark.base +def testBaseInit_Launch(qtbot, monkeypatch, fncDir, tmpDir): + """Test the main __init__.py file. + """ + # Defaults + nwGUI = nw.main( + ["--testmode", "--config=%s" % fncDir, "--data=%s" % tmpDir, "--style=Fusion"] + ) + assert nw.logger.getEffectiveLevel() == logging.WARNING + nwGUI.closeMain() + nwGUI.close() + + # Log Levels + nwGUI = nw.main( + ["--testmode", "--info", "--config=%s" % fncDir, "--data=%s" % tmpDir] + ) + assert nw.logger.getEffectiveLevel() == logging.INFO + nwGUI.closeMain() + nwGUI.close() + + nwGUI = nw.main( + ["--testmode", "--debug", "--config=%s" % fncDir, "--data=%s" % tmpDir] + ) + assert nw.logger.getEffectiveLevel() == logging.DEBUG + nwGUI.closeMain() + nwGUI.close() + + nwGUI = nw.main( + ["--testmode", "--verbose", "--config=%s" % fncDir, "--data=%s" % tmpDir] + ) + assert nw.logger.getEffectiveLevel() == 5 + nwGUI.closeMain() + nwGUI.close() + + # Help and Version + with pytest.raises(SystemExit) as ex: + nwGUI = nw.main( + ["--testmode", "--help", "--config=%s" % fncDir, "--data=%s" % tmpDir] + ) + nwGUI.closeMain() + nwGUI.close() + assert ex.value.code == 0 + + with pytest.raises(SystemExit) as ex: + nwGUI = nw.main( + ["--testmode", "--version", "--config=%s" % fncDir, "--data=%s" % tmpDir] + ) + nwGUI.closeMain() + nwGUI.close() + assert ex.value.code == 0 + + # Invalid options + with pytest.raises(SystemExit) as ex: + nwGUI = nw.main( + ["--testmode", "--invalid", "--config=%s" % fncDir, "--data=%s" % tmpDir] + ) + nwGUI.closeMain() + nwGUI.close() + assert ex.value.code == 2 + + # Simulate import error + monkeypatch.setitem(sys.modules, "lxml", None) + monkeypatch.setattr("sys.hexversion", 0x0) + monkeypatch.setattr("nw.CONFIG.verQtValue", 50000) + monkeypatch.setattr("nw.CONFIG.verPyQtValue", 50000) + with pytest.raises(SystemExit) as ex: + nwGUI = nw.main( + ["--testmode", "--config=%s" % fncDir, "--data=%s" % tmpDir] + ) + nwGUI.closeMain() + nwGUI.close() + assert ex.value.code & 4 == 4 # Python version not satisfied + assert ex.value.code & 8 == 8 # Qt version not satisfied + assert ex.value.code & 16 == 16 # PyQt version not satisfied + assert ex.value.code & 32 == 32 # lxml package missing + monkeypatch.undo() + +# END Test testBaseInit_Launch diff --git a/tests/test_gui_main.py b/tests/test_gui_main.py index a10c0582..b56c525b 100644 --- a/tests/test_gui_main.py +++ b/tests/test_gui_main.py @@ -4,9 +4,7 @@ import nw import pytest -import logging import os -import sys from shutil import copyfile from tools import cmpFiles @@ -26,82 +24,6 @@ keyDelay = 2 typeDelay = 1 stepDelay = 20 -@pytest.mark.gui -def testLaunch(qtbot, monkeypatch, fncDir, tmpDir): - - # Defaults - nwGUI = nw.main( - ["--testmode", "--config=%s" % fncDir, "--data=%s" % tmpDir, "--style=Fusion"] - ) - assert nw.logger.getEffectiveLevel() == logging.WARNING - nwGUI.closeMain() - nwGUI.close() - - # Log Levels - nwGUI = nw.main( - ["--testmode", "--info", "--config=%s" % fncDir, "--data=%s" % tmpDir] - ) - assert nw.logger.getEffectiveLevel() == logging.INFO - nwGUI.closeMain() - nwGUI.close() - - nwGUI = nw.main( - ["--testmode", "--debug", "--config=%s" % fncDir, "--data=%s" % tmpDir] - ) - assert nw.logger.getEffectiveLevel() == logging.DEBUG - nwGUI.closeMain() - nwGUI.close() - - nwGUI = nw.main( - ["--testmode", "--verbose", "--config=%s" % fncDir, "--data=%s" % tmpDir] - ) - assert nw.logger.getEffectiveLevel() == 5 - nwGUI.closeMain() - nwGUI.close() - - # Help and Version - with pytest.raises(SystemExit) as ex: - nwGUI = nw.main( - ["--testmode", "--help", "--config=%s" % fncDir, "--data=%s" % tmpDir] - ) - nwGUI.closeMain() - nwGUI.close() - assert ex.value.code == 0 - - with pytest.raises(SystemExit) as ex: - nwGUI = nw.main( - ["--testmode", "--version", "--config=%s" % fncDir, "--data=%s" % tmpDir] - ) - nwGUI.closeMain() - nwGUI.close() - assert ex.value.code == 0 - - # Invalid options - with pytest.raises(SystemExit) as ex: - nwGUI = nw.main( - ["--testmode", "--invalid", "--config=%s" % fncDir, "--data=%s" % tmpDir] - ) - nwGUI.closeMain() - nwGUI.close() - assert ex.value.code == 2 - - # Simulate import error - monkeypatch.setitem(sys.modules, "lxml", None) - monkeypatch.setattr("sys.hexversion", 0x0) - monkeypatch.setattr("nw.CONFIG.verQtValue", 50000) - monkeypatch.setattr("nw.CONFIG.verPyQtValue", 50000) - with pytest.raises(SystemExit) as ex: - nwGUI = nw.main( - ["--testmode", "--config=%s" % fncDir, "--data=%s" % tmpDir] - ) - nwGUI.closeMain() - nwGUI.close() - assert ex.value.code & 4 == 4 # Python version not satisfied - assert ex.value.code & 8 == 8 # Qt version not satisfied - assert ex.value.code & 16 == 16 # PyQt version not satisfied - assert ex.value.code & 32 == 32 # lxml package missing - monkeypatch.undo() - @pytest.mark.gui def testDocEditor(qtbot, yesToAll, fncDir, nwTempGUI, refDir, tmpDir):