Проверка шапки приложения

Всем добрый день! Я столкнулся с проблемой при написании автотестов на 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

Цель данного теста состоит в том, чтобы открыть поочерёдно пути из массива и отобразить их путь в шапке программы. Попытки реализации:

  1. Напрямую вызвать функцию открытия окна с выбором проекта (QFileDialog) app.openProject() после чего проводил проверку на соответствие assert window.windowTitle() in directory, но при запуске теста открывалось окно с выбором проекта и приходилось взаимодействовать с окном руками.
  2. Код, который я предоставил выше является последним вариантов, в котором я через заглушку решаю проблему из 1-го пункта с открытием окна.

Подскажите пожалуйста, что я не так делаю и как это вообще возможно сделать.


Ответы (0 шт):