# Tox configuration file

[tox]
minversion = 3.15
envlist = py{27,36,37,38,39,310,311}
skip_missing_interpreters = true

[travis]
python =
    2.7: py27
    3.6: py36
    3.7: py37
    3.8: py38
    3.9: py39
    3.10: py310
    3.11: py311

[pytest]
markers = spice: Run unit tests that use SPICE.

[testenv:py{27,36,37,38,39}]
description = test kinparse
isolated_build = True
setenv = TOXINIDIR = {toxinidir}
passenv = *
extras = testing
deps =
    pytest
changedir = tests
allowlist_externals =
    make
    find
    sphinx-build
commands =
    pip install -e {toxinidir}
    py.test


[testenv:{docs}]
description = build the docs
setenv =
    DOCSRC = {toxinidir}/docs
deps =
    ; -r {toxinidir}/docs/requirements.txt
    # ^  requirements.txt shared with Read The Docs
    # This causes doctests to fail. Don't know why.
allowlist_externals =
    make
commands =
    docs: python {toxinidir}/setup.py sdist
    docs: make -C {env:DOCSRC} singlehtml


[testenv:{publish_test,publish_public}]
description =
    Publish the package you have been developing to a package index server.
    By default, it uses testpypi. If you really want to publish your package
    to be publicly accessible in PyPI, use the `-- --repository pypi` option.
skip_install = True
changedir = {toxinidir}
passenv =
    TWINE_USERNAME
    TWINE_PASSWORD
    TWINE_REPOSITORY
deps = twine
allowlist_externals =
    rm
commands =
    rm -f {toxinidir}/dist/*.gz
    python {toxinidir}/setup.py sdist
    python -m twine check dist/*
    publish_test: python -m twine upload {posargs:--repository testpypi} dist/*
    publish_public: python -m twine upload {posargs:-- --repository pypi} dist/*

[testenv:install_test]
description = 
    Test installation from TestPyPi.
changedir = {toxinidir}
commands =
    pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ kinparse
