tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

tox.ini (5476B)


      1 [tox]
      2 isolated_build = True
      3 minversion = 3.20.0
      4 distshare = {homedir}/.tox/distshare
      5 envlist =
      6    linting
      7    py38
      8    py39
      9    py310
     10    py311
     11    py312
     12    py313
     13    pypy3
     14    py38-{pexpect,xdist,unittestextras,numpy,pluggymain,pylib}
     15    doctesting
     16    doctesting-coverage
     17    plugins
     18    py38-freeze
     19    docs
     20    docs-checklinks
     21 
     22    # checks that 3.11 native ExceptionGroup works with exceptiongroup
     23    # not included in CI.
     24    py311-exceptiongroup
     25 
     26 
     27 
     28 [testenv]
     29 commands =
     30    {env:_PYTEST_TOX_COVERAGE_RUN:} pytest {posargs:{env:_PYTEST_TOX_DEFAULT_POSARGS:}}
     31    doctesting: {env:_PYTEST_TOX_COVERAGE_RUN:} pytest --doctest-modules --pyargs _pytest
     32    coverage: coverage combine
     33    coverage: coverage report -m
     34 passenv =
     35    COVERAGE_*
     36    PYTEST_ADDOPTS
     37    TERM
     38    SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST
     39 setenv =
     40    _PYTEST_TOX_DEFAULT_POSARGS={env:_PYTEST_TOX_POSARGS_DOCTESTING:} {env:_PYTEST_TOX_POSARGS_LSOF:} {env:_PYTEST_TOX_POSARGS_XDIST:}
     41 
     42    # See https://docs.python.org/3/library/io.html#io-encoding-warning
     43    # If we don't enable this, neither can any of our downstream users!
     44    PYTHONWARNDEFAULTENCODING=1
     45 
     46    # Configuration to run with coverage similar to CI, e.g.
     47    # "tox -e py38-coverage".
     48    coverage: _PYTEST_TOX_COVERAGE_RUN=coverage run -m
     49    coverage: _PYTEST_TOX_EXTRA_DEP=coverage-enable-subprocess
     50    coverage: COVERAGE_FILE={toxinidir}/.coverage
     51    coverage: COVERAGE_PROCESS_START={toxinidir}/.coveragerc
     52 
     53    doctesting: _PYTEST_TOX_POSARGS_DOCTESTING=doc/en
     54 
     55    nobyte: PYTHONDONTWRITEBYTECODE=1
     56 
     57    lsof: _PYTEST_TOX_POSARGS_LSOF=--lsof
     58 
     59    xdist: _PYTEST_TOX_POSARGS_XDIST=-n auto
     60 extras = dev
     61 deps =
     62    doctesting: PyYAML
     63    exceptiongroup: exceptiongroup>=1.0.0rc8
     64    numpy: numpy>=1.19.4
     65    pexpect: pexpect>=4.8.0
     66    pluggymain: pluggy @ git+https://github.com/pytest-dev/pluggy.git
     67    pylib: py>=1.8.2
     68    unittestextras: twisted
     69    unittestextras: asynctest
     70    xdist: pytest-xdist>=2.1.0
     71    xdist: -e .
     72    {env:_PYTEST_TOX_EXTRA_DEP:}
     73 
     74 [testenv:linting]
     75 skip_install = True
     76 basepython = python3
     77 deps = pre-commit>=2.9.3
     78 commands = pre-commit run --all-files --show-diff-on-failure {posargs:}
     79 setenv =
     80    # pre-commit and tools it launches are not clean of this warning.
     81    PYTHONWARNDEFAULTENCODING=
     82 
     83 [testenv:docs]
     84 basepython = python3
     85 usedevelop = True
     86 deps =
     87    -r{toxinidir}/doc/en/requirements.txt
     88    # https://github.com/twisted/towncrier/issues/340
     89    towncrier<21.3.0
     90 commands =
     91    python scripts/towncrier-draft-to-file.py
     92    # the '-t changelog_towncrier_draft' tags makes sphinx include the draft
     93    # changelog in the docs; this does not happen on ReadTheDocs because it uses
     94    # the standard sphinx command so the 'changelog_towncrier_draft' is never set there
     95    sphinx-build -W --keep-going -b html doc/en doc/en/_build/html -t changelog_towncrier_draft {posargs:}
     96 setenv =
     97    # Sphinx is not clean of this warning.
     98    PYTHONWARNDEFAULTENCODING=
     99 
    100 [testenv:docs-checklinks]
    101 basepython = python3
    102 usedevelop = True
    103 changedir = doc/en
    104 deps = -r{toxinidir}/doc/en/requirements.txt
    105 commands =
    106    sphinx-build -W -q --keep-going -b linkcheck . _build
    107 setenv =
    108    # Sphinx is not clean of this warning.
    109    PYTHONWARNDEFAULTENCODING=
    110 
    111 [testenv:regen]
    112 changedir = doc/en
    113 basepython = python3
    114 passenv =
    115    SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST
    116 deps =
    117    PyYAML
    118    regendoc>=0.8.1
    119    sphinx
    120 allowlist_externals =
    121    make
    122 commands =
    123    make regen
    124 setenv =
    125    # We don't want this warning to reach regen output.
    126    PYTHONWARNDEFAULTENCODING=
    127 
    128 [testenv:plugins]
    129 # use latest versions of all plugins, including pre-releases
    130 pip_pre=true
    131 # use latest pip to get new dependency resolver (#7783)
    132 download=true
    133 install_command=python -m pip install {opts} {packages}
    134 changedir = testing/plugins_integration
    135 deps = -rtesting/plugins_integration/requirements.txt
    136 setenv =
    137    PYTHONPATH=.
    138 # Command temporarily removed until pytest-bdd is fixed:
    139 # https://github.com/pytest-dev/pytest/pull/11785
    140 # pytest bdd_wallet.py
    141 commands =
    142    pip check
    143    pytest --cov=. simple_integration.py
    144    pytest --ds=django_settings simple_integration.py
    145    pytest --html=simple.html simple_integration.py
    146    pytest --reruns 5 simple_integration.py
    147    pytest pytest_anyio_integration.py
    148    pytest pytest_asyncio_integration.py
    149    pytest pytest_mock_integration.py
    150    pytest pytest_trio_integration.py
    151    pytest pytest_twisted_integration.py
    152    pytest simple_integration.py --force-sugar --flakes
    153 
    154 [testenv:py38-freeze]
    155 changedir = testing/freeze
    156 deps =
    157    pyinstaller
    158 commands =
    159    {envpython} create_executable.py
    160    {envpython} tox_run.py
    161 
    162 [testenv:release]
    163 description = do a release, required posarg of the version number
    164 basepython = python3
    165 usedevelop = True
    166 passenv = *
    167 deps =
    168    colorama
    169    github3.py
    170    pre-commit>=2.9.3
    171    wheel
    172    # https://github.com/twisted/towncrier/issues/340
    173    towncrier<21.3.0
    174 commands = python scripts/release.py {posargs}
    175 
    176 [testenv:prepare-release-pr]
    177 description = prepare a release PR from a manual trigger in GitHub actions
    178 usedevelop = {[testenv:release]usedevelop}
    179 passenv = {[testenv:release]passenv}
    180 deps = {[testenv:release]deps}
    181 commands = python scripts/prepare-release-pr.py {posargs}
    182 
    183 [testenv:generate-gh-release-notes]
    184 description = generate release notes that can be published as GitHub Release
    185 basepython = python3
    186 usedevelop = True
    187 deps =
    188    pypandoc
    189 commands = python scripts/generate-gh-release-notes.py {posargs}