Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

14 integrate docker services and unitest in GitHub actions #290

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
f16a22d
feat(workflows): add run-tests and setup-docker workflows
basarbyz Jul 25, 2024
36b5318
feat(workflows): add run-tests and setup-docker workflows
basarbyz Jul 25, 2024
cb63f5c
feat(workflows): add run-tests and setup-docker workflows
basarbyz Jul 25, 2024
c24e315
feat(workflows): add run-tests and setup-docker workflows
basarbyz Jul 25, 2024
c7bc3db
feat(workflows): add run-tests and setup-docker workflows
basarbyz Jul 25, 2024
6856153
feat(workflows): add run-tests and setup-docker workflows
basarbyz Jul 25, 2024
d41bdec
feat(workflows): add run-tests and setup-docker workflows
basarbyz Jul 25, 2024
0029f36
feat(workflows): add run-tests and setup-docker workflows
basarbyz Jul 25, 2024
db56d59
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
08bdc8a
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
fbaf457
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
d9c5782
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
37474ad
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
f037ae0
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
42f7e49
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
088f019
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
c8e4875
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
ff55cca
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
0e4714c
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
06e67ed
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
63d4c79
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
8418930
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
eda782e
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
40f81c4
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
2cf76d8
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
eb05f14
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 25, 2024
188f101
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 26, 2024
240befe
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 26, 2024
b551c08
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 26, 2024
b7f65bc
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 26, 2024
03f7d19
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 26, 2024
81ae060
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 26, 2024
77289ea
feat(workflows): add setup-docker-and-run-tests.yml
basarbyz Jul 26, 2024
dd7e972
chore: update GitHub Actions workflow to run on any branch push and m…
basarbyz Jul 30, 2024
80753cf
chore: remove duplicated dependencies
djs0109 Sep 2, 2024
c14addf
chore: adapt syntax of validating errors
djs0109 Sep 2, 2024
74ccd3c
chore: use general command to execute tests
djs0109 Sep 2, 2024
fd69f63
chore: constraint pydantic version
djs0109 Sep 2, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions .github/workflows/setup-docker-and-run-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: setup-docker-and-run-tests.yml

on:
pull_request:
branches:
- main
push:

jobs:
setup-and-start-services:
name: Setup Docker and Start Services
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Fiware Environment
run: |
cd fiware-environment
docker compose pull
docker compose up -d

- name: Create .env File
run: |
cp .env.EXAMPLE .env

- name: Build docker images
run: |
docker compose build
docker compose up -d

- name: Wait for service to be ready
run: |
until curl -s http://localhost:5173; do
echo "Waiting for service to be ready..."
sleep 5
done

- name: Create .env file for tests
run: cp tests/.env.test.example tests/.env

- name: Set up Python 3.8
uses: actions/setup-python@v4
with:
python-version: '3.8'

- name: Set up virtual environment
djs0109 marked this conversation as resolved.
Show resolved Hide resolved
run: |
python -m venv venv
source venv/bin/activate
pip install --upgrade pip

- name: Install requirements
run: |
source venv/bin/activate
pip install -r tests/requirements.txt
pip install -r backend/api/requirements.txt
pip install -r backend/gateway/requirements.txt

- name: Set PYTHONPATH
run: echo "PYTHONPATH=$(pwd)" >> $GITHUB_ENV

- name: Run tests
run: |
source venv/bin/activate
cd tests
python -m unittest discover --verbose . "test_*.py"
9 changes: 9 additions & 0 deletions tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
To run the unit tests, run the following command to install the dependencies:
```bash
cd tests
pip install -r requirements.txt
cd ../backend/api
pip install -r requirements.txt
cd ../../backend/gateway
pip install -r requirements.txt
```
3 changes: 2 additions & 1 deletion tests/requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
pydantic==1.10.7
filip~=0.2.5
pydantic~=1.10.7
asyncpg~=0.27.0
8 changes: 3 additions & 5 deletions tests/test_crud.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import re
import pydantic
import logging
import importlib
from backend.api.main import Datapoint
from test_settings import settings
from tests.test_init import TestInit
Expand Down Expand Up @@ -299,8 +300,8 @@ def test_object_id_character_set(self):
self.assertTrue(response.ok)

# test invalid ids
for invalid_id in invalid_ids:
try:
with self.assertRaises(pydantic.ValidationError):
for invalid_id in invalid_ids:
datapoint = Datapoint(
**{
"object_id": invalid_id,
Expand All @@ -310,9 +311,6 @@ def test_object_id_character_set(self):
)
response = requests.request("POST", settings.GATEWAY_URL + "/data", headers=headers,
data=datapoint.json())
except Exception as e:
print(f"Testing invalid_id: {invalid_id} - Expected Validation Error: {str(e)}")
self.assertTrue(isinstance(e, pydantic.error_wrappers.ValidationError))

def test_object_id_auto_generation(self):
headers = {
Expand Down
Loading