From 40b916c7a3dfafead454dce8cfc01789aa6bb90e Mon Sep 17 00:00:00 2001 From: David Marteau Date: Tue, 10 Oct 2017 15:14:02 +0200 Subject: [PATCH] Disable message hook and import override at runtime --- .docker/docker-compose.travis.yml | 3 +++ .../processing/tests/QgisAlgorithmsTest.py | 2 +- python/utils.py | 16 ++++++++++------ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/.docker/docker-compose.travis.yml b/.docker/docker-compose.travis.yml index 974a3179837..cd94a0c510a 100644 --- a/.docker/docker-compose.travis.yml +++ b/.docker/docker-compose.travis.yml @@ -23,3 +23,6 @@ services: - TRAVIS_OS_NAME=${TRAVIS_OS_NAME} - TRAVIS_CONFIG=${TRAVIS_CONFIG} - TRAVIS=${TRAVIS} + - QGIS_DISABLE_MESSAGE_HOOKS=1 + - QGIS_NO_OVERRIDE_IMPORT=1 + diff --git a/python/plugins/processing/tests/QgisAlgorithmsTest.py b/python/plugins/processing/tests/QgisAlgorithmsTest.py index e937288e7b3..0bf04dae084 100644 --- a/python/plugins/processing/tests/QgisAlgorithmsTest.py +++ b/python/plugins/processing/tests/QgisAlgorithmsTest.py @@ -50,7 +50,7 @@ class TestAlg(QgsProcessingAlgorithm): def displayName(self): return 'testalg' - def initAlgorithm(self): + def initAlgorithm(self, config=None): pass def createInstance(self): diff --git a/python/utils.py b/python/utils.py index 04bcd0e9331..789e488388c 100644 --- a/python/utils.py +++ b/python/utils.py @@ -33,6 +33,7 @@ from qgis.PyQt.QtWidgets import QPushButton, QApplication from qgis.core import Qgis, QgsExpression, QgsMessageLog, qgsfunction, QgsMessageOutput, QgsWkbTypes from qgis.gui import QgsMessageBar +import os import sys import traceback import glob @@ -76,7 +77,8 @@ def showWarning(message, category, filename, lineno, file=None, line=None): ) -warnings.showwarning = showWarning +if not os.environ.get('QGIS_DISABLE_MESSAGE_HOOKS'): + warnings.showwarning = showWarning def showException(type, value, tb, msg, messagebar=False): @@ -204,7 +206,8 @@ def uninstallErrorHook(): # install error hook() on module load -installErrorHook() +if not os.environ.get('QGIS_DISABLE_MESSAGE_HOOKS'): + installErrorHook() # initialize 'iface' object iface = None @@ -683,7 +686,8 @@ def _import(name, globals={}, locals={}, fromlist=[], level=None): return mod -if _uses_builtins: - builtins.__import__ = _import -else: - __builtin__.__import__ = _import +if not os.environ.get('QGIS_NO_OVERRIDE_IMPORT'): + if _uses_builtins: + builtins.__import__ = _import + else: + __builtin__.__import__ = _import