Переглянути джерело

Test: fix test cases and improve document parsing validation (#8179)

### What problem does this PR solve?

- Update chat assistant tests to use dataset.id directly in payloads
- Enhance document parsing tests with better condition checking
- Add explicit type hints and improve timeout handling

Action_7556

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
tags/v0.19.1
Liu An 4 місяці тому
джерело
коміт
f29d9fa3f9
Аккаунт користувача з таким Email не знайдено

+ 6
- 6
test/testcases/test_sdk_api/test_chat_assistant_management/test_update_chat_assistant.py Переглянути файл

@@ -49,11 +49,11 @@ class TestChatAssistantUpdate:

@pytest.mark.p3
def test_avatar(self, client, add_chat_assistants_func, tmp_path):
_, _, chat_assistants = add_chat_assistants_func
dataset, _, chat_assistants = add_chat_assistants_func
chat_assistant = chat_assistants[0]

fn = create_image_file(tmp_path / "ragflow_test.png")
payload = {"name": "avatar_test", "avatar": encode_avatar(fn), "dataset_ids": chat_assistant.dataset_ids}
payload = {"name": "avatar_test", "avatar": encode_avatar(fn), "dataset_ids": [dataset.id]}

chat_assistant.update(payload)
updated_chat = client.list_chats(id=chat_assistant.id)[0]
@@ -96,9 +96,9 @@ class TestChatAssistantUpdate:
],
)
def test_llm(self, client, add_chat_assistants_func, llm, expected_message):
_, _, chat_assistants = add_chat_assistants_func
dataset, _, chat_assistants = add_chat_assistants_func
chat_assistant = chat_assistants[0]
payload = {"name": "llm_test", "dataset_ids": chat_assistant.dataset_ids, "llm": llm}
payload = {"name": "llm_test", "llm": llm, "dataset_ids": [dataset.id]}

if expected_message:
with pytest.raises(Exception) as excinfo:
@@ -173,9 +173,9 @@ class TestChatAssistantUpdate:
],
)
def test_prompt(self, client, add_chat_assistants_func, prompt, expected_message):
_, _, chat_assistants = add_chat_assistants_func
dataset, _, chat_assistants = add_chat_assistants_func
chat_assistant = chat_assistants[0]
payload = {"name": "prompt_test", "dataset_ids": chat_assistant.dataset_ids, "prompt": prompt}
payload = {"name": "prompt_test", "prompt": prompt, "dataset_ids": [dataset.id]}

if expected_message:
with pytest.raises(Exception) as excinfo:

+ 21
- 4
test/testcases/test_sdk_api/test_file_management_within_dataset/test_parse_documents.py Переглянути файл

@@ -22,7 +22,7 @@ from utils import wait_for


@wait_for(30, 1, "Document parsing timeout")
def condition(_dataset: DataSet, _document_ids=None):
def condition(_dataset: DataSet, _document_ids: list[str] = None):
documents = _dataset.list_documents(page_size=1000)

if _document_ids is None:
@@ -116,17 +116,34 @@ class TestDocumentsParse:

@pytest.mark.p3
def test_parse_100_files(add_dataset_func, tmp_path):
@wait_for(100, 1, "Document parsing timeout")
def condition(_dataset: DataSet, _count: int):
documents = _dataset.list_documents(page_size=_count * 2)
for document in documents:
if document.run != "DONE":
return False
return True

count = 100
dataset = add_dataset_func
documents = bulk_upload_documents(dataset, 100, tmp_path)
documents = bulk_upload_documents(dataset, count, tmp_path)
document_ids = [doc.id for doc in documents]

dataset.async_parse_documents(document_ids=document_ids)
condition(dataset, document_ids)
condition(dataset, count)
validate_document_details(dataset, document_ids)


@pytest.mark.p3
def test_concurrent_parse(add_dataset_func, tmp_path):
@wait_for(120, 1, "Document parsing timeout")
def condition(_dataset: DataSet, _count: int):
documents = _dataset.list_documents(page_size=_count * 2)
for document in documents:
if document.run != "DONE":
return False
return True

count = 100
dataset = add_dataset_func
documents = bulk_upload_documents(dataset, count, tmp_path)
@@ -141,5 +158,5 @@ def test_concurrent_parse(add_dataset_func, tmp_path):
responses = list(as_completed(futures))
assert len(responses) == count, responses

condition(dataset, document_ids)
condition(dataset, count)
validate_document_details(dataset, document_ids)

Завантаження…
Відмінити
Зберегти