diff options
| author | tassaron | 2022-04-26 13:10:29 -0400 |
|---|---|---|
| committer | tassaron | 2022-04-26 13:10:29 -0400 |
| commit | 17b4cba6d1a5f24b4de3b53f79b93dd409e28ccd (patch) | |
| tree | 77bc1cfe57e4e756b0a56833bb2784b0c7ee630b /src | |
| parent | fe3251c528df7eff51be6ecbb18261990b524944 (diff) | |
tests for commandline argument parsing
Diffstat (limited to 'src')
| -rw-r--r-- | src/command.py | 6 | ||||
| -rw-r--r-- | src/main.py | 12 | ||||
| -rw-r--r-- | src/tests/__init__.py | 4 | ||||
| -rw-r--r-- | src/tests/test_commandline_parser.py | 39 | ||||
| -rw-r--r-- | src/tests/test_export_classic.py | 5 |
5 files changed, 54 insertions, 12 deletions
diff --git a/src/command.py b/src/command.py index 0aab0f7..db72de7 100644 --- a/src/command.py +++ b/src/command.py @@ -133,14 +133,18 @@ class Command(QtCore.QObject): if 'audioFile' in key: input = value self.createAudioVisualisation(input, output) + return "commandline" elif self.args.input and self.args.output: self.createAudioVisualisation(self.args.input, self.args.output) + return "commandline" - elif 'help' not in sys.argv: + elif 'help' not in sys.argv and self.args.projpath is None and '--debug' not in sys.argv: self.parser.print_help() quit(1) + return "GUI" + def createAudioVisualisation(self, input, output): self.core.selectedComponents = list( reversed(self.core.selectedComponents)) diff --git a/src/main.py b/src/main.py index 5fabda3..39fa997 100644 --- a/src/main.py +++ b/src/main.py @@ -30,25 +30,25 @@ def main(): from .command import Command main = Command() - main.parseArgs() + mode = main.parseArgs() log.debug("Finished creating command object") - elif mode == 'GUI': + # Both branches here may occur in one execution: + # Commandline parsing could change mode back to GUI + if mode == 'GUI': from .gui.mainwindow import MainWindow window = uic.loadUi(os.path.join(wd, "gui", "mainwindow.ui")) - # window.adjustSize() desc = QtWidgets.QDesktopWidget() dpi = desc.physicalDpiX() - - topMargin = 0 if (dpi == 96) else int(10 * (dpi / 96)) + log.info("Detected screen DPI: %s", dpi) + window.resize( int(window.width() * (dpi / 96)), int(window.height() * (dpi / 96)) ) - # window.verticalLayout_2.setContentsMargins(0, topMargin, 0, 0) main = MainWindow(window, proj) log.debug("Finished creating main window") diff --git a/src/tests/__init__.py b/src/tests/__init__.py index f2b2ff1..062dca7 100644 --- a/src/tests/__init__.py +++ b/src/tests/__init__.py @@ -16,6 +16,10 @@ def command(): return Command() +def getTestData(filename): + return os.path.join(Core.wd, 'tests', 'data', filename) + + def run(logFile): """Run Pytest, which then imports and runs all tests in this module.""" with open(logFile, "w") as f: diff --git a/src/tests/test_commandline_parser.py b/src/tests/test_commandline_parser.py new file mode 100644 index 0000000..d672441 --- /dev/null +++ b/src/tests/test_commandline_parser.py @@ -0,0 +1,39 @@ +import sys +import pytest +from .__init__ import command + + +def test_commandline_help(command): + sys.argv = ['', '--help'] + with pytest.raises(SystemExit): + command.parseArgs() + + +def test_commandline_help_if_bad_args(command): + sys.argv = ['', '--junk'] + with pytest.raises(SystemExit): + command.parseArgs() + + +def test_commandline_launches_gui_if_debug(command): + sys.argv = ['', '--debug'] + mode = command.parseArgs() + assert mode == "GUI" + + +def test_commandline_launches_gui_if_debug_with_project(command): + sys.argv = ['', 'test', '--debug'] + mode = command.parseArgs() + assert mode == "GUI" + + +def test_commandline_export_creates_audio_visualization(command): + didCallFunction = False + def captureFunction(*args): + nonlocal didCallFunction + didCallFunction = True + + sys.argv = ['', '-c', '0', 'classic', '-i', '_', '-o', '_'] + command.createAudioVisualisation = captureFunction + command.parseArgs() + assert didCallFunction diff --git a/src/tests/test_export_classic.py b/src/tests/test_export_classic.py deleted file mode 100644 index a6d3e8c..0000000 --- a/src/tests/test_export_classic.py +++ /dev/null @@ -1,5 +0,0 @@ -from .__init__ import command - - -def test_export_classic_visualizer_default(command): - assert command |
