igerasimov's picture
Deploy Phase 2 dataset classifier
e80831e verified
Raw History Blame Contribute Delete
68.6 kB
[
"tests/datasets/test_application_service_corrective.py::test_all_frozen_cases_retrieve_through_production_composition[0]",
"tests/datasets/test_application_service_corrective.py::test_all_frozen_cases_retrieve_through_production_composition[1]",
"tests/datasets/test_application_service_corrective.py::test_all_frozen_cases_retrieve_through_production_composition[2]",
"tests/datasets/test_application_service_corrective.py::test_all_frozen_cases_retrieve_through_production_composition[3]",
"tests/datasets/test_application_service_corrective.py::test_cross_session_waiting_reference_is_rejected",
"tests/datasets/test_application_service_corrective.py::test_factory_constructs_concrete_production_composition_without_calls",
"tests/datasets/test_application_service_corrective.py::test_frozen_source_hashes_remain_manifest_exact",
"tests/datasets/test_application_service_corrective.py::test_invalid_cmr_requests_return_typed_zero_inference_failure[http://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=A_1]",
"tests/datasets/test_application_service_corrective.py::test_invalid_cmr_requests_return_typed_zero_inference_failure[https://cmr.earthdata.nasa.gov/search/collections.umm_json]",
"tests/datasets/test_application_service_corrective.py::test_invalid_cmr_requests_return_typed_zero_inference_failure[https://example.org/search/collections.umm_json?native_id=A_1]",
"tests/datasets/test_application_service_corrective.py::test_invalid_explicit_selection_stops_before_pdf_or_model[0-/tmp/local.pdf]",
"tests/datasets/test_application_service_corrective.py::test_invalid_explicit_selection_stops_before_pdf_or_model[0-https://evil.example/readme.pdf]",
"tests/datasets/test_application_service_corrective.py::test_invalid_explicit_selection_stops_before_pdf_or_model[0-tests/fixtures/datasets/pdf/README.pdf]",
"tests/datasets/test_application_service_corrective.py::test_invalid_explicit_selection_stops_before_pdf_or_model[1-None]",
"tests/datasets/test_application_service_corrective.py::test_no_gradio_or_ui_import_and_protected_files_unchanged",
"tests/datasets/test_application_service_corrective.py::test_retrieve_multiple_candidates_preserves_source_order_without_choice",
"tests/datasets/test_application_service_corrective.py::test_retrieve_no_readme_is_skipped_without_waiting_or_inference",
"tests/datasets/test_application_service_corrective.py::test_retrieve_one_candidate_persists_recoverable_waiting_boundary",
"tests/datasets/test_application_service_corrective.py::test_stage_events_and_application_results_do_not_expose_experts",
"tests/datasets/test_application_service_corrective.py::test_valid_selection_delegates_to_pdf_retrieval_and_stops_before_model",
"tests/datasets/test_application_service_corrective.py::test_waiting_checkpoint_can_be_reopened_after_service_restart",
"tests/datasets/test_classifier_adapter.py::test_article_prompt_schema_and_source_models_are_byte_compatible",
"tests/datasets/test_classifier_adapter.py::test_bounded_retry_success_and_exhaustion",
"tests/datasets/test_classifier_adapter.py::test_context_only_block_cannot_be_sole_support",
"tests/datasets/test_classifier_adapter.py::test_dataset_semantic_validator_not_run_and_schema_valid",
"tests/datasets/test_classifier_adapter.py::test_direct_child_enforced_at_term_and_variable_stages",
"tests/datasets/test_classifier_adapter.py::test_four_frozen_milestone6_outcomes_feed_or_block_adapter",
"tests/datasets/test_classifier_adapter.py::test_missing_unknown_duplicate_and_context_only_citations_fail",
"tests/datasets/test_classifier_adapter.py::test_multiple_branches_and_joint_multi_section_citations",
"tests/datasets/test_classifier_adapter.py::test_packet_hash_text_component_and_review_boundary_fail_before_model",
"tests/datasets/test_classifier_adapter.py::test_prompt_injection_and_expert_sentinel_remain_source_data",
"tests/datasets/test_classifier_adapter.py::test_raw_text_blocks_manifest_and_unknown_input_are_rejected",
"tests/datasets/test_classifier_adapter.py::test_response_contracts_reject_unknown_fields_and_missing_stop_citation",
"tests/datasets/test_classifier_adapter.py::test_sealed_expert_field_rejected_from_packet_and_context",
"tests/datasets/test_classifier_adapter.py::test_semantic_not_classified_is_completed_and_model_failure_is_not",
"tests/datasets/test_classifier_adapter.py::test_separate_confidence_and_weak_product_cannot_be_overridden",
"tests/datasets/test_classifier_adapter.py::test_stop_at_topic_term_vl1_vl2_and_select_vl3",
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>0]",
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>1]",
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>2]",
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>3]",
"tests/datasets/test_classifier_adapter.py::test_unknown_skipped_uncited_fabricated_and_extra_authority_fail[<lambda>4]",
"tests/datasets/test_cmr.py::test_all_frozen_cmr_fixtures_resolve_and_remain_unchanged",
"tests/datasets/test_cmr.py::test_blind_view_is_allow_listed_and_expert_payload_is_sealed",
"tests/datasets/test_cmr.py::test_client_authorization_and_cookie_state_are_rejected",
"tests/datasets/test_cmr.py::test_declared_and_streamed_size_limits_are_enforced",
"tests/datasets/test_cmr.py::test_encoded_response_is_rejected_to_preserve_exact_entity_bytes",
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload0-CMR_CARDINALITY]",
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload1-CMR_CARDINALITY]",
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload2-CMR_CARDINALITY_MISMATCH]",
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload3-CMR_HITS_INVALID]",
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload4-CMR_ITEMS_INVALID]",
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload5-CMR_ITEM_INVALID]",
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload6-CMR_META_INVALID]",
"tests/datasets/test_cmr.py::test_envelope_cardinality_and_shapes_are_validated[payload7-CMR_UMM_INVALID]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[http://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001-CMR_URL_SCHEME]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.json?native_id=TARGET_001-CMR_URL_PATH]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json-CMR_URL_NATIVE_ID_COUNT]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=-CMR_URL_NATIVE_ID_EMPTY]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001#fragment-CMR_URL_FRAGMENT]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001&access_token=secret-CMR_URL_AUTH_QUERY]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001&client-secret=secret-CMR_URL_AUTH_QUERY]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001&native_id=OTHER_001-CMR_URL_NATIVE_ID_COUNT]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://cmr.earthdata.nasa.gov:444/search/collections.umm_json?native_id=TARGET_001-CMR_URL_PORT]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://example.test/search/collections.umm_json?native_id=TARGET_001-CMR_URL_HOST]",
"tests/datasets/test_cmr.py::test_invalid_cmr_urls_are_typed[https://user:password@cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001-CMR_URL_USERINFO]",
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[http://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001]",
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://cmr.earthdata.nasa.gov/search/collections.json?native_id=TARGET_001]",
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=OTHER_001]",
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://cmr.earthdata.nasa.gov/search/collections.umm_json?native_id=TARGET_001&token=x]",
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://cmr.earthdata.nasa.gov:444/search/collections.umm_json?native_id=TARGET_001]",
"tests/datasets/test_cmr.py::test_invalid_redirect_target_is_rejected[https://example.test/search/collections.umm_json?native_id=TARGET_001]",
"tests/datasets/test_cmr.py::test_leading_zeros_and_capitalization_are_preserved",
"tests/datasets/test_cmr.py::test_login_response_and_unsupported_or_missing_media_type_are_rejected",
"tests/datasets/test_cmr.py::test_manual_redirect_is_validated_and_preserved",
"tests/datasets/test_cmr.py::test_non_public_status_is_rejected[401]",
"tests/datasets/test_cmr.py::test_non_public_status_is_rejected[403]",
"tests/datasets/test_cmr.py::test_overall_operation_limit_is_enforced",
"tests/datasets/test_cmr.py::test_percent_encoded_native_id_is_decoded_once_and_preserved",
"tests/datasets/test_cmr.py::test_preclassification_failure_has_zero_inference_semantics",
"tests/datasets/test_cmr.py::test_redirect_loop_and_limit_are_rejected",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD0]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD1]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD2]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD3]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD4]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD5]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD6]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REQUIRED_FIELD7]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REVISION_ID_INVALID0]",
"tests/datasets/test_cmr.py::test_required_identity_fields_are_validated[<lambda>-CMR_REVISION_ID_INVALID1]",
"tests/datasets/test_cmr.py::test_sealed_keyword_hash_is_stable_for_equivalent_payloads",
"tests/datasets/test_cmr.py::test_source_decoding_and_json_errors_are_typed[[]-CMR_JSON_ROOT]",
"tests/datasets/test_cmr.py::test_source_decoding_and_json_errors_are_typed[{\"not\":\"utf8\"}\\xff-CMR_TEXT_DECODE]",
"tests/datasets/test_cmr.py::test_source_decoding_and_json_errors_are_typed[{invalid-CMR_JSON_INVALID]",
"tests/datasets/test_cmr.py::test_submitted_returned_and_derived_native_ids_match_exactly[payload0]",
"tests/datasets/test_cmr.py::test_submitted_returned_and_derived_native_ids_match_exactly[payload1]",
"tests/datasets/test_cmr.py::test_submitted_returned_and_derived_native_ids_match_exactly[payload2]",
"tests/datasets/test_cmr.py::test_successful_retrieval_preserves_exact_bytes_headers_timestamp_and_hash",
"tests/datasets/test_cmr.py::test_transport_failures_are_typed[exception0-CMR_TIMEOUT]",
"tests/datasets/test_cmr.py::test_transport_failures_are_typed[exception1-CMR_TRANSPORT_ERROR]",
"tests/datasets/test_cmr.py::test_transport_failures_are_typed[exception2-CMR_TRANSPORT_ERROR]",
"tests/datasets/test_cmr.py::test_unknown_source_fields_are_preserved_and_entry_id_is_not_fabricated",
"tests/datasets/test_cmr.py::test_valid_url_preserves_exact_native_id_and_harmless_parameters",
"tests/datasets/test_comparison_milestone9.py::test_ambiguous_normalized_match_is_unresolved_and_review_required",
"tests/datasets/test_comparison_milestone9.py::test_authoritative_uuid_and_fields_resolve_consistently",
"tests/datasets/test_comparison_milestone9.py::test_comparison_and_reviews_are_stable_idempotent_and_additive",
"tests/datasets/test_comparison_milestone9.py::test_comparison_cache_is_separate_and_expert_sensitive",
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts0-vl1-atmosphere-carbon-already_assigned-False]",
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts1-vl2-carbon-dioxide-proposed_refinement-True]",
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts2-vl1-atmosphere-carbon-redundant_result-False]",
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts3-vl1-atmosphere-carbon-proposed_addition-True]",
"tests/datasets/test_comparison_milestone9.py::test_comparison_category_precedence_and_review[experts4-vl1-atmosphere-carbon-review_required-True]",
"tests/datasets/test_comparison_milestone9.py::test_comparison_logs_contain_counts_not_expert_values",
"tests/datasets/test_comparison_milestone9.py::test_comparison_persistence_failure_publishes_no_complete_artifact",
"tests/datasets/test_comparison_milestone9.py::test_discontinuous_uuid_chain_is_rejected",
"tests/datasets/test_comparison_milestone9.py::test_duplicate_blind_records_are_preserved_not_mutated",
"tests/datasets/test_comparison_milestone9.py::test_duplicate_experts_preserve_every_source_position",
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[term-atmospheric-chemistry-path1]",
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[topic-atmosphere-path0]",
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[vl1-atmosphere-carbon-path2]",
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[vl2-carbon-dioxide-path3]",
"tests/datasets/test_comparison_milestone9.py::test_exact_assignment_at_every_supported_level[vl3-carbon-dioxide-profiles-path4]",
"tests/datasets/test_comparison_milestone9.py::test_exact_match_precedes_broader_secondary_relationship",
"tests/datasets/test_comparison_milestone9.py::test_frozen_experts_are_used_only_after_independent_blind_result[0]",
"tests/datasets/test_comparison_milestone9.py::test_frozen_experts_are_used_only_after_independent_blind_result[1]",
"tests/datasets/test_comparison_milestone9.py::test_frozen_experts_are_used_only_after_independent_blind_result[2]",
"tests/datasets/test_comparison_milestone9.py::test_frozen_experts_are_used_only_after_independent_blind_result[3]",
"tests/datasets/test_comparison_milestone9.py::test_invalid_and_unknown_uuid_remain_unresolved[<lambda>-invalid_uuid]",
"tests/datasets/test_comparison_milestone9.py::test_invalid_and_unknown_uuid_remain_unresolved[<lambda>-unknown_uuid]",
"tests/datasets/test_comparison_milestone9.py::test_invalid_blind_hash_never_invokes_unsealer",
"tests/datasets/test_comparison_milestone9.py::test_multiple_blind_and_expert_branches_keep_independent_items",
"tests/datasets/test_comparison_milestone9.py::test_narrower_expert_precedence_preserves_broader_secondary_relationship",
"tests/datasets/test_comparison_milestone9.py::test_not_classified_unresolved_expert_creates_additive_review_only",
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source0-resolved_exact_ordered_fields-True]",
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source1-resolved_unique_normalized_ordered_fields-True]",
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source2-missing_required_intermediate_level-False]",
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source3-unmatched_path-False]",
"tests/datasets/test_comparison_milestone9.py::test_ordered_expert_resolution[source4-malformed_assignment-False]",
"tests/datasets/test_comparison_milestone9.py::test_semantic_not_classified_preserves_expert_only_without_removal",
"tests/datasets/test_comparison_milestone9.py::test_unverified_input_never_invokes_unsealer",
"tests/datasets/test_comparison_milestone9.py::test_uuid_wrong_level_and_uuid_field_conflict_are_explicit",
"tests/datasets/test_dataset_ui_milestone10.py::test_arbitrary_or_cross_session_selection_never_reaches_service[/tmp/readme.pdf]",
"tests/datasets/test_dataset_ui_milestone10.py::test_arbitrary_or_cross_session_selection_never_reaches_service[https://evil.example/a.pdf]",
"tests/datasets/test_dataset_ui_milestone10.py::test_arbitrary_or_cross_session_selection_never_reaches_service[other-session-candidate]",
"tests/datasets/test_dataset_ui_milestone10.py::test_candidates_preserve_source_order_and_exact_selection",
"tests/datasets/test_dataset_ui_milestone10.py::test_comparison_failure_preserves_verified_blind_without_partial_experts",
"tests/datasets/test_dataset_ui_milestone10.py::test_fresh_session_state_and_initial_enablement",
"tests/datasets/test_dataset_ui_milestone10.py::test_fresh_state_is_per_session_and_initially_safe",
"tests/datasets/test_dataset_ui_milestone10.py::test_multiple_candidates_preserve_order_and_exact_selected_request",
"tests/datasets/test_dataset_ui_milestone10.py::test_presenters_expose_only_sanitized_values",
"tests/datasets/test_dataset_ui_milestone10.py::test_protected_hashes_and_root_launcher_boundary",
"tests/datasets/test_dataset_ui_milestone10.py::test_protected_publication_hashes_unchanged",
"tests/datasets/test_dataset_ui_milestone10.py::test_real_gradio_builds_one_blocks_application_without_work",
"tests/datasets/test_dataset_ui_milestone10.py::test_real_gradio_constructs_exact_two_tabs_without_service_calls",
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_enablement[0-skipped-False]",
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_enablement[1-completed-True]",
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_enablement[2-completed-False]",
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_states[0-None-False]",
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_states[1-choice-0-True]",
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_states[1-dynamic-True]",
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_candidate_states[2-None-False]",
"tests/datasets/test_dataset_ui_milestone10.py::test_retrieval_failure_is_sanitized_and_zero_inference",
"tests/datasets/test_dataset_ui_milestone10.py::test_semantic_not_classified_is_distinct_and_comparison_may_be_authorized",
"tests/datasets/test_dataset_ui_milestone10.py::test_state_serialization_contains_no_raw_source_or_sealed_expert",
"tests/datasets/test_dataset_ui_milestone10.py::test_tampered_stale_and_local_selection_are_rejected_without_service_call",
"tests/datasets/test_dataset_ui_milestone10.py::test_two_sessions_cannot_cross_candidates_or_results",
"tests/datasets/test_dataset_ui_milestone10.py::test_two_sessions_cannot_cross_selection_or_results",
"tests/datasets/test_dataset_ui_milestone10.py::test_typed_failures_are_sanitized_and_preinference",
"tests/datasets/test_dataset_ui_milestone10.py::test_untyped_failures_hide_raw_secret_path_and_markup",
"tests/datasets/test_dataset_ui_milestone10.py::test_unverified_failure_never_exposes_blind_or_expert_values",
"tests/datasets/test_dataset_ui_milestone10.py::test_unverified_or_comparison_failed_result_never_exposes_experts",
"tests/datasets/test_dataset_ui_milestone10.py::test_url_edit_stales_selection_and_hides_outputs",
"tests/datasets/test_dataset_ui_milestone10.py::test_verified_blind_and_authorized_comparison_render_separately",
"tests/datasets/test_dataset_ui_milestone10.py::test_verified_result_controls_expert_visibility_and_preserves_confidences",
"tests/datasets/test_documents.py::test_all_frozen_cases_require_discovery_selection_and_exact_mocked_bytes",
"tests/datasets/test_documents.py::test_authentication_status_is_not_public[401]",
"tests/datasets/test_documents.py::test_authentication_status_is_not_public[403]",
"tests/datasets/test_documents.py::test_empty_invalid_dns_results_are_typed",
"tests/datasets/test_documents.py::test_failure_preserves_partial_artifact_and_performs_no_cleanup",
"tests/datasets/test_documents.py::test_login_html_is_not_public",
"tests/datasets/test_documents.py::test_mixed_public_nonpublic_and_dns_rebinding_are_rejected",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[0.0.0.0]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[10.0.0.1]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[127.0.0.1]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[169.254.1.1]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[169.254.169.254]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[192.0.2.1]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[2001:db8::1]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[224.0.0.1]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[::1]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[::]",
"tests/datasets/test_documents.py::test_non_public_destinations_are_rejected_without_http[fe80::1]",
"tests/datasets/test_documents.py::test_operation_metadata_encoding_client_state_and_run_collision_controls",
"tests/datasets/test_documents.py::test_pdf_byte_validation_is_extension_independent_and_stable[None]",
"tests/datasets/test_documents.py::test_pdf_byte_validation_is_extension_independent_and_stable[application/octet-stream]",
"tests/datasets/test_documents.py::test_pdf_byte_validation_is_extension_independent_and_stable[application/pdf]",
"tests/datasets/test_documents.py::test_public_ipv4_ipv6_and_mixed_public_addresses_are_allowed[addresses0]",
"tests/datasets/test_documents.py::test_public_ipv4_ipv6_and_mixed_public_addresses_are_allowed[addresses1]",
"tests/datasets/test_documents.py::test_public_ipv4_ipv6_and_mixed_public_addresses_are_allowed[addresses2]",
"tests/datasets/test_documents.py::test_raw_url_local_path_and_tampered_selection_cannot_enter_retriever",
"tests/datasets/test_documents.py::test_redirect_loop_and_limit",
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[file:///tmp/readme.pdf]",
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://-bad.example/readme.pdf]",
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://bad_host.example/readme.pdf]",
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://example.test/readme.pdf#fragment]",
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://example.test:444/readme.pdf]",
"tests/datasets/test_documents.py::test_selected_url_policy_rejects_unsafe_destinations[https://user:pass@example.test/readme.pdf]",
"tests/datasets/test_documents.py::test_size_content_length_truncation_and_operation_limits",
"tests/datasets/test_documents.py::test_transport_failures_are_typed_and_preserve_no_false_success[exc0]",
"tests/datasets/test_documents.py::test_transport_failures_are_typed_and_preserve_no_false_success[exc1]",
"tests/datasets/test_documents.py::test_transport_failures_are_typed_and_preserve_no_false_success[exc2]",
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[ftp://example.test/a.pdf]",
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://example.test/a.pdf#x]",
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://example.test/a.pdf?token=x]",
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://example.test/login]",
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://example.test:444/a.pdf]",
"tests/datasets/test_documents.py::test_unsafe_and_authentication_redirects_are_rejected[https://u:p@example.test/a.pdf]",
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[%PDF-1.7 malformed-application/pdf]",
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[-application/pdf]",
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[<html>not pdf</html>-text/html]",
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[PNG-application/pdf]",
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[plain-text/plain]",
"tests/datasets/test_documents.py::test_unsupported_and_misleading_content_is_rejected[{}-application/json]",
"tests/datasets/test_documents.py::test_valid_redirect_revalidates_destination_and_preserves_history",
"tests/datasets/test_evidence.py::test_all_frozen_cases_group_and_preserve_product_scope_without_keywords",
"tests/datasets/test_evidence.py::test_authoritative_text_or_hash_mismatch_rejected",
"tests/datasets/test_evidence.py::test_conflicting_repeated_decisions_are_rejected",
"tests/datasets/test_evidence.py::test_context_only_packet_and_vague_scope_stop_typed",
"tests/datasets/test_evidence.py::test_deterministic_single_and_multiple_bounded_groups",
"tests/datasets/test_evidence.py::test_expert_sentinel_rejected_by_blind_type_and_absent_everywhere",
"tests/datasets/test_evidence.py::test_explicitly_linked_context_is_labeled_and_cannot_stand_alone",
"tests/datasets/test_evidence.py::test_generated_summary_excerpt_or_altered_text_never_accepted",
"tests/datasets/test_evidence.py::test_other_product_and_ambiguous_blocks_cannot_enter_packet",
"tests/datasets/test_evidence.py::test_packet_exact_text_source_order_hashes_and_classifier_boundary",
"tests/datasets/test_evidence.py::test_packet_hash_changes_with_authoritative_source_text",
"tests/datasets/test_evidence.py::test_packet_limit_second_pass_and_single_bounded_reduction",
"tests/datasets/test_evidence.py::test_packet_still_oversized_after_one_pass_is_explicit_failure",
"tests/datasets/test_evidence.py::test_reduction_cannot_override_product_scope",
"tests/datasets/test_evidence.py::test_retry_success_and_prompt_injection_isolation",
"tests/datasets/test_evidence.py::test_schema_is_strict_and_packet_schema_validates_result",
"tests/datasets/test_evidence.py::test_stable_hashes_policy_changes_and_volatile_data_excluded",
"tests/datasets/test_evidence.py::test_stale_manifest_identity_stops_before_model_call",
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED0]",
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED1]",
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED2]",
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED3]",
"tests/datasets/test_evidence.py::test_strict_response_partition_ids_scope_and_links[<lambda>-EVIDENCE_SELECTION_RETRIES_EXHAUSTED4]",
"tests/datasets/test_evidence.py::test_unknown_fields_and_invalid_role_fail_schema_and_bounded_retry",
"tests/datasets/test_expert_source_boundary.py::test_all_frozen_sources_persist_exact_ordered_sealed_artifacts[0]",
"tests/datasets/test_expert_source_boundary.py::test_all_frozen_sources_persist_exact_ordered_sealed_artifacts[1]",
"tests/datasets/test_expert_source_boundary.py::test_all_frozen_sources_persist_exact_ordered_sealed_artifacts[2]",
"tests/datasets/test_expert_source_boundary.py::test_all_frozen_sources_persist_exact_ordered_sealed_artifacts[3]",
"tests/datasets/test_expert_source_boundary.py::test_cross_run_and_tampered_sealed_artifacts_are_rejected",
"tests/datasets/test_expert_source_boundary.py::test_expert_change_does_not_change_blind_view_result_or_cache_identity",
"tests/datasets/test_expert_source_boundary.py::test_fixture_hashes_remain_exact",
"tests/datasets/test_expert_source_boundary.py::test_generated_corrective_schemas_have_no_drift",
"tests/datasets/test_expert_source_boundary.py::test_identical_boundary_is_stable_and_immutable",
"tests/datasets/test_expert_source_boundary.py::test_legacy_verified_reference_without_binding_is_rejected",
"tests/datasets/test_expert_source_boundary.py::test_sealed_persistence_interruption_is_prepublication_and_non_deleting",
"tests/datasets/test_expert_source_boundary.py::test_verified_reference_contains_opaque_complete_provenance",
"tests/datasets/test_extraction.py::test_all_frozen_pdfs_extract_deterministically_and_validate_schema",
"tests/datasets/test_extraction.py::test_blank_page_warning_and_fully_blank_failure",
"tests/datasets/test_extraction.py::test_encrypted_and_malformed_pdf_fail_before_inference",
"tests/datasets/test_extraction.py::test_hash_page_character_block_and_timeout_limits",
"tests/datasets/test_extraction.py::test_image_only_page_and_document",
"tests/datasets/test_extraction.py::test_multiple_headings_on_page_and_heading_at_page_end",
"tests/datasets/test_extraction.py::test_multiple_pages_repeated_headings_boundary_and_cross_page_section",
"tests/datasets/test_extraction.py::test_no_heading_uses_derived_label_and_long_text_splits_deterministically",
"tests/datasets/test_extraction.py::test_one_page_exact_provenance_stability_and_reconstruction",
"tests/datasets/test_extraction.py::test_page_failure_partial_failure_and_unavailable_coordinates",
"tests/datasets/test_extraction.py::test_policy_version_change_is_explicit_but_content_ids_remain_source_based",
"tests/datasets/test_extraction.py::test_table_multicolumn_and_low_coverage_warnings",
"tests/datasets/test_fixture_manifest.py::test_canonical_source_indexes_match_original_entries_and_production_discovery",
"tests/datasets/test_fixture_manifest.py::test_fixture_case_serializes_only_canonical_source_index",
"tests/datasets/test_fixture_manifest.py::test_frozen_manifest_loads_all_cases_without_hard_coded_case_paths",
"tests/datasets/test_fixture_manifest.py::test_manifest_contains_no_expected_keyword_answers",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_absolute_and_escaping_paths[../outside.json]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_absolute_and_escaping_paths[/etc/passwd]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_duplicate_case_and_native_ids",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[-1]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[1.5]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[5]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[None]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_invalid_selected_readme_source_index[True]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_missing_or_non_regular_references",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_noncanonical_source_index_names[selected_readme_source_position]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_noncanonical_source_index_names[source_index]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_noncanonical_source_index_names[source_position]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_semantically_wrong_source_index[0]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_semantically_wrong_source_index[10000]",
"tests/datasets/test_fixture_manifest.py::test_manifest_rejects_semantically_wrong_source_index[4]",
"tests/datasets/test_fixture_manifest.py::test_manifest_requires_selected_readme_source_index",
"tests/datasets/test_fixture_manifest.py::test_manifest_validates_hash_format_and_provenance_fields",
"tests/datasets/test_models_and_schemas.py::test_comparison_requires_persisted_blind_result",
"tests/datasets/test_models_and_schemas.py::test_core_dataset_schemas_are_valid_and_accept_typed_outputs",
"tests/datasets/test_models_and_schemas.py::test_dataset_comparison_category_and_schema_contract",
"tests/datasets/test_models_and_schemas.py::test_dataset_error_taxonomy_is_separate_and_hierarchical",
"tests/datasets/test_models_and_schemas.py::test_dataset_identity_preserves_concept_native_and_legacy_ids",
"tests/datasets/test_models_and_schemas.py::test_dataset_settings_are_namespaced_and_environment_configurable",
"tests/datasets/test_models_and_schemas.py::test_evidence_packet_rejects_duplicate_block_ids",
"tests/datasets/test_models_and_schemas.py::test_extraction_and_evidence_contracts_preserve_exact_text",
"tests/datasets/test_models_and_schemas.py::test_four_dataset_schemas_are_valid_and_accept_typed_outputs",
"tests/datasets/test_models_and_schemas.py::test_invalid_dataset_schema_example_is_rejected",
"tests/datasets/test_models_and_schemas.py::test_publication_contract_is_unchanged",
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[blind_result-value2]",
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[classification_outcome-classified]",
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[classifications-value1]",
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[comparison_reference-comparison.json]",
"tests/datasets/test_models_and_schemas.py::test_unattempted_classification_forbids_inference_outputs[processing_metadata-value4]",
"tests/datasets/test_models_and_schemas.py::test_valid_unattempted_dataset_result",
"tests/datasets/test_product_resolution.py::test_batched_responses_form_exact_source_order_partition",
"tests/datasets/test_product_resolution.py::test_boundary_aware_identity_capitalization_version_and_signal_stability",
"tests/datasets/test_product_resolution.py::test_bounded_retry_succeeds_after_invalid_coverage_response",
"tests/datasets/test_product_resolution.py::test_deterministic_complete_identity_resolution_makes_zero_model_calls",
"tests/datasets/test_product_resolution.py::test_enumeration_family_template_heading_and_optional_structure_signals",
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[explicit_multi_product]",
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[product_family]",
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[single_product]",
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[undetermined]",
"tests/datasets/test_product_resolution.py::test_every_coverage_mode_is_typed_and_ambiguity_requires_review[vague_product_scope]",
"tests/datasets/test_product_resolution.py::test_explicit_readme_alias_preserves_literal_span_and_provenance",
"tests/datasets/test_product_resolution.py::test_four_frozen_coverage_modes_scope_counts_and_expert_isolation",
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[alias]",
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[cross_document]",
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[duplicate]",
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[missing]",
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[product]",
"tests/datasets/test_product_resolution.py::test_invalid_model_block_partition_alias_and_products_retry_then_fail[unknown]",
"tests/datasets/test_product_resolution.py::test_malformed_schema_enum_confidence_timeout_and_retry_exhaustion",
"tests/datasets/test_product_resolution.py::test_model_requests_use_dataset_stages_and_strict_response_schemas",
"tests/datasets/test_product_resolution.py::test_prompt_injection_is_delimited_and_cannot_change_schema_or_target",
"tests/datasets/test_product_resolution.py::test_sealed_expert_sentinel_is_unreachable_from_blind_prompts_results_and_errors",
"tests/datasets/test_product_resolution.py::test_source_order_partition_inclusion_exclusion_ambiguity_and_context",
"tests/datasets/test_readme_discovery.py::test_blind_view_contract_rejects_non_array_related_urls",
"tests/datasets/test_readme_discovery.py::test_changed_or_stale_selection_binding_is_rejected",
"tests/datasets/test_readme_discovery.py::test_duplicate_candidates_remain_distinct_by_source_position",
"tests/datasets/test_readme_discovery.py::test_exact_match_without_usable_url_is_explicit_error[4]",
"tests/datasets/test_readme_discovery.py::test_exact_match_without_usable_url_is_explicit_error[None]",
"tests/datasets/test_readme_discovery.py::test_exact_match_without_usable_url_is_explicit_error[url2]",
"tests/datasets/test_readme_discovery.py::test_exact_match_without_usable_url_is_explicit_error[url3]",
"tests/datasets/test_readme_discovery.py::test_exact_subtype_only_and_complete_source_order_preservation",
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[3]",
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[None]",
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[READ-ME ]",
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[subtype2]",
"tests/datasets/test_readme_discovery.py::test_missing_null_non_string_and_malformed_subtypes_do_not_match[subtype3]",
"tests/datasets/test_readme_discovery.py::test_one_candidate_requires_explicit_confirmation",
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections0]",
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections1]",
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections2]",
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections3]",
"tests/datasets/test_readme_discovery.py::test_selection_rejects_missing_multiple_position_and_url_substitution[selections4]",
"tests/datasets/test_readme_discovery.py::test_zero_candidate_outcome_has_exact_nonsemantic_boundary",
"tests/datasets/test_runtime_milestone8.py::test_artifact_store_is_atomic_immutable_and_run_isolated",
"tests/datasets/test_runtime_milestone8.py::test_atomic_failure_never_publishes_success",
"tests/datasets/test_runtime_milestone8.py::test_blind_cache_round_trip_and_tamper_detection",
"tests/datasets/test_runtime_milestone8.py::test_cache_identity_requires_complete_stage_inputs",
"tests/datasets/test_runtime_milestone8.py::test_failed_attempt_checkpoint_prevents_transport",
"tests/datasets/test_runtime_milestone8.py::test_illegal_and_terminal_transitions_are_rejected",
"tests/datasets/test_runtime_milestone8.py::test_inference_attempt_is_durable_before_transport",
"tests/datasets/test_runtime_milestone8.py::test_log_contract_rejects_absolute_reference",
"tests/datasets/test_runtime_milestone8.py::test_ordered_pipeline_no_readme_is_preinference_skip",
"tests/datasets/test_runtime_milestone8.py::test_recovery_uses_validated_checkpoint_chain",
"tests/datasets/test_runtime_milestone8.py::test_runtime_models_reject_unknown_fields",
"tests/datasets/test_runtime_milestone8.py::test_sealed_artifact_failure_stops_pipeline_before_inference",
"tests/datasets/test_runtime_milestone8.py::test_storage_rejects_fixture_root",
"tests/datasets/test_runtime_milestone8.py::test_successful_not_classified_pipeline_is_persisted_and_verified",
"tests/datasets/test_runtime_milestone8.py::test_verified_blind_result_gate_reads_persisted_bytes",
"tests/datasets/test_smoke_milestone11.py::test_all_frozen_cases_use_real_two_step_service_without_live_boundaries",
"tests/datasets/test_smoke_milestone11.py::test_fixture_readme_is_human_policy_only_and_manifest_is_only_configuration",
"tests/datasets/test_smoke_milestone11.py::test_frozen_transport_denies_pdf_before_discovery_and_selection",
"tests/datasets/test_smoke_milestone11.py::test_manifest_has_no_expected_keyword_or_fake_answer_configuration",
"tests/datasets/test_smoke_milestone11.py::test_optional_live_public_cmr_and_readme_retrieval",
"tests/datasets/test_smoke_milestone11.py::test_preflight_rejects_provenance_mismatches_without_transport_or_model_calls",
"tests/datasets/test_smoke_milestone11.py::test_repeated_runs_have_stable_logical_report_hash_and_safe_persisted_report",
"tests/datasets/test_smoke_milestone11.py::test_report_path_must_remain_under_output_root",
"tests/test_articles.py::test_duplicate_doi_detection_excludes_duplicate_records_from_valid_records",
"tests/test_articles.py::test_empty_abstract_is_valid_and_preserved",
"tests/test_articles.py::test_empty_required_strings[record0-DOI]",
"tests/test_articles.py::test_empty_required_strings[record1-Title]",
"tests/test_articles.py::test_exact_serialization_field_names",
"tests/test_articles.py::test_exact_source_value_preservation",
"tests/test_articles.py::test_file_not_found_behavior",
"tests/test_articles.py::test_full_data_smoke_current_articles_file",
"tests/test_articles.py::test_invalid_fixture_reports_multiple_record_errors",
"tests/test_articles.py::test_invalid_json",
"tests/test_articles.py::test_invalid_year_types_rejected[2024.0]",
"tests/test_articles.py::test_invalid_year_types_rejected[2024]",
"tests/test_articles.py::test_invalid_year_types_rejected[False]",
"tests/test_articles.py::test_invalid_year_types_rejected[True]",
"tests/test_articles.py::test_missing_required_fields[record0-DOI]",
"tests/test_articles.py::test_missing_required_fields[record1-Title]",
"tests/test_articles.py::test_missing_required_fields[record2-Year]",
"tests/test_articles.py::test_missing_required_fields[record3-Abstract]",
"tests/test_articles.py::test_non_object_article_entry",
"tests/test_articles.py::test_non_string_fields_rejected[Abstract-42]",
"tests/test_articles.py::test_non_string_fields_rejected[DOI-123]",
"tests/test_articles.py::test_non_string_fields_rejected[Title-value1]",
"tests/test_articles.py::test_null_field_values_rejected",
"tests/test_articles.py::test_preserves_source_order",
"tests/test_articles.py::test_source_file_immutability",
"tests/test_articles.py::test_top_level_non_list_json",
"tests/test_articles.py::test_valid_article_loading",
"tests/test_articles.py::test_whitespace_only_title_is_preserved_not_normalized",
"tests/test_cache.py::test_cache_hit_returns_cache_used_true_and_completed_status",
"tests/test_cache.py::test_cache_key_changes_when_article_content_changes",
"tests/test_cache.py::test_cache_key_changes_when_model_provider_name_or_parameters_change",
"tests/test_cache.py::test_cache_key_changes_when_prompt_versions_change",
"tests/test_cache.py::test_cache_key_changes_when_relevant_config_changes",
"tests/test_cache.py::test_cache_key_changes_when_vocabulary_hash_changes",
"tests/test_cache.py::test_cache_key_includes_article_fingerprint",
"tests/test_cache.py::test_stale_cache_is_not_reused",
"tests/test_llm_config.py::test_default_model_settings_load",
"tests/test_llm_config.py::test_environment_overrides_work",
"tests/test_llm_config.py::test_model_provider_and_name_are_configurable_in_requests",
"tests/test_llm_config.py::test_prompt_versions_are_configurable_in_requests",
"tests/test_llm_fake.py::test_fake_model_can_exhaust_retries",
"tests/test_llm_fake.py::test_fake_model_can_fail_once_then_succeed_with_retry_wrapper",
"tests/test_llm_fake.py::test_fake_model_can_raise_non_retryable_errors",
"tests/test_llm_fake.py::test_fake_model_can_raise_retryable_errors",
"tests/test_llm_fake.py::test_fake_model_can_return_invalid_candidate_ids_for_later_validation",
"tests/test_llm_fake.py::test_fake_model_can_return_no_selection",
"tests/test_llm_fake.py::test_fake_model_records_requests",
"tests/test_llm_fake.py::test_fake_model_rejects_contradictory_structured_response",
"tests/test_llm_fake.py::test_fake_model_returns_typed_term_response",
"tests/test_llm_fake.py::test_fake_model_returns_typed_topic_response",
"tests/test_llm_fake.py::test_fake_model_returns_typed_variable_response",
"tests/test_llm_prompts.py::test_prompt_delimits_title_and_abstract",
"tests/test_llm_prompts.py::test_prompt_includes_untrusted_article_instruction",
"tests/test_llm_prompts.py::test_prompt_preserves_source_article_text_exactly",
"tests/test_llm_prompts.py::test_prompt_prevents_generating_authoritative_vocabulary_fields",
"tests/test_llm_prompts.py::test_prompt_remains_valid_when_abstract_is_empty",
"tests/test_llm_prompts.py::test_prompt_uses_candidate_ids_and_only_supplied_candidates_instruction",
"tests/test_llm_prompts.py::test_term_prompt_includes_parent_context_and_direct_child_candidates",
"tests/test_llm_prompts.py::test_topic_prompt_includes_supplied_candidates",
"tests/test_llm_prompts.py::test_variable_prompt_includes_parent_context_and_direct_child_candidates",
"tests/test_llm_retries.py::test_non_retryable_error_is_not_retried",
"tests/test_llm_retries.py::test_retry_count_is_recorded_as_zero_without_retry",
"tests/test_llm_retries.py::test_retryable_error_fails_after_max_retries",
"tests/test_llm_retries.py::test_retryable_error_succeeds_after_retry",
"tests/test_mvp_smoke.py::test_fake_model_mvp_smoke_run_end_to_end",
"tests/test_mvp_smoke.py::test_optional_live_model_smoke_is_skipped_unless_explicitly_enabled",
"tests/test_openai_provider.py::test_gpt4o_request_preserves_temperature_behavior",
"tests/test_openai_provider.py::test_gpt5_family_request_omits_temperature_when_configured_zero",
"tests/test_openai_provider.py::test_openai_provider_does_not_make_live_call_without_explicit_key",
"tests/test_openai_provider.py::test_openai_provider_is_isolated_from_fake_model_tests",
"tests/test_openai_provider.py::test_openai_provider_module_import_does_not_require_openai",
"tests/test_openai_provider.py::test_openai_provider_non_retryable_error_includes_sanitized_diagnostics",
"tests/test_openai_provider.py::test_openai_provider_retryable_error_includes_sanitized_diagnostics",
"tests/test_output_schema.py::test_accepted_classification_requires_valid_deterministic_validation",
"tests/test_output_schema.py::test_basic_run_summary_validates_against_json_schema",
"tests/test_output_schema.py::test_boolean_year_is_invalid_for_article_result",
"tests/test_output_schema.py::test_classified_result_validates_against_json_schema",
"tests/test_output_schema.py::test_confidence_metadata_range_validation",
"tests/test_output_schema.py::test_empty_abstract_is_allowed_in_article_result_output",
"tests/test_output_schema.py::test_failed_result_validates_against_json_schema",
"tests/test_output_schema.py::test_generated_fields_use_snake_case_and_source_fields_remain_exact",
"tests/test_output_schema.py::test_minimal_no_classification_result_validates_against_json_schema",
"tests/test_output_schema.py::test_processing_metadata_can_represent_title_only_input",
"tests/test_output_schema.py::test_review_compatible_values_can_be_represented_without_review_trigger_logic",
"tests/test_output_schema.py::test_schema_files_are_valid_json",
"tests/test_output_schema.py::test_status_scopes_do_not_accept_values_from_wrong_enum",
"tests/test_output_schema.py::test_support_type_enum_values_are_schema_compatible",
"tests/test_output_schema.py::test_valid_accepted_classification_record",
"tests/test_output_schema.py::test_valid_article_result_with_classifications",
"tests/test_output_schema.py::test_valid_failed_article_result_without_classifications",
"tests/test_output_schema.py::test_valid_minimal_no_classification_article_result",
"tests/test_output_schema.py::test_valid_partial_article_result_without_classifications",
"tests/test_output_schema.py::test_valid_reduced_to_ancestor_classification_record",
"tests/test_output_schema.py::test_valid_rejected_classification_record",
"tests/test_package_import.py::test_package_imports",
"tests/test_persistence.py::test_article_result_is_saved_after_completion",
"tests/test_persistence.py::test_atomic_checkpoint_temp_file_is_removed_after_success",
"tests/test_persistence.py::test_consolidated_output_is_valid_json",
"tests/test_persistence.py::test_duplicate_output_records_for_same_doi_are_avoided",
"tests/test_persistence.py::test_failed_article_result_is_saved",
"tests/test_persistence.py::test_loading_existing_results_works",
"tests/test_persistence.py::test_previous_results_survive_simulated_later_failure",
"tests/test_pipeline.py::test_article_stops_at_term_and_becomes_term_classification",
"tests/test_pipeline.py::test_article_stops_at_topic_and_becomes_topic_classification",
"tests/test_pipeline.py::test_batch_cache_hit_is_completed_not_skipped_and_force_reprocess_bypasses_cache",
"tests/test_pipeline.py::test_batch_continues_after_one_article_failure",
"tests/test_pipeline.py::test_batch_output_summary_validates_against_schema",
"tests/test_pipeline.py::test_batch_processes_multiple_valid_articles_and_preserves_order",
"tests/test_pipeline.py::test_batch_reports_invalid_source_records_without_inventing_doi",
"tests/test_pipeline.py::test_empty_abstract_remains_valid_and_can_be_processed",
"tests/test_pipeline.py::test_full_data_smoke_reports_current_invalid_article_without_modifying_sources",
"tests/test_pipeline.py::test_invalid_model_candidate_produces_structured_error",
"tests/test_pipeline.py::test_logging_records_processing_events_without_secrets",
"tests/test_pipeline.py::test_model_retry_counts_and_cache_flags_appear_in_metadata",
"tests/test_pipeline.py::test_no_topic_selection_is_completed_not_classified",
"tests/test_pipeline.py::test_partial_branch_failure_preserves_successful_sibling_outcome",
"tests/test_pipeline.py::test_review_risk_flagging_preserves_accepted_topic_classification",
"tests/test_pipeline.py::test_single_article_deep_variable_classification_is_accepted",
"tests/test_pipeline.py::test_structured_diagnostics_do_not_include_secrets",
"tests/test_redundancy.py::test_ancestor_preserved_when_independent_branch",
"tests/test_redundancy.py::test_ancestor_removed_when_descendant_exists_in_same_branch_lineage",
"tests/test_redundancy.py::test_deepest_descendant_retained",
"tests/test_redundancy.py::test_exact_duplicate_canonical_path_removed",
"tests/test_redundancy.py::test_exact_duplicate_uuid_removed",
"tests/test_redundancy.py::test_insufficient_branch_provenance_preserves_ancestor_with_warning",
"tests/test_redundancy.py::test_redundancy_uses_uuid_ancestry_not_string_prefix_matching",
"tests/test_redundancy.py::test_removal_and_preservation_diagnostics_include_branch_provenance",
"tests/test_redundancy.py::test_same_concept_name_in_different_branches_is_preserved_when_uuid_and_path_differ",
"tests/test_redundancy.py::test_sibling_classifications_preserved",
"tests/test_review_flagging.py::test_explicit_or_strong_mixed_classification_is_not_flagged",
"tests/test_review_flagging.py::test_inferred_low_confidence_is_flagged",
"tests/test_review_flagging.py::test_inferred_or_mixed_topic_is_flagged",
"tests/test_review_flagging.py::test_inferred_variable_level_2_is_flagged_even_with_high_confidence",
"tests/test_review_flagging.py::test_inferred_variable_level_3_is_flagged_even_with_high_confidence",
"tests/test_review_flagging.py::test_mixed_low_confidence_is_flagged",
"tests/test_review_flagging.py::test_non_accepted_classification_is_not_flagged",
"tests/test_review_flagging.py::test_review_warning_appears_in_json_output",
"tests/test_small_run_script.py::test_build_model_client_fake_returns_fake_model",
"tests/test_small_run_script.py::test_console_summary_includes_classification_and_no_classification",
"tests/test_small_run_script.py::test_fake_scripted_responses_support_requested_article_count",
"tests/test_small_run_script.py::test_limit_article_load_uses_first_valid_articles",
"tests/test_small_run_script.py::test_live_mode_requires_credentials",
"tests/test_small_run_script.py::test_live_mode_requires_openai_provider",
"tests/test_small_run_script.py::test_one_line_compacts_tabs_and_newlines",
"tests/test_small_run_script.py::test_progress_helpers_print_safe_truncated_output",
"tests/test_small_run_script.py::test_review_csv_contains_classification_and_article_level_rows",
"tests/test_small_run_script.py::test_review_csv_path_follows_output_dir",
"tests/test_small_run_script.py::test_small_run_script_imports_without_live_api_calls",
"tests/test_small_run_script.py::test_truncate_title_uses_one_line_and_limit",
"tests/test_structured_responses.py::test_empty_candidate_id_rejected",
"tests/test_structured_responses.py::test_invalid_confidence_range[-0.01]",
"tests/test_structured_responses.py::test_invalid_confidence_range[1.01]",
"tests/test_structured_responses.py::test_invalid_term_response_stopping_without_stop_reason[None]",
"tests/test_structured_responses.py::test_invalid_term_response_stopping_without_stop_reason[]",
"tests/test_structured_responses.py::test_invalid_term_response_with_stop_and_selected[payload0]",
"tests/test_structured_responses.py::test_invalid_term_response_with_stop_and_selected[payload1]",
"tests/test_structured_responses.py::test_invalid_variable_response_stopping_without_stop_reason[None]",
"tests/test_structured_responses.py::test_invalid_variable_response_stopping_without_stop_reason[]",
"tests/test_structured_responses.py::test_invalid_variable_response_with_stop_and_selected[payload0]",
"tests/test_structured_responses.py::test_invalid_variable_response_with_stop_and_selected[payload1]",
"tests/test_structured_responses.py::test_malformed_candidate_decision_rejected",
"tests/test_structured_responses.py::test_unknown_fields_rejected",
"tests/test_structured_responses.py::test_valid_missing_confidence",
"tests/test_structured_responses.py::test_valid_term_response_selecting_candidates",
"tests/test_structured_responses.py::test_valid_term_response_stopping_at_parent",
"tests/test_structured_responses.py::test_valid_topic_response_with_multiple_selected_candidates",
"tests/test_structured_responses.py::test_valid_topic_response_with_no_selected_candidates_and_reason",
"tests/test_structured_responses.py::test_valid_topic_response_with_one_selected_candidate",
"tests/test_structured_responses.py::test_valid_variable_response_selecting_candidates",
"tests/test_structured_responses.py::test_valid_variable_response_stopping_at_parent",
"tests/test_term_routing.py::test_candidate_from_sibling_topic_cannot_be_accepted",
"tests/test_term_routing.py::test_confidence_is_preserved_as_uncalibrated_metadata_only",
"tests/test_term_routing.py::test_duplicate_term_candidate_id_is_rejected",
"tests/test_term_routing.py::test_empty_abstract_remains_valid_and_is_passed_to_term_prompt",
"tests/test_term_routing.py::test_empty_or_malformed_term_candidate_id_is_rejected_by_structured_validation",
"tests/test_term_routing.py::test_fake_model_receives_article_fields_parent_context_and_direct_term_candidates",
"tests/test_term_routing.py::test_full_data_current_vocabulary_has_144_direct_term_candidates",
"tests/test_term_routing.py::test_invalid_term_candidate_id_is_rejected",
"tests/test_term_routing.py::test_manually_invalid_candidate_to_record_mapping_is_rejected",
"tests/test_term_routing.py::test_multiple_terms_selected_under_one_topic",
"tests/test_term_routing.py::test_no_fake_fallback_term_is_created",
"tests/test_term_routing.py::test_no_variable_routing_is_performed",
"tests/test_term_routing.py::test_one_term_selected_under_selected_topic",
"tests/test_term_routing.py::test_selected_term_branch_seed_is_populated_from_vocabulary_index",
"tests/test_term_routing.py::test_selected_topic_with_no_direct_term_children_is_handled_explicitly",
"tests/test_term_routing.py::test_stop_at_topic_with_stop_at_parent_true",
"tests/test_term_routing.py::test_term_candidate_construction_does_not_hard_code_term_names_or_uuids",
"tests/test_term_routing.py::test_term_candidate_ids_are_unique_within_prompt",
"tests/test_term_routing.py::test_term_candidate_ids_map_to_uuid_bearing_term_records",
"tests/test_term_routing.py::test_term_candidates_are_built_only_from_selected_topic_direct_children",
"tests/test_term_routing.py::test_term_router_never_evaluates_all_terms_globally",
"tests/test_term_routing.py::test_term_router_uses_provider_neutral_model_interface",
"tests/test_term_routing.py::test_term_selected_from_correct_topic_succeeds",
"tests/test_term_routing.py::test_terms_from_sibling_topics_are_not_included",
"tests/test_term_routing.py::test_topic_with_no_supported_term_returns_stop_at_topic_result",
"tests/test_topic_routing.py::test_candidate_construction_does_not_hard_code_topic_names_or_uuids",
"tests/test_topic_routing.py::test_candidate_ids_are_unique_and_stable",
"tests/test_topic_routing.py::test_confidence_is_preserved_as_uncalibrated_metadata_only",
"tests/test_topic_routing.py::test_duplicate_candidate_id_returned_by_model_is_rejected",
"tests/test_topic_routing.py::test_empty_abstract_remains_valid_and_is_passed_to_prompt",
"tests/test_topic_routing.py::test_empty_or_malformed_candidate_id_rejected_by_structured_schema",
"tests/test_topic_routing.py::test_every_topic_candidate_maps_to_uuid_bearing_topic_record",
"tests/test_topic_routing.py::test_fake_model_receives_article_fields_and_topic_candidates",
"tests/test_topic_routing.py::test_full_data_current_vocabulary_has_14_topic_candidates",
"tests/test_topic_routing.py::test_invalid_candidate_id_returned_by_fake_model_is_rejected",
"tests/test_topic_routing.py::test_multiple_topic_selection",
"tests/test_topic_routing.py::test_no_fake_fallback_topic_is_created",
"tests/test_topic_routing.py::test_no_term_or_variable_routing_is_performed",
"tests/test_topic_routing.py::test_no_topic_selection_with_reason",
"tests/test_topic_routing.py::test_root_category_is_never_included_as_candidate",
"tests/test_topic_routing.py::test_selected_topic_branch_seed_is_populated_from_vocabulary_index",
"tests/test_topic_routing.py::test_single_topic_selection",
"tests/test_topic_routing.py::test_topic_candidates_are_built_from_vocabulary_index",
"tests/test_topic_routing.py::test_topic_router_uses_provider_neutral_model_interface",
"tests/test_ui.py::test_classification_table_rows_include_only_demo_relevant_fields",
"tests/test_ui.py::test_classification_table_rows_include_wide_text_fields",
"tests/test_ui.py::test_classified_result_includes_uuid_and_canonical_path",
"tests/test_ui.py::test_compact_summary_includes_status_model_and_review_counts",
"tests/test_ui.py::test_create_demo_constructs_gradio_interface",
"tests/test_ui.py::test_empty_abstract_is_accepted_by_ui_input_path",
"tests/test_ui.py::test_errors_and_warnings_are_displayed",
"tests/test_ui.py::test_gradio_app_imports_without_gradio_or_api_keys",
"tests/test_ui.py::test_no_classification_result_is_formatted_correctly",
"tests/test_ui.py::test_prototype_app_remains_unchanged_during_ui_import",
"tests/test_ui.py::test_root_app_defines_zerogpu_probe_with_spaces_decorator",
"tests/test_ui.py::test_root_app_imports_when_spaces_is_not_installed",
"tests/test_ui.py::test_root_app_imports_without_launching_server",
"tests/test_ui.py::test_root_app_is_thin_launcher_without_classification_logic",
"tests/test_ui.py::test_root_app_launch_uses_spaces_compatible_settings",
"tests/test_ui.py::test_root_app_uses_spaces_default_server_settings",
"tests/test_ui.py::test_ui_calls_pipeline_service",
"tests/test_ui.py::test_ui_module_does_not_classify_or_call_model_at_import_time",
"tests/test_validation.py::test_final_concept_under_expected_topic_and_term_succeeds",
"tests/test_validation.py::test_full_data_representative_records_pass_validation",
"tests/test_validation.py::test_invalid_parent_child_chain_rejected",
"tests/test_validation.py::test_invalid_path_components_rejected",
"tests/test_validation.py::test_multiple_terminal_outcomes_validate_independently",
"tests/test_validation.py::test_nonexistent_uuid_rejected",
"tests/test_validation.py::test_rejected_invalid_candidates_do_not_appear_in_accepted_classifications",
"tests/test_validation.py::test_root_category_rejected",
"tests/test_validation.py::test_selected_variable_level_3_terminal_outcome_can_become_valid_classification",
"tests/test_validation.py::test_stop_at_term_terminal_outcome_can_become_valid_term_classification",
"tests/test_validation.py::test_stop_at_variable_level_1_terminal_outcome_can_become_valid_classification",
"tests/test_validation.py::test_term_level_final_classification_succeeds_from_term_branch",
"tests/test_validation.py::test_topic_level_final_classification_succeeds",
"tests/test_validation.py::test_uuid_canonical_path_mismatch_rejected",
"tests/test_validation.py::test_uuid_level_mismatch_rejected",
"tests/test_validation.py::test_uuid_name_mismatch_rejected",
"tests/test_validation.py::test_valid_candidate_accepted_and_populated_from_vocabulary_index",
"tests/test_validation.py::test_validation_does_not_require_model_call",
"tests/test_validation.py::test_variable_level_1_final_classification_succeeds",
"tests/test_validation.py::test_variable_level_2_final_classification_succeeds",
"tests/test_validation.py::test_variable_level_3_final_classification_succeeds",
"tests/test_validation.py::test_wrong_term_membership_rejected",
"tests/test_validation.py::test_wrong_topic_membership_rejected",
"tests/test_variable_traversal.py::test_child_branch_ids_are_distinct_and_preserve_parent_context",
"tests/test_variable_traversal.py::test_confidence_is_preserved_only_as_uncalibrated_metadata",
"tests/test_variable_traversal.py::test_duplicate_variable_candidate_id_is_rejected",
"tests/test_variable_traversal.py::test_empty_abstract_remains_valid_and_is_passed_to_variable_prompt",
"tests/test_variable_traversal.py::test_empty_or_malformed_variable_candidate_id_rejected_by_structured_validation",
"tests/test_variable_traversal.py::test_fake_model_receives_article_parent_context_and_direct_variable_candidates",
"tests/test_variable_traversal.py::test_full_data_current_variable_candidate_counts_are_direct_children_only",
"tests/test_variable_traversal.py::test_grandchildren_are_not_included_before_child_parent_is_selected",
"tests/test_variable_traversal.py::test_manually_invalid_candidate_to_record_mapping_is_rejected",
"tests/test_variable_traversal.py::test_multiple_selected_descendants_under_one_branch_continue_independently",
"tests/test_variable_traversal.py::test_multiple_selected_variable_level_1_children_create_independent_branches",
"tests/test_variable_traversal.py::test_no_forced_leaf_descent",
"tests/test_variable_traversal.py::test_no_skipped_hierarchy_levels_or_non_direct_descendant_evaluation",
"tests/test_variable_traversal.py::test_parent_with_no_direct_children_is_terminal_outcome",
"tests/test_variable_traversal.py::test_select_variable_level_3_and_stop_naturally_at_leaf",
"tests/test_variable_traversal.py::test_selected_candidate_from_sibling_parent_is_rejected",
"tests/test_variable_traversal.py::test_sibling_branch_continuation_after_one_branch_fails",
"tests/test_variable_traversal.py::test_sibling_branch_continuation_after_one_branch_stops",
"tests/test_variable_traversal.py::test_sibling_branches_are_not_included",
"tests/test_variable_traversal.py::test_stop_at_term_when_no_variable_child_supported",
"tests/test_variable_traversal.py::test_stop_at_variable_level_1",
"tests/test_variable_traversal.py::test_stop_at_variable_level_2",
"tests/test_variable_traversal.py::test_terminal_outcome_includes_provenance_and_required_fields",
"tests/test_variable_traversal.py::test_unknown_variable_candidate_id_is_rejected",
"tests/test_variable_traversal.py::test_variable_candidate_construction_does_not_hard_code_names_or_uuids",
"tests/test_variable_traversal.py::test_variable_candidate_ids_are_unique_within_prompt",
"tests/test_variable_traversal.py::test_variable_candidate_ids_map_to_uuid_bearing_variable_records",
"tests/test_variable_traversal.py::test_variable_candidates_are_built_only_from_current_parent_direct_children",
"tests/test_variable_traversal.py::test_variable_descent_uses_provider_neutral_model_interface",
"tests/test_vocabulary.py::test_ancestor_and_descendant_checks",
"tests/test_vocabulary.py::test_canonical_path_excludes_root_category",
"tests/test_vocabulary.py::test_duplicate_canonical_path_detection",
"tests/test_vocabulary.py::test_duplicate_uuid_detection",
"tests/test_vocabulary.py::test_every_current_topic_and_term_has_uuid",
"tests/test_vocabulary.py::test_full_data_smoke_counts_for_current_vocabulary",
"tests/test_vocabulary.py::test_identical_names_in_different_branches_are_allowed_when_paths_differ",
"tests/test_vocabulary.py::test_invalid_hierarchy_level_transition",
"tests/test_vocabulary.py::test_missing_required_fields[level]",
"tests/test_vocabulary.py::test_missing_required_fields[name]",
"tests/test_vocabulary.py::test_optional_and_missing_definitions",
"tests/test_vocabulary.py::test_parent_and_direct_child_lookup",
"tests/test_vocabulary.py::test_recursive_traversal_and_variable_depth_branches",
"tests/test_vocabulary.py::test_root_category_is_non_assignable_context",
"tests/test_vocabulary.py::test_source_file_immutability",
"tests/test_vocabulary.py::test_term_to_variable_lookup",
"tests/test_vocabulary.py::test_topic_term_and_variable_records_are_assignable",
"tests/test_vocabulary.py::test_topic_to_term_lookup",
"tests/test_vocabulary.py::test_unexpected_uuidless_non_root_node",
"tests/test_vocabulary.py::test_uuid_preservation_and_record_fields",
"tests/test_vocabulary.py::test_valid_hierarchy_level_transitions",
"tests/test_vocabulary.py::test_vocabulary_file_hash_stability"
]