エンドポイントテストを強化し、ON/OFF状態のテストメソッドをリファクタリング。データ設定系および実行系エンドポイントのテストを追加し、ランダムアクセスのテストを実装。
This commit is contained in:
@@ -214,66 +214,54 @@ class TestMainloop():
|
|||||||
# "/run/feed_watchdog": {"data": None, "status": 200, "result": True},
|
# "/run/feed_watchdog": {"data": None, "status": 200, "result": True},
|
||||||
}
|
}
|
||||||
|
|
||||||
def test_endpoints_on_off_single(self):
|
def test_endpoints_on_off_single(self, endpoint):
|
||||||
print("----ON/OFF系のエンドポイントのテスト----")
|
success = False
|
||||||
for endpoint in self.validity_endpoints:
|
|
||||||
print(f"Testing endpoint: {endpoint}", end="", flush=True)
|
|
||||||
if endpoint.startswith("/set/enable/"):
|
if endpoint.startswith("/set/enable/"):
|
||||||
result, status = self.main.handleRequest(endpoint, None)
|
result, status = self.main.handleRequest(endpoint, None)
|
||||||
if result is True and status == 200:
|
if result is True and status == 200:
|
||||||
self.config_dict[endpoint.split("/")[-1]] = result
|
self.config_dict[endpoint.split("/")[-1]] = result
|
||||||
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
success = True
|
||||||
else:
|
else:
|
||||||
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
print(f"Current config_dict: {self.config_dict}")
|
print(f"Current config_dict: {self.config_dict}")
|
||||||
break
|
|
||||||
elif endpoint.startswith("/set/disable/"):
|
elif endpoint.startswith("/set/disable/"):
|
||||||
result, status = self.main.handleRequest(endpoint, None)
|
result, status = self.main.handleRequest(endpoint, None)
|
||||||
if result is False and status == 200:
|
if result is False and status == 200:
|
||||||
self.config_dict[endpoint.split("/")[-1]] = result
|
self.config_dict[endpoint.split("/")[-1]] = result
|
||||||
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
success = True
|
||||||
else:
|
else:
|
||||||
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
print(f"Current config_dict: {self.config_dict}")
|
print(f"Current config_dict: {self.config_dict}")
|
||||||
|
return success
|
||||||
|
|
||||||
|
def test_endpoints_on_off_all(self):
|
||||||
|
print("----ON/OFF系のエンドポイントのテスト----")
|
||||||
|
for endpoint in self.validity_endpoints:
|
||||||
|
print(f"Testing endpoint: {endpoint}", end="", flush=True)
|
||||||
|
if self.test_endpoints_on_off_single(endpoint) is False:
|
||||||
break
|
break
|
||||||
print("----ON/OFF系のエンドポイントのテスト終了----")
|
print("----ON/OFF系のエンドポイントのテスト終了----")
|
||||||
|
|
||||||
# def test_endpoints_on_off_random(self):
|
def test_endpoints_on_off_random(self):
|
||||||
# print("----ON/OFFでのランダムアクセスのテスト----")
|
print("----ON/OFFでのランダムアクセスのテスト----")
|
||||||
# for i in range(1000):
|
for i in range(1000):
|
||||||
# endpoint = random.choice(self.validity_endpoints)
|
endpoint = random.choice(self.validity_endpoints)
|
||||||
# print(f"No.{i:04} Testing endpoint: {endpoint}", end="", flush=True)
|
print(f"No.{i:04} Testing endpoint: {endpoint}", end="", flush=True)
|
||||||
# if endpoint.startswith("/set/enable/"):
|
if self.test_endpoints_on_off_single(endpoint) is False:
|
||||||
# result, status = self.main.handleRequest(endpoint, None)
|
break
|
||||||
# expected_result = True
|
|
||||||
# if result == expected_result and status == 200:
|
|
||||||
# self.config_dict[endpoint.split("/")[-1]] = result
|
|
||||||
# print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
# else:
|
|
||||||
# print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}, Expected: {expected_result}")
|
|
||||||
# pprint.pprint(self.config_dict)
|
|
||||||
# break
|
|
||||||
# elif endpoint.startswith("/set/disable/"):
|
|
||||||
# result, status = self.main.handleRequest(endpoint, None)
|
|
||||||
# expected_result = False
|
|
||||||
# if result == expected_result and status == 200:
|
|
||||||
# self.config_dict[endpoint.split("/")[-1]] = result
|
|
||||||
# print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
# else:
|
|
||||||
# print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}, Expected: {expected_result}")
|
|
||||||
# pprint.pprint(self.config_dict)
|
|
||||||
# break
|
|
||||||
|
|
||||||
# # 最後にすべてOFFにして終了
|
# 最後にすべてOFFにして終了
|
||||||
# for endpoint in self.validity_endpoints:
|
for endpoint in self.validity_endpoints:
|
||||||
# if endpoint.startswith("/set/disable/"):
|
if endpoint.startswith("/set/disable/"):
|
||||||
# result, status = self.main.handleRequest(endpoint, None)
|
result, status = self.main.handleRequest(endpoint, None)
|
||||||
# time.sleep(0.2)
|
time.sleep(0.2)
|
||||||
# print("----ON/OFFでのランダムアクセスのテスト終了----")
|
print("----ON/OFFでのランダムアクセスのテスト終了----")
|
||||||
|
|
||||||
# def test_endpoints_on_off_continuous(self):
|
def test_endpoints_on_off_continuous(self):
|
||||||
# print("----ON/OFF連続テスト----")
|
print("----ON/OFF連続テスト----")
|
||||||
# # endpoints = ["/set/enable/websocket_server", "/set/disable/websocket_server"]
|
endpoints = ["/set/enable/websocket_server", "/set/disable/websocket_server"]
|
||||||
# endpoints = [
|
# endpoints = [
|
||||||
# "/set/enable/translation",
|
# "/set/enable/translation",
|
||||||
# "/set/disable/translation",
|
# "/set/disable/translation",
|
||||||
@@ -282,40 +270,20 @@ class TestMainloop():
|
|||||||
# "/set/enable/transcription_receive",
|
# "/set/enable/transcription_receive",
|
||||||
# "/set/disable/transcription_receive",
|
# "/set/disable/transcription_receive",
|
||||||
# ]
|
# ]
|
||||||
# for i in range(1000):
|
for i in range(1000):
|
||||||
# endpoint = random.choice(endpoints)
|
endpoint = random.choice(endpoints)
|
||||||
# print(f"No.{i:04} Testing endpoint: {endpoint}", end="", flush=True)
|
print(f"No.{i:04} Testing endpoint: {endpoint}", end="", flush=True)
|
||||||
# if endpoint.startswith("/set/enable/"):
|
if self.test_endpoints_on_off_single(endpoint) is False:
|
||||||
# result, status = self.main.handleRequest(endpoint, None)
|
break
|
||||||
# expected_result = True
|
|
||||||
# if result == expected_result and status == 200:
|
|
||||||
# self.config_dict[endpoint.split("/")[-1]] = result
|
|
||||||
# print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
# else:
|
|
||||||
# print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}, Expected: {expected_result}")
|
|
||||||
# pprint.pprint(self.config_dict)
|
|
||||||
# break
|
|
||||||
# elif endpoint.startswith("/set/disable/"):
|
|
||||||
# result, status = self.main.handleRequest(endpoint, None)
|
|
||||||
# expected_result = False
|
|
||||||
# if result == expected_result and status == 200:
|
|
||||||
# self.config_dict[endpoint.split("/")[-1]] = result
|
|
||||||
# print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
# else:
|
|
||||||
# print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}, Expected: {expected_result}")
|
|
||||||
# pprint.pprint(self.config_dict)
|
|
||||||
# break
|
|
||||||
|
|
||||||
# # 最後にすべてOFFにして終了
|
# 最後にすべてOFFにして終了
|
||||||
# for endpoint in self.validity_endpoints:
|
for endpoint in self.validity_endpoints:
|
||||||
# if endpoint.startswith("/set/disable/"):
|
if endpoint.startswith("/set/disable/"):
|
||||||
# result, status = self.main.handleRequest(endpoint, None)
|
result, status = self.main.handleRequest(endpoint, None)
|
||||||
# print("----ON/OFF連続テスト終了----")
|
print("----ON/OFF連続テスト終了----")
|
||||||
|
|
||||||
def test_set_data_endpoints_single(self):
|
def test_set_data_endpoints_single(self, endpoint):
|
||||||
print("----データ設定系のエンドポイントのテスト----")
|
success = False
|
||||||
for endpoint in self.set_data_endpoints:
|
|
||||||
print(f"Testing endpoint: {endpoint}", end=" ", flush=True)
|
|
||||||
match endpoint:
|
match endpoint:
|
||||||
case "/set/data/selected_tab_no":
|
case "/set/data/selected_tab_no":
|
||||||
data = random.choice(["1", "2", "3"])
|
data = random.choice(["1", "2", "3"])
|
||||||
@@ -468,73 +436,129 @@ class TestMainloop():
|
|||||||
if status == 200:
|
if status == 200:
|
||||||
self.config_dict[endpoint.split("/")[-1]] = result
|
self.config_dict[endpoint.split("/")[-1]] = result
|
||||||
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
success = True
|
||||||
else:
|
else:
|
||||||
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
print(f" Current config_dict: {self.config_dict}")
|
print(f" Current config_dict: {self.config_dict}")
|
||||||
break
|
|
||||||
else:
|
else:
|
||||||
print(f"\t -> {Color.YELLOW}[SKIP]{Color.RESET} No data to set for this endpoint.")
|
print(f"\t -> {Color.YELLOW}[SKIP]{Color.RESET} No data to set for this endpoint.")
|
||||||
|
success = True
|
||||||
|
return success
|
||||||
|
|
||||||
|
def test_set_data_endpoints_all(self):
|
||||||
|
print("----データ設定系のエンドポイントのテスト----")
|
||||||
|
for endpoint in self.set_data_endpoints:
|
||||||
|
print(f"Testing endpoint: {endpoint}", end=" ", flush=True)
|
||||||
|
if self.test_set_data_endpoints_single(endpoint) is False:
|
||||||
|
break
|
||||||
print("----データ設定系のエンドポイントのテスト終了----")
|
print("----データ設定系のエンドポイントのテスト終了----")
|
||||||
|
|
||||||
def test_run_endpoints_single(self):
|
def test_run_endpoints_single(self, endpoint, test):
|
||||||
|
success = False
|
||||||
|
match endpoint:
|
||||||
|
case "/run/send_message_box":
|
||||||
|
data = test["data"]
|
||||||
|
expected_status = test["status"]
|
||||||
|
result, status = self.main.handleRequest(endpoint, data)
|
||||||
|
if status == expected_status:
|
||||||
|
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
success = True
|
||||||
|
else:
|
||||||
|
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
print(f" Current config_dict: {self.config_dict}")
|
||||||
|
case "/run/typing_message_box" | "/run/stop_typing_message_box":
|
||||||
|
data = test["data"]
|
||||||
|
expected_status = test["status"]
|
||||||
|
expected_result = test["result"]
|
||||||
|
result, status = self.main.handleRequest(endpoint, data)
|
||||||
|
if status == expected_status and result == expected_result:
|
||||||
|
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
success = True
|
||||||
|
else:
|
||||||
|
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}, Expected: {expected_result}")
|
||||||
|
print(f" Current config_dict: {self.config_dict}")
|
||||||
|
case "/run/send_text_overlay":
|
||||||
|
data = test["data"]
|
||||||
|
expected_status = test["status"]
|
||||||
|
expected_result = test["result"]
|
||||||
|
result, status = self.main.handleRequest(endpoint, data)
|
||||||
|
if status == expected_status and result == expected_result:
|
||||||
|
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
success = True
|
||||||
|
else:
|
||||||
|
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}, Expected: {expected_result}")
|
||||||
|
print(f" Current config_dict: {self.config_dict}")
|
||||||
|
case "/run/swap_your_language_and_target_language":
|
||||||
|
data = test["data"]
|
||||||
|
expected_status = test["status"]
|
||||||
|
result, status = self.main.handleRequest(endpoint, data)
|
||||||
|
if status == expected_status:
|
||||||
|
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
success = True
|
||||||
|
else:
|
||||||
|
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
||||||
|
print(f" Current config_dict: {self.config_dict}")
|
||||||
|
case _:
|
||||||
|
print(f"\t -> {Color.YELLOW}[SKIP]{Color.RESET} No tests defined for this endpoint.")
|
||||||
|
success = True
|
||||||
|
return success
|
||||||
|
|
||||||
|
def test_run_endpoints_all(self):
|
||||||
print("----実行系のエンドポイントのテスト----")
|
print("----実行系のエンドポイントのテスト----")
|
||||||
for endpoint, tests in self.run_endpoints.items():
|
for endpoint, tests in self.run_endpoints.items():
|
||||||
print(f"Testing endpoint: {endpoint}", end=" ", flush=True)
|
print(f"Testing endpoint: {endpoint}", end=" ", flush=True)
|
||||||
match endpoint:
|
success = True
|
||||||
case "/run/send_message_box":
|
|
||||||
for test in tests:
|
for test in tests:
|
||||||
data = test["data"]
|
if self.test_run_endpoints_single(endpoint, test) is False:
|
||||||
expected_status = test["status"]
|
success = False
|
||||||
result, status = self.main.handleRequest(endpoint, data)
|
|
||||||
if status == expected_status:
|
|
||||||
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
else:
|
|
||||||
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
print(f" Current config_dict: {self.config_dict}")
|
|
||||||
break
|
break
|
||||||
case "/run/typing_message_box" | "/run/stop_typing_message_box":
|
if success is False:
|
||||||
for test in tests:
|
|
||||||
data = test["data"]
|
|
||||||
expected_status = test["status"]
|
|
||||||
expected_result = test["result"]
|
|
||||||
result, status = self.main.handleRequest(endpoint, data)
|
|
||||||
if status == expected_status and result == expected_result:
|
|
||||||
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
else:
|
|
||||||
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}, Expected: {expected_result}")
|
|
||||||
print(f" Current config_dict: {self.config_dict}")
|
|
||||||
break
|
|
||||||
case "/run/send_text_overlay":
|
|
||||||
for test in tests:
|
|
||||||
data = test["data"]
|
|
||||||
expected_status = test["status"]
|
|
||||||
expected_result = test["result"]
|
|
||||||
result, status = self.main.handleRequest(endpoint, data)
|
|
||||||
if status == expected_status and result == expected_result:
|
|
||||||
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
else:
|
|
||||||
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}, Expected: {expected_result}")
|
|
||||||
print(f" Current config_dict: {self.config_dict}")
|
|
||||||
break
|
|
||||||
case "/run/swap_your_language_and_target_language":
|
|
||||||
for test in tests:
|
|
||||||
data = test["data"]
|
|
||||||
expected_status = test["status"]
|
|
||||||
result, status = self.main.handleRequest(endpoint, data)
|
|
||||||
if status == expected_status:
|
|
||||||
print(f"\t -> {Color.GREEN}[PASS]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
else:
|
|
||||||
print(f"\t -> {Color.RED}[ERROR]{Color.RESET} Status: {status}, Result: {result}")
|
|
||||||
print(f" Current config_dict: {self.config_dict}")
|
|
||||||
break
|
break
|
||||||
print("----実行系のエンドポイントのテスト終了----")
|
print("----実行系のエンドポイントのテスト終了----")
|
||||||
|
|
||||||
|
def test_endpoints_all_random(self):
|
||||||
|
print("----すべてのエンドポイントのランダムアクセスのテスト----")
|
||||||
|
endpoint_types = [
|
||||||
|
"validity",
|
||||||
|
"set_data",
|
||||||
|
"run",
|
||||||
|
]
|
||||||
|
|
||||||
|
for i in range(1000):
|
||||||
|
endpoints_type = random.choice(endpoint_types)
|
||||||
|
match endpoints_type:
|
||||||
|
case "validity":
|
||||||
|
endpoint = random.choice(self.validity_endpoints)
|
||||||
|
print(f"No.{i:04} Testing endpoint: {endpoint}", end="", flush=True)
|
||||||
|
if self.test_endpoints_on_off_single(endpoint) is False:
|
||||||
|
break
|
||||||
|
case "set_data":
|
||||||
|
endpoint = random.choice(self.set_data_endpoints)
|
||||||
|
print(f"No.{i:04} Testing endpoint: {endpoint}", end=" ", flush=True)
|
||||||
|
if self.test_set_data_endpoints_single(endpoint) is False:
|
||||||
|
break
|
||||||
|
case "run":
|
||||||
|
endpoint = random.choice(list(self.run_endpoints.keys()))
|
||||||
|
test = random.choice(self.run_endpoints[endpoint])
|
||||||
|
print(f"No.{i:04} Testing endpoint: {endpoint}", end=" ", flush=True)
|
||||||
|
if self.test_run_endpoints_single(endpoint, test) is False:
|
||||||
|
break
|
||||||
|
|
||||||
|
# 最後にすべてOFFにして終了
|
||||||
|
for endpoint in self.validity_endpoints:
|
||||||
|
if endpoint.startswith("/set/disable/"):
|
||||||
|
_, _ = self.main.handleRequest(endpoint, None)
|
||||||
|
print("----すべてのエンドポイントのランダムアクセスのテスト終了----")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
try:
|
try:
|
||||||
test = TestMainloop()
|
test = TestMainloop()
|
||||||
test.test_endpoints_on_off_single()
|
# test.test_endpoints_on_off_all()
|
||||||
test.test_set_data_endpoints_single()
|
# test.test_set_data_endpoints_all()
|
||||||
test.test_run_endpoints_single()
|
# test.test_run_endpoints_all()
|
||||||
|
test.test_endpoints_all_random()
|
||||||
|
# test.test_endpoints_on_off_continuous()
|
||||||
|
# test.test_endpoints_on_off_random()
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print("Interrupted by user, shutting down...")
|
print("Interrupted by user, shutting down...")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user