aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/test_commandline_parser.py7
-rw-r--r--tests/test_comp_color.py22
-rw-r--r--tests/test_comp_image.py (renamed from tests/test_image_comp.py)0
-rw-r--r--tests/test_comp_life.py23
-rw-r--r--tests/test_comp_original.py (renamed from tests/test_classic_visualizer.py)9
-rw-r--r--tests/test_comp_spectrum.py20
-rw-r--r--tests/test_comp_text.py45
-rw-r--r--tests/test_comp_waveform.py17
-rw-r--r--tests/test_text_comp.py34
-rw-r--r--tests/test_toolkit_common.py33
10 files changed, 168 insertions, 42 deletions
diff --git a/tests/test_commandline_parser.py b/tests/test_commandline_parser.py
index d092072..77836ce 100644
--- a/tests/test_commandline_parser.py
+++ b/tests/test_commandline_parser.py
@@ -51,6 +51,11 @@ def test_commandline_parses_classic_by_alias(qtbot):
assert command.parseCompName("original") == "Classic Visualizer"
-def test_commandline_parses_conway_by_name(qtbot):
+def test_commandline_parses_conway_by_short_name(qtbot):
command = Command()
assert command.parseCompName("conway") == "Conway's Game of Life"
+
+
+def test_commandline_parses_image_by_name(qtbot):
+ command = Command()
+ assert command.parseCompName("image") == "Image"
diff --git a/tests/test_comp_color.py b/tests/test_comp_color.py
new file mode 100644
index 0000000..6b82e4c
--- /dev/null
+++ b/tests/test_comp_color.py
@@ -0,0 +1,22 @@
+from avp.command import Command
+from pytestqt import qtbot
+from pytest import fixture
+from . import imageDataSum
+
+
+@fixture
+def coreWithColorComp(qtbot):
+ """Fixture providing a Command object with Color component added"""
+ command = Command()
+ command.settings.setValue("outputHeight", 1080)
+ command.settings.setValue("outputWidth", 1920)
+ command.core.insertComponent(0, command.core.moduleIndexFor("Color"), command)
+ yield command.core
+
+
+def test_comp_color_set_color(coreWithColorComp):
+ "Set imagePath of Image component"
+ comp = coreWithColorComp.selectedComponents[0]
+ comp.page.lineEdit_color1.setText("111,111,111")
+ image = comp.previewRender()
+ assert imageDataSum(image) == 1219276800
diff --git a/tests/test_image_comp.py b/tests/test_comp_image.py
index a4f05e1..a4f05e1 100644
--- a/tests/test_image_comp.py
+++ b/tests/test_comp_image.py
diff --git a/tests/test_comp_life.py b/tests/test_comp_life.py
new file mode 100644
index 0000000..ad78e52
--- /dev/null
+++ b/tests/test_comp_life.py
@@ -0,0 +1,23 @@
+from avp.command import Command
+from pytestqt import qtbot
+from pytest import fixture
+from . import imageDataSum
+
+
+@fixture
+def coreWithLifeComp(qtbot):
+ """Fixture providing a Command object with Waveform component added"""
+ command = Command()
+ command.settings.setValue("outputHeight", 1080)
+ command.settings.setValue("outputWidth", 1920)
+ command.core.insertComponent(
+ 0, command.core.moduleIndexFor("Conway's Game of Life"), command
+ )
+ yield command.core
+
+
+def test_comp_life_previewRender(coreWithLifeComp):
+ comp = coreWithLifeComp.selectedComponents[0]
+ comp.page.lineEdit_color.setText("111,111,111")
+ image = comp.previewRender()
+ assert imageDataSum(image) == 339785512
diff --git a/tests/test_classic_visualizer.py b/tests/test_comp_original.py
index e301263..6264644 100644
--- a/tests/test_classic_visualizer.py
+++ b/tests/test_comp_original.py
@@ -1,4 +1,5 @@
from avp.command import Command
+from avp.toolkit.visualizer import transformData
from pytestqt import qtbot
from pytest import fixture
from . import audioData, MockSignal, imageDataSum
@@ -31,13 +32,9 @@ def test_comp_classic_removed(coreWithClassicComp):
def test_comp_classic_drawBars(coreWithClassicComp, audioData):
"""Call drawBars after creating audio spectrum data manually."""
- spectrumArray = {
- 0: coreWithClassicComp.selectedComponents[0].transformData(
- 0, audioData[0], sampleSize, 0.08, 0.8, None, 20
- )
- }
+ spectrumArray = {0: transformData(0, audioData[0], sampleSize, 0.08, 0.8, None, 20)}
for i in range(sampleSize, len(audioData[0]), sampleSize):
- spectrumArray[i] = coreWithClassicComp.selectedComponents[0].transformData(
+ spectrumArray[i] = transformData(
i,
audioData[0],
sampleSize,
diff --git a/tests/test_comp_spectrum.py b/tests/test_comp_spectrum.py
new file mode 100644
index 0000000..44fb257
--- /dev/null
+++ b/tests/test_comp_spectrum.py
@@ -0,0 +1,20 @@
+from avp.command import Command
+from pytestqt import qtbot
+from pytest import fixture
+from . import imageDataSum
+
+
+@fixture
+def coreWithSpectrumComp(qtbot):
+ """Fixture providing a Command object with Spectrum component added"""
+ command = Command()
+ command.settings.setValue("outputHeight", 1080)
+ command.settings.setValue("outputWidth", 1920)
+ command.core.insertComponent(0, command.core.moduleIndexFor("Spectrum"), command)
+ yield command.core
+
+
+def test_comp_waveform_previewRender(coreWithSpectrumComp):
+ comp = coreWithSpectrumComp.selectedComponents[0]
+ image = comp.previewRender()
+ assert imageDataSum(image) == 71992628
diff --git a/tests/test_comp_text.py b/tests/test_comp_text.py
new file mode 100644
index 0000000..e389ff9
--- /dev/null
+++ b/tests/test_comp_text.py
@@ -0,0 +1,45 @@
+from avp.command import Command
+from PyQt6.QtGui import QFont
+from pytestqt import qtbot
+from pytest import fixture, mark
+from . import audioData, MockSignal, imageDataSum
+
+
+@fixture
+def coreWithTextComp(qtbot):
+ """Fixture providing a Command object with Title Text component added"""
+ command = Command()
+ command.core.insertComponent(0, command.core.moduleIndexFor("Title Text"), command)
+ yield command.core
+
+
+def setTextSettings(comp):
+ comp.page.spinBox_fontSize.setValue(40)
+ comp.page.checkBox_shadow.setChecked(True)
+ comp.page.spinBox_shadBlur.setValue(0)
+ comp.page.spinBox_shadX.setValue(2)
+ comp.page.spinBox_shadY.setValue(-2)
+ comp.page.fontComboBox_titleFont.setCurrentFont(QFont("Noto Sans"))
+ comp.page.lineEdit_textColor.setText("255,255,255")
+
+
+@mark.parametrize(
+ "width, height",
+ ((1920, 1080), (1280, 720)),
+)
+def test_comp_text_renderFrame(coreWithTextComp, width, height):
+ """Call renderFrame of Title Text component added to Command object."""
+ comp = coreWithTextComp.selectedComponents[0]
+ comp.parent.settings.setValue("outputWidth", width)
+ comp.parent.settings.setValue("outputHeight", height)
+ setTextSettings(comp)
+ comp.centerXY()
+ image = comp.frameRender(0)
+ assert comp.titleFont.family() == "Noto Sans"
+ assert comp.xPosition == width / 2
+ assert image.width == width
+ assert comp.fontSize == 40
+ assert comp.shadX == 2
+ assert comp.shadY == -2
+ assert comp.shadBlur == 0
+ assert imageDataSum(image) == 727403 or 738586
diff --git a/tests/test_comp_waveform.py b/tests/test_comp_waveform.py
new file mode 100644
index 0000000..a71040b
--- /dev/null
+++ b/tests/test_comp_waveform.py
@@ -0,0 +1,17 @@
+from avp.command import Command
+from pytestqt import qtbot
+from pytest import fixture
+
+
+@fixture
+def coreWithWaveformComp(qtbot):
+ """Fixture providing a Command object with Waveform component added"""
+ command = Command()
+ command.core.insertComponent(0, command.core.moduleIndexFor("Waveform"), command)
+ yield command.core
+
+
+def test_comp_waveform_setColor(coreWithWaveformComp):
+ comp = coreWithWaveformComp.selectedComponents[0]
+ comp.page.lineEdit_color.setText("255,255,255")
+ assert comp.color == (255, 255, 255)
diff --git a/tests/test_text_comp.py b/tests/test_text_comp.py
deleted file mode 100644
index 23dd1fd..0000000
--- a/tests/test_text_comp.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from avp.command import Command
-from PyQt6.QtGui import QFont
-from pytestqt import qtbot
-from pytest import fixture
-from . import audioData, MockSignal, imageDataSum
-
-
-@fixture
-def coreWithTextComp(qtbot):
- """Fixture providing a Command object with Title Text component added"""
- command = Command()
- command.core.insertComponent(0, command.core.moduleIndexFor("Title Text"), command)
- yield command.core
-
-
-def test_comp_text_renderFrame_resize(coreWithTextComp):
- """Call renderFrame of Title Text component added to Command object."""
- comp = coreWithTextComp.selectedComponents[0]
- comp.parent.settings.setValue("outputWidth", 1920)
- comp.parent.settings.setValue("outputHeight", 1080)
- comp.parent.core.updateComponent(0)
- comp.titleFont = QFont("Noto Sans")
- image = comp.frameRender(0)
- assert imageDataSum(image) == 2957069
-
-
-def test_comp_text_renderFrame(coreWithTextComp):
- """Call renderFrame of Title Text component added to Command object."""
- comp = coreWithTextComp.selectedComponents[0]
- comp.parent.settings.setValue("outputWidth", 1280)
- comp.parent.settings.setValue("outputHeight", 720)
- comp.parent.core.updateComponent(0)
- image = comp.frameRender(0)
- assert imageDataSum(image) == 1412293 or 1379298
diff --git a/tests/test_toolkit_common.py b/tests/test_toolkit_common.py
index d903842..8e9dca2 100644
--- a/tests/test_toolkit_common.py
+++ b/tests/test_toolkit_common.py
@@ -1,6 +1,27 @@
+from pytest import fixture
from pytestqt import qtbot
from avp.command import Command
-from avp.toolkit import blockSignals
+from avp.toolkit import blockSignals, rgbFromString
+
+
+@fixture
+def gotWarning():
+ """Check if a function called log.warning"""
+ import avp.toolkit.common as tk
+ warning = False
+ def gotWarning():
+ nonlocal warning
+ return warning
+ class log:
+ def warning(self, *args):
+ nonlocal warning
+ warning = True
+ oldLog = tk.log
+ tk.log = log()
+ try:
+ yield gotWarning
+ finally:
+ tk.log = oldLog
def test_blockSignals(qtbot):
@@ -11,3 +32,13 @@ def test_blockSignals(qtbot):
with blockSignals(comp.page.spinBox_scale):
assert comp.page.spinBox_scale.signalsBlocked() == True
assert comp.page.spinBox_scale.signalsBlocked() == False
+
+
+def test_rgbFromString(gotWarning):
+ assert rgbFromString("255,255,255") == (255, 255, 255)
+ assert not gotWarning()
+
+
+def test_rgbFromString_error(gotWarning):
+ assert rgbFromString("255,255,256") == (255, 255, 255)
+ assert gotWarning() \ No newline at end of file