@@ -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
255324class 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
493580class 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
572695if __name__ == "__main__" :
573696 unittest .main ()
0 commit comments