aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Wayne Parrott <jonwayne@google.com>2016-08-15 09:56:57 -0700
committerGitHub <noreply@github.com>2016-08-15 09:56:57 -0700
commit499375cea4c9c3e462ad09b3fa36554c92f85d91 (patch)
tree0bc5fb7606536c12c21bd2eb4835e4d637745c50
parent9c1ece5ce4655fde6b665aaf2c2abf04a6f0a87d (diff)
downloadoauth2client-499375cea4c9c3e462ad09b3fa36554c92f85d91.tar.gz
Enable cover tox env on Travis (#628)
Replace fragile app engine sdk download script with gcprepotools script - this ensures the SDK is up-to-date and is a no-op if the SDK is installed and up-to-date. Resolves #617
-rw-r--r--.travis.yml4
-rwxr-xr-xscripts/fetch_gae_sdk.py85
-rwxr-xr-xscripts/install.sh7
-rw-r--r--tox.ini19
4 files changed, 11 insertions, 104 deletions
diff --git a/.travis.yml b/.travis.yml
index b1be531..b73b67e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -21,6 +21,8 @@ matrix:
env: TOX_ENV=system-tests
- python: 3.4
env: TOX_ENV=system-tests3
+ - python: 2.7
+ env: TOX_ENV=cover
env:
global:
- GAE_PYTHONPATH=${HOME}/.cache/google_appengine
@@ -33,7 +35,7 @@ install:
script:
- ./scripts/run.sh
after_success:
-- if [[ "${TOX_ENV}" == "gae" ]]; then tox -e coveralls; fi
+- if [[ "${TOX_ENV}" == "cover" ]]; then coveralls; fi
notifications:
email: false
diff --git a/scripts/fetch_gae_sdk.py b/scripts/fetch_gae_sdk.py
deleted file mode 100755
index 24a6db5..0000000
--- a/scripts/fetch_gae_sdk.py
+++ /dev/null
@@ -1,85 +0,0 @@
-#!/usr/bin/env python
-"""Fetch the most recent GAE SDK and decompress it in the current directory.
-
-Usage:
- fetch_gae_sdk.py [<dest_dir>]
-
-Current releases are listed here:
- https://www.googleapis.com/storage/v1/b/appengine-sdks/o?prefix=featured
-"""
-from __future__ import print_function
-
-import json
-import os
-import StringIO
-import sys
-import urllib2
-import zipfile
-
-
-_SDK_URL = (
- 'https://www.googleapis.com/storage/v1/b/appengine-sdks/o?prefix=featured')
-
-
-def get_gae_versions():
- try:
- version_info_json = urllib2.urlopen(_SDK_URL).read()
- except:
- return {}
- try:
- version_info = json.loads(version_info_json)
- except:
- return {}
- return version_info.get('items', {})
-
-
-def _version_tuple(v):
- version_string = os.path.splitext(v['name'])[0].rpartition('_')[2]
- return tuple(int(x) for x in version_string.split('.'))
-
-
-def get_sdk_urls(sdk_versions):
- python_releases = [v for v in sdk_versions
- if v['name'].startswith('featured/google_appengine')]
- current_releases = sorted(python_releases, key=_version_tuple,
- reverse=True)
- return [release['mediaLink'] for release in current_releases]
-
-
-def main(argv):
- if len(argv) > 2:
- print('Usage: {0} [<destination_dir>]'.format(argv[0]))
- return 1
- dest_dir = argv[1] if len(argv) > 1 else '.'
- if not os.path.exists(dest_dir):
- os.makedirs(dest_dir)
-
- if os.path.exists(os.path.join(dest_dir, 'google_appengine')):
- print('GAE SDK already installed at {0}, exiting.'.format(dest_dir))
- return 0
-
- sdk_versions = get_gae_versions()
- if not sdk_versions:
- print('Error fetching GAE SDK version info')
- return 1
- sdk_urls = get_sdk_urls(sdk_versions)
- for sdk_url in sdk_urls:
- try:
- sdk_contents = StringIO.StringIO(urllib2.urlopen(sdk_url).read())
- break
- except:
- pass
- else:
- print('Could not read SDK from any of ', sdk_urls)
- return 1
- sdk_contents.seek(0)
- try:
- zip_contents = zipfile.ZipFile(sdk_contents)
- zip_contents.extractall(dest_dir)
- except:
- print('Error extracting SDK contents')
- return 1
-
-
-if __name__ == '__main__':
- sys.exit(main(sys.argv[:]))
diff --git a/scripts/install.sh b/scripts/install.sh
index 13b209d..16f312f 100755
--- a/scripts/install.sh
+++ b/scripts/install.sh
@@ -16,11 +16,12 @@
set -ev
-pip install tox
+pip install --upgrade pip setuptools tox coveralls
# App Engine tests require the App Engine SDK.
-if [[ "${TOX_ENV}" == "gae" && ! -d ${GAE_PYTHONPATH} ]]; then
- python scripts/fetch_gae_sdk.py `dirname ${GAE_PYTHONPATH}`
+if [[ "${TOX_ENV}" == "gae" || "${TOX_ENV}" == "cover" ]]; then
+ pip install git+https://github.com/GoogleCloudPlatform/python-repo-tools.git
+ gcprepotools download-appengine-sdk `dirname ${GAE_PYTHONPATH}`
fi
# Travis ships with an old version of PyPy, so install at least version 2.6.
diff --git a/tox.ini b/tox.ini
index 9cf31b1..961a580 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-envlist = py27,py34,py35,pypy,gae,cover
+envlist = flake8,py27,py34,py35,pypy,gae,cover
[testenv]
basedeps = mock>=1.3.0
@@ -31,7 +31,7 @@ commands =
--cov=oauth2client \
--cov=tests \
--cov-append \
- --gae-sdk={env:GAE_PYTHONPATH} \
+ --gae-sdk={env:GAE_PYTHONPATH:} \
tests/contrib/appengine
deps = {[testenv]deps}
coverage
@@ -45,17 +45,6 @@ commands =
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 =
@@ -71,7 +60,7 @@ commands = {toxinidir}/scripts/build_docs.sh
basepython = python2.7
deps = {[testenv]basedeps}
commands =
- py.test --gae-sdk={env:GAE_PYTHONPATH} tests/contrib/appengine
+ py.test --gae-sdk={env:GAE_PYTHONPATH:} tests/contrib/appengine
[testenv:system-tests]
basepython =
@@ -111,7 +100,7 @@ deps =
flake8-import-order
[flake8]
-exclude = .tox,.git,./*.egg,build,
+exclude = .tox,.git,./*.egg,build,.cache,env,__pycache__
application-import-names = oauth2client, tests
putty-ignore =
# E402 module level import not at top of file