116 lines
16 KiB
Plaintext
116 lines
16 KiB
Plaintext
test_api_authentication_and_all_scope_write_rejection (test_knowledge.KnowledgeApiTest.test_api_authentication_and_all_scope_write_rejection) ... ok
|
|
test_empty_export_is_valid_and_audited (test_knowledge.KnowledgeApiTest.test_empty_export_is_valid_and_audited) ... ok
|
|
test_preview_auth_scope_and_enable_empty_library (test_knowledge.KnowledgeApiTest.test_preview_auth_scope_and_enable_empty_library) ... ok
|
|
test_disabled_reference_is_not_served_from_idempotency_cache (test_knowledge.KnowledgeGatewayTest.test_disabled_reference_is_not_served_from_idempotency_cache) ... ok
|
|
test_internal_purpose_skips_retrieval (test_knowledge.KnowledgeGatewayTest.test_internal_purpose_skips_retrieval) ... ok
|
|
test_reply_receives_evidence_and_records_version (test_knowledge.KnowledgeGatewayTest.test_reply_receives_evidence_and_records_version) ... ok
|
|
test_abandoned_lease_is_recovered (test_knowledge.KnowledgeTest.test_abandoned_lease_is_recovered) ... ok
|
|
test_cancel_fences_an_inflight_batch_and_allows_replacement (test_knowledge.KnowledgeTest.test_cancel_fences_an_inflight_batch_and_allows_replacement) ... ok
|
|
test_cross_page_answers_are_preserved_and_pause_resumes (test_knowledge.KnowledgeTest.test_cross_page_answers_are_preserved_and_pause_resumes) ... ok
|
|
test_dates_use_business_timezone_and_prompt_does_not_mutate_input (test_knowledge.KnowledgeTest.test_dates_use_business_timezone_and_prompt_does_not_mutate_input) ... ok
|
|
test_edits_remove_publication_and_stale_edit_is_rejected (test_knowledge.KnowledgeTest.test_edits_remove_publication_and_stale_edit_is_rejected) ... ok
|
|
test_enabling_requires_current_unexpired_publication (test_knowledge.KnowledgeTest.test_enabling_requires_current_unexpired_publication) ... ok
|
|
test_exact_limit_preserves_complete_final_answer_and_progress (test_knowledge.KnowledgeTest.test_exact_limit_preserves_complete_final_answer_and_progress) ... ok
|
|
test_expired_knowledge_not_returned (test_knowledge.KnowledgeTest.test_expired_knowledge_not_returned) ... ok
|
|
test_group_and_unverified_outbound_are_excluded (test_knowledge.KnowledgeTest.test_group_and_unverified_outbound_are_excluded) ... ok
|
|
test_incremental_watch_enqueues_only_changed_conversation (test_knowledge.KnowledgeTest.test_incremental_watch_enqueues_only_changed_conversation) ... ok
|
|
test_lifecycle_only_published_knowledge_is_retrievable (test_knowledge.KnowledgeTest.test_lifecycle_only_published_knowledge_is_retrievable) ... ok
|
|
test_model_call_budget_is_durable_on_failure (test_knowledge.KnowledgeTest.test_model_call_budget_is_durable_on_failure) ... ok
|
|
test_names_and_contact_details_are_redacted_before_model (test_knowledge.KnowledgeTest.test_names_and_contact_details_are_redacted_before_model) ... ok
|
|
test_preview_eligible_text_matches_worker_identity_checks (test_knowledge.KnowledgeTest.test_preview_eligible_text_matches_worker_identity_checks) ... ok
|
|
test_preview_is_read_only_scoped_and_counts_only_direct_conversations (test_knowledge.KnowledgeTest.test_preview_is_read_only_scoped_and_counts_only_direct_conversations) ... ok
|
|
test_publish_checks_source_again_after_vector_upload (test_knowledge.KnowledgeTest.test_publish_checks_source_again_after_vector_upload) ... ok
|
|
test_query_uses_tail_customer_bubbles_not_old_history (test_knowledge.KnowledgeTest.test_query_uses_tail_customer_bubbles_not_old_history) ... ok
|
|
test_real_progress_and_limit_reason (test_knowledge.KnowledgeTest.test_real_progress_and_limit_reason) ... ok
|
|
test_reindex_changes_only_current_publications (test_knowledge.KnowledgeTest.test_reindex_changes_only_current_publications) ... 已重建 1 条向量索引
|
|
已重建 0 条向量索引
|
|
ok
|
|
test_reprocessing_is_idempotent (test_knowledge.KnowledgeTest.test_reprocessing_is_idempotent) ... ok
|
|
test_review_and_publication_validate_expiry_and_state (test_knowledge.KnowledgeTest.test_review_and_publication_validate_expiry_and_state) ... ok
|
|
test_sample_limit_does_not_publish_half_answer (test_knowledge.KnowledgeTest.test_sample_limit_does_not_publish_half_answer) ... ok
|
|
test_snapshot_uses_old_version_and_marks_changed_source_stale (test_knowledge.KnowledgeTest.test_snapshot_uses_old_version_and_marks_changed_source_stale) ... ok
|
|
test_source_revision_invalidates_knowledge_and_cached_references (test_knowledge.KnowledgeTest.test_source_revision_invalidates_knowledge_and_cached_references) ... ok
|
|
test_tenants_cannot_read_or_publish_each_others_knowledge (test_knowledge.KnowledgeTest.test_tenants_cannot_read_or_publish_each_others_knowledge) ... ok
|
|
test_vector_stale_revision_or_wrong_tenant_is_not_returned (test_knowledge.KnowledgeTest.test_vector_stale_revision_or_wrong_tenant_is_not_returned) ... ok
|
|
test_authentication_and_specific_account_still_required (test_knowledge_search.KnowledgeSearchApiTest.test_authentication_and_specific_account_still_required) ... ok
|
|
test_invalid_query_never_reaches_retriever (test_knowledge_search.KnowledgeSearchApiTest.test_invalid_query_never_reaches_retriever) ... ok
|
|
test_no_published_knowledge_is_empty_success (test_knowledge_search.KnowledgeSearchApiTest.test_no_published_knowledge_is_empty_success) ... ok
|
|
test_valid_query_trims_before_validation_and_search (test_knowledge_search.KnowledgeSearchApiTest.test_valid_query_trims_before_validation_and_search) ... ok
|
|
test_auth_confirmation_owner_and_read_only_pagination (test_knowledge_review.FullReviewApiTest.test_auth_confirmation_owner_and_read_only_pagination) ... ok
|
|
test_restricted_all_accounts_and_revocation_during_background_execution (test_knowledge_review.FullReviewApiTest.test_restricted_all_accounts_and_revocation_during_background_execution) ... ok
|
|
test_all_pages_approve_without_publishing_or_model_calls (test_knowledge_review.FullReviewTest.test_all_pages_approve_without_publishing_or_model_calls) ... ok
|
|
test_batch_failure_rolls_back_status_results_and_audit_together (test_knowledge_review.FullReviewTest.test_batch_failure_rolls_back_status_results_and_audit_together) ... ok
|
|
test_changed_deleted_and_new_items_are_not_approved_from_old_snapshot (test_knowledge_review.FullReviewTest.test_changed_deleted_and_new_items_are_not_approved_from_old_snapshot) ... ok
|
|
test_disabled_reviewer_cannot_start_or_continue (test_knowledge_review.FullReviewTest.test_disabled_reviewer_cannot_start_or_continue) ... ok
|
|
test_expiry_and_replaced_previews (test_knowledge_review.FullReviewTest.test_expiry_and_replaced_previews) ... ok
|
|
test_pause_resume_cancel_and_new_worker_are_durable (test_knowledge_review.FullReviewTest.test_pause_resume_cancel_and_new_worker_are_durable) ... ok
|
|
test_preview_reports_missing_conditions_fields_expiry_and_sources (test_knowledge_review.FullReviewTest.test_preview_reports_missing_conditions_fields_expiry_and_sources) ... ok
|
|
test_reviewer_permission_revoked_mid_job_stops_further_approvals (test_knowledge_review.FullReviewTest.test_reviewer_permission_revoked_mid_job_stops_further_approvals) ... ok
|
|
test_single_account_scope_and_snapshot_excludes_later_drafts (test_knowledge_review.FullReviewTest.test_single_account_scope_and_snapshot_excludes_later_drafts) ... ok
|
|
test_delete_confirmation_and_model_metadata_auth (test_knowledge_tasks.KnowledgeTaskApiTest.test_delete_confirmation_and_model_metadata_auth) ... ok
|
|
test_budget_can_be_increased_without_losing_pending_candidate (test_knowledge_tasks.KnowledgeTaskTest.test_budget_can_be_increased_without_losing_pending_candidate) ... ok
|
|
test_cancel_during_call_fences_result_and_pause_can_continue (test_knowledge_tasks.KnowledgeTaskTest.test_cancel_during_call_fences_result_and_pause_can_continue) ... ok
|
|
test_config_rejects_active_foreign_invalid_timeout_and_pins_legacy_job (test_knowledge_tasks.KnowledgeTaskTest.test_config_rejects_active_foreign_invalid_timeout_and_pins_legacy_job) ... ok
|
|
test_delete_requires_rejection_revision_and_tenant_and_keeps_archive (test_knowledge_tasks.KnowledgeTaskTest.test_delete_requires_rejection_revision_and_tenant_and_keeps_archive) ... ok
|
|
test_model_choice_is_pinned_and_image_disabled_unknown_rejected (test_knowledge_tasks.KnowledgeTaskTest.test_model_choice_is_pinned_and_image_disabled_unknown_rejected) ... ok
|
|
test_resume_preserves_successful_candidates_in_failed_batch (test_knowledge_tasks.KnowledgeTaskTest.test_resume_preserves_successful_candidates_in_failed_batch) ... ok
|
|
test_selected_model_timeout_output_budget_and_safe_errors (test_knowledge_tasks.KnowledgeTaskTest.test_selected_model_timeout_output_budget_and_safe_errors) ... ok
|
|
test_auxiliary_lengths_and_aliases_do_not_truncate_core_facts (test_knowledge_model_output.ModelOutputTest.test_auxiliary_lengths_and_aliases_do_not_truncate_core_facts) ... ok
|
|
test_bad_core_fields_raise_specific_safe_errors_and_leave_source_untouched (test_knowledge_model_output.ModelOutputTest.test_bad_core_fields_raise_specific_safe_errors_and_leave_source_untouched) ... ok
|
|
test_fallback_retains_complete_original_even_when_long (test_knowledge_model_output.ModelOutputTest.test_fallback_retains_complete_original_even_when_long) ... ok
|
|
test_invalid_json_and_empty_results_do_not_retain_raw_response (test_knowledge_model_output.ModelOutputTest.test_invalid_json_and_empty_results_do_not_retain_raw_response) ... ok
|
|
test_missing_auxiliary_fields_are_safe_and_conditions_remain_empty (test_knowledge_model_output.ModelOutputTest.test_missing_auxiliary_fields_are_safe_and_conditions_remain_empty) ... ok
|
|
test_cancel_during_invalid_response_does_not_save_fallback (test_knowledge_model_output.ModelOutputWorkerTest.test_cancel_during_invalid_response_does_not_save_fallback) ... ok
|
|
test_fallback_commit_survives_later_transport_failure_and_resume (test_knowledge_model_output.ModelOutputWorkerTest.test_fallback_commit_survives_later_transport_failure_and_resume) ... ok
|
|
test_invalid_response_is_quarantined_as_draft_and_next_pair_continues (test_knowledge_model_output.ModelOutputWorkerTest.test_invalid_response_is_quarantined_as_draft_and_next_pair_continues) ... ok
|
|
test_normalized_empty_conditions_cannot_be_approved_without_editing (test_knowledge_model_output.ModelOutputWorkerTest.test_normalized_empty_conditions_cannot_be_approved_without_editing) ... ok
|
|
test_a_broken_database_keeps_the_previous_catalog (test_model_gateway.CatalogTest.test_a_broken_database_keeps_the_previous_catalog) ... ok
|
|
test_a_disabled_outlet_disappears_from_the_plan (test_model_gateway.CatalogTest.test_a_disabled_outlet_disappears_from_the_plan) ... ok
|
|
test_a_second_write_with_the_same_task_id_refreshes_data_but_keeps_review_reason (test_model_gateway.CatalogTest.test_a_second_write_with_the_same_task_id_refreshes_data_but_keeps_review_reason)
|
|
桌面端可能先落盘(它知道审核规则命中原因,网关不知道)——网关补写权威数据时不能把这个原因擦掉。 ... ok
|
|
test_comfyui_never_enters_the_answer_pool (test_model_gateway.CatalogTest.test_comfyui_never_enters_the_answer_pool) ... ok
|
|
test_keys_are_decrypted_for_the_gateway_only (test_model_gateway.CatalogTest.test_keys_are_decrypted_for_the_gateway_only) ... ok
|
|
test_the_call_log_also_keeps_customer_and_reply_text (test_model_gateway.CatalogTest.test_the_call_log_also_keeps_customer_and_reply_text)
|
|
跟踪问题要能看到"客户说了什么、模型答了什么",不能只有分数。 ... ok
|
|
test_the_call_log_lands_in_the_shared_table (test_model_gateway.CatalogTest.test_the_call_log_lands_in_the_shared_table) ... ok
|
|
test_a_guard_request_is_stored_as_an_internal_call (test_model_gateway.GatewayEndpointTest.test_a_guard_request_is_stored_as_an_internal_call) ... ok
|
|
test_a_missing_desktop_session_is_rejected (test_model_gateway.GatewayEndpointTest.test_a_missing_desktop_session_is_rejected) ... ok
|
|
test_a_normal_request_returns_reply_candidates_and_verdict (test_model_gateway.GatewayEndpointTest.test_a_normal_request_returns_reply_candidates_and_verdict) ... ok
|
|
test_a_real_request_stores_what_the_customer_said_and_what_the_model_answered (test_model_gateway.GatewayEndpointTest.test_a_real_request_stores_what_the_customer_said_and_what_the_model_answered)
|
|
这就是"记录模型返回的话"这件事的端到端证明。 ... ok
|
|
test_all_upstreams_down_returns_502_not_a_fake_reply (test_model_gateway.GatewayEndpointTest.test_all_upstreams_down_returns_502_not_a_fake_reply) ... ok
|
|
test_candidates_are_asked_in_parallel (test_model_gateway.GatewayEndpointTest.test_candidates_are_asked_in_parallel) ... ok
|
|
test_health_reports_breakers_and_the_active_plan (test_model_gateway.GatewayEndpointTest.test_health_reports_breakers_and_the_active_plan) ... ok
|
|
test_the_same_idempotency_key_is_not_charged_twice (test_model_gateway.GatewayEndpointTest.test_the_same_idempotency_key_is_not_charged_twice) ... ok
|
|
test_a_single_candidate_always_wins (test_model_gateway.JudgeTest.test_a_single_candidate_always_wins) ... ok
|
|
test_no_judge_configured_is_a_cheap_no_op (test_model_gateway.JudgeTest.test_no_judge_configured_is_a_cheap_no_op) ... ok
|
|
test_reads_the_verdict (test_model_gateway.JudgeTest.test_reads_the_verdict) ... ok
|
|
test_unparseable_output_does_not_participate (test_model_gateway.JudgeTest.test_unparseable_output_does_not_participate) ... ok
|
|
test_a_4xx_is_never_retried (test_model_gateway.OutletCallTest.test_a_4xx_is_never_retried) ... ok
|
|
test_a_failing_outlet_eventually_trips_the_breaker (test_model_gateway.OutletCallTest.test_a_failing_outlet_eventually_trips_the_breaker) ... ok
|
|
test_a_hung_upstream_is_cut_at_the_deadline (test_model_gateway.OutletCallTest.test_a_hung_upstream_is_cut_at_the_deadline) ... ok
|
|
test_a_normal_call_returns_text_and_latency (test_model_gateway.OutletCallTest.test_a_normal_call_returns_text_and_latency) ... ok
|
|
test_a_retriable_status_is_retried_once (test_model_gateway.OutletCallTest.test_a_retriable_status_is_retried_once) ... ok
|
|
test_the_breaker_half_opens_after_cooling_down (test_model_gateway.OutletCallTest.test_the_breaker_half_opens_after_cooling_down) ... ok
|
|
test_the_inflight_gate_caps_concurrency_per_outlet (test_model_gateway.OutletCallTest.test_the_inflight_gate_caps_concurrency_per_outlet) ... ok
|
|
test_a_fully_written_url_is_not_appended_to (test_model_gateway.ProtocolShapeTest.test_a_fully_written_url_is_not_appended_to) ... ok
|
|
test_claude_payload_lifts_system_and_forces_max_tokens (test_model_gateway.ProtocolShapeTest.test_claude_payload_lifts_system_and_forces_max_tokens) ... ok
|
|
test_comfyui_is_not_a_chat_kind (test_model_gateway.ProtocolShapeTest.test_comfyui_is_not_a_chat_kind) ... ok
|
|
test_dify_payload_carries_query_and_user_not_messages (test_model_gateway.ProtocolShapeTest.test_dify_payload_carries_query_and_user_not_messages) ... ok
|
|
test_each_kind_lands_on_its_own_endpoint (test_model_gateway.ProtocolShapeTest.test_each_kind_lands_on_its_own_endpoint) ... ok
|
|
test_parsers_raise_instead_of_returning_an_empty_string (test_model_gateway.ProtocolShapeTest.test_parsers_raise_instead_of_returning_an_empty_string) ... ok
|
|
test_followup_uses_recent_topic_for_retrieval_and_keeps_history (test_rag_context_audit.KnowledgeContextAudit.test_followup_uses_recent_topic_for_retrieval_and_keeps_history) ... ok
|
|
test_full_current_question_is_prioritized_over_long_preamble (test_rag_context_audit.KnowledgeContextAudit.test_full_current_question_is_prioritized_over_long_preamble) ... ok
|
|
test_multimodal_messages_only_retrieves_and_preserves_image (test_rag_context_audit.KnowledgeContextAudit.test_multimodal_messages_only_retrieves_and_preserves_image) ... ok
|
|
test_new_self_contained_topic_does_not_inherit_old_knowledge (test_rag_context_audit.KnowledgeContextAudit.test_new_self_contained_topic_does_not_inherit_old_knowledge) ... ok
|
|
test_failed_upload_is_outlet_failure_not_uncaught_gateway_exception (test_gateway_media_audit.DifyMediaAudit.test_failed_upload_is_outlet_failure_not_uncaught_gateway_exception) ... ok
|
|
test_inline_image_uploaded_and_referenced_with_matching_user (test_gateway_media_audit.DifyMediaAudit.test_inline_image_uploaded_and_referenced_with_matching_user) ... ok
|
|
test_jpeg_attachment_keeps_mime_type (test_gateway_media_audit.DifyMediaAudit.test_jpeg_attachment_keeps_mime_type) ... ok
|
|
test_legacy_and_inline_same_image_uploads_once (test_gateway_media_audit.DifyMediaAudit.test_legacy_and_inline_same_image_uploads_once) ... ok
|
|
test_remote_image_url_is_forwarded_as_attachment_not_downloaded (test_gateway_media_audit.DifyMediaAudit.test_remote_image_url_is_forwarded_as_attachment_not_downloaded) ... ok
|
|
|
|
----------------------------------------------------------------------
|
|
Ran 105 tests in 101.373s
|
|
|
|
OK
|