Skip to content

Commit 58bd60c

Browse files
committed
improved error message when failing to import PyQt4 and PySide
1 parent c60d463 commit 58bd60c

File tree

1 file changed

+18
-20
lines changed

1 file changed

+18
-20
lines changed

pytestqt/qt_compat.py

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -14,45 +14,43 @@
1414
try:
1515
import PySide.QtCore as _QtCore
1616
QtCore = _QtCore
17-
PYSIDE_AVAILABLE = True
17+
USE_PYSIDE = True
1818
except ImportError:
19-
PYSIDE_AVAILABLE = False
19+
USE_PYSIDE = False
2020

2121
FORCE_PYQT = os.environ.get('PYTEST_QT_FORCE_PYQT', 'false') == 'true'
22-
if not PYSIDE_AVAILABLE or FORCE_PYQT:
23-
PYSIDE_AVAILABLE = False
24-
import sip
22+
if not USE_PYSIDE or FORCE_PYQT:
23+
try:
24+
import sip
25+
except ImportError:
26+
msg = 'pytest-qt requires either PyQt4 or PySide to be installed'
27+
raise ImportError(msg)
28+
USE_PYSIDE = False
2529
sip.setapi('QString', 2)
2630
sip.setapi('QVariant', 2)
2731
import PyQt4.QtCore as _QtCore
2832
QtCore = _QtCore
2933

30-
def _pyside_import_module(moduleName):
31-
pyside = __import__('PySide', globals(), locals(), [moduleName], 0)
32-
return getattr(pyside, moduleName)
33-
34-
35-
def _pyqt4_import_module(moduleName):
36-
pyside = __import__('PyQt4', globals(), locals(), [moduleName], 0)
37-
return getattr(pyside, moduleName)
38-
39-
40-
if PYSIDE_AVAILABLE:
41-
import_module = _pyside_import_module
34+
if USE_PYSIDE:
35+
def _import_module(moduleName):
36+
pyside = __import__('PySide', globals(), locals(), [moduleName], 0)
37+
return getattr(pyside, moduleName)
4238

4339
Signal = QtCore.Signal
4440
Slot = QtCore.Slot
4541
Property = QtCore.Property
4642
else:
47-
import_module = _pyqt4_import_module
43+
def _import_module(moduleName):
44+
pyside = __import__('PyQt4', globals(), locals(), [moduleName], 0)
45+
return getattr(pyside, moduleName)
4846

4947
Signal = QtCore.pyqtSignal
5048
Slot = QtCore.pyqtSlot
5149
Property = QtCore.pyqtProperty
5250

5351

54-
QtGui = import_module('QtGui')
55-
QtTest = import_module('QtTest')
52+
QtGui = _import_module('QtGui')
53+
QtTest = _import_module('QtTest')
5654
Qt = QtCore.Qt
5755
QEvent = QtCore.QEvent
5856

0 commit comments

Comments
 (0)