From 792ca9d39d299598bb48c760026a552dcbe7f86f Mon Sep 17 00:00:00 2001 From: Feng Peng Date: Mon, 7 Apr 2025 08:58:20 -0700 Subject: [PATCH] Fix chat_manager unit test. --- src/leettools/common/duckdb/duckdb_client.py | 8 ++++- src/leettools/settings.py | 34 +++++-------------- .../svc/api/v1/routers/chat_router.py | 7 ++-- tests/leettools/svc/test_chat_router.py | 14 ++++++-- 4 files changed, 31 insertions(+), 32 deletions(-) diff --git a/src/leettools/common/duckdb/duckdb_client.py b/src/leettools/common/duckdb/duckdb_client.py index 1a4e5d9..a87c685 100644 --- a/src/leettools/common/duckdb/duckdb_client.py +++ b/src/leettools/common/duckdb/duckdb_client.py @@ -305,7 +305,13 @@ def fetch_all_from_table( SELECT {column_str} FROM {table_name} {where_clause} """ - logger().noop(f"SQL Statement select_sql: {select_sql}", noop_lvl=3) + logger().noop( + f"SQL Statement fetch_all_from_table: {select_sql}", noop_lvl=3 + ) + logger().noop( + f"SQL Statement fetch_all_from_table value_list: {value_list}", + noop_lvl=3, + ) with self._get_table_lock(table_name): if value_list is not None: results = cursor.execute(select_sql, value_list).fetchall() diff --git a/src/leettools/settings.py b/src/leettools/settings.py index 65a918f..f1e629c 100644 --- a/src/leettools/settings.py +++ b/src/leettools/settings.py @@ -71,32 +71,14 @@ def preset_store_types_for_tests() -> List[Dict[str, str]]: """ Used in testing to preset the store types for different data store combos. """ - - # check the env EDS_TEST_FULL, return only the duckdb if the var is false. - if config_utils.value_to_bool(os.getenv("EDS_TEST_FULL")): - return [ - { - "doc_store": "mongo", - "rdbms_store": "mongo", - "graph_store": "neo4j", - "vector_store": "milvus", - }, - { - "doc_store": "duckdb", - "rdbms_store": "duckdb", - "graph_store": "duckdb", - "vector_store": "duckdb", - }, - ] - else: - return [ - { - "doc_store": "duckdb", - "rdbms_store": "duckdb", - "graph_store": "duckdb", - "vector_store": "duckdb", - }, - ] + return [ + { + "doc_store": "duckdb", + "rdbms_store": "duckdb", + "graph_store": "duckdb", + "vector_store": "duckdb", + }, + ] @add_env_var_constants diff --git a/src/leettools/svc/api/v1/routers/chat_router.py b/src/leettools/svc/api/v1/routers/chat_router.py index d57db67..7b7ffea 100644 --- a/src/leettools/svc/api/v1/routers/chat_router.py +++ b/src/leettools/svc/api/v1/routers/chat_router.py @@ -311,7 +311,7 @@ async def list_articles( """ if org_name is None or org_name == "": - org = self.org_manager.get_default_org() + org = None else: org = self.org_manager.get_org_by_name(org_name) if org is None: @@ -327,7 +327,10 @@ async def list_articles( raise exceptions.EntityNotFoundException( entity_name=kb_name, entity_type="KnowledgeBase" ) - + if org is None and kb is not None: + raise exceptions.UnexpectedCaseException( + f"kb_name is set to {kb_name} but org_name is not set." + ) if kb is not None and org is not None: if self.auth.can_read_kb(org=org, kb=kb, user=calling_user) is False: raise HTTPException( diff --git a/tests/leettools/svc/test_chat_router.py b/tests/leettools/svc/test_chat_router.py index 81bbd56..82393b5 100644 --- a/tests/leettools/svc/test_chat_router.py +++ b/tests/leettools/svc/test_chat_router.py @@ -126,7 +126,7 @@ def _test_router( f"/shared/{username}/{chat_history.chat_id}", headers=headers ) except HTTPException as e: - print(e.detail) + print(f"Expected error: {e.detail}") assert e.status_code == 403 response = client.get(f"/history", headers=headers) @@ -182,9 +182,16 @@ def _test_router( assert ch.name == ch_update.name assert ch.description == ch_update.description - response = client.get(f"/articles?article_type=chat", headers=headers) + response = client.get(f"/articles", headers=headers) assert response.status_code == 200 assert isinstance(response.json(), list) + + response = client.get( + f"/articles?article_type={ArticleType.CHAT.value}", headers=headers + ) + assert response.status_code == 200 + assert isinstance(response.json(), list) + ch = ChatHistory.model_validate(response.json()[0]) assert ch.creator_id == username assert ch.chat_id == chat_history.chat_id @@ -194,7 +201,8 @@ def _test_router( assert len(ch.answers) > 0 response = client.get( - f"/articles?article_type=chat&list_only=True", headers=headers + f"/articles?article_type={ArticleType.CHAT.value}&list_only=True", + headers=headers, ) assert response.status_code == 200 assert isinstance(response.json(), list)