Skip to content

Commit 4b5c343

Browse files
Adds new admin query (#331)
* Adds new admin query * Submodule ref * Adds admin query db tests (no fastapi) * submodule ref * Submodule update --------- Co-authored-by: Lina <lina.lumburovska@kern.ai>
1 parent b35069f commit 4b5c343

File tree

3 files changed

+93
-3
lines changed

3 files changed

+93
-3
lines changed

run-tests

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,8 @@
22

33

44
# add -s to see print statements
5-
# add -v to see test names
6-
docker exec -it refinery-gateway bash -c "cd /app && python -m pytest -v -s"
5+
# add -v to see test names
6+
docker exec -it refinery-gateway bash -c "cd /app && python -m pytest -v -s"
7+
8+
## to test a specific file
9+
# docker exec -it refinery-gateway bash -c "cd /app && python -m pytest tests/test_admin_queries.py -v -s"

submodules/model

tests/test_admin_queries.py

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
from submodules.model.global_objects import admin_queries as admin_queries_db_go
2+
from submodules.model.enums import AdminQueries
3+
import json
4+
from submodules.model.util import sql_alchemy_to_dict
5+
6+
7+
def test_full_admin_queries():
8+
"""
9+
Test validate user is an administrator
10+
11+
Args:
12+
client (TestClient): The test client for making API requests.
13+
"""
14+
15+
for query in AdminQueries:
16+
data = admin_queries_db_go.get_result_admin_query(
17+
query, __get_default_filter_for_admin_query(query)
18+
)
19+
assert isinstance(
20+
data, list
21+
), f"Response is not a list for query: {query.value}"
22+
print(
23+
f"Query {query.value} returned ",
24+
json.dumps(sql_alchemy_to_dict(data), indent=2, default=str),
25+
flush=True,
26+
)
27+
28+
29+
def __get_default_filter_for_admin_query(query: AdminQueries) -> dict:
30+
# USERS_TO_PROJECTS, USERS_BY_ORG
31+
if query in (AdminQueries.USERS_TO_PROJECTS, AdminQueries.USERS_BY_ORG):
32+
return {
33+
"organization_id": "",
34+
"without_kern_email": False,
35+
}
36+
37+
# ACTIVE_USERS_GLOBAL, ACTIVE_USERS_BY_ORG
38+
elif query in (AdminQueries.ACTIVE_USERS_GLOBAL, AdminQueries.ACTIVE_USERS_BY_ORG):
39+
return {
40+
"min_msg_count": 1,
41+
"period": "days",
42+
"slices": 7,
43+
"organization_id": "",
44+
"without_kern_email": False,
45+
}
46+
47+
# MESSAGES_CREATED, MESSAGES_CREATED_BY_PROJECT, MESSAGES_FEEDBACK_PER_PROJECT
48+
elif query in (
49+
AdminQueries.MESSAGES_CREATED,
50+
AdminQueries.MESSAGES_CREATED_BY_PROJECT,
51+
AdminQueries.MESSAGES_FEEDBACK_PER_PROJECT,
52+
):
53+
return {
54+
"period": "days",
55+
"slices": 7,
56+
"organization_id": "",
57+
"without_kern_email": False,
58+
}
59+
60+
# AVG_MESSAGES_PER_CONVERSATION_GLOBAL
61+
elif query is AdminQueries.AVG_MESSAGES_PER_CONVERSATION_GLOBAL:
62+
return {
63+
"organization_id": "",
64+
"without_kern_email": False,
65+
}
66+
67+
# AVG_MESSAGES_PER_CONVERSATION, MACRO_EXECUTIONS
68+
elif query in (
69+
AdminQueries.AVG_MESSAGES_PER_CONVERSATION,
70+
AdminQueries.MACRO_EXECUTIONS,
71+
):
72+
return {
73+
"period": "days",
74+
"slices": 7,
75+
"organization_id": "",
76+
"without_kern_email": False,
77+
}
78+
79+
# FOLDER_MACRO_EXECUTION_SUMMARY
80+
elif query is AdminQueries.FOLDER_MACRO_EXECUTION_SUMMARY:
81+
return {
82+
"slices": 7,
83+
"organization_id": "",
84+
}
85+
86+
else:
87+
raise ValueError(f"Unknown admin query: {query}")

0 commit comments

Comments
 (0)