Hi,

I'm using PyQt4 to develop a GUI and I would like to use QtTest module for
my unit test. However, it doesn't work.
I would like to simulate a mouse click on my QtGui.QPushButton but in the
QTest class, the method's argument is a Qt.MouseButton.

QTest.mouseClick(QWidget widget, Qt.MouseButton
button,Qt.KeyboardModifiersstateKey = 0, QPoint pos = QPoint(), int
delay = -1)
Is there any way to simulate a click on my QPushButton with this QTest class
?

Thanks in advanced,
Sabrina.

--------------------------------------------------------------- CLASS TO
TEST
---------------------------------------------------------------------------------------------------

import sys
from PyQt4 import QtCore, QtGui, Qt

class Dialog(QtGui.QDialog):

   def __init__(self, parent = None):
       QtGui.QDialog.__init__(self, parent)
       frameStyle = QtGui.QFrame.Sunken | QtGui.QFrame.Panel
       self.textLabel = QtGui.QLabel()
       self.textLabel.setFrameStyle(frameStyle)
       self.textButton = QtGui.QPushButton(self.tr("QInputDialog.get&Text
()"))
       self.connect(self.textButton, QtCore.SIGNAL("clicked()"),
self.setText)
       layout = QtGui.QGridLayout()
       layout.setColumnStretch(1, 1)
       layout.setColumnMinimumWidth(1, 250)
       layout.addWidget(self.textButton, 3, 0)
       layout.addWidget(self.textLabel, 3, 1)
       self.setLayout(layout)
       self.setWindowTitle(self.tr("Standard Dialogs"))

   def setText(self):
       text, ok = QtGui.QInputDialog.getText(self, self.tr("
QInputDialog.getText()"),
                                                              self.tr("User
name:"),QtGui.QLineEdit.Normal,

QtCore.QDir.home().dirName())
       if ok and not text.isEmpty():
           self.textLabel.setText(text)

if __name__ == '__main__':
   app = QtGui.QApplication(sys.argv)
   dialog = Dialog()
   sys.exit(dialog.exec_())

---------------------------------------------------------------------------CLASS
TEST
-------------------------------------------------------------------------------------

import unittest, sys
from PyQt4.QtTest import QTest
from PyQt4 import QtCore, QtGui
from dialog import Dialog

class DialogTestCase (unittest.TestCase):

   def setUp(self):
       self.app = QtGui.QApplication(sys.argv)
       self.dialog = Dialog()

   def test_setText(self):
       QTest.mouseClick(self.dialog, self.dialog.textButton)

if __name__ == '__main__':
   unittest.main()


-----------------------------------------------------------------------------ERROR
MESSAGE --------
-------------------------------------------------------------------

Importing test modules ... done.

test_setText (test_dialog.DialogTestCase) ... ERROR


======================================================================
ERROR: test_setText (test_dialog.DialogTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
 File "/home/master/fr59701/workspace/pyqt test/src/test_dialog.py", line
17, in test_setText
   QTest.mouseClick(self.dialog, self.dialog.textButton)
TypeError: argument 2 of mouseClick() has an invalid type

----------------------------------------------------------------------
Ran 1 test in 0.039s

FAILED (errors=1)
_______________________________________________
PyQt mailing list    [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to