diff --git a/src/khoj/utils/fs_syncer.py b/src/khoj/utils/fs_syncer.py index 5a20f418..3177d7ee 100644 --- a/src/khoj/utils/fs_syncer.py +++ b/src/khoj/utils/fs_syncer.py @@ -22,7 +22,7 @@ magika = Magika() def collect_files(search_type: Optional[SearchType] = SearchType.All, user=None) -> dict: - files = {} + files: dict[str, dict] = {"docx": {}, "image": {}} if search_type == SearchType.All or search_type == SearchType.Org: org_config = LocalOrgConfig.objects.filter(user=user).first() diff --git a/tests/test_client.py b/tests/test_client.py index 24d2dff6..c4246a78 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -455,13 +455,13 @@ def test_user_no_data_returns_empty(client, sample_org_data, api_user3: KhojApiU @pytest.mark.skipif(os.getenv("OPENAI_API_KEY") is None, reason="requires OPENAI_API_KEY") @pytest.mark.django_db(transaction=True) -def test_chat_with_unauthenticated_user(chat_client_with_auth, api_user2: KhojApiUser): +async def test_chat_with_unauthenticated_user(chat_client_with_auth, api_user2: KhojApiUser): # Arrange headers = {"Authorization": f"Bearer {api_user2.token}"} # Act - auth_response = chat_client_with_auth.get(f'/api/chat?q="Hello!"&stream=true', headers=headers) - no_auth_response = chat_client_with_auth.get(f'/api/chat?q="Hello!"&stream=true') + auth_response = chat_client_with_auth.get(f'/api/chat?q="Hello!"', headers=headers) + no_auth_response = chat_client_with_auth.get(f'/api/chat?q="Hello!"') # Assert assert auth_response.status_code == 200 diff --git a/tests/test_offline_chat_director.py b/tests/test_offline_chat_director.py index a72dae56..f9cec075 100644 --- a/tests/test_offline_chat_director.py +++ b/tests/test_offline_chat_director.py @@ -68,10 +68,8 @@ def test_chat_with_online_content(client_offline_chat): # Act q = "/online give me the link to paul graham's essay how to do great work" encoded_q = quote(q, safe="") - response = client_offline_chat.get(f"/api/chat?q={encoded_q}&stream=true") - response_message = response.content.decode("utf-8") - - response_message = response_message.split("### compiled references")[0] + response = client_offline_chat.get(f"/api/chat?q={encoded_q}") + response_message = response.json()["response"] # Assert expected_responses = [ @@ -92,10 +90,8 @@ def test_chat_with_online_webpage_content(client_offline_chat): # Act q = "/online how many firefighters were involved in the great chicago fire and which year did it take place?" encoded_q = quote(q, safe="") - response = client_offline_chat.get(f"/api/chat?q={encoded_q}&stream=true") - response_message = response.content.decode("utf-8") - - response_message = response_message.split("### compiled references")[0] + response = client_offline_chat.get(f"/api/chat?q={encoded_q}") + response_message = response.json()["response"] # Assert expected_responses = ["185", "1871", "horse"] diff --git a/tests/test_openai_chat_director.py b/tests/test_openai_chat_director.py index 26d93d31..7a05a3dd 100644 --- a/tests/test_openai_chat_director.py +++ b/tests/test_openai_chat_director.py @@ -49,8 +49,8 @@ def create_conversation(message_list, user, agent=None): @pytest.mark.django_db(transaction=True) def test_chat_with_no_chat_history_or_retrieved_content(chat_client): # Act - response = chat_client.get(f'/api/chat?q="Hello, my name is Testatron. Who are you?"&stream=true') - response_message = response.content.decode("utf-8") + response = chat_client.get(f'/api/chat?q="Hello, my name is Testatron. Who are you?"') + response_message = response.json()["response"] # Assert expected_responses = ["Khoj", "khoj"] @@ -67,10 +67,8 @@ def test_chat_with_online_content(chat_client): # Act q = "/online give me the link to paul graham's essay how to do great work" encoded_q = quote(q, safe="") - response = chat_client.get(f"/api/chat?q={encoded_q}&stream=true") - response_message = response.content.decode("utf-8") - - response_message = response_message.split("### compiled references")[0] + response = chat_client.get(f"/api/chat?q={encoded_q}") + response_message = response.json()["response"] # Assert expected_responses = [ @@ -91,10 +89,8 @@ def test_chat_with_online_webpage_content(chat_client): # Act q = "/online how many firefighters were involved in the great chicago fire and which year did it take place?" encoded_q = quote(q, safe="") - response = chat_client.get(f"/api/chat?q={encoded_q}&stream=true") - response_message = response.content.decode("utf-8") - - response_message = response_message.split("### compiled references")[0] + response = chat_client.get(f"/api/chat?q={encoded_q}") + response_message = response.json()["response"] # Assert expected_responses = ["185", "1871", "horse"] @@ -144,7 +140,7 @@ def test_answer_from_currently_retrieved_content(chat_client, default_user2: Kho # Act response = chat_client.get(f'/api/chat?q="Where was Xi Li born?"') - response_message = response.content.decode("utf-8") + response_message = response.json()["response"] # Assert assert response.status_code == 200 @@ -168,7 +164,7 @@ def test_answer_from_chat_history_and_previously_retrieved_content(chat_client_n # Act response = chat_client_no_background.get(f'/api/chat?q="Where was I born?"') - response_message = response.content.decode("utf-8") + response_message = response.json()["response"] # Assert assert response.status_code == 200 @@ -191,7 +187,7 @@ def test_answer_from_chat_history_and_currently_retrieved_content(chat_client, d # Act response = chat_client.get(f'/api/chat?q="Where was I born?"') - response_message = response.content.decode("utf-8") + response_message = response.json()["response"] # Assert assert response.status_code == 200 @@ -215,8 +211,8 @@ def test_no_answer_in_chat_history_or_retrieved_content(chat_client, default_use create_conversation(message_list, default_user2) # Act - response = chat_client.get(f'/api/chat?q="Where was I born?"&stream=true') - response_message = response.content.decode("utf-8") + response = chat_client.get(f'/api/chat?q="Where was I born?"') + response_message = response.json()["response"] # Assert expected_responses = [ @@ -226,6 +222,7 @@ def test_no_answer_in_chat_history_or_retrieved_content(chat_client, default_use "do not have", "don't have", "where were you born?", + "where you were born?", ] assert response.status_code == 200 @@ -280,8 +277,8 @@ def test_answer_not_known_using_notes_command(chat_client_no_background, default create_conversation(message_list, default_user2) # Act - response = chat_client_no_background.get(f"/api/chat?q={query}&stream=true") - response_message = response.content.decode("utf-8") + response = chat_client_no_background.get(f"/api/chat?q={query}") + response_message = response.json()["response"] # Assert assert response.status_code == 200 @@ -527,8 +524,8 @@ def test_answer_general_question_not_in_chat_history_or_retrieved_content(chat_c create_conversation(message_list, default_user2) # Act - response = chat_client.get(f'/api/chat?q="Write a haiku about unit testing. Do not say anything else."&stream=true') - response_message = response.content.decode("utf-8").split("### compiled references")[0] + response = chat_client.get(f'/api/chat?q="Write a haiku about unit testing. Do not say anything else.') + response_message = response.json()["response"] # Assert expected_responses = ["test", "Test"] @@ -544,9 +541,8 @@ def test_answer_general_question_not_in_chat_history_or_retrieved_content(chat_c @pytest.mark.chatquality def test_ask_for_clarification_if_not_enough_context_in_question(chat_client_no_background): # Act - - response = chat_client_no_background.get(f'/api/chat?q="What is the name of Namitas older son?"&stream=true') - response_message = response.content.decode("utf-8").split("### compiled references")[0].lower() + response = chat_client_no_background.get(f'/api/chat?q="What is the name of Namitas older son?"') + response_message = response.json()["response"].lower() # Assert expected_responses = [ @@ -658,8 +654,8 @@ def test_answer_in_chat_history_by_conversation_id_with_agent( def test_answer_requires_multiple_independent_searches(chat_client): "Chat director should be able to answer by doing multiple independent searches for required information" # Act - response = chat_client.get(f'/api/chat?q="Is Xi older than Namita? Just the older persons full name"&stream=true') - response_message = response.content.decode("utf-8").split("### compiled references")[0].lower() + response = chat_client.get(f'/api/chat?q="Is Xi older than Namita? Just the older persons full name"') + response_message = response.json()["response"].lower() # Assert expected_responses = ["he is older than namita", "xi is older than namita", "xi li is older than namita"] @@ -683,8 +679,8 @@ def test_answer_using_file_filter(chat_client): 'Is Xi older than Namita? Just say the older persons full name. file:"Namita.markdown" file:"Xi Li.markdown"' ) - response = chat_client.get(f"/api/chat?q={query}&stream=true") - response_message = response.content.decode("utf-8").split("### compiled references")[0].lower() + response = chat_client.get(f"/api/chat?q={query}") + response_message = response.json()["response"].lower() # Assert expected_responses = ["he is older than namita", "xi is older than namita", "xi li is older than namita"]