Files
kefu/deploy/review-voice-20260918/visual-scheduling-source-final.json
T
2026-09-21 10:34:06 +08:00

44 lines
5.3 KiB
JSON

{
"project": "C:\\kefu\\wechat_rpa",
"modules": [
"test_voice_visual_scheduling",
"test_reply_safety",
"test_visual_review_assistant",
"test_handoff_evidence",
"test_visual_handoff_visibility"
],
"tests_run": 473,
"failures": 0,
"errors": 4,
"skipped": 2,
"elapsed_seconds": 28.781,
"blocked_external_actions": [],
"failure_details": [
{
"test": "test_delay_is_consumed_before_any_generation_then_retries_after_deadline (test_voice_visual_scheduling.VisualVoiceSchedulingTests.test_delay_is_consumed_before_any_generation_then_retries_after_deadline)",
"trace": "Traceback (most recent call last):\n File \"C:\\kefu\\wechat_rpa\\test_voice_visual_scheduling.py\", line 46, in test_delay_is_consumed_before_any_generation_then_retries_after_deadline\n self.bot._wait_for_database_voice(self.fp)\n File \"C:\\kefu\\wechat_rpa\\wechat_bot.py\", line 6506, in _wait_for_database_voice\n voice = voice_batch_status(context) if bound else {\"status\": \"none\"}\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\voice_messages.py\", line 87, in voice_batch_status\n voices = [m for m in unanswered_messages(context) if is_voice(m)]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\voice_messages.py\", line 76, in unanswered_messages\n from contact_reply_guard import system_contact_status\nModuleNotFoundError: No module named 'contact_reply_guard'\n"
},
{
"test": "test_error_and_late_success_never_bypass_manual_task (test_voice_visual_scheduling.VisualVoiceSchedulingTests.test_error_and_late_success_never_bypass_manual_task)",
"trace": "Traceback (most recent call last):\n File \"C:\\kefu\\wechat_rpa\\test_voice_visual_scheduling.py\", line 70, in test_error_and_late_success_never_bypass_manual_task\n self.assertTrue(self.bot._wait_for_database_voice(self.fp))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\wechat_bot.py\", line 6506, in _wait_for_database_voice\n voice = voice_batch_status(context) if bound else {\"status\": \"none\"}\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\voice_messages.py\", line 87, in voice_batch_status\n voices = [m for m in unanswered_messages(context) if is_voice(m)]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\voice_messages.py\", line 76, in unanswered_messages\n from contact_reply_guard import system_contact_status\nModuleNotFoundError: No module named 'contact_reply_guard'\n"
},
{
"test": "test_pending_voice_yields_active_hold_and_keeps_precise_status (test_voice_visual_scheduling.VisualVoiceSchedulingTests.test_pending_voice_yields_active_hold_and_keeps_precise_status)",
"trace": "Traceback (most recent call last):\n File \"C:\\kefu\\wechat_rpa\\test_voice_visual_scheduling.py\", line 36, in test_pending_voice_yields_active_hold_and_keeps_precise_status\n self.assertTrue(self.bot._wait_for_database_voice(self.fp))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\wechat_bot.py\", line 6506, in _wait_for_database_voice\n voice = voice_batch_status(context) if bound else {\"status\": \"none\"}\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\voice_messages.py\", line 87, in voice_batch_status\n voices = [m for m in unanswered_messages(context) if is_voice(m)]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\voice_messages.py\", line 76, in unanswered_messages\n from contact_reply_guard import system_contact_status\nModuleNotFoundError: No module named 'contact_reply_guard'\n"
},
{
"test": "test_voice_wait_does_not_prevent_resuming_another_queued_customer (test_voice_visual_scheduling.VisualVoiceSchedulingTests.test_voice_wait_does_not_prevent_resuming_another_queued_customer)",
"trace": "Traceback (most recent call last):\n File \"C:\\kefu\\wechat_rpa\\test_voice_visual_scheduling.py\", line 55, in test_voice_wait_does_not_prevent_resuming_another_queued_customer\n self.bot._wait_for_database_voice(self.fp)\n File \"C:\\kefu\\wechat_rpa\\wechat_bot.py\", line 6506, in _wait_for_database_voice\n voice = voice_batch_status(context) if bound else {\"status\": \"none\"}\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\voice_messages.py\", line 87, in voice_batch_status\n voices = [m for m in unanswered_messages(context) if is_voice(m)]\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"C:\\kefu\\wechat_rpa\\voice_messages.py\", line 76, in unanswered_messages\n from contact_reply_guard import system_contact_status\nModuleNotFoundError: No module named 'contact_reply_guard'\n"
}
],
"skip_details": [
{
"test": "test_failed_persist_rolls_back_memory_and_keeps_pause (test_handoff_evidence.ProtocolEvidenceTests.test_failed_persist_rolls_back_memory_and_keeps_pause)",
"reason": "visual-only distribution has no protocol engine"
},
{
"test": "test_takeover_record_survives_restart_and_poll_without_becoming_pending (test_handoff_evidence.ProtocolEvidenceTests.test_takeover_record_survives_restart_and_poll_without_becoming_pending)",
"reason": "visual-only distribution has no protocol engine"
}
]
}