chore: Add test reports directory creation step in CI workflows
Some checks failed
Docker Build and Push / build-and-push (push) Failing after 36s
LabFusion CI/CD Pipeline / api-gateway (push) Failing after 1m11s
Integration Tests / integration-tests (push) Failing after 29s
LabFusion CI/CD Pipeline / api-docs (push) Successful in 1m42s
Integration Tests / performance-tests (push) Has been skipped
Service Adapters (Python FastAPI) / test (3.1) (push) Failing after 11s
Service Adapters (Python FastAPI) / test (3.11) (push) Failing after 19s
LabFusion CI/CD Pipeline / frontend (push) Failing after 1m50s
LabFusion CI/CD Pipeline / integration-tests (push) Has been skipped
Service Adapters (Python FastAPI) / test (3.12) (push) Failing after 20s
Service Adapters (Python FastAPI) / test (3.9) (push) Failing after 21s
Service Adapters (Python FastAPI) / build (push) Has been skipped
LabFusion CI/CD Pipeline / service-adapters (push) Failing after 20s
Some checks failed
Docker Build and Push / build-and-push (push) Failing after 36s
LabFusion CI/CD Pipeline / api-gateway (push) Failing after 1m11s
Integration Tests / integration-tests (push) Failing after 29s
LabFusion CI/CD Pipeline / api-docs (push) Successful in 1m42s
Integration Tests / performance-tests (push) Has been skipped
Service Adapters (Python FastAPI) / test (3.1) (push) Failing after 11s
Service Adapters (Python FastAPI) / test (3.11) (push) Failing after 19s
LabFusion CI/CD Pipeline / frontend (push) Failing after 1m50s
LabFusion CI/CD Pipeline / integration-tests (push) Has been skipped
Service Adapters (Python FastAPI) / test (3.12) (push) Failing after 20s
Service Adapters (Python FastAPI) / test (3.9) (push) Failing after 21s
Service Adapters (Python FastAPI) / build (push) Has been skipped
LabFusion CI/CD Pipeline / service-adapters (push) Failing after 20s
### Summary of Changes - Introduced a step to create a `tests/reports` directory in both CI workflows for Service Adapters and the main CI configuration. - This ensures that test reports have a designated location for output, improving organization and accessibility. ### Expected Results - Enhanced structure for test report generation, facilitating easier access to test results and improving overall CI workflow clarity.
This commit is contained in:
87
services/service-adapters/tests/test_general_routes.py
Normal file
87
services/service-adapters/tests/test_general_routes.py
Normal file
@@ -0,0 +1,87 @@
|
||||
"""
|
||||
Tests for general API routes
|
||||
"""
|
||||
import pytest
|
||||
from fastapi.testclient import TestClient
|
||||
from unittest.mock import patch
|
||||
|
||||
from main import app
|
||||
|
||||
client = TestClient(app)
|
||||
|
||||
|
||||
class TestGeneralRoutes:
|
||||
"""Test general API routes"""
|
||||
|
||||
def test_root_endpoint(self):
|
||||
"""Test the root endpoint"""
|
||||
response = client.get("/")
|
||||
assert response.status_code == 200
|
||||
|
||||
data = response.json()
|
||||
assert data["message"] == "LabFusion Service Adapters API"
|
||||
assert data["version"] == "1.0.0"
|
||||
|
||||
def test_health_check(self):
|
||||
"""Test the health check endpoint"""
|
||||
response = client.get("/health")
|
||||
assert response.status_code == 200
|
||||
|
||||
data = response.json()
|
||||
assert data["status"] == "healthy"
|
||||
assert "timestamp" in data
|
||||
# Verify timestamp is in ISO format
|
||||
assert "T" in data["timestamp"] or "Z" in data["timestamp"]
|
||||
|
||||
@patch('services.config.SERVICES')
|
||||
def test_get_services(self, mock_services):
|
||||
"""Test the get services endpoint"""
|
||||
# Mock the services configuration
|
||||
mock_services.items.return_value = [
|
||||
("home_assistant", {
|
||||
"enabled": True,
|
||||
"url": "http://homeassistant.local:8123"
|
||||
}),
|
||||
("frigate", {
|
||||
"enabled": True,
|
||||
"url": "http://frigate.local:5000"
|
||||
}),
|
||||
("immich", {
|
||||
"enabled": False,
|
||||
"url": "http://immich.local:2283"
|
||||
})
|
||||
]
|
||||
|
||||
response = client.get("/services")
|
||||
assert response.status_code == 200
|
||||
|
||||
data = response.json()
|
||||
assert "home_assistant" in data
|
||||
assert "frigate" in data
|
||||
assert "immich" in data
|
||||
|
||||
# Check service status structure
|
||||
ha_service = data["home_assistant"]
|
||||
assert ha_service["enabled"] is True
|
||||
assert ha_service["url"] == "http://homeassistant.local:8123"
|
||||
assert ha_service["status"] == "unknown"
|
||||
|
||||
def test_health_check_response_model(self):
|
||||
"""Test that health check returns proper response model"""
|
||||
response = client.get("/health")
|
||||
data = response.json()
|
||||
|
||||
# Verify all required fields are present
|
||||
required_fields = ["status", "timestamp"]
|
||||
for field in required_fields:
|
||||
assert field in data
|
||||
|
||||
def test_root_response_model(self):
|
||||
"""Test that root endpoint returns proper response model"""
|
||||
response = client.get("/")
|
||||
data = response.json()
|
||||
|
||||
# Verify all required fields are present
|
||||
required_fields = ["message", "version"]
|
||||
for field in required_fields:
|
||||
assert field in data
|
||||
Reference in New Issue
Block a user