Merge pull request #8158 from qutebrowser/feat/manual_docker_docs

Tips for contributors to run the webkit backend
This commit is contained in:
toofar 2024-06-23 20:39:06 +12:00 committed by GitHub
commit b3b9678699
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 36 additions and 1 deletions

View File

@ -192,6 +192,28 @@ specific one you can set either of a) the environment variable QUTE_TESTS_BACKEN
, or b) the command line argument --qute-backend, to the desired backend
(webkit/webengine).
If you need an environment with webkit installed to do testing while we still
support it (see #4039) you can re-use the docker container used for the CI
test runs which has PyQt5Webkit installed from the archlinux package archives.
Examples:
----
# Get a bash shell in the docker container with
# a) the current directory mounted at /work in the container
# b) the container using the X11 display :27 (for example, a Xephyr instance) from the host
# c) the tox and hypothesis dirs set to somewhere in the container that it can write to
# d) the system site packages available in the tox venv so you can use PyQt
# from the OS without having to run the link_pyqt script
docker run -it -v $PWD:/work:ro -w /work -e QUTE_TESTS_BACKEND=webkit -e DISPLAY=:27 -v /tmp/.X11-unix:/tmp/.X11-unix -e TOX_WORK_DIR="/home/user/.tox" -e HYPOTHESIS_EXAMPLES_DIR="/home/user/.hypothesis/examples" -e VIRTUALENV_SYSTEM_SITE_PACKAGES=True qutebrowser/ci:archlinux-webkit bash
# Start a qutebrowser temporary basedir in the appropriate tox environment to
# play with
tox exec -e py-qt5 -- python3 -m qutebrowser -T --backend webkit
# Run tests, passing positional args through to pytest.
tox -e py-qt5 -- tests/unit
----
Profiling
~~~~~~~~~

View File

@ -11,6 +11,7 @@ import ssl
import pytest
import hypothesis
import hypothesis.database
pytest.register_assert_rewrite('helpers')
@ -33,10 +34,19 @@ _qute_scheme_handler = None
# Set hypothesis settings
hypotheses_optional_kwargs = {}
if "HYPOTHESIS_EXAMPLES_DIR" in os.environ:
hypotheses_optional_kwargs[
"database"
] = hypothesis.database.DirectoryBasedExampleDatabase(
os.environ["HYPOTHESIS_EXAMPLES_DIR"]
)
hypothesis.settings.register_profile(
'default', hypothesis.settings(
deadline=600,
suppress_health_check=[hypothesis.HealthCheck.function_scoped_fixture],
**hypotheses_optional_kwargs,
)
)
hypothesis.settings.register_profile(
@ -45,7 +55,8 @@ hypothesis.settings.register_profile(
suppress_health_check=[
hypothesis.HealthCheck.function_scoped_fixture,
hypothesis.HealthCheck.too_slow
]
],
**hypotheses_optional_kwargs,
)
)
hypothesis.settings.load_profile('ci' if testutils.ON_CI else 'default')

View File

@ -8,6 +8,7 @@ envlist = py38-pyqt515-cov,mypy-pyqt5,misc,vulture,flake8,pylint,pyroma,check-ma
distshare = {toxworkdir}
skipsdist = true
minversion = 3.20
toxworkdir={env:TOX_WORK_DIR:{toxinidir}/.tox}
[testenv]
setenv =
@ -30,6 +31,7 @@ passenv =
QT_QUICK_BACKEND
FORCE_COLOR
DBUS_SESSION_BUS_ADDRESS
HYPOTHESIS_EXAMPLES_DIR
basepython =
py: {env:PYTHON:python3}
py3: {env:PYTHON:python3}