[tox] envlist = py26,py27,py33,py34,py35,pypy,gae,cover [testenv] basedeps = mock>=1.3.0 pycrypto>=2.6 cryptography>=1.0 pyopenssl>=0.14 webtest nose flask unittest2 sqlalchemy fasteners deps = {[testenv]basedeps} django keyring setenv = pypy: with_gmp=no DJANGO_SETTINGS_MODULE=tests.contrib.django_util.settings commands = nosetests --ignore-files=test_appengine\.py --ignore-files=test__appengine_ndb\.py {posargs} [coverbase] basepython = python2.7 commands = nosetests \ --with-coverage \ --cover-package=oauth2client \ --cover-package=tests \ --cover-erase \ --cover-tests \ --cover-branches \ --ignore-files=test_appengine\.py \ --ignore-files=test__appengine_ndb\.py nosetests \ --with-coverage \ --cover-package=oauth2client.contrib.appengine \ --cover-package=oauth2client.contrib._appengine_ndb \ --cover-package=tests.contrib.test_appengine \ --cover-package=tests.contrib.test__appengine_ndb \ --with-gae \ --cover-tests \ --cover-branches \ --gae-application=tests/data \ --gae-lib-root={env:GAE_PYTHONPATH:google_appengine} \ --logging-level=INFO \ tests/contrib/test_appengine.py \ tests/contrib/test__appengine_ndb.py deps = {[testenv]deps} coverage nosegae [testenv:py26] basepython = python2.6 commands = nosetests \ --ignore-files=test_appengine\.py \ --ignore-files=test__appengine_ndb\.py \ --ignore-files=test_keyring_storage\.py \ --exclude-dir=oauth2client/contrib/django_util \ --exclude-dir=tests/contrib/django_util \ {posargs} deps = {[testenv]basedeps} nose-exclude [testenv:py33] basepython = python3.3 commands = nosetests \ --ignore-files=test_appengine\.py \ --ignore-files=test__appengine_ndb\.py \ --ignore-files=test_django_orm\.py \ --ignore-files=test_django_settings\.py \ --ignore-files=test_django_util\.py \ --exclude-dir=oauth2client/contrib/django_util \ --exclude-dir=tests/contrib/django_util \ {posargs} deps = {[testenv]basedeps} keyring nose-exclude [testenv:cover] basepython = {[coverbase]basepython} commands = {[coverbase]commands} coverage report --show-missing --cover-min-percentage=100 deps = {[coverbase]deps} [testenv:coveralls] basepython = {[coverbase]basepython} commands = {[coverbase]commands} coverage report --show-missing coveralls deps = {[coverbase]deps} coveralls passenv = {[testenv:system-tests]passenv} [testenv:docs] basepython = python2.7 deps = {[testenv:cover]deps} python-gflags pyyaml sphinx>=1.3b2 sphinx-rtd-theme webapp2 commands = {toxinidir}/scripts/build_docs.sh [testenv:gae] basepython = python2.7 deps = {[testenv]basedeps} nosegae commands = nosetests \ --with-gae \ --gae-lib-root={env:GAE_PYTHONPATH:google_appengine} \ --gae-application=tests/data \ --logging-level=INFO \ tests/contrib/test_appengine.py \ tests/contrib/test__appengine_ndb.py [testenv:system-tests] basepython = python2.7 commands = {toxinidir}/scripts/run_system_tests.sh deps = pycrypto>=2.6 cryptography>=1.0 pyopenssl>=0.14 passenv = GOOGLE_* OAUTH2CLIENT_* TRAVIS* [testenv:system-tests3] basepython = python3.4 commands = {toxinidir}/scripts/run_system_tests.sh deps = pycrypto>=2.6 cryptography>=1.0 pyopenssl>=0.14 passenv = {[testenv:system-tests]passenv} [testenv:gce-system-tests] basepython = python2.7 commands = python {toxinidir}/scripts/run_gce_system_tests.py deps = pycrypto>=2.6 unittest2 passenv = {[testenv:system-tests]passenv} [testenv:flake8] commands = flake8 --import-order-style google {posargs} deps = flake8-putty flake8-import-order [flake8] exclude = .tox,.git,./*.egg,build, application-import-names = oauth2client putty-ignore = # E402 module level import not at top of file # These files have needed configurations defined before import docs/conf.py : E402 tests/contrib/test_appengine.py : E402 # Additionally, ignore E100 (imports in wrong order) for Django configuration tests/contrib/test_django_orm.py : E402,I100 # E501 line too long # Ignore lines over 80 chars that include "http:" or "https:" /http:/ : E501 /https:/ : E501