Hello Diego

I ran into the same issues some time ago and couldn't solve it... But now, I tried again and found a way to get references of the objects you mentioned. Please check the following example to see how it works:

http://pastebin.com/pL7uEXYG

It shows both, modal dialogs and message boxes. For testing, it's always the same approach I guess:

- Start a QTimer.singleShot() before triggering the message box or dialog, give it enough time to start the dialog and a callable where you grab the active widget
- Then trigger the message box or dialog
- The callable is executed automatically a few milliseconds later. Grab the active dialog and perform some actions or assert some properties on it as usual in tests...

I think, there is not too much overhead like this, it's just always one line (...singleShot...) before performing the action that executes the dialog.

I hope, it helps!
Have a nice evening!
Aaron

Am 22.06.2012 21:24, schrieb Diego Gaustein:
Hello, I'm trying to write unit tests for an application I developed. Using Python's unittest module and QTest helpers for simulating mouse and keyboard events works fine for simple widgets, but I'm having trouble testing the whole application, in particular modal dialogs, since they block the flow of execution until closed. Using QTimers for simple dialogs works fine, but the code becomes increasingly ugly for complex and nested dialogs.
How can I test my application in a straightforward and reliable manner?
Also, when using QMessageBox's static methods I find no way of getting a reference to the newly created dialog. Is there a way around this?

Many thanks,
Diego


_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside

_______________________________________________
PySide mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/pyside

Reply via email to