Skip to content

Commit 9f3acce

Browse files
committed
Add tests for newly implemented methods
1 parent af51c1f commit 9f3acce

1 file changed

Lines changed: 123 additions & 0 deletions

File tree

tests/test_client.py

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,75 @@ def _test_014_delete_dataset(self):
251251
response = client.delete_dataset()
252252
self.assertEqual(204, response.status_code)
253253

254+
@patch("dify_client.client.httpx.Client")
255+
def test_retrieve(self, mock_httpx_client):
256+
# Mock the HTTP response
257+
mock_response = Mock()
258+
mock_response.text = '{"data": [{"id": "segment1", "content": "test content"}]}\n'
259+
mock_response.json.return_value = {"data": [{"id": "segment1", "content": "test content"}]}
260+
mock_response.status_code = 200
261+
262+
mock_client_instance = Mock()
263+
mock_client_instance.request.return_value = mock_response
264+
mock_httpx_client.return_value = mock_client_instance
265+
266+
# Create client with mocked httpx
267+
knowledge_base_client = KnowledgeBaseClient(self.api_key, base_url=self.base_url, dataset_id=self.dataset_id)
268+
response = knowledge_base_client.retrieve("test query", "test_user")
269+
self.assertIn("data", response.text)
270+
271+
@patch("dify_client.client.httpx.Client")
272+
def test_get_document(self, mock_httpx_client):
273+
# Mock the HTTP response
274+
mock_response = Mock()
275+
mock_response.text = '{"id": "doc1", "name": "Test Document"}'
276+
mock_response.json.return_value = {"id": "doc1", "name": "Test Document"}
277+
mock_response.status_code = 200
278+
279+
mock_client_instance = Mock()
280+
mock_client_instance.request.return_value = mock_response
281+
mock_httpx_client.return_value = mock_client_instance
282+
283+
# Create client with mocked httpx
284+
knowledge_base_client = KnowledgeBaseClient(self.api_key, base_url=self.base_url, dataset_id=self.dataset_id)
285+
response = knowledge_base_client.get_document(self.document_id)
286+
self.assertIn("id", response.text)
287+
self.assertIn("name", response.text)
288+
289+
@patch("dify_client.client.httpx.Client")
290+
def test_download_document(self, mock_httpx_client):
291+
# Mock the HTTP response
292+
mock_response = Mock()
293+
mock_response.content = b"test document content"
294+
mock_response.status_code = 200
295+
296+
mock_client_instance = Mock()
297+
mock_client_instance.request.return_value = mock_response
298+
mock_httpx_client.return_value = mock_client_instance
299+
300+
# Create client with mocked httpx
301+
knowledge_base_client = KnowledgeBaseClient(self.api_key, base_url=self.base_url, dataset_id=self.dataset_id)
302+
response = knowledge_base_client.download_document(self.document_id)
303+
self.assertEqual(200, response.status_code)
304+
305+
@patch("dify_client.client.httpx.Client")
306+
def test_get_document_segment(self, mock_httpx_client):
307+
# Mock the HTTP response
308+
mock_response = Mock()
309+
mock_response.text = '{"id": "segment1", "content": "test segment content"}'
310+
mock_response.json.return_value = {"id": "segment1", "content": "test segment content"}
311+
mock_response.status_code = 200
312+
313+
mock_client_instance = Mock()
314+
mock_client_instance.request.return_value = mock_response
315+
mock_httpx_client.return_value = mock_client_instance
316+
317+
# Create client with mocked httpx
318+
knowledge_base_client = KnowledgeBaseClient(self.api_key, base_url=self.base_url, dataset_id=self.dataset_id)
319+
response = knowledge_base_client.get_document_segment(self.document_id, self.segment_id)
320+
self.assertIn("id", response.text)
321+
self.assertIn("content", response.text)
322+
254323

255324
class TestChatClient(unittest.TestCase):
256325
@patch("dify_client.client.httpx.Client")
@@ -489,6 +558,24 @@ def test_create_completion_message_with_vision_model_by_local_file(
489558
)
490559
self.assertIn("answer", response.text)
491560

561+
@patch("dify_client.client.httpx.Client")
562+
def test_stop_completion_message(self, mock_httpx_client):
563+
# Mock the HTTP response
564+
mock_response = Mock()
565+
mock_response.text = '{"result": "success"}'
566+
mock_response.json.return_value = {"result": "success"}
567+
mock_response.status_code = 200
568+
569+
mock_client_instance = Mock()
570+
mock_client_instance.request.return_value = mock_response
571+
mock_httpx_client.return_value = mock_client_instance
572+
573+
# Create client with mocked httpx
574+
completion_client = CompletionClient(self.api_key)
575+
response = completion_client.stop_completion_message("test-task-id", "test_user")
576+
self.assertIn("result", response.text)
577+
self.assertEqual("success", response.json()["result"])
578+
492579

493580
class TestDifyClient(unittest.TestCase):
494581
@patch("dify_client.client.httpx.Client")
@@ -568,6 +655,42 @@ def test_file_upload(self, mock_file_open, mock_httpx_client):
568655
response = dify_client.file_upload("test_user", files)
569656
self.assertIn("name", response.text)
570657

658+
@patch("dify_client.client.httpx.Client")
659+
def test_get_app_feedbacks(self, mock_httpx_client):
660+
# Mock the HTTP response
661+
mock_response = Mock()
662+
mock_response.text = '{"data": [{"id": "feedback1", "rating": "like"}], "total": 1}'
663+
mock_response.json.return_value = {"data": [{"id": "feedback1", "rating": "like"}], "total": 1}
664+
mock_response.status_code = 200
665+
666+
mock_client_instance = Mock()
667+
mock_client_instance.request.return_value = mock_response
668+
mock_httpx_client.return_value = mock_client_instance
669+
670+
# Create client with mocked httpx
671+
dify_client = DifyClient(self.api_key)
672+
response = dify_client.get_app_feedbacks(page=1, limit=10)
673+
self.assertIn("data", response.text)
674+
self.assertIn("total", response.text)
675+
676+
@patch("dify_client.client.httpx.Client")
677+
def test_get_end_user_info(self, mock_httpx_client):
678+
# Mock the HTTP response
679+
mock_response = Mock()
680+
mock_response.text = '{"id": "user1", "name": "Test User"}'
681+
mock_response.json.return_value = {"id": "user1", "name": "Test User"}
682+
mock_response.status_code = 200
683+
684+
mock_client_instance = Mock()
685+
mock_client_instance.request.return_value = mock_response
686+
mock_httpx_client.return_value = mock_client_instance
687+
688+
# Create client with mocked httpx
689+
dify_client = DifyClient(self.api_key)
690+
response = dify_client.get_end_user_info("test_user")
691+
self.assertIn("id", response.text)
692+
self.assertIn("name", response.text)
693+
571694

572695
if __name__ == "__main__":
573696
unittest.main()

0 commit comments

Comments
 (0)