diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_commandline_parser.py | 7 | ||||
| -rw-r--r-- | tests/test_comp_color.py | 22 | ||||
| -rw-r--r-- | tests/test_comp_image.py (renamed from tests/test_image_comp.py) | 0 | ||||
| -rw-r--r-- | tests/test_comp_life.py | 23 | ||||
| -rw-r--r-- | tests/test_comp_original.py (renamed from tests/test_classic_visualizer.py) | 9 | ||||
| -rw-r--r-- | tests/test_comp_spectrum.py | 20 | ||||
| -rw-r--r-- | tests/test_comp_text.py | 45 | ||||
| -rw-r--r-- | tests/test_comp_waveform.py | 17 | ||||
| -rw-r--r-- | tests/test_text_comp.py | 34 | ||||
| -rw-r--r-- | tests/test_toolkit_common.py | 33 |
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 |
