diff --git a/tests/unit/browser/webkit/test_qt_javascript.py b/tests/unit/browser/webkit/test_qt_javascript.py index 235296ca4..37ff5d0da 100644 --- a/tests/unit/browser/webkit/test_qt_javascript.py +++ b/tests/unit/browser/webkit/test_qt_javascript.py @@ -21,6 +21,7 @@ import pytest +import os from PyQt5.QtCore import QObject, pyqtSignal from PyQt5.QtWebKit import QWebSettings @@ -65,12 +66,17 @@ def test_element_js_webkit(webview, js_enabled, expected): @pytest.mark.parametrize('js_enabled, expected', [(True, 2.0), (False, 2.0)]) -def test_simple_js_webengine(qtbot, webengineview, js_enabled, expected): +def test_simple_js_webengine(qtbot, webengineview, js_enabled, expected, + data_tmpdir): """With QtWebEngine, runJavaScript works even when JS is off.""" # pylint: disable=no-name-in-module,useless-suppression # If we get there (because of the webengineview fixture) we can be certain # QtWebEngine is available from PyQt5.QtWebEngineWidgets import QWebEngineSettings + # runJavaScript will write to the data directory. As the path is determined + # by Qt and bypasses standarddir.data(), the data_tmpdir fixture is not + # enough -- we need to set XDG_DATA_HOME as well + os.putenv('XDG_DATA_HOME', str(data_tmpdir)) webengineview.settings().setAttribute(QWebEngineSettings.JavascriptEnabled, js_enabled)