forked from inducer/relate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run-tests-for-ci.sh
121 lines (92 loc) · 4.08 KB
/
run-tests-for-ci.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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#! /bin/bash
set -e
echo "-----------------------------------------------"
echo "Current directory: $(pwd)"
echo "Python executable: ${PY_EXE}"
echo "-----------------------------------------------"
# {{{ clean up
rm -Rf .env
rm -Rf build
find . -name '*.pyc' -delete
# }}}
git submodule update --init --recursive
# {{{ virtualenv
VENV_VERSION="virtualenv-15.2.0"
rm -Rf "$VENV_VERSION"
curl -k https://files.pythonhosted.org/packages/b1/72/2d70c5a1de409ceb3a27ff2ec007ecdd5cc52239e7c74990e32af57affe9/$VENV_VERSION.tar.gz | tar xfz -
VIRTUALENV="${PY_EXE} -m venv"
${VIRTUALENV} -h > /dev/null || VIRTUALENV="$VENV_VERSION/virtualenv.py --no-setuptools -p ${PY_EXE}"
if [ -d ".env" ]; then
echo "**> virtualenv exists"
else
echo "**> creating virtualenv"
${VIRTUALENV} .env
fi
. .env/bin/activate
# }}}
# {{{ setuptools
#curl -k https://bitbucket.org/pypa/setuptools/raw/bootstrap-py24/ez_setup.py | python -
#curl -k https://ssl.tiker.net/software/ez_setup.py | python -
curl -k https://bootstrap.pypa.io/ez_setup.py | python -
# }}}
curl -k https://bootstrap.pypa.io/get-pip.py | python -
# Not sure why pip ends up there, but in Py3.3, it sometimes does.
export PATH=`pwd`/.env/local/bin:$PATH
PIP="${PY_EXE} $(which pip)"
$PIP install -r requirements.txt
cp local_settings_example.py local_settings.py
if [[ "$RL_CI_TEST" = "test_postgres" ]]; then
$PIP install psycopg2-binary
psql -c 'create database relate;' -U postgres
echo "import psycopg2.extensions" >> local_settings_example.py
echo "DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'USER': 'postgres',
'NAME': 'test_relate',
'OPTIONS': {
'isolation_level': psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE,
},
},
}" >> local_settings_example.py
fi
# Make sure i18n literals marked correctly
${PY_EXE} manage.py makemessages --no-location --ignore=req.txt > output.txt
if [[ -n $(grep "msgid" output.txt) ]]; then
echo "Command 'python manage.py makemessages' failed with the following info:"
echo ""
grep --color -E '^|warning: ' output.txt
exit 1;
fi
${PY_EXE} manage.py compilemessages
$PIP install codecov factory_boy
if [[ "$RL_CI_TEST" = "test_expensive" ]]; then
coverage run manage.py test tests.test_tasks \
tests.test_admin \
tests.test_pages.test_code \
tests.test_pages.test_generic \
tests.test_pages.test_inline.InlineMultiPageUpdateTest \
tests.test_pages.test_upload.UploadQuestionNormalizeTest \
tests.test_grades.test_generic \
tests.test_grades.test_grades.GetGradeTableTest \
tests.test_grading.SingleCourseQuizPageGradeInterfaceTest \
tests.test_utils.LanguageOverrideTest \
tests.test_accounts.test_admin.AccountsAdminTest \
tests.test_flow.test_flow.AssemblePageGradesTest \
tests.test_flow.test_flow.FinishFlowSessionViewTest \
tests.test_content.SubDirRepoTest \
tests.test_auth.SignInByPasswordTest \
tests.test_analytics.FlowAnalyticsTest \
tests.test_analytics.PageAnalyticsTest \
tests.test_analytics.FlowListTest \
tests.test_analytics.IsFlowMultipleSubmitTest \
tests.test_analytics.IsPageMultipleSubmitTest \
tests.test_versioning.ParamikoSSHVendorTest \
tests.test_receivers.UpdateCouresOrUserSignalTest
elif [[ "$RL_CI_TEST" = "test_postgres" ]]; then
coverage run manage.py test tests.test_postgres
else
coverage run manage.py test tests
fi
coverage report -m
codecov