~ubuntu-branches/ubuntu/oneiric/pyside/oneiric

« back to all changes in this revision

Viewing changes to tests/QtGui/paint_event_test.py

  • Committer: Bazaar Package Importer
  • Author(s): Didier Raboud
  • Date: 2010-09-27 21:01:06 UTC
  • mfrom: (1.2.1 upstream) (6.1.3 experimental)
  • Revision ID: james.westby@ubuntu.com-20100927210106-m1nrq8vmd3exqb9o
Tags: 0.4.1-0ubuntu1
* New 0.4.1 upstream release. (LP: #648612)
  - Add some 0.4.1 symbols.

* Patches:
  - u_c130273_fix_py25_QtScript_property.patch
    Remove, was from upstream.
  - u_20e226b_fix_missing_qcoreapplication_arguments_method.patch
    Remove, was from upstream.
  - u_268bf77_fixed_signal_signature_parser.patch
    Remove, was from upstream.
  + libPythonVersionPostfix.patch: Refresh
  + usePySpecificShiboken.patch: Refresh
  + lessBuildVerbosity.patch: Refresh

* Bump the B-D chain versions.
* Make sure the private.py is installed in QtCore module.
* Build against Qt 4.7.
  - Add libqtwebkit-dev
  - Drop QtMultimedia module.
  - Add the QtDeclarative package.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
'''Test paint event override in python'''
 
3
 
 
4
import unittest
 
5
 
 
6
from PySide.QtCore import QTimerEvent
 
7
from PySide.QtGui import QApplication, QWidget
 
8
 
 
9
from helper import UsesQApplication
 
10
 
 
11
class MyWidget(QWidget):
 
12
    '''Sample widget'''
 
13
 
 
14
    def __init__(self, app=None):
 
15
        #Creates a new widget
 
16
        if app is None:
 
17
            app = QApplication([])
 
18
 
 
19
        super(MyWidget, self).__init__()
 
20
        self.app = app
 
21
        self.runs = 0
 
22
        self.max_runs = 5
 
23
        self.paint_event_called = False
 
24
 
 
25
    def timerEvent(self, event):
 
26
        #Timer event method
 
27
        self.runs += 1
 
28
 
 
29
        if self.runs == self.max_runs:
 
30
            self.app.quit()
 
31
 
 
32
        if not isinstance(event, QTimerEvent):
 
33
            raise TypeError('Invalid event type. Must be QTimerEvent')
 
34
 
 
35
    def paintEvent(self, event):
 
36
        #Empty paint event method
 
37
        # XXX: should be using super here, but somehow PyQt4
 
38
        # complains about paintEvent not present in super
 
39
        QWidget.paintEvent(self, event)
 
40
        self.paint_event_called = True
 
41
 
 
42
 
 
43
class PaintEventOverride(UsesQApplication):
 
44
    '''Test case for overriding QWidget.paintEvent'''
 
45
 
 
46
    qapplication = True
 
47
 
 
48
    def setUp(self):
 
49
        #Acquire resources
 
50
        super(PaintEventOverride, self).setUp()
 
51
        self.widget = MyWidget(self.app)
 
52
 
 
53
    def tearDown(self):
 
54
        #Release resources
 
55
        del self.widget
 
56
        super(PaintEventOverride, self).tearDown()
 
57
 
 
58
    def testPaintEvent(self):
 
59
        #Test QWidget.paintEvent override
 
60
        timer_id = self.widget.startTimer(100)
 
61
        self.widget.show()
 
62
        self.app.exec_()
 
63
 
 
64
        self.widget.killTimer(timer_id)
 
65
 
 
66
        self.assert_(self.widget.paint_event_called)
 
67
        self.assertEqual(self.widget.runs, 5)
 
68
 
 
69
 
 
70
if __name__ == '__main__':
 
71
    unittest.main()