Проверка шапки приложения
Всем добрый день! Я столкнулся с проблемой при написании автотестов на pytest для приложения написанного на PyQt5. Вот код:
import pytest
from fc.fc_image import FCImage
from widgets.main_window import MainWindow
directories = [
'C:/Users/akimov/Desktop/SmartForce-4.0/instances/C3SCIN-GC2-222248-V1_da99',
'C:/Users/akimov/Desktop/SmartForce-4.0/instances/C3SCIN-GC2-222251-V2_DA78',
'C:/Users/akimov/Desktop/SmartForce-4.0/instances/C3SCIN-GC2-222251-V2_DA99',
]
@pytest.fixture
def app(qtbot):
fc = FCImage()
mw = MainWindow(fc)
qtbot.addWidget(mw)
return mw
@pytest.mark.parametrize('directory', directories)
def test_header_name_with_project(monkeypatch, qtbot, directory):
def fake_openProject():
pass
monkeypatch.setattr(MainWindow, 'openProject', fake_openProject)
window = MainWindow(FCImage())
qtbot.addWidget(window)
assert window.windowTitle() in directory
Цель данного теста состоит в том, чтобы открыть поочерёдно пути из массива и отобразить их путь в шапке программы. Попытки реализации:
- Напрямую вызвать функцию открытия окна с выбором проекта (QFileDialog)
app.openProject()
после чего проводил проверку на соответствиеassert window.windowTitle() in directory
, но при запуске теста открывалось окно с выбором проекта и приходилось взаимодействовать с окном руками. - Код, который я предоставил выше является последним вариантов, в котором я через заглушку решаю проблему из 1-го пункта с открытием окна.
Подскажите пожалуйста, что я не так делаю и как это вообще возможно сделать.