# For testing, you will need: # * PyQt5 dev tools # * tox # * X virtual framebuffer--to test without GUI # # Install these by running: # $ sudo apt install pyqt5-dev-tools xvfb # $ python3 -m pip install --user --upgrade tox # # Then, to run tests against multiple anki versions: # $ tox # # To run tests slightly less safely, but faster: # $ tox -- --no-tear-down-profile-after-each-test # # To run tests more safely, but *much* slower: # $ tox -- --forked # Test tool cheat sheet: # * Test several environments in parallel: # $ tox -p auto # # * To activate one of the test environments: # $ source .tox/py38-anki49/bin/activate # # * Stop on first failure: # $ xvfb-run python -m pytest -x # # * See stdout/stderr (doesn't work with --forked!): # $ xvfb-run python -m pytest -s # # * Run some specific tests: # $ xvfb-run python -m pytest -k "test_cards.py or test_guiBrowse" # # * To run with visible GUI in WSL2 # (Make sure to disable access control in your X server, such as VcXsrv): # $ DISPLAY=$(ip route list default | awk '{print $3}'):0 python -m pytest # # * Environmental variables of interest: # LIBGL_ALWAYS_INDIRECT=1 # QTWEBENGINE_CHROMIUM_FLAGS="--disable-gpu" # QT_DEBUG_PLUGINS=1 # ANKIDEV=1 # Note: pypi packages anki and aqt do not pin their dependencies. # To tests against historically accurate dependencies, we use a “time machine” # that prevents pip from using packages that were uploaded after a specified date. [tox] minversion = 3.24 skipsdist = true skip_install = true requires = pypi-timemachine envlist = py38-anki2.1.{45,46,47,48,49} py39-anki2.1.{50,51,52,53,54,55,56}-qt{5,6} [testenv:.tox] install_command = python -m pip install {packages} [testenv] install_command = bash tox-install-command {envname} {toxworkdir} {packages} commands = env HOME={envtmpdir}/home xvfb-run python -m pytest {posargs} setenv = DISABLE_QT5_COMPAT=1 QTWEBENGINE_CHROMIUM_FLAGS=--no-sandbox !qt{5,6}: AQT=aqt qt5: AQT=aqt[qt5] qt6: AQT=aqt[qt6] allowlist_externals = bash env xvfb-run deps = pytest==7.1.1 pytest-forked==1.4.0 pytest-anki @ git+https://github.com/oakkitten/pytest-anki.git@a0d27aa5