77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/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 "$@"
 |