forked from pmacosta/peng
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
87 lines (85 loc) · 5.21 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# tox.ini
# Copyright (c) 2013-2017 Pablo Acosta-Serafini
# See LICENSE for details
[tox]
envlist={py26,py27,py33,py34,py35,py36}-pkg
skip_missing_interpreters=True
[testenv]
basepython=
py26: python2.6
py27: python2.7
py33: python3.3
py34: python3.4
py35: python3.5
py36: python3.6
envdir=
py26: {toxworkdir}/py26
py27: {toxworkdir}/py27
py33: {toxworkdir}/py33
py34: {toxworkdir}/py34
py35: {toxworkdir}/py35
py36: {toxworkdir}/py36
setenv=
PYTHONPATH={envsitepackagesdir}:{envdir}/share/peng:{envdir}/share/peng/tests:{envdir}/share/peng/tests/support:{envdir}/share/peng/docs:{envdir}/share/peng/docs/support
PATH={envpython}:{env:PATH}
PIP_USE_MIRRORS=true
TRACER_DIR={envdir}/share/peng/docs/support
BIN_DIR={envdir}/bin
deps=
py26: -r{toxinidir}/requirements/tests_py26.pip
py27: -r{toxinidir}/requirements/tests_py27.pip
py33: -r{toxinidir}/requirements/tests_py33.pip
py34: -r{toxinidir}/requirements/tests_py34.pip
py35: -r{toxinidir}/requirements/tests_py35.pip
py36: -r{toxinidir}/requirements/tests_py36.pip
py26: -r{toxinidir}/requirements/docs_py26.pip
py27: -r{toxinidir}/requirements/docs_py27.pip
py33: -r{toxinidir}/requirements/docs_py33.pip
py34: -r{toxinidir}/requirements/docs_py34.pip
py35: -r{toxinidir}/requirements/docs_py35.pip
py36: -r{toxinidir}/requirements/docs_py36.pip
changedir=
{envdir}/share/peng/tests
commands=
# Package validation
# Print banner
py26-pkg: {envdir}/share/peng/sbin/cprint.sh banner "Python 2.6 package validation"
py27-pkg: {envdir}/share/peng/sbin/cprint.sh banner "Python 2.7 package validation"
py33-pkg: {envdir}/share/peng/sbin/cprint.sh banner "Python 3.3 package validation"
py34-pkg: {envdir}/share/peng/sbin/cprint.sh banner "Python 3.4 package validation"
py35-pkg: {envdir}/share/peng/sbin/cprint.sh banner "Python 3.5 package validation"
py36-pkg: {envdir}/share/peng/sbin/cprint.sh banner "Python 3.6 package validation"
# Dynamically create configuration files
{py26,py27,py33,py34,py35,py36}-pkg: {envpython} {toxinidir}/sbin/coveragerc_manager.py 'tox' 1 {envname} {toxinidir} {envsitepackagesdir}
# Patch Pylint for Python 2.6
py26-pkg: {envdir}/share/peng/sbin/patch_pylint.py {envdir}/lib/python2.6/site-packages/
# Test project code compliance
{py26,py27,py33,py34,py35,py36}-pkg: {envdir}/share/peng/sbin/cprint.sh line cyan "Testing project code compliance"
{py26,py27,py33,py34,py35,py36}-pkg: {envdir}/share/peng/sbin/check_files_compliance.py -tps -d {envsitepackagesdir}/peng -m {envdir}/share/peng
# Test Pylint compliance (pylint 1.6.x appears to have a bug in Python 3.6 that is only going to be fixed with Pylint 2.0)
{py26,py27,py33,py34,py35}-pkg: {envdir}/share/peng/sbin/cprint.sh line cyan "Testing Pylint compliance"
{py26,py27,py33,py34,py35}-pkg: pylint --rcfile={envdir}/share/peng/.pylintrc -f colorized -r no {envsitepackagesdir}/peng/
{py26,py27,py33,py34,py35}-pkg: pylint --rcfile={envdir}/share/peng/.pylintrc -f colorized -r no {envdir}/share/peng/sbin/
{py26,py27,py33,py34,py35}-pkg: pylint --rcfile={envdir}/share/peng/.pylintrc -f colorized -r no {envdir}/share/peng/tests/
{py26,py27,py33,py34,py35}-pkg: pylint --rcfile={envdir}/share/peng/.pylintrc -f colorized -r no {envdir}/share/peng/docs/support/
# Test reStructuredText files
# {py26,py27,py33,py34,py35,py36}-pkg: {envdir}/share/peng/sbin/cprint.sh line cyan "Testing reStructuredText files"
# {py26,py27,py33,py34,py35,py36}-pkg: {envbindir}/py.test {posargs} --doctest-glob="*.rst" {envdir}/share/peng/docs
# Test docstrings
{py26,py27,py33,py34,py35,py36}-pkg: {envdir}/share/peng/sbin/cprint.sh line cyan "Testing docstrings"
{py26,py27,py33,py34,py35,py36}-pkg: {envbindir}/py.test {posargs} --doctest-modules {envsitepackagesdir}/peng
# Test coverage
{py26,py27,py33,py34,py35,py36}-pkg: {envdir}/share/peng/sbin/cprint.sh line cyan "Testing coverage"
{py26,py27,py33,py34,py35,py36}-pkg: {envbindir}/py.test {posargs} --cov-config {envsitepackagesdir}/peng/.coveragerc_tox_{envname} --cov {envsitepackagesdir}/peng --cov-report term
# Test documentation
{py26,py27,py33,py34,py35,py36}-pkg: {envdir}/share/peng/sbin/cprint.sh line cyan "Testing documentation"
{py26,py27,py33,py34,py35,py36}-pkg: {envdir}/share/peng/sbin/build_docs.py {posargs} -r -t -d {envsitepackagesdir}/peng
{py26,py27,py33,py34,py35,py36}-pkg: {envpython} {toxinidir}/sbin/coveragerc_manager.py 'tox' 0 {envname} {toxinidir} {envsitepackagesdir}
# Get interactive interpreter prompt
{py26,py27,py33,py34,py35,py36}-repl: {envpython} {posargs}
# Direct connection to py.test
{py26,py27,py33,py34,py35,py36}-test: {envbindir}/py.test {posargs}
# Test coverage and generate an HTML report
{py26,py27,py33,py34,py35,py36}-cov: {envpython} {toxinidir}/sbin/coveragerc_manager.py 'tox' 1 {envname} {toxinidir} {envsitepackagesdir}
{py26,py27,py33,py34,py35,py36}-cov: {envbindir}/py.test --cov-config {envsitepackagesdir}/peng/.coveragerc_tox_{envname} --cov {envsitepackagesdir}/peng --cov-report html {posargs}
{py26,py27,py33,py34,py35,py36}-cov: {envpython} {toxinidir}/sbin/coveragerc_manager.py 'tox' 0 {envname} {toxinidir} {envsitepackagesdir}