Files
dify/api/tests/unit_tests/controllers/openapi/test_knowledge_bases.py
T

29 lines
1019 B
Python

from controllers.openapi._models import KNOWLEDGE_TOP_K
from controllers.openapi.knowledge_bases import knowledge_base_row
def _record(**extra: object) -> dict[str, object]:
return {
"id": "ds-1",
"name": "Docs",
"description": None,
"provider": "vendor",
"indexing_technique": "high_quality",
"document_count": 3,
"embedding_available": True,
**extra,
}
def test_row_carries_a_retrieval_fragment() -> None:
row = knowledge_base_row(_record())
assert row.node_data.dataset_ids == ["ds-1"]
assert row.node_data.retrieval_mode == "multiple"
assert row.node_data.multiple_retrieval_config.top_k == KNOWLEDGE_TOP_K
assert row.node_data.multiple_retrieval_config.reranking_enable is False
def test_unavailable_embedding_is_reported() -> None:
assert knowledge_base_row(_record(embedding_available=False)).usable is False
assert knowledge_base_row(_record(embedding_available=None, provider="external")).usable is True