Mock EmbeddingService for tests
CI / lint_and_test (push) Failing after 2m28s
Details
CI / lint_and_test (push) Failing after 2m28s
Details
This commit is contained in:
parent
99ae69713a
commit
734c7a767d
|
@ -37,4 +37,4 @@ jobs:
|
||||||
run: ruff check .
|
run: ruff check .
|
||||||
|
|
||||||
- name: Run Pytest
|
- name: Run Pytest
|
||||||
run: pytest -s
|
run: pytest
|
||||||
|
|
|
@ -103,5 +103,9 @@ if __name__ == "__main__":
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
|
||||||
uvicorn.run(
|
uvicorn.run(
|
||||||
"src.app.main:app", host="0.0.0.0", port=8000, reload=True, log_level="info"
|
app="src.app.main:app",
|
||||||
|
host="0.0.0.0",
|
||||||
|
port=8000,
|
||||||
|
reload=True,
|
||||||
|
log_level="info",
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
from fastapi import APIRouter
|
from fastapi import APIRouter
|
||||||
from src.app.config import settings
|
from src.app.config import settings
|
||||||
|
from src.services.chroma_store import ChromaStore
|
||||||
|
from src.services.embeddings import EmbeddingService
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
router = APIRouter(tags=["health"])
|
router = APIRouter(tags=["health"])
|
||||||
|
|
||||||
|
@ -7,9 +10,6 @@ router = APIRouter(tags=["health"])
|
||||||
@router.get("/healthz")
|
@router.get("/healthz")
|
||||||
async def health_check():
|
async def health_check():
|
||||||
try:
|
try:
|
||||||
from src.services.chroma_store import ChromaStore
|
|
||||||
from src.services.embeddings import EmbeddingService
|
|
||||||
|
|
||||||
chroma_store = ChromaStore()
|
chroma_store = ChromaStore()
|
||||||
doc_count = chroma_store.get_count()
|
doc_count = chroma_store.get_count()
|
||||||
|
|
||||||
|
@ -45,9 +45,7 @@ async def health_check():
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
import datetime
|
health_status["timestamp"] = datetime.now(timezone.utc)
|
||||||
|
|
||||||
health_status["timestamp"] = datetime.datetime.utcnow().isoformat() + "Z"
|
|
||||||
|
|
||||||
if doc_count == 0:
|
if doc_count == 0:
|
||||||
health_status["status"] = "degraded"
|
health_status["status"] = "degraded"
|
||||||
|
@ -67,8 +65,6 @@ async def health_check():
|
||||||
@router.get("/readiness")
|
@router.get("/readiness")
|
||||||
async def readiness_check():
|
async def readiness_check():
|
||||||
try:
|
try:
|
||||||
from src.services.chroma_store import ChromaStore
|
|
||||||
|
|
||||||
chroma_store = ChromaStore()
|
chroma_store = ChromaStore()
|
||||||
doc_count = chroma_store.get_count()
|
doc_count = chroma_store.get_count()
|
||||||
|
|
||||||
|
|
|
@ -3,6 +3,8 @@ from fastapi import APIRouter, HTTPException, Depends, Header
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
|
|
||||||
from src.app.config import settings
|
from src.app.config import settings
|
||||||
|
from src.ingest.ingest_cli import run_ingest
|
||||||
|
from src.services.chroma_store import ChromaStore
|
||||||
|
|
||||||
router = APIRouter(prefix="/api/v1/admin", tags=["administration"])
|
router = APIRouter(prefix="/api/v1/admin", tags=["administration"])
|
||||||
|
|
||||||
|
@ -24,8 +26,6 @@ def verify_admin_token(authorization: Optional[str] = Header(None)):
|
||||||
@router.post("/ingest")
|
@router.post("/ingest")
|
||||||
async def trigger_ingest(recreate: bool = False, _: bool = Depends(verify_admin_token)):
|
async def trigger_ingest(recreate: bool = False, _: bool = Depends(verify_admin_token)):
|
||||||
try:
|
try:
|
||||||
from src.ingest.ingest_cli import run_ingest
|
|
||||||
|
|
||||||
data_dir = "articles_konsol_pro"
|
data_dir = "articles_konsol_pro"
|
||||||
platform_file = "data/platform_overview.md"
|
platform_file = "data/platform_overview.md"
|
||||||
persist_dir = settings.chroma_persist_dir
|
persist_dir = settings.chroma_persist_dir
|
||||||
|
@ -61,8 +61,6 @@ async def trigger_ingest(recreate: bool = False, _: bool = Depends(verify_admin_
|
||||||
@router.get("/knowledge-base/stats")
|
@router.get("/knowledge-base/stats")
|
||||||
async def get_knowledge_base_stats(_: bool = Depends(verify_admin_token)):
|
async def get_knowledge_base_stats(_: bool = Depends(verify_admin_token)):
|
||||||
try:
|
try:
|
||||||
from src.services.chroma_store import ChromaStore
|
|
||||||
|
|
||||||
chroma_store = ChromaStore()
|
chroma_store = ChromaStore()
|
||||||
doc_count = chroma_store.get_count()
|
doc_count = chroma_store.get_count()
|
||||||
|
|
||||||
|
@ -91,8 +89,6 @@ async def get_knowledge_base_stats(_: bool = Depends(verify_admin_token)):
|
||||||
@router.delete("/knowledge-base")
|
@router.delete("/knowledge-base")
|
||||||
async def clear_knowledge_base(_: bool = Depends(verify_admin_token)):
|
async def clear_knowledge_base(_: bool = Depends(verify_admin_token)):
|
||||||
try:
|
try:
|
||||||
from src.services.chroma_store import ChromaStore
|
|
||||||
|
|
||||||
chroma_store = ChromaStore()
|
chroma_store = ChromaStore()
|
||||||
chroma_store.delete_collection()
|
chroma_store.delete_collection()
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
from unittest.mock import patch
|
||||||
from fastapi.testclient import TestClient
|
from fastapi.testclient import TestClient
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
@ -7,11 +8,13 @@ sys.path.append(
|
||||||
)
|
)
|
||||||
|
|
||||||
from src.app.main import app
|
from src.app.main import app
|
||||||
|
from src.app.config import settings
|
||||||
|
|
||||||
client = TestClient(app)
|
client = TestClient(app)
|
||||||
|
|
||||||
|
|
||||||
def test_health_endpoint():
|
@patch("src.app.routers.health.EmbeddingService")
|
||||||
|
def test_health_endpoint(mock_embedding_service):
|
||||||
response = client.get("/healthz")
|
response = client.get("/healthz")
|
||||||
assert response.status_code == 200
|
assert response.status_code == 200
|
||||||
data = response.json()
|
data = response.json()
|
||||||
|
@ -107,8 +110,6 @@ def test_admin_endpoints_without_auth():
|
||||||
|
|
||||||
|
|
||||||
def test_admin_endpoints_with_auth():
|
def test_admin_endpoints_with_auth():
|
||||||
from src.app.config import settings
|
|
||||||
|
|
||||||
headers = {"Authorization": f"Bearer {settings.api_secret_key}"}
|
headers = {"Authorization": f"Bearer {settings.api_secret_key}"}
|
||||||
|
|
||||||
response = client.get("/api/v1/admin/knowledge-base/stats", headers=headers)
|
response = client.get("/api/v1/admin/knowledge-base/stats", headers=headers)
|
||||||
|
|
Loading…
Reference in New Issue