[PySide] Creating and deleting instances of QApplication within unit tests

Dan McCombs dmccombs at dyn.com
Sat Oct 26 14:01:40 CEST 2013


Hi Matthew,

Yes, the first thing I tried was:

   app = QtGui.QApplication([])
   ...
   del app

But, the next test raises the exception about there already being a
QApplication instance when it runs that first line. That's why I resorted
to poking around trying to figure out where PySide is keeping track of that
original instance causing it to raise that exception.

-Dan


--
Dan McCombs
Senior Software Engineer / Dyn
http://dyn.com/

Are you prepared for website disaster? Find out in two minutes:
http://dyn.com/dynedu-disaster-planning/


On Fri, Oct 25, 2013 at 3:13 PM, Dan McCombs <dmccombs at dyn.com> wrote:

> Hey all,
>
> I've been struggling with unit testing my PySide application. My tests run
> fine, but if I have more than one test, Python segfaults on quit. It seems
> the solution would be to destroy/create the QApplication instance on each
> test run, as I've seen people mentioning in the case of PyQT such as:
>
> http://stuvel.eu/blog/127/multiple-instances-of-qapplication-in-one-process
>
> I've tried doing something similar in PySide with the following lines in
> my setUp for each test:
>
> QtGui.qApp = QtGui.QApplication([])
>
> And the following in my tearDown:
>
> QtGui.quit()
> QtGui.qApp = none
>
> However, the instance still exists (I can get it via
> QtGui.QApplication.instance()) and when the second test setUp starts to
> run, I get an exception that "A QApplication instance already exists.".
>
> How can I fully remove the QApplication instance between tests?
>
> Thanks,
>
> -Dan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/pyside/attachments/20131026/29f16730/attachment.html>


More information about the PySide mailing list