{ "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" } ] }