-
Notifications
You must be signed in to change notification settings - Fork 29
/
toxtest.sh
executable file
·62 lines (53 loc) · 1.41 KB
/
toxtest.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash
#
# Script that will try to test this codebase against as many
# python versions as is possible. It does this using a combination
# of pyenv (for building various interpreters) and tox for
# testing using each of those interpreters.
#
pyversions=(2.7.7
3.3.5
3.4.3
pypy-2.3.1)
# parse options
for i in "$@"
do
case $i in
--fast)
FAST=YES
;;
esac
done
if [ ! FAST="YES" ]; then
# first make sure that pyenv is installed
if [ ! -s "$HOME/.pyenv/bin/pyenv" ]; then
curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
fi
fi
# Update pyenv (required for new python versions to be available)
(cd $HOME/.pyenv && git pull)
# add pyenv to our path and initialize (if this has not already been done)
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
# install each python version that we want to test with
for pyversion in ${pyversions[*]};
do
pyenv install -s ${pyversion}
done
pyenv rehash
# This is required
pyenv global ${pyversions[*]}
# Now, run the tests after sourcing venv for tox install/use
if [ "$FAST" != "YES" ]; then
virtualenv -q .toxenv
fi
source .toxenv/bin/activate
if [ "$FAST" != "YES" ]; then
pip install -q -r dev-requirements.txt
fi
if [ "$FAST" == "YES" ]; then
tox
else
# will ensure all depencies are pulled in
tox --recreate
fi