1212
1313if not on_rtd : # pragma: no cover
1414 try :
15- import PySide .QtCore as _QtCore
16- QtCore = _QtCore
15+ from PySide import QtCore
1716 USING_PYSIDE = True
1817 except ImportError :
1918 USING_PYSIDE = False
2019
21- FORCE_PYQT = os .environ .get ('PYTEST_QT_FORCE_PYQT' , 'false' ) == 'true'
20+ FORCE_PYQT = os .environ .get ('PYTEST_QT_FORCE_PYQT' , 'false' ) != 'false'
21+ PYQT_VER = None
2222 if not USING_PYSIDE or FORCE_PYQT :
2323 try :
2424 import sip
2525 except ImportError :
2626 msg = 'pytest-qt requires either PyQt4 or PySide to be installed'
2727 raise ImportError (msg )
28+
29+ PYQT_VER = os .environ .get ['PYTEST_QT_FORCE_PYQT' ]
30+ # backward compatibility
31+ if PYQT_VER == 'true' :
32+ PYQT_VER = '4'
33+ if PYQT_VER not in ('4' , '5' ):
34+ raise RuntimeError ('Unsupported PyQt version: %s' % PYQT_VER )
35+
2836 USING_PYSIDE = False
29- import PyQt4 .QtCore as _QtCore
30- QtCore = _QtCore
3137
3238 if USING_PYSIDE :
33- def _import_module (moduleName ):
34- pyside = __import__ ('PySide' , globals (), locals (), [moduleName ], 0 )
35- return getattr (pyside , moduleName )
39+ def _import_module (module_name ):
40+ pyside = __import__ ('PySide' , globals (), locals (), [module_name ], 0 )
41+ return getattr (pyside , module_name )
3642
3743 Signal = QtCore .Signal
3844 Slot = QtCore .Slot
3945 Property = QtCore .Property
4046 else :
41- def _import_module (moduleName ):
42- pyside = __import__ ('PyQt4' , globals (), locals (), [moduleName ], 0 )
43- return getattr (pyside , moduleName )
44-
47+ def _import_module (module_name ):
48+ pyside = __import__ ('PyQt%s' % PYQT_VER ,
49+ globals (), locals (), [module_name ], 0 )
50+ return getattr (pyside , module_name )
51+
52+ QtCore = _import_module ('QtCore' )
4553 Signal = QtCore .pyqtSignal
4654 Slot = QtCore .pyqtSlot
4755 Property = QtCore .pyqtProperty
@@ -51,7 +59,14 @@ def _import_module(moduleName):
5159 QtTest = _import_module ('QtTest' )
5260 Qt = QtCore .Qt
5361 QEvent = QtCore .QEvent
54-
62+ if not USING_PYSIDE and PYQT_VER == '5' :
63+ _QtWidgets = _import_module ('QtWidgets' )
64+ QApplication = _QtWidgets .QApplication
65+ QWidget = _QtWidgets .QWidget
66+ else :
67+ QApplication = QtGui .QApplication
68+ QWidget = QtGui .QWidget
69+
5570else : # pragma: no cover
5671 USING_PYSIDE = True
5772
@@ -77,3 +92,5 @@ def __getattr__(cls, name):
7792 QtTest = Mock ()
7893 Qt = Mock ()
7994 QEvent = Mock ()
95+ QApplication = Mock ()
96+ QWidget = Mock ()
0 commit comments