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