Compare commits

..

6 Commits

Author SHA1 Message Date
e2456166b4 [P] Integrate additional store testing into CI pipeline
Some checks failed
Component testing / Hub testing (push) Successful in 27s
Component testing / Store testing (push) Failing after 1m23s
Component testing / Integration smoke testing (push) Has been skipped
2026-03-27 16:34:12 +02:00
a578a96347 Merge branch 'github/dev' into dev
All checks were successful
Component testing / Hub testing (push) Successful in 24s
Component testing / Store testing (push) Successful in 35s
Component testing / Integration smoke testing (push) Successful in 2m51s
2026-03-27 16:28:41 +02:00
VladiusVostokus
5749dd825f Merge pull request #30 from Rhinemann/lab4/gryshaiev-SCRUM-82-test-new-records-in-db
Add test for new records in DB
2026-03-27 16:14:51 +02:00
86c6c14502 [L4] Correct road state string 2026-03-27 16:03:41 +02:00
561004a49c [L4] Fix relative module imports 2026-03-27 16:03:38 +02:00
SimonSanich
7d75a15de1 Add test for new records in DB 2026-03-27 15:14:17 +02:00
4 changed files with 56 additions and 0 deletions

View File

@@ -28,6 +28,10 @@ jobs:
- name: Clone repository
run: git clone --revision ${{ gitea.sha }} --depth 1 ${{ gitea.server_url }}/${{ gitea.repository }}
- name: Start postgres_db container for testing
working-directory: IoT-Systems
run: docker-compose up -d postgres_db
- name: Build Store testing container
working-directory: IoT-Systems
run: docker build -t local/store/${{gitea.sha}} -f store/Dockerfile-test .
@@ -40,6 +44,11 @@ jobs:
if: ${{always()}}
run: docker image rm local/store/${{gitea.sha}}
- name: Clean up docker-compose
if: ${{always()}}
working-directory: IoT-Systems
run: docker-compose down -v --remove-orphans
integration-smoke-test:
name: Integration smoke testing
runs-on: host-arch-x86_64

View File

@@ -6,6 +6,7 @@ WORKDIR /app
COPY store/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
RUN pip install --root-user-action ignore --no-cache-dir pytest httpx
# Copy the entire application into the container
COPY store/. .
# Run the main.py script inside the container when it starts

View File

@@ -1,3 +1,4 @@
#!/bin/sh
PYTHONPATH=$PWD python3 test/main_test.py
PYTHONPATH=$PWD python3 -m pytest test_db.py

45
store/test_db.py Normal file
View File

@@ -0,0 +1,45 @@
from fastapi.testclient import TestClient
from main import app, processed_agent_data
from database import SessionLocal
from sqlalchemy import select
from datetime import datetime
client = TestClient(app)
def test_create_processed_agent_data():
db = SessionLocal()
before = db.execute(select(processed_agent_data)).fetchall()
before_count = len(before)
payload = {
"user_id": 123,
"data": [
{
"road_state": "normal",
"agent_data": {
"user_id": 999,
"accelerometer": {
"x": 1.1,
"y": 2.2,
"z": 3.3
},
"gps": {
"latitude": 50.45,
"longitude": 30.52
},
"timestamp": datetime.now().isoformat()
}
}
]
}
response = client.post("/processed_agent_data/", json=payload)
assert response.status_code == 200
after = db.execute(select(processed_agent_data)).fetchall()
after_count = len(after)
assert after_count == before_count + 1
db.close()