Hello Dan!
Sorry for not having replied to your question so far... Don't
overestimate our testing capabilities;-)
Below, you can see some example code with a class with multiple tests.
Hope it helps...
Aaron
import unittest
import sys
from PySide.QtGui import *
from PySide.QtCore import *
from PySide.QtTest import *
class TestDemo(unittest.TestCase):
@classmethod
def setUpClass(cls):
try:
cls.app = QApplication(sys.argv)
except:
pass
def test_widget_1(self):
w1 = QPushButton()
w1.clicked.connect(self.slot)
QTest.mouseClick(w1, Qt.LeftButton)
self.assertTrue(self.clicked)
def test_widget_2(self):
w2 = QPushButton()
w2.clicked.connect(self.slot)
QTest.mouseClick(w2, Qt.LeftButton)
self.assertTrue(self.clicked)
def slot(self):
self.clicked = True
if __name__ == '__main__':
unittest.main()
Am 29.10.2013 20:33, schrieb Dan McCombs:
Ok, let me ask this question -
Someone out there must be unit testing their PySide code. Could you
give an example of a test class with multiple separate tests?
Thanks!
-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 Sat, Oct 26, 2013 at 8:01 AM, Dan McCombs <[email protected]
<mailto:[email protected]>> wrote:
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 <[email protected]
<mailto:[email protected]>> 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
_______________________________________________
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