summaryrefslogtreecommitdiff
path: root/tox.ini
blob: da86b49e0806446cf31a7358b2ebc3eac5e08940 (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
[tox]
skipsdist = True
envlist =
    py{27,34,35,36,py}-{build,safety,tests},
    docs-{html,doctest,linkcheck,spelling,style},
    readme,
    safety,
    style,

[testenv]
changedir = 
    !build: {envtmpdir}
setenv =
    JSON_SCHEMA_TEST_SUITE = {toxinidir}/json
whitelist_externals =
    python2.7
    sh
    virtualenv
commands =
    perf,tests: {envbindir}/python -m pip install '{toxinidir}[format]'

    tests: {envbindir}/trial {posargs:jsonschema}
    tests: {envpython} -m doctest {toxinidir}/README.rst

    perf: {envpython} {toxinidir}/jsonschema/benchmarks/json_schema_test_suite.py --inherit-environ JSON_SCHEMA_TEST_SUITE
    perf: {envpython} {toxinidir}/jsonschema/benchmarks/issue232.py --inherit-environ JSON_SCHEMA_TEST_SUITE

    # Check to make sure that releases build and install properly
    build: virtualenv --quiet --python=python2.7 {envtmpdir}/venv
    build: {envtmpdir}/venv/bin/pip install --quiet wheel

    build: {envtmpdir}/venv/bin/python {toxinidir}/setup.py --quiet bdist_wheel --dist-dir={envtmpdir}/wheel
    build: sh -c '{envbindir}/pip install --quiet --upgrade --force-reinstall {envtmpdir}/wheel/jsonschema*.whl'

    build: python2.7 {toxinidir}/setup.py --quiet sdist --dist-dir={envtmpdir}/sdist --format=gztar,zip
    build: sh -c '{envbindir}/pip install --quiet --upgrade --force-reinstall {envtmpdir}/sdist/jsonschema*.tar.gz'
    build: sh -c '{envbindir}/pip install --quiet --upgrade --force-reinstall {envtmpdir}/sdist/jsonschema*.zip'
deps =
    -r{toxinidir}/test-requirements.txt

    tests,coverage: twisted
    tests: lxml
    tests: sphinx
    coverage: coverage
    perf: perf
    safety: safety

[testenv:readme]
changedir = {toxinidir}
deps = readme_renderer
commands = 
    {envbindir}/python setup.py check --restructuredtext --strict

[testenv:safety]
deps = safety
commands = 
    {envbindir}/pip install '{toxinidir}[format]'
    {envbindir}/safety check

[testenv:style]
basepython = pypy
deps = ebb-lint
commands = {envbindir}/flake8 {posargs} {toxinidir}/jsonschema {toxinidir}/docs {toxinidir}/setup.py

[testenv:coverage]
setenv =
    {[testenv]setenv}
    COVERAGE_DEBUG_FILE={envtmpdir}/coverage-debug
    COVERAGE_FILE={envtmpdir}/coverage-data
commands =
    {envbindir}/python -m pip install '{toxinidir}[format]'
    {envbindir}/coverage run --rcfile={toxinidir}/.coveragerc {envbindir}/trial jsonschema
    {envbindir}/coverage report --rcfile={toxinidir}/.coveragerc --show-missing
    {envbindir}/coverage html --directory={envtmpdir}/htmlcov --rcfile={toxinidir}/.coveragerc {posargs}

[testenv:docs-html]
basepython = pypy
changedir = docs
whitelist_externals = make
commands = make -f {toxinidir}/docs/Makefile BUILDDIR={envtmpdir}/build SPHINXOPTS='-a -c {toxinidir}/docs/ -n -T -W {posargs}' html
deps =
    -r{toxinidir}/docs/requirements.txt
    -e{toxinidir}

[testenv:docs-doctest]
basepython = pypy
changedir = docs
whitelist_externals = make
commands = make -f {toxinidir}/docs/Makefile BUILDDIR={envtmpdir}/build SPHINXOPTS='-a -c {toxinidir}/docs/ -n -T -W {posargs}' doctest
deps =
    -r{toxinidir}/docs/requirements.txt
    -e{toxinidir}

[testenv:docs-linkcheck]
basepython = pypy
changedir = docs
whitelist_externals = make
commands = make -f {toxinidir}/docs/Makefile BUILDDIR={envtmpdir}/build SPHINXOPTS='-a -c {toxinidir}/docs/ -n -T -W {posargs}' linkcheck
deps =
    -r{toxinidir}/docs/requirements.txt
    -e{toxinidir}

[testenv:docs-spelling]
basepython = pypy
changedir = docs
whitelist_externals = make
commands = make -f {toxinidir}/docs/Makefile BUILDDIR={envtmpdir}/build SPHINXOPTS='-a -c {toxinidir}/docs/ -n -T -W {posargs}' spelling
deps =
    -r{toxinidir}/docs/requirements.txt
    -e{toxinidir}

[testenv:docs-style]
basepython = pypy
changedir = docs
commands = doc8 {posargs} {toxinidir}/docs
deps =
    doc8
    pygments
    pygments-github-lexers

[doc8]
ignore-path =
    version.txt,
    .*/,
    _*/

[travis]
python =
  pypy: pypy, docs, readme, style