blob: df0902c316e6a33ddf0a23c5b62fe9fab4e79f48 (
plain)
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
122
|
VIRTUALENV=~/.venvs/pixua
.PHONY: setup requirements install requirements_py install_py requirements_js install_js create_virtualenv
.PHONY: test test_py test_js test_all linters linters_py linters_js coverage unit_tests_py unit_tests_js
.PHONY: integration_tests_py functional_tests functional_tests_ci ensure_virtualenv_installed clean
.PHONY: clean_all clean_py clean_js clean_cache remove_virtualenv remove_javascript_packages
setup: install
requirements: requirements_py requirements_js
install: requirements install_py install_js
requirements_py: create_virtualenv
@. $(VIRTUALENV)/bin/activate;\
pip install --upgrade pip setuptools
install_py: service/requirements.txt service/test_requirements.txt
@. $(VIRTUALENV)/bin/activate;\
cd service;\
pip install pysqlcipher --upgrade --force-reinstall --install-option="--bundled";\
pip install --exists-action s -r requirements.txt -r test_requirements.txt
requirements_js:
@cd web-ui;\
npm install;\
node_modules/.bin/bower install
install_js:
@cd web-ui;\
npm rebuild node-sass;\
npm run build
create_virtualenv: ensure_virtualenv_installed
@if [ ! -e $(VIRTUALENV)/bin/activate ]; then\
echo "Pixelated virtualenv doesn't exist, creating now";\
virtualenv --python=python2 $(VIRTUALENV);\
fi
test: clean install test_py test_js coverage
test_py: linters_py unit_tests_py integration_tests_py
test_js: linters_js unit_tests_js
test_all: test functional_tests
linters: clean install linters_py linters_js
linters_py:
@. $(VIRTUALENV)/bin/activate;\
cd service;\
pep8 --ignore=E501 pixelated test
linters_js:
@cd web-ui;\
npm run lint
coverage:
@. $(VIRTUALENV)/bin/activate;\
cd service;\
coverage run -p --source=pixelated `which trial` test.unit;\
coverage run -p --source=pixelated `which trial` test.integration;\
coverage combine;\
coverage html
unit_tests_py:
@. $(VIRTUALENV)/bin/activate;\
cd service;\
trial --reporter=text test.unit
unit_tests_js:
@cd web-ui;\
npm run test
integration_tests_py:
@. $(VIRTUALENV)/bin/activate;\
cd service;\
trial --reporter=text test.integration
functional_tests: clean requirements install
@. $(VIRTUALENV)/bin/activate;\
export PATH=$(PATH):/usr/lib/chromium/;\
cd service;\
xvfb-run --server-args="-screen 0 1280x1024x24" behave --tags ~@wip --tags ~@smoke test/functional/features
functional_tests_ci: clean requirements install
@. $(VIRTUALENV)/bin/activate;\
cd service;\
behave --tags ~@wip --tags ~@smoke test/functional/features
ensure_virtualenv_installed:
@if [ ! `which virtualenv` ]; then\
echo "Virtualenv must be installed";\
exit 1;\
fi
clean: clean_py clean_js clean_cache
clean_all: clean remove_javascript_packages remove_virtualenv
clean_py:
rm -rf service/_trial_temp
find . -name "*.pyc" -delete
rm -rf service/.coverage
rm -rf service/htmlcov
clean_js:
rm -rf web-ui/dist
rm -rf web-ui/.sass-cache
clean_cache:
rm -rf ~/.config/leap
rm -rf ~/.leap
rm -rf service/ghostdriver.log
remove_virtualenv:
rm -rf $(VIRTUALENV)
remove_javascript_packages:
rm -rf web-ui/node_modules
rm -rf web-ui/app/bower_components
diagrams:
@. $(VIRTUALENV)/bin/activate;\
pip install plantuml;\
cd service/diagrams/png;\
python -m plantuml *.txt
|