@@ -8,61 +8,62 @@ if [[ -z "${CI:-}" ]] && [[ -t 1 ]] ; then
8
8
fi
9
9
test_flags=(
10
10
$@
11
- $flag_forked
11
+ " $flag_forked "
12
12
tests/
13
13
)
14
+ if [[ -n " ${CI:- } " ]] ; then
15
+ test_flags+=(--fulltrace)
16
+ fi
17
+ : " ${stages=" venv,style,test,check_version" } "
14
18
15
19
main () {
16
20
cd " $( dirname " ${BASH_SOURCE[0]} " ) /.."
17
- if [[ -n " ${CI:- } " ]] ; then
18
- case " ${test_group-} " in
19
- package)
20
- # TODO: sdist bdist_wheel
21
- # but wheels don't roll well with our 2/3 split code base
22
- python setup.py sdist
23
- install_check_version " pip"
24
- ;;
25
- * )
26
- pip install -e .
27
- httplib2_test_still_run_skipped=1 pytest --fulltrace -k test_303 $@ tests/ || true
28
- httplib2_test_still_run_skipped=1 pytest --fulltrace -k test_head_301 $@ tests/ || true
29
- pytest --fulltrace ${test_flags[@]}
30
- ;;
31
- esac
32
- else
33
- if [[ ! -d ./venv-27 ]] ; then
34
- virtualenv --python=python2.7 ./venv-27
35
- fi
36
- if [[ ! -d ./venv-36 ]] ; then
37
- virtualenv --python=python3.6 ./venv-36
38
- fi
21
+ if enabled venv && [[ -z " ${CI:- }${VIRTUAL_ENV:- } " ]] ; then
22
+ echo " environment: neither CI nor existing virtualenv, using \` python -m venv ./venv\` " >&2
23
+ [[ -x venv/bin/pip ]] || python -m venv venv
24
+ source venv/bin/activate
25
+ fi
39
26
40
- ./venv-27/bin/pip install -e . -r requirements-test.txt
41
- ./venv-27/bin/pytest ${test_flags[@]}
42
- ./venv-36/bin/pip install -e . -r requirements-test.txt
43
- ./venv-36/bin/pytest ${test_flags[@]}
27
+ if enabled style ; then
28
+ pip install black isort
29
+ grep -E ' flake8' < requirements-test.txt | xargs pip install
30
+ # TODO enable after py2/3 merge and initial black/isort run
31
+ # isort python3/ tests/
32
+ # black python3/ tests/
33
+ flake8 python3/ tests/
34
+ fi
44
35
45
- # FIXME: too many errors
46
- # ./venv-27/bin/flake8 python2/
47
- # ./venv-36/bin/flake8 python3/ tests/
36
+ if enabled test ; then
37
+ pip install -e . -r requirements-test.txt
38
+ if [[ -n " ${CI:- } " ]] ; then
39
+ httplib2_test_still_run_skipped=1 pytest --fulltrace -k test_303 " $@ " tests/ || true
40
+ httplib2_test_still_run_skipped=1 pytest --fulltrace -k test_head_301 " $@ " tests/ || true
41
+ fi
42
+ pytest --fulltrace " ${test_flags[@]} "
43
+ fi
48
44
45
+ if enabled check_version ; then
49
46
# TODO: sdist bdist_wheel
50
47
# but wheels don't roll well with our 2/3 split code base
51
- ./venv-36/bin/python setup.py sdist
52
- install_check_version " ./venv-27/bin/pip"
53
- install_check_version " ./venv-36/bin/pip"
48
+ python setup.py sdist
49
+ install_check_version
54
50
fi
51
+
55
52
rm -rf ./_httplib2_test_cache
56
53
}
57
54
55
+ enabled () {
56
+ [[ " ,${stages} ," = * ,$1 ,* ]] || return 1
57
+ }
58
+
58
59
install_check_version () {
59
- local pip= " $1 "
60
- $ pip install dist/httplib2*
60
+ # FIXME replace gz with whl after py2/3 merge
61
+ pip install dist/httplib2* gz
61
62
version_source=$( python setup.py --version)
62
- version_installed=$( $ pip show httplib2 | fgrep Version: | cut -d' ' -f2)
63
+ version_installed=$( pip show httplib2 | grep -F Version: | cut -d' ' -f2)
63
64
if [[ " $version_source " != " $version_installed " ]] ; then
64
65
echo " error: installed package version=$version_installed does not match source=$version_source " >&2
65
- exit 1
66
+ return 1
66
67
fi
67
68
}
68
69
0 commit comments