"""Tests for script execution progress summary (success/total, failures excluded).""" from server.infrastructure.redis.script_execution_store import execution_progress_summary def test_all_success(): ids = [1, 2, 3] results = { "1": {"status": "success", "exit_code": 0}, "2": {"status": "success", "exit_code": 0}, "3": {"phase": "done", "status": "completed", "exit_code": 0}, } assert execution_progress_summary(results, ids) == "3/3" def test_partial_failure(): ids = list(range(1, 367)) results = {str(i): {"status": "success", "exit_code": 0} for i in ids[:-1]} results[str(ids[-1])] = {"status": "failed", "exit_code": 1, "stderr": "error"} assert execution_progress_summary(results, ids) == "365/366" def test_all_failed(): ids = [10, 20] results = { "10": {"status": "failed", "exit_code": 1}, "20": {"status": "error", "exit_code": -1}, } assert execution_progress_summary(results, ids) == "0/2" def test_pending_not_counted(): ids = [1, 2, 3] results = { "1": {"status": "success", "exit_code": 0}, "2": {"phase": "pending", "status": "started"}, "3": {"status": "failed", "exit_code": 1}, } assert execution_progress_summary(results, ids) == "1/3" def test_skipped_not_counted(): ids = [1, 2] results = { "1": {"status": "success", "exit_code": 0}, "2": {"status": "skipped", "exit_code": -1, "stderr": "no ssh"}, } assert execution_progress_summary(results, ids) == "1/2" def test_missing_result_not_success(): ids = [1, 2, 3] results = {"1": {"status": "success", "exit_code": 0}} assert execution_progress_summary(results, ids) == "1/3" def test_empty_total(): assert execution_progress_summary({}, []) == "—"