#!/bin/bash set -eux # By default, run tests with pytest-forked plugin, # disable in terminal for debugging, you may add --forked flag_forked="--forked" if [[ -z "${CONTINUOUS_INTEGRATION-}" ]] && [[ -t 1 ]] ; then flag_forked="" fi test_flags=( $@ $flag_forked tests/ ) main() { cd "$( dirname "${BASH_SOURCE[0]}" )/.." if [[ -n "${CONTINUOUS_INTEGRATION-}" ]] ; then case "${test_group-}" in pep8) if [[ "${TRAVIS_PYTHON_VERSION}" = "2.7" ]] ; then flake8 python2/ else flake8 python3/ tests/ fi ;; package) # TODO: sdist bdist_wheel # but wheels don't roll well with our 2/3 split code base python setup.py sdist install_check_version "pip" ;; *) pip install -e . httplib2_test_still_run_skipped=1 pytest --fulltrace -k test_303 $@ tests/ || true httplib2_test_still_run_skipped=1 pytest --fulltrace -k test_head_301 $@ tests/ || true pytest --fulltrace ${test_flags[@]} ;; esac else if [[ ! -d ./venv-27 ]] ; then virtualenv --python=python2.7 ./venv-27 fi if [[ ! -d ./venv-36 ]] ; then virtualenv --python=python3.6 ./venv-36 fi ./venv-27/bin/pip install -e . -r requirements-test.txt ./venv-27/bin/pytest ${test_flags[@]} ./venv-36/bin/pip install -e . -r requirements-test.txt ./venv-36/bin/pytest ${test_flags[@]} # FIXME: too many errors # ./venv-27/bin/flake8 python2/ # ./venv-36/bin/flake8 python3/ tests/ # TODO: sdist bdist_wheel # but wheels don't roll well with our 2/3 split code base ./venv-36/bin/python setup.py sdist install_check_version "./venv-27/bin/pip" install_check_version "./venv-36/bin/pip" fi rm -rf ./_httplib2_test_cache } install_check_version() { local pip="$1" $pip install dist/httplib2* version_source=$(cd python3 ; python3 -Es -c 'import httplib2;print(httplib2.__version__)') version_installed=$($pip show httplib2 |fgrep Version |cut -d' ' -f2) if [[ "$version_source" != "$version_installed" ]] ; then echo "error: installed package version=$version_installed does not match source=$version_source" >&2 exit 1 fi } main "$@"