1[tox]
2envlist = py26,py27,py33,py34,py35,pypy,gae,cover
3
4[testenv]
5basedeps = mock>=1.3.0
6           pycrypto>=2.6
7           cryptography>=1.0
8           pyopenssl>=0.14
9           webtest
10           nose
11           flask
12           unittest2
13           sqlalchemy
14           fasteners
15deps = {[testenv]basedeps}
16       django
17       keyring
18setenv =
19    pypy: with_gmp=no
20    DJANGO_SETTINGS_MODULE=tests.contrib.django_util.settings
21commands = nosetests --ignore-files=test_appengine\.py --ignore-files=test__appengine_ndb\.py {posargs}
22
23[coverbase]
24basepython = python2.7
25commands =
26    nosetests \
27      --with-coverage \
28      --cover-package=oauth2client \
29      --cover-package=tests \
30      --cover-erase \
31      --cover-tests \
32      --cover-branches \
33      --ignore-files=test_appengine\.py \
34      --ignore-files=test__appengine_ndb\.py
35    nosetests \
36      --with-coverage \
37      --cover-package=oauth2client.contrib.appengine \
38      --cover-package=oauth2client.contrib._appengine_ndb \
39      --cover-package=tests.contrib.test_appengine \
40      --cover-package=tests.contrib.test__appengine_ndb \
41      --with-gae \
42      --cover-tests \
43      --cover-branches \
44      --gae-application=tests/data \
45      --gae-lib-root={env:GAE_PYTHONPATH:google_appengine} \
46      --logging-level=INFO \
47      tests/contrib/test_appengine.py \
48      tests/contrib/test__appengine_ndb.py
49deps = {[testenv]deps}
50    coverage
51    nosegae
52
53[testenv:py26]
54basepython =
55    python2.6
56commands =
57    nosetests \
58      --ignore-files=test_appengine\.py \
59      --ignore-files=test__appengine_ndb\.py \
60      --ignore-files=test_keyring_storage\.py \
61      --exclude-dir=oauth2client/contrib/django_util \
62      --exclude-dir=tests/contrib/django_util \
63      {posargs}
64deps = {[testenv]basedeps}
65       nose-exclude
66
67[testenv:py33]
68basepython =
69    python3.3
70commands =
71    nosetests \
72      --ignore-files=test_appengine\.py \
73      --ignore-files=test__appengine_ndb\.py \
74      --ignore-files=test_django_orm\.py \
75      --ignore-files=test_django_settings\.py \
76      --ignore-files=test_django_util\.py \
77      --exclude-dir=oauth2client/contrib/django_util \
78      --exclude-dir=tests/contrib/django_util \
79      {posargs}
80deps = {[testenv]basedeps}
81       keyring
82       nose-exclude
83
84[testenv:cover]
85basepython = {[coverbase]basepython}
86commands =
87    {[coverbase]commands}
88    coverage report --show-missing --cover-min-percentage=100
89deps =
90    {[coverbase]deps}
91
92[testenv:coveralls]
93basepython = {[coverbase]basepython}
94commands =
95    {[coverbase]commands}
96    coverage report --show-missing
97    coveralls
98deps =
99    {[coverbase]deps}
100    coveralls
101passenv = {[testenv:system-tests]passenv}
102
103[testenv:docs]
104basepython = python2.7
105deps =
106    {[testenv:cover]deps}
107    python-gflags
108    pyyaml
109    sphinx>=1.3b2
110    sphinx-rtd-theme
111    webapp2
112commands = {toxinidir}/scripts/build_docs.sh
113
114[testenv:gae]
115basepython = python2.7
116deps = {[testenv]basedeps}
117       nosegae
118commands =
119    nosetests \
120      --with-gae \
121      --gae-lib-root={env:GAE_PYTHONPATH:google_appengine} \
122      --gae-application=tests/data \
123      --logging-level=INFO \
124      tests/contrib/test_appengine.py \
125      tests/contrib/test__appengine_ndb.py
126
127[testenv:system-tests]
128basepython =
129    python2.7
130commands =
131    {toxinidir}/scripts/run_system_tests.sh
132deps =
133    pycrypto>=2.6
134    cryptography>=1.0
135    pyopenssl>=0.14
136passenv = GOOGLE_* OAUTH2CLIENT_* TRAVIS*
137
138[testenv:system-tests3]
139basepython =
140    python3.4
141commands =
142    {toxinidir}/scripts/run_system_tests.sh
143deps =
144    pycrypto>=2.6
145    cryptography>=1.0
146    pyopenssl>=0.14
147passenv = {[testenv:system-tests]passenv}
148
149[testenv:gce-system-tests]
150basepython =
151    python2.7
152commands =
153    python {toxinidir}/scripts/run_gce_system_tests.py
154deps =
155    pycrypto>=2.6
156    unittest2
157passenv = {[testenv:system-tests]passenv}
158
159[testenv:flake8]
160commands = flake8 --import-order-style google {posargs}
161deps =
162    flake8-putty
163    flake8-import-order
164
165[flake8]
166exclude = .tox,.git,./*.egg,build,
167application-import-names = oauth2client
168putty-ignore =
169  # E402 module level import not at top of file
170  # These files have needed configurations defined before import
171  docs/conf.py : E402
172  tests/contrib/test_appengine.py : E402
173  # Additionally, ignore E100 (imports in wrong order) for Django configuration
174  tests/contrib/test_django_orm.py : E402,I100
175  # E501 line too long
176  # Ignore lines over 80 chars that include "http:" or "https:"
177  /http:/ : E501
178  /https:/ : E501
179