Don't write to user datadir in test_qt_javascript.
This was more complicated than the other data/config/cachedir test fixes, as QtWebEngine was accessing the datadir directly (and bypassing standdarddir.data). This means the tmpdir_data stub is not enough, we need to set XDG_DATA_HOME to redirect access.
This commit is contained in:
parent
d9b546701e
commit
f589e44700
@ -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)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user