~vila/ols-store-tests/fix-arch-requirement

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
# Copyright (C) 2016 Canonical Ltd.

ENV = $(CURDIR)/env
PIP = pip3
PYTHON = python3
VM = store-acceptance-tests
VSSH = ols-vms shell ${VM}
TEST_TARGET ?= discover tests/api
PROJECT_NAME = ols-store-tests
WHEELS_DIR = branches/wheels
WHEELS_BRANCH_URL ?= lp:~ubuntuone-pqm-team/$(PROJECT_NAME)/dependencies

bootstrap: $(ENV) wheels install-wheels

$(ENV):
	pyvenv --clear --system-site-packages $(ENV)

wheels:
	[ -d $(WHEELS_DIR) ] && (cd $(WHEELS_DIR) && bzr pull) || (bzr branch $(WHEELS_BRANCH_URL) $(WHEELS_DIR))

install-wheels: ARGS=-r requirements.txt
install-wheels: $(ENV)
	$(PIP) install --find-links=$(WHEELS_DIR) --no-index $(ARGS)

vm-setup: ols-vms.conf dependencies.txt
	if [ `ols-vms status ${VM}` = 'RUNNING' ] ; then ols-vms stop ${VM} ; fi
	ols-vms setup ${VM}
	touch vm-setup

vm-built: vm-setup
	if [ `ols-vms status ${VM}` = 'UNKNOWN' ] ; then $(MAKE) vm-setup ; fi

vm-started: vm-built
	if [ `ols-vms status ${VM}` = 'STOPPED' ] ; then ols-vms start ${VM} ; fi

vm-up-to-date: vm-started
	${VSSH} 'sudo apt-get update && sudo apt-get upgrade -y'

branch-up-to-date:
	${VSSH} 'cd work && bzr pull --overwrite'

store-versions: vm-started
	${VSSH} 'cd work && ./get_store_versions.py'

test: vm-up-to-date branch-up-to-date store-versions
	@${VSSH} 'cd work && \
		TEST_USER_EMAIL=$(TEST_USER_EMAIL) \
		TEST_USER_PASSWORD=$(TEST_USER_PASSWORD) \
		TEST_USER_NAMESPACE=$(TEST_USER_NAMESPACE) \
		STRIPE_PUBLISHABLE_KEY=$(STRIPE_PUBLISHABLE_KEY) \
		make api-tests'

api-tests: bootstrap
	$(PYTHON) -u -m unittest $(TEST_TARGET)