96 lines
13 KiB
Plaintext
96 lines
13 KiB
Plaintext
test_same_avatar_different_names_run_separate_ocr (test_visual_cache_audit.VisualNameCacheAuditTest.test_same_avatar_different_names_run_separate_ocr) ... [身份升级] 快速 OCR 读不出昵称,已由本地检测OCR读出「客户甲@微信」。
|
|
[身份升级] 快速 OCR 读不出昵称,已由本地检测OCR读出「客户乙@微信」。
|
|
ok
|
|
test_same_visible_name_reuses_cached_result_across_row_reorder (test_visual_cache_audit.VisualNameCacheAuditTest.test_same_visible_name_reuses_cached_result_across_row_reorder) ... [身份升级] 快速 OCR 读不出昵称,已由本地检测OCR读出「客户甲@微信」。
|
|
ok
|
|
test_unreadable_crop_does_not_reuse_an_avatar_only_name (test_visual_cache_audit.VisualNameCacheAuditTest.test_unreadable_crop_does_not_reuse_an_avatar_only_name) ... [身份升级] 快速 OCR 读不出昵称,已由本地检测OCR读出「客户甲@微信」。
|
|
ok
|
|
test_it_clicks_again_when_the_first_click_did_not_take (test_vision_fallback.ClearChatSelectionTest.test_it_clicks_again_when_the_first_click_did_not_take) ... ok
|
|
test_it_stops_as_soon_as_the_highlight_is_gone (test_vision_fallback.ClearChatSelectionTest.test_it_stops_as_soon_as_the_highlight_is_gone) ... ok
|
|
test_without_a_baseline_it_keeps_the_original_single_click (test_vision_fallback.ClearChatSelectionTest.test_without_a_baseline_it_keeps_the_original_single_click) ... ok
|
|
test_a_missing_timestamp_counts_as_infinitely_old (test_vision_fallback.ClockRollbackTest.test_a_missing_timestamp_counts_as_infinitely_old) ... ok
|
|
test_a_normal_elapsed_is_returned_as_is (test_vision_fallback.ClockRollbackTest.test_a_normal_elapsed_is_returned_as_is) ... ok
|
|
test_a_normal_mouse_baseline_is_left_alone (test_vision_fallback.ClockRollbackTest.test_a_normal_mouse_baseline_is_left_alone) ... ok
|
|
test_a_real_rollback_is_treated_as_long_ago_not_negative (test_vision_fallback.ClockRollbackTest.test_a_real_rollback_is_treated_as_long_ago_not_negative) ... ok
|
|
test_a_tiny_negative_drift_is_treated_as_just_now (test_vision_fallback.ClockRollbackTest.test_a_tiny_negative_drift_is_treated_as_just_now) ... ok
|
|
test_an_unrepliable_session_still_gets_rechecked_after_a_rollback (test_vision_fallback.ClockRollbackTest.test_an_unrepliable_session_still_gets_rechecked_after_a_rollback) ... ok
|
|
test_mouse_idle_baseline_from_the_future_is_pulled_back (test_vision_fallback.ClockRollbackTest.test_mouse_idle_baseline_from_the_future_is_pulled_back) ... ok
|
|
test_the_rollback_notice_is_printed_only_once (test_vision_fallback.ClockRollbackTest.test_the_rollback_notice_is_printed_only_once) ... ok
|
|
test_a_repaint_that_settles_back_is_not_a_new_message (test_vision_fallback.ExtractionRepaintTest.test_a_repaint_that_settles_back_is_not_a_new_message) ... ok
|
|
test_a_surface_that_never_settles_gives_up_within_the_budget (test_vision_fallback.ExtractionRepaintTest.test_a_surface_that_never_settles_gives_up_within_the_budget) ... ok
|
|
test_an_unchanged_surface_never_costs_a_second_read (test_vision_fallback.ExtractionRepaintTest.test_an_unchanged_surface_never_costs_a_second_read) ... ok
|
|
test_no_reference_short_circuits (test_vision_fallback.ExtractionRepaintTest.test_no_reference_short_circuits) ... ok
|
|
test_two_identical_new_frames_are_reported_as_a_real_change (test_vision_fallback.ExtractionRepaintTest.test_two_identical_new_frames_are_reported_as_a_real_change) ... ok
|
|
test_a_clean_round_clears_the_streak (test_vision_fallback.ExtractionResetBreakerTest.test_a_clean_round_clears_the_streak) ... ok
|
|
test_a_new_customer_is_never_starved_forever (test_vision_fallback.ExtractionResetBreakerTest.test_a_new_customer_is_never_starved_forever) ... ok
|
|
test_a_session_without_a_task_is_allowed_to_restart (test_vision_fallback.ExtractionResetBreakerTest.test_a_session_without_a_task_is_allowed_to_restart) ... ok
|
|
test_clearing_an_untouched_session_never_writes_to_disk (test_vision_fallback.ExtractionResetBreakerTest.test_clearing_an_untouched_session_never_writes_to_disk) ... ok
|
|
test_the_counter_restarts_after_it_fires (test_vision_fallback.ExtractionResetBreakerTest.test_the_counter_restarts_after_it_fires) ... ok
|
|
test_the_first_rounds_still_restart_the_merge_window (test_vision_fallback.ExtractionResetBreakerTest.test_the_first_rounds_still_restart_the_merge_window) ... ok
|
|
test_frequent_contacts_are_kept_over_one_off_names (test_vision_fallback.KnownNameTableTest.test_frequent_contacts_are_kept_over_one_off_names) ... ok
|
|
test_misread_correction_still_works_after_a_prune (test_vision_fallback.KnownNameTableTest.test_misread_correction_still_works_after_a_prune) ... [身份] 已识别的界面词误读:'一个小迷糊@徽信' → '一个小迷糊@微信'
|
|
ok
|
|
test_remember_also_respects_the_cap (test_vision_fallback.KnownNameTableTest.test_remember_also_respects_the_cap) ... ok
|
|
test_the_name_just_seen_always_survives_the_prune (test_vision_fallback.KnownNameTableTest.test_the_name_just_seen_always_survives_the_prune) ... ok
|
|
test_the_table_stops_growing (test_vision_fallback.KnownNameTableTest.test_the_table_stops_growing) ... ok
|
|
test_joins_the_top_line_and_ignores_the_preview_line (test_vision_fallback.NameReaderDeepTest.test_joins_the_top_line_and_ignores_the_preview_line) ... ok
|
|
test_no_text_reads_nothing (test_vision_fallback.NameReaderDeepTest.test_no_text_reads_nothing) ... ok
|
|
test_a_different_page_discards_the_stale_verdict (test_vision_fallback.PendingModelVerdictTest.test_a_different_page_discards_the_stale_verdict) ... [AI页面守护] 处置 open_messages 本轮未能执行,已记住模型结论,下一轮不等冷却直接重试。
|
|
ok
|
|
test_a_failed_replay_stays_queued_for_the_next_round (test_vision_fallback.PendingModelVerdictTest.test_a_failed_replay_stays_queued_for_the_next_round) ... [AI页面守护] 处置 open_messages 本轮未能执行,已记住模型结论,下一轮不等冷却直接重试。
|
|
ok
|
|
test_a_verdict_that_could_not_run_is_kept (test_vision_fallback.PendingModelVerdictTest.test_a_verdict_that_could_not_run_is_kept) ... ok
|
|
test_an_expired_verdict_is_discarded (test_vision_fallback.PendingModelVerdictTest.test_an_expired_verdict_is_discarded) ... ok
|
|
test_nothing_queued_is_a_cheap_no_op (test_vision_fallback.PendingModelVerdictTest.test_nothing_queued_is_a_cheap_no_op) ... ok
|
|
test_the_kept_verdict_is_replayed_on_the_same_page (test_vision_fallback.PendingModelVerdictTest.test_the_kept_verdict_is_replayed_on_the_same_page) ... [AI页面守护] 处置 open_messages 本轮未能执行,已记住模型结论,下一轮不等冷却直接重试。
|
|
ok
|
|
test_a_human_typed_draft_is_never_claimed_by_the_bot (test_vision_fallback.ReviewDraftTest.test_a_human_typed_draft_is_never_claimed_by_the_bot) ... ok
|
|
test_draft_outside_review_mode_is_not_a_review_draft (test_vision_fallback.ReviewDraftTest.test_draft_outside_review_mode_is_not_a_review_draft) ... ok
|
|
test_empty_composer_is_not_a_review_draft (test_vision_fallback.ReviewDraftTest.test_empty_composer_is_not_a_review_draft) ... ok
|
|
test_own_review_draft_is_recognised_as_the_bots_own (test_vision_fallback.ReviewDraftTest.test_own_review_draft_is_recognised_as_the_bots_own) ... ok
|
|
test_escalated_name_is_cached_so_the_second_frame_agrees (test_vision_fallback.RowNameEscalationTest.test_escalated_name_is_cached_so_the_second_frame_agrees) ... ok
|
|
test_fast_ocr_result_short_circuits_every_deeper_tier (test_vision_fallback.RowNameEscalationTest.test_fast_ocr_result_short_circuits_every_deeper_tier) ... ok
|
|
test_fingerprint_reuses_the_escalated_name_instead_of_pixel_fallback (test_vision_fallback.RowNameEscalationTest.test_fingerprint_reuses_the_escalated_name_instead_of_pixel_fallback) ... ok
|
|
test_local_detection_ocr_takes_over_when_fast_path_reads_nothing (test_vision_fallback.RowNameEscalationTest.test_local_detection_ocr_takes_over_when_fast_path_reads_nothing) ... ok
|
|
test_low_score_local_detection_falls_through_to_the_model (test_vision_fallback.RowNameEscalationTest.test_low_score_local_detection_falls_through_to_the_model) ... ok
|
|
test_model_below_confidence_floor_is_treated_as_unreadable (test_vision_fallback.RowNameEscalationTest.test_model_below_confidence_floor_is_treated_as_unreadable) ... ok
|
|
test_model_failure_never_raises_into_the_polling_loop (test_vision_fallback.RowNameEscalationTest.test_model_failure_never_raises_into_the_polling_loop) ... ok
|
|
test_relaxed_mode_never_calls_a_remote_model (test_vision_fallback.RowNameEscalationTest.test_relaxed_mode_never_calls_a_remote_model) ... ok
|
|
test_answer_without_json_is_unreadable (test_vision_fallback.SessionRowNameParsingTest.test_answer_without_json_is_unreadable) ... ok
|
|
test_empty_name_never_carries_confidence (test_vision_fallback.SessionRowNameParsingTest.test_empty_name_never_carries_confidence) ... ok
|
|
test_reads_name_and_confidence (test_vision_fallback.SessionRowNameParsingTest.test_reads_name_and_confidence) ... ok
|
|
test_sentence_stuffed_into_name_is_rejected (test_vision_fallback.SessionRowNameParsingTest.test_sentence_stuffed_into_name_is_rejected) ... ok
|
|
test_two_different_names_in_one_answer_count_as_unreadable (test_vision_fallback.SessionRowNameParsingTest.test_two_different_names_in_one_answer_count_as_unreadable) ... ok
|
|
test_a_live_pid_on_a_dead_port_is_not_a_live_backend (test_vision_fallback.StaleLocalRuntimeTest.test_a_live_pid_on_a_dead_port_is_not_a_live_backend) ... ok
|
|
test_a_port_that_is_actually_listening_is_accepted (test_vision_fallback.StaleLocalRuntimeTest.test_a_port_that_is_actually_listening_is_accepted) ... ok
|
|
test_the_probe_result_is_cached_between_calls (test_vision_fallback.StaleLocalRuntimeTest.test_the_probe_result_is_cached_between_calls) ... ok
|
|
test_nothing_to_clear_never_touches_the_disk (test_vision_fallback.StaleReviewFlagTest.test_nothing_to_clear_never_touches_the_disk) ... ok
|
|
test_review_mode_keeps_every_hold_untouched (test_vision_fallback.StaleReviewFlagTest.test_review_mode_keeps_every_hold_untouched) ... ok
|
|
test_switching_back_to_auto_releases_the_review_hold (test_vision_fallback.StaleReviewFlagTest.test_switching_back_to_auto_releases_the_review_hold) ... ok
|
|
test_a_new_unread_badge_clears_the_exhausted_mark (test_vision_fallback.UnreadExhaustionTest.test_a_new_unread_badge_clears_the_exhausted_mark) ... ok
|
|
test_a_row_that_could_not_be_identified_blocks_the_exhausted_mark (test_vision_fallback.UnreadExhaustionTest.test_a_row_that_could_not_be_identified_blocks_the_exhausted_mark) ... ok
|
|
test_backoff_expiry_re_verifies_the_same_badge (test_vision_fallback.UnreadExhaustionTest.test_backoff_expiry_re_verifies_the_same_badge) ... ok
|
|
test_deferral_reason_is_reported_instead_of_silently_retrying (test_vision_fallback.UnreadExhaustionTest.test_deferral_reason_is_reported_instead_of_silently_retrying) ... ok
|
|
test_exhausted_badge_is_not_rescanned_every_cooldown (test_vision_fallback.UnreadExhaustionTest.test_exhausted_badge_is_not_rescanned_every_cooldown) ... ok
|
|
test_first_scan_is_allowed (test_vision_fallback.UnreadExhaustionTest.test_first_scan_is_allowed) ... ok
|
|
test_no_badge_never_marks_anything_exhausted (test_vision_fallback.UnreadExhaustionTest.test_no_badge_never_marks_anything_exhausted) ... ok
|
|
test_disabled_ai_reports_no_model_fallback (test_vision_fallback.VisionCapabilityReportTest.test_disabled_ai_reports_no_model_fallback) ... ok
|
|
test_guard_switch_off_reports_no_model_fallback (test_vision_fallback.VisionCapabilityReportTest.test_guard_switch_off_reports_no_model_fallback) ... ok
|
|
test_healthy_stack_reports_model_fallback_available (test_vision_fallback.VisionCapabilityReportTest.test_healthy_stack_reports_model_fallback_available) ... ok
|
|
test_missing_api_base_reports_no_model_fallback (test_vision_fallback.VisionCapabilityReportTest.test_missing_api_base_reports_no_model_fallback) ... ok
|
|
test_missing_local_ocr_is_called_out_loudly (test_vision_fallback.VisionCapabilityReportTest.test_missing_local_ocr_is_called_out_loudly) ... ok
|
|
test_a_forced_handover_that_works_is_reported_as_recovery (test_vision_fallback.WorkspaceRecoveryEscalationTest.test_a_forced_handover_that_works_is_reported_as_recovery) ... ok
|
|
test_a_long_block_is_reported_with_where_and_how_long (test_vision_fallback.WorkspaceRecoveryEscalationTest.test_a_long_block_is_reported_with_where_and_how_long) ... ok
|
|
test_a_stalled_local_recovery_forces_the_model_past_its_cooldown (test_vision_fallback.WorkspaceRecoveryEscalationTest.test_a_stalled_local_recovery_forces_the_model_past_its_cooldown)
|
|
连续回不去时,必须清掉限频真正问一次模型,而不是默默放弃。 ... ok
|
|
test_every_give_up_records_where_it_stopped (test_vision_fallback.WorkspaceRecoveryEscalationTest.test_every_give_up_records_where_it_stopped) ... ok
|
|
test_getting_back_to_messages_clears_the_streak (test_vision_fallback.WorkspaceRecoveryEscalationTest.test_getting_back_to_messages_clears_the_streak) ... ok
|
|
test_repeated_failures_drop_local_caches_and_wake_the_model (test_vision_fallback.WorkspaceRecoveryEscalationTest.test_repeated_failures_drop_local_caches_and_wake_the_model) ... ok
|
|
test_the_first_rounds_do_not_burn_a_forced_model_call (test_vision_fallback.WorkspaceRecoveryEscalationTest.test_the_first_rounds_do_not_burn_a_forced_model_call) ... ok
|
|
test_the_step_detail_survives_a_failure_without_its_own_detail (test_vision_fallback.WorkspaceRecoveryEscalationTest.test_the_step_detail_survives_a_failure_without_its_own_detail) ... ok
|
|
|
|
----------------------------------------------------------------------
|
|
Ran 81 tests in 2.170s
|
|
|
|
OK
|