From f975144f25d34f97329b2d4e52891061573cea08 Mon Sep 17 00:00:00 2001 From: Aeliton G. Silva Date: Mon, 12 Jan 2026 22:39:55 -0300 Subject: Use pyproject.toml + uv_build This replaces setup.py by a modern pyproject.toml using uv_build backend. Dependencies are being also managed by uv, so to install dependencies and run the project one can execute: ``` uv sync uv run pytest # optional python -m avp ``` To build the both source and binary (wheel) distribution package run: ``` uv build ``` Uv can be installed with `pip install uv`. The directory structure has been changed to reflect best practices. - src/* -> src/avp/ - src/tests -> ../tests --- src/tests/__init__.py | 27 --------------------- src/tests/data/test.jpg | Bin 48766 -> 0 bytes src/tests/data/test.ogg | Bin 30043 -> 0 bytes src/tests/data/test.png | Bin 220 -> 0 bytes src/tests/test_commandline_export.py | 39 ------------------------------ src/tests/test_commandline_parser.py | 45 ----------------------------------- src/tests/test_core_init.py | 21 ---------------- 7 files changed, 132 deletions(-) delete mode 100644 src/tests/__init__.py delete mode 100644 src/tests/data/test.jpg delete mode 100644 src/tests/data/test.ogg delete mode 100644 src/tests/data/test.png delete mode 100644 src/tests/test_commandline_export.py delete mode 100644 src/tests/test_commandline_parser.py delete mode 100644 src/tests/test_core_init.py (limited to 'src/tests') diff --git a/src/tests/__init__.py b/src/tests/__init__.py deleted file mode 100644 index e2d83e7..0000000 --- a/src/tests/__init__.py +++ /dev/null @@ -1,27 +0,0 @@ -import pytest -import os -import sys -from ..core import Core - - -def getTestDataPath(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.""" - os.environ["PYTEST_QT_API"] = "PyQt6" - 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 deleted file mode 100644 index 86266d9..0000000 Binary files a/src/tests/data/test.jpg and /dev/null differ diff --git a/src/tests/data/test.ogg b/src/tests/data/test.ogg deleted file mode 100644 index 46af76c..0000000 Binary files a/src/tests/data/test.ogg and /dev/null differ diff --git a/src/tests/data/test.png b/src/tests/data/test.png deleted file mode 100644 index f1ffd4a..0000000 Binary files a/src/tests/data/test.png and /dev/null differ diff --git a/src/tests/test_commandline_export.py b/src/tests/test_commandline_export.py deleted file mode 100644 index 6126da7..0000000 --- a/src/tests/test_commandline_export.py +++ /dev/null @@ -1,39 +0,0 @@ -import sys -import os -import tempfile -from ..command import Command -from . import getTestDataPath -from pytestqt import qtbot - - -def test_commandline_classic_export(qtbot): - """Run Qt event loop and create a video in the system /tmp or /temp""" - soundFile = getTestDataPath("test.ogg") - outputDir = tempfile.mkdtemp(prefix="avp-test-") - outputFilename = os.path.join(outputDir, "output.mp4") - sys.argv = [ - "", - "-c", - "0", - "classic", - "-i", - soundFile, - "-o", - outputFilename, - ] - - command = Command() - command.quit = lambda _: None - command.parseArgs() - # Command object now has a video_thread Worker which is exporting the video - - with qtbot.waitSignal(command.worker.videoCreated, timeout=10000): - """ - Wait until videoCreated is emitted by the video_thread Worker - or until 10 second timeout has passed - """ - print(f"Test Video created at {outputFilename}") - - assert os.path.exists(outputFilename) - # output video should be at least 200kb - assert os.path.getsize(outputFilename) > 200000 diff --git a/src/tests/test_commandline_parser.py b/src/tests/test_commandline_parser.py deleted file mode 100644 index 5d1232b..0000000 --- a/src/tests/test_commandline_parser.py +++ /dev/null @@ -1,45 +0,0 @@ -import sys -import pytest -from ..command import Command - - -def test_commandline_help(): - command = Command() - sys.argv = ["", "--help"] - with pytest.raises(SystemExit): - command.parseArgs() - - -def test_commandline_help_if_bad_args(): - command = Command() - sys.argv = ["", "--junk"] - with pytest.raises(SystemExit): - command.parseArgs() - - -def test_commandline_launches_gui_if_debug(): - command = Command() - sys.argv = ["", "--debug"] - mode = command.parseArgs() - assert mode == "GUI" - - -def test_commandline_launches_gui_if_debug_with_project(): - command = Command() - sys.argv = ["", "test", "--debug"] - mode = command.parseArgs() - assert mode == "GUI" - - -def test_commandline_tries_to_export(): - command = Command() - didCallFunction = False - - def captureFunction(*args): - nonlocal didCallFunction - didCallFunction = True - - sys.argv = ["", "-c", "0", "classic", "-i", "_", "-o", "_"] - command.createAudioVisualization = captureFunction - command.parseArgs() - assert didCallFunction diff --git a/src/tests/test_core_init.py b/src/tests/test_core_init.py deleted file mode 100644 index 950dc13..0000000 --- a/src/tests/test_core_init.py +++ /dev/null @@ -1,21 +0,0 @@ -from ..core import Core - - -def test_component_names(): - core = Core() - assert core.compNames == [ - "Classic Visualizer", - "Color", - "Conway's Game of Life", - "Image", - "Sound", - "Spectrum", - "Title Text", - "Video", - "Waveform", - ] - - -def test_moduleindex(): - core = Core() - assert core.moduleIndexFor("Classic Visualizer") == 0 -- cgit v1.2.3