Spaces:
Sleeping
Sleeping
| # ===================================================== | |
| # Apckeyl Framework | |
| # Version 1.0 | |
| # test_orchestrator_core.py | |
| # ===================================================== | |
| """ | |
| Test for Orchestrator Core. | |
| Проверяет базовый жизненный цикл Task. | |
| """ | |
| from orchestrator_core import ( | |
| OrchestratorCore, | |
| TaskStatus, | |
| TaskPriority, | |
| ) | |
| def main(): | |
| print() | |
| print("====================================") | |
| print("Apckeyl Orchestrator Core Test") | |
| print("Version 1.0") | |
| print("====================================") | |
| print() | |
| # ------------------------------------------------- | |
| # 1. Create Core | |
| # ------------------------------------------------- | |
| core = OrchestratorCore() | |
| assert core.task_count() == 0 | |
| assert core.queue_size() == 0 | |
| print("TEST 1: Core initialization ........ OK") | |
| # ------------------------------------------------- | |
| # 2. Create Task | |
| # ------------------------------------------------- | |
| task = core.create_task( | |
| task_type="TEST", | |
| input_data="Hello Orchestrator", | |
| parameters={ | |
| "test": True, | |
| }, | |
| priority=TaskPriority.NORMAL, | |
| ) | |
| assert task.status == TaskStatus.CREATED | |
| assert core.task_count() == 1 | |
| print("TEST 2: Task creation .............. OK") | |
| # ------------------------------------------------- | |
| # 3. Queue Task | |
| # ------------------------------------------------- | |
| core.queue_task( | |
| task.task_id | |
| ) | |
| assert task.status == TaskStatus.QUEUED | |
| assert core.queue_size() == 1 | |
| print("TEST 3: Queue ...................... OK") | |
| # ------------------------------------------------- | |
| # 4. Get Next Task | |
| # ------------------------------------------------- | |
| next_task = core.get_next_task() | |
| assert next_task is not None | |
| assert next_task.task_id == task.task_id | |
| assert core.queue_size() == 0 | |
| print("TEST 4: Queue retrieval ............ OK") | |
| # ------------------------------------------------- | |
| # 5. Assign Worker | |
| # ------------------------------------------------- | |
| task.status = TaskStatus.QUEUED | |
| core.assign_worker( | |
| task.task_id, | |
| "TEST_WORKER", | |
| ) | |
| assert task.status == TaskStatus.ASSIGNED | |
| assert task.worker == "TEST_WORKER" | |
| print("TEST 5: Worker assignment .......... OK") | |
| # ------------------------------------------------- | |
| # 6. Start Task | |
| # ------------------------------------------------- | |
| core.start_task( | |
| task.task_id | |
| ) | |
| assert task.status == TaskStatus.RUNNING | |
| assert task.started_at is not None | |
| print("TEST 6: Task start ................ OK") | |
| # ------------------------------------------------- | |
| # 7. Complete Task | |
| # ------------------------------------------------- | |
| core.complete_task( | |
| task.task_id, | |
| result="TEST_OK", | |
| ) | |
| assert task.status == TaskStatus.COMPLETED | |
| assert task.result == "TEST_OK" | |
| assert task.completed_at is not None | |
| print("TEST 7: Task completion ........... OK") | |
| # ------------------------------------------------- | |
| # 8. Final Status | |
| # ------------------------------------------------- | |
| status = core.get_status( | |
| task.task_id | |
| ) | |
| assert status == TaskStatus.COMPLETED | |
| print("TEST 8: Final status .............. OK") | |
| # ------------------------------------------------- | |
| # Result | |
| # ------------------------------------------------- | |
| print() | |
| print("------------------------------------") | |
| print("ALL ORCHESTRATOR CORE TESTS PASSED") | |
| print("------------------------------------") | |
| print() | |
| print( | |
| f"Task ID: {task.task_id}" | |
| ) | |
| print( | |
| f"Task Type: {task.task_type}" | |
| ) | |
| print( | |
| f"Worker: {task.worker}" | |
| ) | |
| print( | |
| f"Status: {task.status.value}" | |
| ) | |
| print( | |
| f"Result: {task.result}" | |
| ) | |
| print() | |
| if __name__ == "__main__": | |
| main() |