Skip to content

Commit 123c39d

Browse files
committed
included compiling and alembic upgrade commands required for test case to run
1 parent b2550db commit 123c39d

File tree

1 file changed

+50
-47
lines changed

1 file changed

+50
-47
lines changed

.circleci/config.yml

Lines changed: 50 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,54 @@
11
---
2-
# Python CircleCI 2.0 configuration file
3-
#
4-
# Check https://circleci.com/docs/2.0/language-python/ for more details
5-
#
62
version: 2
73
jobs:
84
build:
9-
docker:
10-
- image: circleci/mysql:5.7
11-
working_directory: /root/singnet
12-
environment:
13-
PYTHONPATH: /root/singnet/snet-platform-usage
14-
steps:
15-
- checkout
16-
- restore_cache:
17-
keys:
18-
- v1-dependencies-{{ checksum "metering/requirements.txt" }}
19-
# fallback to using the latest cache if no exact match is found
20-
- v1-dependencies-
21-
- run:
22-
name: Install Python and Git
23-
command: |
24-
mysql --version
25-
service mysql start
26-
apt-get update
27-
apt-get -y install sudo wget git
28-
apt-get -y install python3 python3-pip
29-
- run:
30-
name: install dependencies
31-
command: |
32-
python3 -m venv venv
33-
. venv/bin/activate
34-
pip install -r metering/requirements.txt
35-
- save_cache:
36-
paths:
37-
- ./venv
38-
key: v1-dependencies-{{ checksum "requirements.txt" }}
39-
# run tests!
40-
# this example uses Django's built-in test-runner
41-
# other common Python testing frameworks include pytest and nose
42-
# https://pytest.org
43-
# https://nose.readthedocs.io
44-
- run:
45-
name: run tests
46-
command: |
47-
. venv/bin/activate
48-
python metering/tests/test_total_calls.py test
49-
- store_artifacts:
50-
path: test-reports
51-
destination: test-reports
5+
docker:
6+
- image: circleci/python:3.6.6-node
7+
- image: circleci/mysql:8.0.16
8+
environment:
9+
MYSQL_ROOT_PASSWORD: rootpw
10+
MYSQL_DATABASE: test_db
11+
MYSQL_USER: user
12+
MYSQL_PASSWORD: passw0rd
13+
working_directory: ~/singnet
14+
environment:
15+
PYTHONPATH: ~/singnet/snet-platform-usage/metering
16+
steps:
17+
- checkout
18+
- run:
19+
# Our primary container isn't MYSQL so run a sleep command until it's ready.
20+
name: Waiting for MySQL to be ready
21+
command: |
22+
for i in `seq 1 30`;
23+
do
24+
nc -z 127.0.0.1 3306 && echo Success && exit 0
25+
echo -n .
26+
sleep 1
27+
done
28+
echo Failed waiting for MySQL && exit 1
29+
- run:
30+
name: Initialise tables.
31+
command: |
32+
cd metering
33+
cp tests/alembic.ini .
34+
cp tests/test-settings.py settings.py
35+
sudo pip install alembic
36+
sudo pip install pymysql
37+
sudo pip install cryptography
38+
PYTHONPATH=$PWD
39+
alembic upgrade head
40+
- run:
41+
name: Install dependencies & compile
42+
command: |
43+
cd metering
44+
python -m compileall *.py
45+
python -m compileall */*.py
46+
sudo pip install -r requirements.txt
47+
- run:
48+
name: run tests for metering
49+
command: |
50+
cd metering
51+
PYTHONPATH=$PWD python tests/test_total_calls.py
52+
- store_artifacts:
53+
path: test-reports
54+
destination: test-reports

0 commit comments

Comments
 (0)