1[tox]
2envlist =
3    py-orange-{latest, released}
4    pylint-ci
5    build_doc
6    add-ons
7skip_missing_interpreters = true
8isolated_build = true
9
10[testenv]
11# must use latest pip (version 20.3.1 enables Big Sur support - https://github.com/pypa/pip/issues/9138)
12pip_version = pip
13passenv = *
14# we MUST changedir to avoid installed being shadowed by working dir
15# https://github.com/tox-dev/tox/issues/54
16# https://github.com/tox-dev/tox/issues/514
17changedir =
18    {envsitepackagesdir}
19setenv =
20    # Raise deprecations as errors in our tests
21    ORANGE_DEPRECATIONS_ERROR=y
22    # Need this otherwise unittest installs a warning filter that overrides
23    # our desire to have OrangeDeprecationWarnings raised
24    PYTHONWARNINGS=module
25    # Skip loading of example workflows as that inflates coverage
26    SKIP_EXAMPLE_WORKFLOWS=True
27    # set coverage output and project config
28    COVERAGE_FILE = {toxinidir}/.coverage
29    COVERAGE_RCFILE = {toxinidir}/.coveragerc
30deps =
31    pyqt5==5.12.*
32    pyqtwebengine==5.12.*
33    -r {toxinidir}/requirements-opt.txt
34    coverage
35    psycopg2-binary
36    # no wheels for mac
37    pymssql<3.0;platform_system!='Darwin' and python_version<'3.8'
38    latest: git+git://github.com/pyqtgraph/pyqtgraph.git#egg=pyqtgraph
39    latest: git+git://github.com/biolab/orange-canvas-core.git#egg=orange-canvas-core
40    latest: git+git://github.com/biolab/orange-widget-base.git#egg=orange-widget-base
41
42commands_pre =
43    # Verify installed packages have compatible dependencies
44    pip check
45    # freeze environment
46    pip freeze
47commands =
48    coverage run {toxinidir}/quietunittest.py Orange.tests Orange.widgets.tests
49    coverage combine
50    coverage report
51
52[testenv:add-ons]
53deps =
54    {[testenv]deps}
55    Orange3-Educational
56    Orange3-Geo
57    Orange3-ImageAnalytics
58    Orange3-Text
59commands =
60    python -m unittest discover --verbose --start-directory {envsitepackagesdir}/orangecontrib
61
62[testenv:pylint-ci]
63changedir = {toxinidir}
64skip_install = true
65whitelist_externals = bash
66deps = pylint
67commands =
68    bash .github/workflows/check_pylint_diff.sh
69
70[testenv:build_doc]
71changedir = {toxinidir}
72usedevelop = true
73whitelist_externals = bash
74deps =
75    {[testenv]deps}
76    -r {toxinidir}/requirements-doc.txt
77commands =
78    bash doc/build_doc.sh
79