1

Тема: Тестування проєкту Pyside6 з pytest-qt

Ось код для головного вікна, працює без проблем:

# This Python file uses the following encoding: utf-8
import sys

from PySide6.QtWidgets import QApplication, QMainWindow

# Important:
# You need to run the following command to generate the ui_form.py file
#     pyside6-uic form.ui -o ui_form.py, or
#     pyside2-uic form.ui -o ui_form.py
# from ui_form import Ui_MainWindow
from ui_MainWindow import Ui_MainWindow

class MainWindow(QMainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.ui = Ui_MainWindow()
        self.ui.setupUi(self)


if __name__ == "__main__":
    app = QApplication(sys.argv)
    widget = MainWindow()
    widget.show()
    sys.exit(app.exec())

Ось код для тесту:

"""File with tests for mainwindow"""

from Movar_qt.mainwindow import MainWindow


def test_window_visibility(qtbot) -> None:
    """Test for mainwindow visibility"""
    window = MainWindow()
    qtbot.addWidget(window)  # Register the widget with qtbot

    assert not window.isVisible()  # Initially, it's not visible

    window.show()
    qtbot.waitExposed(
        window, timeout=500
    )  # Wait for the window to actually become visible

    assert window.isVisible()

    window.close()

    assert not window.isVisible()

Щоразу, коли я набираю в консолі:

python -m pytest

Видає ось таку помилку:
Hint: make sure your test modules/packages have valid Python names.
Traceback:
/usr/lib/python3.13/importlib/__init__.py:88: in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
tests/test_mainwindow.py:3: in <module>
    from Movar_qt.mainwindow import MainWindow
Movar_qt/mainwindow.py:11: in <module>
    from ui_MainWindow import Ui_MainWindow
E   ModuleNotFoundError: No module named 'ui_MainWindow'

Не розумію, чому pytest  не бачить цього файлу.
Ініти в кожній теці, програма зібрана в QtCreator з Pyside6.