diff options
| author | Brianna Rainey | 2026-01-29 14:50:29 -0500 |
|---|---|---|
| committer | GitHub | 2026-01-29 14:50:29 -0500 |
| commit | 71a22c6a121d1294a05ef35020c525fa70cae2fd (patch) | |
| tree | 025dd2329c214a5fe5ac78c7f2e8342e2bfde14d /tests/test_mainwindow_projects.py | |
| parent | f66eb99465c61232a7f649e66bee59504bb0e52c (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.py | 40 |
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 |
