111 lines
2.9 KiB
Python
111 lines
2.9 KiB
Python
|
from __future__ import absolute_import
|
||
|
|
||
|
import mock
|
||
|
import platform
|
||
|
import sys
|
||
|
|
||
|
import pytest
|
||
|
from qtpy import PYQT5, PYSIDE2
|
||
|
|
||
|
|
||
|
@pytest.mark.skipif(not PYQT5, reason="Targeted to PyQt5")
|
||
|
@mock.patch.object(platform, 'mac_ver')
|
||
|
def test_qt59_exception(mac_ver, monkeypatch):
|
||
|
# Remove qtpy to reimport it again
|
||
|
try:
|
||
|
del sys.modules["qtpy"]
|
||
|
except KeyError:
|
||
|
pass
|
||
|
|
||
|
# Patch stdlib to emulate a macOS system
|
||
|
monkeypatch.setattr("sys.platform", 'darwin')
|
||
|
mac_ver.return_value = ('10.9.2',)
|
||
|
|
||
|
# Patch Qt version
|
||
|
monkeypatch.setattr("PyQt5.QtCore.QT_VERSION_STR", '5.9.1')
|
||
|
|
||
|
# This should raise an Exception
|
||
|
with pytest.raises(Exception) as e:
|
||
|
import qtpy
|
||
|
|
||
|
assert '10.10' in str(e.value)
|
||
|
assert '5.9' in str(e.value)
|
||
|
|
||
|
|
||
|
@pytest.mark.skipif(not PYQT5, reason="Targeted to PyQt5")
|
||
|
@mock.patch.object(platform, 'mac_ver')
|
||
|
def test_qt59_no_exception(mac_ver, monkeypatch):
|
||
|
# Remove qtpy to reimport it again
|
||
|
try:
|
||
|
del sys.modules["qtpy"]
|
||
|
except KeyError:
|
||
|
pass
|
||
|
|
||
|
# Patch stdlib to emulate a macOS system
|
||
|
monkeypatch.setattr("sys.platform", 'darwin')
|
||
|
mac_ver.return_value = ('10.10.1',)
|
||
|
|
||
|
# Patch Qt version
|
||
|
monkeypatch.setattr("PyQt5.QtCore.QT_VERSION_STR", '5.9.5')
|
||
|
|
||
|
# This should not raise an Exception
|
||
|
try:
|
||
|
import qtpy
|
||
|
except Exception:
|
||
|
pytest.fail("Error!")
|
||
|
|
||
|
|
||
|
@pytest.mark.skipif(not (PYQT5 or PYSIDE2),
|
||
|
reason="Targeted to PyQt5 or PySide2")
|
||
|
@mock.patch.object(platform, 'mac_ver')
|
||
|
def test_qt511_exception(mac_ver, monkeypatch):
|
||
|
# Remove qtpy to reimport it again
|
||
|
try:
|
||
|
del sys.modules["qtpy"]
|
||
|
except KeyError:
|
||
|
pass
|
||
|
|
||
|
# Patch stdlib to emulate a macOS system
|
||
|
monkeypatch.setattr("sys.platform", 'darwin')
|
||
|
mac_ver.return_value = ('10.10.3',)
|
||
|
|
||
|
# Patch Qt version
|
||
|
if PYQT5:
|
||
|
monkeypatch.setattr("PyQt5.QtCore.QT_VERSION_STR", '5.11.1')
|
||
|
else:
|
||
|
monkeypatch.setattr("PySide2.QtCore.__version__", '5.11.1')
|
||
|
|
||
|
# This should raise an Exception
|
||
|
with pytest.raises(Exception) as e:
|
||
|
import qtpy
|
||
|
|
||
|
assert '10.11' in str(e.value)
|
||
|
assert '5.11' in str(e.value)
|
||
|
|
||
|
|
||
|
@pytest.mark.skipif(not (PYQT5 or PYSIDE2),
|
||
|
reason="Targeted to PyQt5 or PySide2")
|
||
|
@mock.patch.object(platform, 'mac_ver')
|
||
|
def test_qt511_no_exception(mac_ver, monkeypatch):
|
||
|
# Remove qtpy to reimport it again
|
||
|
try:
|
||
|
del sys.modules["qtpy"]
|
||
|
except KeyError:
|
||
|
pass
|
||
|
|
||
|
# Patch stdlib to emulate a macOS system
|
||
|
monkeypatch.setattr("sys.platform", 'darwin')
|
||
|
mac_ver.return_value = ('10.13.2',)
|
||
|
|
||
|
# Patch Qt version
|
||
|
if PYQT5:
|
||
|
monkeypatch.setattr("PyQt5.QtCore.QT_VERSION_STR", '5.11.1')
|
||
|
else:
|
||
|
monkeypatch.setattr("PySide2.QtCore.__version__", '5.11.1')
|
||
|
|
||
|
# This should not raise an Exception
|
||
|
try:
|
||
|
import qtpy
|
||
|
except Exception:
|
||
|
pytest.fail("Error!")
|