aboutsummaryrefslogtreecommitdiff
path: root/src/tests
diff options
context:
space:
mode:
authormartin2022-05-01 22:41:20 +0200
committerGitHub2022-05-01 22:41:20 +0200
commit4c5aa37aa6f41d909153a2b7d522db6d7582659a (patch)
tree326aa67921439defcb8c25ea5f770feb63e878a4 /src/tests
parent4a3ff8bfce622de0e5affa312d50557b5d336371 (diff)
parent820358a79a87b214139eb7693ce80e96be79e3d8 (diff)
Merge pull request #69 from djfun/feature-newgui
GUI Redesign with Component System
Diffstat (limited to 'src/tests')
-rw-r--r--src/tests/__init__.py36
-rw-r--r--src/tests/data/test.jpgbin0 -> 48766 bytes
-rw-r--r--src/tests/data/test.oggbin0 -> 30043 bytes
-rw-r--r--src/tests/data/test.pngbin0 -> 220 bytes
-rw-r--r--src/tests/test_commandline_parser.py39
-rw-r--r--src/tests/test_core_init.py19
6 files changed, 94 insertions, 0 deletions
diff --git a/src/tests/__init__.py b/src/tests/__init__.py
new file mode 100644
index 0000000..062dca7
--- /dev/null
+++ b/src/tests/__init__.py
@@ -0,0 +1,36 @@
+import pytest
+import os
+import sys
+from ..core import Core
+from ..command import Command
+
+
+@pytest.fixture
+def core():
+ return Core()
+
+
+@pytest.fixture
+def command():
+ """Like a MainWindow for commandline mode, this owns the Core"""
+ 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:
+ # temporarily redirect stdout to a text file so we capture pytest's output
+ sys.stdout = f
+ try:
+ val = pytest.main([
+ os.path.dirname(__file__),
+ "-s", # disable pytest's internal capturing of stdout etc.
+ ])
+ finally:
+ sys.stdout = sys.__stdout__
+
+ return val
diff --git a/src/tests/data/test.jpg b/src/tests/data/test.jpg
new file mode 100644
index 0000000..86266d9
--- /dev/null
+++ b/src/tests/data/test.jpg
Binary files differ
diff --git a/src/tests/data/test.ogg b/src/tests/data/test.ogg
new file mode 100644
index 0000000..46af76c
--- /dev/null
+++ b/src/tests/data/test.ogg
Binary files differ
diff --git a/src/tests/data/test.png b/src/tests/data/test.png
new file mode 100644
index 0000000..f1ffd4a
--- /dev/null
+++ b/src/tests/data/test.png
Binary files differ
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_core_init.py b/src/tests/test_core_init.py
new file mode 100644
index 0000000..696533a
--- /dev/null
+++ b/src/tests/test_core_init.py
@@ -0,0 +1,19 @@
+from .__init__ import core
+
+
+def test_component_names(core):
+ assert core.compNames == [
+ 'Classic Visualizer',
+ 'Color',
+ "Conway's Game of Life",
+ 'Image',
+ 'Sound',
+ 'Spectrum',
+ 'Title Text',
+ 'Video',
+ 'Waveform',
+ ]
+
+
+def test_moduleindex(core):
+ assert core.moduleIndexFor("Classic Visualizer") == 0