Orchestrator / run_control_plane_tests.py
evgeniy778's picture
Update Unified Test Suite to Version 1.6
5cc2a4d verified
Raw
History Blame Contribute Delete
4.45 kB
# =====================================================
# Apckeyl Framework
# Version 1.6
# run_control_plane_tests.py
# =====================================================
"""
Unified Control Plane Test Runner.
Version 1.6
Запускает все текущие тесты Control Plane,
Compute Plane и Compute Provider Registry.
"""
import importlib
import inspect
import traceback
# =====================================================
# Test Modules
# =====================================================
TEST_MODULES = [
"test_orchestrator_core",
"test_module_registry",
"test_control_plane",
"test_task_manager",
"test_dispatcher",
"test_compute_adapter",
"test_compute_module",
"test_example_compute_provider",
"test_compute_provider_registry",
]
# =====================================================
# Test Discovery
# =====================================================
def discover_tests():
tests = []
for module_name in TEST_MODULES:
try:
module = importlib.import_module(
module_name
)
except Exception as error:
tests.append(
{
"module": module_name,
"name": "__import__",
"function": None,
"error": error,
}
)
continue
for name, function in inspect.getmembers(
module,
inspect.isfunction,
):
if name.startswith("test_"):
tests.append(
{
"module": module_name,
"name": name,
"function": function,
"error": None,
}
)
return tests
# =====================================================
# Run Tests
# =====================================================
def main():
tests = discover_tests()
total = len(tests)
passed = 0
failed = 0
results = []
print("=" * 60)
print("APCKEYL FRAMEWORK")
print("Unified Control Plane Test Suite")
print("Version 1.6")
print("=" * 60)
print()
for test in tests:
module_name = test["module"]
test_name = test["name"]
function = test["function"]
import_error = test["error"]
full_name = (
f"{module_name}.{test_name}"
)
try:
if import_error is not None:
raise import_error
function()
print(
f"[PASS] {full_name}"
)
passed += 1
results.append(
{
"module": module_name,
"test": test_name,
"status": "PASSED",
"error": None,
}
)
except Exception as error:
print(
f"[FAIL] {full_name}"
)
print(
f" Error: {error}"
)
failed += 1
results.append(
{
"module": module_name,
"test": test_name,
"status": "FAILED",
"error": str(error),
}
)
print()
print("=" * 60)
print("TEST SUMMARY")
print("=" * 60)
print(
f"Total: {total}"
)
print(
f"Passed: {passed}"
)
print(
f"Failed: {failed}"
)
print("=" * 60)
if failed == 0:
print(
"RESULT: PASSED"
)
return {
"status": "PASSED",
"total": total,
"passed": passed,
"failed": failed,
"results": results,
}
print(
"RESULT: FAILED"
)
return {
"status": "FAILED",
"total": total,
"passed": passed,
"failed": failed,
"results": results,
}
# =====================================================
# Direct Execution
# =====================================================
if __name__ == "__main__":
report = main()
if report["status"] != "PASSED":
raise SystemExit(1)
# =====================================================
# End of File
# =====================================================