pytest-qt icon indicating copy to clipboard operation
pytest-qt copied to clipboard

Clarify documentation around qtbot.waitSignals

Open gdeane-cri opened this issue 8 months ago • 1 comments

The current docs (https://pytest-qt.readthedocs.io/en/1.5.0/signals.html ) give some examples like this:

def test_long_computation(qtbot):
    app = Application()

    # Watch for the app.worker.finished signal, then start the worker.
    with qtbot.waitSignal(app.worker.finished, timeout=10000) as blocker:
        blocker.connect(app.worker.failed)  # Can add other signals to blocker
        app.worker.start()
        # Test will block at this point until signal is emitted or
        # 10 seconds has elapsed

    assert blocker.signal_triggered, "process timed-out"
    assert_application_results(app)

Except this does not work for me because Application() and assert_application_results are not defined. But the example reads as if this is a necessary step to verify the signal result. Is there some import required for these to function? Are they obsolete? Or if these are simply an example of how one could assert things on app at that point in the test, consider clarifying the example as written.

How to get the QApplication instance when using qtbot is a bit mysterious in the docs too. It just says you can. Application appears to be replaceable using from pytestqt.qt_compat import qt_api; Application = qt_api.QtWidgets.QApplication.instance but I have no idea if this is good practice.

gdeane-cri avatar Jun 04 '24 17:06 gdeane-cri