Add 'extras/qtpy/' from commit 'f9c100f2e49fc28a43d3938ef96ce3b98abd8344'
[git-cola.git] / extras / qtpy / tests / test_main.py
blob63d1439e6c5471787e834154c0895e2436b82cc8
1 import os
3 from qtpy import QtCore, QtGui, QtWidgets, QtWebEngineWidgets
6 def assert_pyside():
7 """
8 Make sure that we are using PySide
9 """
10 import PySide
11 assert QtCore.QEvent is PySide.QtCore.QEvent
12 assert QtGui.QPainter is PySide.QtGui.QPainter
13 assert QtWidgets.QWidget is PySide.QtGui.QWidget
14 assert QtWebEngineWidgets.QWebEnginePage is PySide.QtWebKit.QWebPage
17 def assert_pyqt4():
18 """
19 Make sure that we are using PyQt4
20 """
21 import PyQt4
22 assert QtCore.QEvent is PyQt4.QtCore.QEvent
23 assert QtGui.QPainter is PyQt4.QtGui.QPainter
24 assert QtWidgets.QWidget is PyQt4.QtGui.QWidget
25 assert QtWebEngineWidgets.QWebEnginePage is PyQt4.QtWebKit.QWebPage
28 def assert_pyqt5():
29 """
30 Make sure that we are using PyQt5
31 """
32 import PyQt5
33 assert QtCore.QEvent is PyQt5.QtCore.QEvent
34 assert QtGui.QPainter is PyQt5.QtGui.QPainter
35 assert QtWidgets.QWidget is PyQt5.QtWidgets.QWidget
36 if QtWebEngineWidgets.WEBENGINE:
37 assert QtWebEngineWidgets.QWebEnginePage is PyQt5.QtWebEngineWidgets.QWebEnginePage
38 else:
39 assert QtWebEngineWidgets.QWebEnginePage is PyQt5.QtWebKitWidgets.QWebPage
42 def test_qt_api():
43 """
44 If QT_API is specified, we check that the correct Qt wrapper was used
45 """
47 QT_API = os.environ.get('QT_API', '').lower()
49 if QT_API == 'pyside':
50 assert_pyside()
51 elif QT_API in ('pyqt', 'pyqt4'):
52 assert_pyqt4()
53 elif QT_API == 'pyqt5':
54 assert_pyqt5()
55 else:
56 # If the tests are run locally, USE_QT_API and QT_API may not be
57 # defined, but we still want to make sure qtpy is behaving sensibly.
58 # We should then be loading, in order of decreasing preference, PyQt5,
59 # PyQt4, and PySide.
60 try:
61 import PyQt5
62 except ImportError:
63 try:
64 import PyQt4
65 except ImportError:
66 import PySide
67 assert_pyside()
68 else:
69 assert_pyqt4()
70 else:
71 assert_pyqt5()