aboutsummaryrefslogtreecommitdiff
path: root/tests/test_mainwindow_projects.py
diff options
context:
space:
mode:
authorBrianna Rainey2026-01-29 14:50:29 -0500
committerGitHub2026-01-29 14:50:29 -0500
commit71a22c6a121d1294a05ef35020c525fa70cae2fd (patch)
tree025dd2329c214a5fe5ac78c7f2e8342e2bfde14d /tests/test_mainwindow_projects.py
parentf66eb99465c61232a7f649e66bee59504bb0e52c (diff)
v2.2.2 - fix flaky tests, fix UnboundLocalError in MainWindow.createNewProject (#94)
* search more than one filename for compName * remove extra QVBoxLayout * insert default components using name instead of index * bump version 2.2.1 to 2.2.2 * tests do not use `.config` for settings Core.storeSettings() is no longer called as a side effect any time avp.core is imported. Thus the tests use a new `initCore` method and the normal user path now relies on entering via `cli.py`. This means certain toolkit functions (e.g., ones using `FFMPEG_BIN`) no longer work if imported from a different python script, unless they call Core.storeSettings() themselves to initialize the settings.ini file * fix UnboundLocalError in createNewProject
Diffstat (limited to 'tests/test_mainwindow_projects.py')
-rw-r--r--tests/test_mainwindow_projects.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/test_mainwindow_projects.py b/tests/test_mainwindow_projects.py
new file mode 100644
index 0000000..8ad491a
--- /dev/null
+++ b/tests/test_mainwindow_projects.py
@@ -0,0 +1,40 @@
+from pytest import fixture
+from pytestqt import qtbot
+from . import getTestDataPath, window
+
+
+def test_mainwindow_clear(qtbot, window):
+ """MainWindow.clear() gives us a clean slate"""
+ assert len(window.core.selectedComponents) == 0
+
+
+def test_mainwindow_openProject(qtbot, window):
+ """Open testproject.avp using MainWindow.openProject()"""
+ window.openProject(getTestDataPath("projects/testproject.avp"), prompt=False)
+ assert len(window.core.selectedComponents) == 2
+
+
+def test_mainwindow_newProject_without_unsaved_changes(qtbot, window):
+ """Starting new project without unsaved changes"""
+ didCallFunction = False
+
+ def captureFunction(*args, **kwargs):
+ nonlocal didCallFunction
+ didCallFunction = True
+
+ window.createNewProject(prompt=False)
+ assert not didCallFunction
+ assert len(window.core.selectedComponents) == 0
+
+
+def test_mainwindow_newProject_with_unsaved_changes(qtbot, window):
+ """Starting new project with unsaved changes"""
+ didCallFunction = False
+
+ def captureFunction(*args, **kwargs):
+ nonlocal didCallFunction
+ didCallFunction = True
+
+ window.openSaveChangesDialog = captureFunction
+ window.createNewProject(prompt=True)
+ assert didCallFunction