Update knowledge base layout
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
"""Tests for Knowledge Base API endpoints"""
|
||||
import pytest
|
||||
import uuid
|
||||
from app.models import KnowledgeBase
|
||||
|
||||
|
||||
class TestKnowledgeAPI:
|
||||
@@ -224,8 +225,8 @@ class TestKnowledgeAPI:
|
||||
{"chunkSize": 1000, "chunkOverlap": 100},
|
||||
{"chunkSize": 256, "chunkOverlap": 25}
|
||||
]
|
||||
for config in configs:
|
||||
data = {"name": "Chunk Test KB", **config}
|
||||
for idx, config in enumerate(configs):
|
||||
data = {"name": f"Chunk Test KB {idx}", **config}
|
||||
response = client.post("/api/knowledge/bases", json=data)
|
||||
assert response.status_code == 200
|
||||
|
||||
@@ -253,3 +254,25 @@ class TestKnowledgeAPI:
|
||||
assert response.status_code == 200
|
||||
data = response.json()
|
||||
assert len(data["documents"]) == 3
|
||||
|
||||
def test_create_knowledge_base_duplicate_name(self, client):
|
||||
"""Test duplicate KB names are rejected for same user."""
|
||||
payload = {"name": "Duplicate KB"}
|
||||
first = client.post("/api/knowledge/bases", json=payload)
|
||||
assert first.status_code == 200
|
||||
|
||||
second = client.post("/api/knowledge/bases", json=payload)
|
||||
assert second.status_code == 400
|
||||
|
||||
def test_update_embedding_model_blocked_when_chunks_exist(self, client, db_session):
|
||||
"""Test embedding model change is blocked after indexing chunks."""
|
||||
create_resp = client.post("/api/knowledge/bases", json={"name": "KB Embedding Lock"})
|
||||
assert create_resp.status_code == 200
|
||||
kb_id = create_resp.json()["id"]
|
||||
|
||||
kb = db_session.query(KnowledgeBase).filter(KnowledgeBase.id == kb_id).first()
|
||||
kb.chunk_count = 5
|
||||
db_session.commit()
|
||||
|
||||
update_resp = client.put(f"/api/knowledge/bases/{kb_id}", json={"embeddingModel": "text-embedding-3-large"})
|
||||
assert update_resp.status_code == 400
|
||||
|
||||
Reference in New Issue
Block a user