131 lines
19 KiB
Plaintext
131 lines
19 KiB
Plaintext
test_completed_result_is_not_reused_for_later_explicit_refresh (test_database_loading_performance.KeyAcquisitionSingleFlightTest.test_completed_result_is_not_reused_for_later_explicit_refresh) ... ok
|
|
test_failure_is_shared_and_does_not_poison_later_retry (test_database_loading_performance.KeyAcquisitionSingleFlightTest.test_failure_is_shared_and_does_not_poison_later_retry) ... ok
|
|
test_simultaneous_browser_and_protocol_initialization_start_one_worker (test_database_loading_performance.KeyAcquisitionSingleFlightTest.test_simultaneous_browser_and_protocol_initialization_start_one_worker) ... ok
|
|
test_busy_navigation_is_coalesced_to_latest_account_conversation_and_query (test_database_loading_performance.LocalFirstLoaderTest.test_busy_navigation_is_coalesced_to_latest_account_conversation_and_query) ... ok
|
|
test_local_chat_arrives_before_remote_lookup_begins (test_database_loading_performance.LocalFirstLoaderTest.test_local_chat_arrives_before_remote_lookup_begins) ... ok
|
|
test_old_patient_result_never_replaces_new_selection_and_only_latest_is_queued (test_database_loading_performance.LocalFirstLoaderTest.test_old_patient_result_never_replaces_new_selection_and_only_latest_is_queued) ... ok
|
|
test_remote_timeout_keeps_local_chat_visible_and_not_setup_error (test_database_loading_performance.LocalFirstLoaderTest.test_remote_timeout_keeps_local_chat_visible_and_not_setup_error) ... ok
|
|
test_repeated_refresh_during_load_does_not_queue_another_initialization (test_database_loading_performance.LocalFirstLoaderTest.test_repeated_refresh_during_load_does_not_queue_another_initialization) ... ok
|
|
test_stale_database_result_is_ignored (test_database_loading_performance.LocalFirstLoaderTest.test_stale_database_result_is_ignored) ... ok
|
|
test_busy_refresh_does_not_start_a_second_scan (test_wechat_database_flow.AutomaticDatabaseFlowTest.test_busy_refresh_does_not_start_a_second_scan) ... ok
|
|
test_first_load_automates_and_tab_return_does_not_retry_failure (test_wechat_database_flow.AutomaticDatabaseFlowTest.test_first_load_automates_and_tab_return_does_not_retry_failure) ... ok
|
|
test_manual_acquire_does_not_trigger_a_second_automatic_scan (test_wechat_database_flow.AutomaticDatabaseFlowTest.test_manual_acquire_does_not_trigger_a_second_automatic_scan) ... ok
|
|
test_worker_error_exposes_manual_fallback (test_wechat_database_flow.AutomaticDatabaseFlowTest.test_worker_error_exposes_manual_fallback) ... ok
|
|
test_empty_cache_returns_actionable_error (test_wxwork_message_browser.WeChatMessageBrowserTests.test_empty_cache_returns_actionable_error) ... ok
|
|
test_lists_databases_conversations_and_messages (test_wxwork_message_browser.WeChatMessageBrowserTests.test_lists_databases_conversations_and_messages) ... ok
|
|
test_selects_conversation_and_filters (test_wxwork_message_browser.WeChatMessageBrowserTests.test_selects_conversation_and_filters) ... ok
|
|
test_cached_message_page_makes_no_sqlite_queries (test_wxwork_browser_performance.BrowserPerformanceTest.test_cached_message_page_makes_no_sqlite_queries) ... ok
|
|
test_concurrent_account_switches_cannot_leak_another_accounts_page (test_wxwork_browser_performance.BrowserPerformanceTest.test_concurrent_account_switches_cannot_leak_another_accounts_page) ... ok
|
|
test_concurrent_navigation_uses_consistent_cache (test_wxwork_browser_performance.BrowserPerformanceTest.test_concurrent_navigation_uses_consistent_cache) ... ok
|
|
test_content_search_checks_all_conversations (test_wxwork_browser_performance.BrowserPerformanceTest.test_content_search_checks_all_conversations) ... ok
|
|
test_conversation_and_message_offsets_are_stable_with_timestamp_ties (test_wxwork_browser_performance.BrowserPerformanceTest.test_conversation_and_message_offsets_are_stable_with_timestamp_ties) ... ok
|
|
test_database_replace_with_preserved_mtime_and_size_invalidates_inode (test_wxwork_browser_performance.BrowserPerformanceTest.test_database_replace_with_preserved_mtime_and_size_invalidates_inode) ... ok
|
|
test_database_replaced_between_index_and_message_read_cannot_leak_conversation (test_wxwork_browser_performance.BrowserPerformanceTest.test_database_replaced_between_index_and_message_read_cannot_leak_conversation) ... ok
|
|
test_database_replaced_between_index_and_preview_read_cannot_leak_conversation (test_wxwork_browser_performance.BrowserPerformanceTest.test_database_replaced_between_index_and_preview_read_cannot_leak_conversation) ... ok
|
|
test_deletion_invalidates_message_and_conversation_counts (test_wxwork_browser_performance.BrowserPerformanceTest.test_deletion_invalidates_message_and_conversation_counts) ... ok
|
|
test_multiple_accounts_do_not_rebuild_unselected_indexes (test_wxwork_browser_performance.BrowserPerformanceTest.test_multiple_accounts_do_not_rebuild_unselected_indexes) ... ok
|
|
test_new_message_invalidates_counts_order_and_cached_page (test_wxwork_browser_performance.BrowserPerformanceTest.test_new_message_invalidates_counts_order_and_cached_page) ... ok
|
|
test_reader_never_changes_source_database_or_adds_indexes (test_wxwork_browser_performance.BrowserPerformanceTest.test_reader_never_changes_source_database_or_adds_indexes) ... ok
|
|
test_refresh_explicitly_invalidates_even_unchanged_metadata (test_wxwork_browser_performance.BrowserPerformanceTest.test_refresh_explicitly_invalidates_even_unchanged_metadata) ... ok
|
|
test_rename_invalidates_names_without_touching_messages (test_wxwork_browser_performance.BrowserPerformanceTest.test_rename_invalidates_names_without_touching_messages) ... ok
|
|
test_search_finds_conversations_older_than_the_newest_thousand (test_wxwork_browser_performance.BrowserPerformanceTest.test_search_finds_conversations_older_than_the_newest_thousand) ... ok
|
|
test_search_offset_is_applied_after_filtering (test_wxwork_browser_performance.BrowserPerformanceTest.test_search_offset_is_applied_after_filtering) ... ok
|
|
test_snapshots_do_not_expose_mutable_cache_objects (test_wxwork_browser_performance.BrowserPerformanceTest.test_snapshots_do_not_expose_mutable_cache_objects) ... ok
|
|
test_system_conversations_are_excluded_but_total_message_count_is_exact (test_wxwork_browser_performance.BrowserPerformanceTest.test_system_conversations_are_excluded_but_total_message_count_is_exact) ... ok
|
|
test_wal_only_commit_invalidates_without_main_db_change (test_wxwork_browser_performance.BrowserPerformanceTest.test_wal_only_commit_invalidates_without_main_db_change) ... ok
|
|
test_warm_conversation_navigation_does_not_repeat_full_aggregates (test_wxwork_browser_performance.BrowserPerformanceTest.test_warm_conversation_navigation_does_not_repeat_full_aggregates) ... ok
|
|
test_auto_failure_exposes_manual_fallback_and_refresh_retries (test_wxwork_local_setup.LocalDatabaseSetupTest.test_auto_failure_exposes_manual_fallback_and_refresh_retries) ... ok
|
|
test_corrupt_fresh_cache_is_rebuilt_without_scanning (test_wxwork_local_setup.LocalDatabaseSetupTest.test_corrupt_fresh_cache_is_rebuilt_without_scanning) ... ok
|
|
test_database_notice_keeps_specific_failure (test_wxwork_local_setup.LocalDatabaseSetupTest.test_database_notice_keeps_specific_failure) ... ok
|
|
test_directory_choice_preserves_other_settings (test_wxwork_local_setup.LocalDatabaseSetupTest.test_directory_choice_preserves_other_settings) ... ok
|
|
test_existing_key_and_plain_database_do_not_scan_processes (test_wxwork_local_setup.LocalDatabaseSetupTest.test_existing_key_and_plain_database_do_not_scan_processes) ... ok
|
|
test_first_install_auto_discovers_and_decrypts_without_manual_input (test_wxwork_local_setup.LocalDatabaseSetupTest.test_first_install_auto_discovers_and_decrypts_without_manual_input) ... ok
|
|
test_frozen_key_worker_uses_executable_without_python_script (test_wxwork_local_setup.LocalDatabaseSetupTest.test_frozen_key_worker_uses_executable_without_python_script) ... ok
|
|
test_import_then_refresh_reads_encrypted_message (test_wxwork_local_setup.LocalDatabaseSetupTest.test_import_then_refresh_reads_encrypted_message) ... ok
|
|
test_invalid_keys_produce_actionable_error_without_secret (test_wxwork_local_setup.LocalDatabaseSetupTest.test_invalid_keys_produce_actionable_error_without_secret) ... ok
|
|
test_key_worker_only_persists_verified_keys (test_wxwork_local_setup.LocalDatabaseSetupTest.test_key_worker_only_persists_verified_keys) ... ok
|
|
test_key_worker_timeout_and_no_process_are_actionable (test_wxwork_local_setup.LocalDatabaseSetupTest.test_key_worker_timeout_and_no_process_are_actionable) ... ok
|
|
test_missing_directory_falls_back_without_scanning_processes (test_wxwork_local_setup.LocalDatabaseSetupTest.test_missing_directory_falls_back_without_scanning_processes) ... ok
|
|
test_missing_key_is_not_reported_as_missing_database (test_wxwork_local_setup.LocalDatabaseSetupTest.test_missing_key_is_not_reported_as_missing_database) ... ok
|
|
test_onedrive_directory_is_found_without_saved_config (test_wxwork_local_setup.LocalDatabaseSetupTest.test_onedrive_directory_is_found_without_saved_config) ... ok
|
|
test_partial_accounts_trigger_auto_acquisition_and_manual_fallback (test_wxwork_local_setup.LocalDatabaseSetupTest.test_partial_accounts_trigger_auto_acquisition_and_manual_fallback) ... ok
|
|
test_registry_documents_expands_environment_variables (test_wxwork_local_setup.LocalDatabaseSetupTest.test_registry_documents_expands_environment_variables) ... ok
|
|
test_saved_custom_path_is_used_after_install (test_wxwork_local_setup.LocalDatabaseSetupTest.test_saved_custom_path_is_used_after_install) ... ok
|
|
test_scanner_success_without_usable_key_is_still_a_failure (test_wxwork_local_setup.LocalDatabaseSetupTest.test_scanner_success_without_usable_key_is_still_a_failure) ... ok
|
|
test_stale_or_malformed_key_automatically_recovers (test_wxwork_local_setup.LocalDatabaseSetupTest.test_stale_or_malformed_key_automatically_recovers) ... ok
|
|
test_wrong_key_does_not_overwrite_saved_key (test_wxwork_local_setup.LocalDatabaseSetupTest.test_wrong_key_does_not_overwrite_saved_key) ... ok
|
|
test_a_blank_name_leaves_the_current_one_alone (test_qt_console_bridge.ConsoleBridgeTest.test_a_blank_name_leaves_the_current_one_alone)
|
|
空名字是"没填",不是"改成空"——改成空会让提示词里出现一个没有名字的客服。 ... ok
|
|
test_a_failed_connection_says_why_in_the_log (test_qt_console_bridge.ConsoleBridgeTest.test_a_failed_connection_says_why_in_the_log)
|
|
失败必须留下原因。只说"连接失败"的话,人不知道是地址错了还是后台没起。 ... ok
|
|
test_an_over_long_agent_name_is_truncated (test_qt_console_bridge.ConsoleBridgeTest.test_an_over_long_agent_name_is_truncated)
|
|
昵称会拼进系统提示词,不能让它无限长。 ... ok
|
|
test_approve_task_reaches_the_host_with_the_exact_key (test_qt_console_bridge.ConsoleBridgeTest.test_approve_task_reaches_the_host_with_the_exact_key)
|
|
「通过并发送」必须真的连到后端。 ... ok
|
|
test_approving_a_task_that_left_the_queue_sends_nothing (test_qt_console_bridge.ConsoleBridgeTest.test_approving_a_task_that_left_the_queue_sends_nothing)
|
|
任务已经不在队列里就别再放行——否则可能把草稿发到别的会话去。 ... ok
|
|
test_archive_date_button_uses_real_business_filter (test_qt_console_bridge.ConsoleBridgeTest.test_archive_date_button_uses_real_business_filter) ... ok
|
|
test_archive_selection_only_commits_an_existing_visible_key (test_qt_console_bridge.ConsoleBridgeTest.test_archive_selection_only_commits_an_existing_visible_key) ... ok
|
|
test_auto_send_header_selects_auto_mode_before_starting (test_qt_console_bridge.ConsoleBridgeTest.test_auto_send_header_selects_auto_mode_before_starting) ... ok
|
|
test_connect_backend_forwards_the_url_to_the_host (test_qt_console_bridge.ConsoleBridgeTest.test_connect_backend_forwards_the_url_to_the_host)
|
|
控制台上填的后台地址要真的到得了后端。 ... ok
|
|
test_console_html_and_javascript_assets_are_packaged_together (test_qt_console_bridge.ConsoleBridgeTest.test_console_html_and_javascript_assets_are_packaged_together) ... ok
|
|
test_console_push_timer_coalesces_against_earliest_deadline (test_qt_console_bridge.ConsoleBridgeTest.test_console_push_timer_coalesces_against_earliest_deadline) ... ok
|
|
test_editable_fields_look_editable (test_qt_console_bridge.ConsoleBridgeTest.test_editable_fields_look_editable)
|
|
能改的地方要看得出来能改。 ... ok
|
|
test_every_html_navigation_schedules_authoritative_state (test_qt_console_bridge.ConsoleBridgeTest.test_every_html_navigation_schedules_authoritative_state) ... ok
|
|
test_every_save_button_gives_the_user_feedback (test_qt_console_bridge.ConsoleBridgeTest.test_every_save_button_gives_the_user_feedback)
|
|
点了保存必须看得见反馈。 ... ok
|
|
test_handoff_only_reports_tasks_the_backend_accepted (test_qt_console_bridge.ConsoleBridgeTest.test_handoff_only_reports_tasks_the_backend_accepted) ... ok
|
|
test_no_layout_container_keeps_a_hard_coded_height (test_qt_console_bridge.ConsoleBridgeTest.test_no_layout_container_keeps_a_hard_coded_height)
|
|
去掉滚动条之后,"装不下"不再表现为滚动条,而是内容画到别的面板身上。 ... ok
|
|
test_no_layout_scrolls_anywhere (test_qt_console_bridge.ConsoleBridgeTest.test_no_layout_scrolls_anywhere)
|
|
整套界面不许出现滚动条——内容多了就往下铺,由整体缩放来兜。 ... ok
|
|
test_number_fields_tell_you_the_allowed_range (test_qt_console_bridge.ConsoleBridgeTest.test_number_fields_tell_you_the_allowed_range) ... ok
|
|
test_page_grids_use_proportional_columns (test_qt_console_bridge.ConsoleBridgeTest.test_page_grids_use_proportional_columns)
|
|
各栏必须按比例分配宽度。写死像素的话,舞台变宽它们也不会跟着变宽, ... ok
|
|
test_queue_actions_select_exact_key_before_forwarding (test_qt_console_bridge.ConsoleBridgeTest.test_queue_actions_select_exact_key_before_forwarding) ... ok
|
|
test_ready_state_delivery_updates_cache_only_after_emit (test_qt_console_bridge.ConsoleBridgeTest.test_ready_state_delivery_updates_cache_only_after_emit) ... ok
|
|
test_request_state_forces_webchannel_handshake_payload (test_qt_console_bridge.ConsoleBridgeTest.test_request_state_forces_webchannel_handshake_payload) ... ok
|
|
test_same_view_state_push_preserves_sidebar_and_main_dom_identity (test_qt_console_bridge.ConsoleBridgeTest.test_same_view_state_push_preserves_sidebar_and_main_dom_identity) ... ok
|
|
test_save_ai_only_applies_the_agent_name (test_qt_console_bridge.ConsoleBridgeTest.test_save_ai_only_applies_the_agent_name)
|
|
AI 设置页现在只有客服昵称是真正的本机设置。 ... ok
|
|
test_set_view_waits_for_loaded_document_and_replays_once (test_qt_console_bridge.ConsoleBridgeTest.test_set_view_waits_for_loaded_document_and_replays_once) ... ok
|
|
test_sidebar_orb_is_wired_to_the_listen_toggle (test_qt_console_bridge.ConsoleBridgeTest.test_sidebar_orb_is_wired_to_the_listen_toggle)
|
|
侧栏那颗球是用户最常点的开关,HTML 上必须真的绑着动作。 ... ok
|
|
test_stale_queue_key_never_mutates_previous_selection (test_qt_console_bridge.ConsoleBridgeTest.test_stale_queue_key_never_mutates_previous_selection) ... ok
|
|
test_state_is_not_cached_before_webchannel_handshake (test_qt_console_bridge.ConsoleBridgeTest.test_state_is_not_cached_before_webchannel_handshake) ... ok
|
|
test_the_canvas_fills_the_window_in_both_directions (test_qt_console_bridge.ConsoleBridgeTest.test_the_canvas_fills_the_window_in_both_directions)
|
|
画布要铺满窗口:高度按设计画布等比缩放,宽度靠加宽画布本身补齐。 ... ok
|
|
test_the_console_script_handles_that_action (test_qt_console_bridge.ConsoleBridgeTest.test_the_console_script_handles_that_action) ... ok
|
|
test_the_feedback_helper_covers_pending_result_and_failure (test_qt_console_bridge.ConsoleBridgeTest.test_the_feedback_helper_covers_pending_result_and_failure)
|
|
反馈要三段齐全:立刻响应、真实结果、失败也要说清。 ... ok
|
|
test_the_save_slots_report_their_result_back (test_qt_console_bridge.ConsoleBridgeTest.test_the_save_slots_report_their_result_back)
|
|
Qt 侧的保存槽必须把结果回传,否则网页那边永远只能瞎猜。 ... ok
|
|
test_the_scale_never_depends_on_which_page_is_open (test_qt_console_bridge.ConsoleBridgeTest.test_the_scale_never_depends_on_which_page_is_open)
|
|
缩放只能由窗口尺寸决定,绝不能看当前页内容有多高。 ... ok
|
|
test_the_side_rail_height_does_not_follow_page_content (test_qt_console_bridge.ConsoleBridgeTest.test_the_side_rail_height_does_not_follow_page_content)
|
|
侧栏在每一页必须一样高。 ... ok
|
|
test_the_stage_and_pages_grow_with_their_content (test_qt_console_bridge.ConsoleBridgeTest.test_the_stage_and_pages_grow_with_their_content)
|
|
舞台和单页都必须是"下限高度",不能写死——写死就必然要么滚要么裁。 ... ok
|
|
test_toggle_listen_starts_and_stops_the_host (test_qt_console_bridge.ConsoleBridgeTest.test_toggle_listen_starts_and_stops_the_host) ... ok
|
|
test_async_protocol_check_retains_explicit_approval_request (test_desktop_review_visibility.DesktopReviewTest.test_async_protocol_check_retains_explicit_approval_request) ... skipped 'This directory has no protocol transport'
|
|
test_explicit_approval_reaches_thread_with_exact_key_and_refreshes (test_desktop_review_visibility.DesktopReviewTest.test_explicit_approval_reaches_thread_with_exact_key_and_refreshes) ... ok
|
|
test_human_filter_includes_unknown_receipt_and_no_empty_send (test_desktop_review_visibility.DesktopReviewTest.test_human_filter_includes_unknown_receipt_and_no_empty_send) ... ok
|
|
test_legacy_receipt_states_are_visible_but_not_sendable (test_desktop_review_visibility.DesktopReviewTest.test_legacy_receipt_states_are_visible_but_not_sendable) ... ok
|
|
test_real_queue_snapshot_renders_review_and_handoff_in_embedded_browser (test_desktop_review_visibility.DesktopReviewTest.test_real_queue_snapshot_renders_review_and_handoff_in_embedded_browser) ... ok
|
|
test_review_counts_remain_visible_under_an_unrelated_filter (test_desktop_review_visibility.DesktopReviewTest.test_review_counts_remain_visible_under_an_unrelated_filter) ... ok
|
|
test_review_filter_surfaces_protocol_draft_and_reason (test_desktop_review_visibility.DesktopReviewTest.test_review_filter_surfaces_protocol_draft_and_reason) ... ok
|
|
test_stale_snapshot_requires_explicit_confirmation_before_backend_handoff (test_desktop_review_visibility.DesktopReviewTest.test_stale_snapshot_requires_explicit_confirmation_before_backend_handoff) ... ok
|
|
test_stopped_handoff_uses_offline_resolution_and_preserves_seen (test_desktop_review_visibility.DesktopReviewTest.test_stopped_handoff_uses_offline_resolution_and_preserves_seen) ... ok
|
|
test_unknown_receipt_handoff_requires_confirmation_and_never_calls_approve (test_desktop_review_visibility.DesktopReviewTest.test_unknown_receipt_handoff_requires_confirmation_and_never_calls_approve) ... ok
|
|
test_generation_failure_is_retryable_but_not_sendable (test_desktop_review_visibility.ReviewStateTest.test_generation_failure_is_retryable_but_not_sendable) ... ok
|
|
test_media_without_draft_cannot_be_approved (test_desktop_review_visibility.ReviewStateTest.test_media_without_draft_cannot_be_approved) ... ok
|
|
test_protocol_and_visual_reviews_have_the_same_action_contract (test_desktop_review_visibility.ReviewStateTest.test_protocol_and_visual_reviews_have_the_same_action_contract) ... ok
|
|
test_uncertain_delivery_cannot_be_approved_or_retried_even_with_stale_review_flag (test_desktop_review_visibility.ReviewStateTest.test_uncertain_delivery_cannot_be_approved_or_retried_even_with_stale_review_flag) ... ok
|
|
|
|
----------------------------------------------------------------------
|
|
Ran 106 tests in 6.222s
|
|
|
|
OK (skipped=1)
|