dream
39 строк · 1.4 Кб
1import requests
2import os
3
4import common.test_utils as test_utils
5
6
7INTENT_RESPONSE_PHRASES_FNAME = os.getenv("INTENT_RESPONSE_PHRASES_FNAME", "intent_response_phrases.json")
8SERVICE_PORT = int(os.getenv("SERVICE_PORT"))
9RANDOM_SEED = int(os.getenv("RANDOM_SEED", 2718))
10URL = f"http://0.0.0.0:{SERVICE_PORT}/respond"
11
12
13def handler(requested_data, random_seed):
14hypothesis = requests.post(URL, json={**requested_data, "random_seed": random_seed}).json()
15return hypothesis
16
17
18def run_test(handler):
19in_data, out_data = test_utils.get_dataset()
20for test_name in in_data:
21if "RU" in INTENT_RESPONSE_PHRASES_FNAME and "RU" not in test_name:
22# if russian language, skip english tests
23continue
24elif "RU" not in INTENT_RESPONSE_PHRASES_FNAME and "RU" in test_name:
25continue
26hypothesis = handler(in_data[test_name], RANDOM_SEED)
27print(f"test name: {test_name}")
28is_equal_flag, msg = test_utils.compare_structs(out_data[test_name], hypothesis, ignored_keys=["id"])
29if msg and len(msg.split("`")) == 5:
30_, ground_truth_text, _, hypothesis_text, _ = msg.split("`")
31is_equal_flag, ratio = test_utils.compare_text(ground_truth_text, hypothesis_text, 0.80)
32if not is_equal_flag:
33msg = f"{msg} ratio = {ratio}"
34assert is_equal_flag, msg
35print("Success")
36
37
38if __name__ == "__main__":
39run_test(handler)
40