test_changed_and_partial_snapshots_match_literal_oracles (test_changes.Changes.test_changed_and_partial_snapshots_match_literal_oracles) ... ok
test_comparable_changes_report_only_the_selected_offers (test_changes.Changes.test_comparable_changes_report_only_the_selected_offers) ... ok
test_currency_market_offer_fulfilment_changes_are_not_price_comparisons (test_changes.Changes.test_currency_market_offer_fulfilment_changes_are_not_price_comparisons) ... ok
test_duplicate_snapshot_ID_is_rejected_instead_of_last_write_wins (test_changes.Changes.test_duplicate_snapshot_ID_is_rejected_instead_of_last_write_wins) ... ok
test_even_complete_selected_omission_is_not_inventory_disappearance (test_changes.Changes.test_even_complete_selected_omission_is_not_inventory_disappearance) ... ok
test_failed_acquisition_does_not_report_every_prior_SKU_out_of_stock (test_changes.Changes.test_failed_acquisition_does_not_report_every_prior_SKU_out_of_stock) ... ok
test_literal_oracle_detects_every_material_field_tamper (test_changes.Changes.test_literal_oracle_detects_every_material_field_tamper) ... ok
test_pack_change_is_rejected_and_previous_pack_is_retained (test_changes.Changes.test_pack_change_is_rejected_and_previous_pack_is_retained) ... ok
test_partial_omission_retains_prior_record_and_original_time (test_changes.Changes.test_partial_omission_retains_prior_record_and_original_time) ... ok
test_receipt_cost_and_accepted_record_denominator_are_separate (test_changes.Changes.test_receipt_cost_and_accepted_record_denominator_are_separate) ... ok
test_same_or_older_observation_cannot_overwrite_a_newer_record (test_changes.Changes.test_same_or_older_observation_cannot_overwrite_a_newer_record) ... ok
test_HTTP200_error_shell_is_failed_collection_with_receipt_cost (test_cli.CLI.test_HTTP200_error_shell_is_failed_collection_with_receipt_cost) ... ok
test_managed_CLI_reads_only_header_key_and_emits_no_body (test_cli.CLI.test_managed_CLI_reads_only_header_key_and_emits_no_body) ... ok
test_partial_replay_returns_nonzero_and_does_not_invent_OOS (test_cli.CLI.test_partial_replay_returns_nonzero_and_does_not_invent_OOS) ... ok
test_projection_replay_is_not_a_live_HTML_transport_receipt (test_cli.CLI.test_projection_replay_is_not_a_live_HTML_transport_receipt) ... ok
test_recorded_managed_fields_match_independent_source_oracle (test_cli.CLI.test_recorded_managed_fields_match_independent_source_oracle) ... ok
test_replay_command_emits_normalized_JSON_without_environment_key_dispatch (test_cli.CLI.test_replay_command_emits_normalized_JSON_without_environment_key_dispatch) ... ok
test_UTC_observation_is_calendar_valid_not_a_source_date (test_collector.Records.test_UTC_observation_is_calendar_valid_not_a_source_date) ... ok
test_aggregate_from_price_is_not_a_selected_weight_price (test_collector.Records.test_aggregate_from_price_is_not_a_selected_weight_price) ... ok
test_bad_decimal_price_is_rejected (test_collector.Records.test_bad_decimal_price_is_rejected) ... ok
test_currency_is_explicit_USD_not_dollar_inference (test_collector.Records.test_currency_is_explicit_USD_not_dollar_inference) ... ok
test_duplicate_JSON_keys_are_ambiguous (test_collector.Records.test_duplicate_JSON_keys_are_ambiguous) ... ok
test_duplicate_and_conflicting_selected_SKU_excludes_both (test_collector.Records.test_duplicate_and_conflicting_selected_SKU_excludes_both) ... ok
test_duplicate_group_is_ambiguous (test_collector.Records.test_duplicate_group_is_ambiguous) ... ok
test_explicit_OOS_and_unknown_remain_distinct (test_collector.Records.test_explicit_OOS_and_unknown_remain_distinct) ... ok
test_market_is_observed_page_context_not_currency_or_proxy (test_collector.Records.test_market_is_observed_page_context_not_currency_or_proxy) ... ok
test_missing_currency_cannot_be_inferred_from_aggregate (test_collector.Records.test_missing_currency_cannot_be_inferred_from_aggregate) ... ok
test_missing_page_is_failed_not_complete_empty_inventory (test_collector.Records.test_missing_page_is_failed_not_complete_empty_inventory) ... ok
test_missing_price_keeps_other_variant_and_marks_partial (test_collector.Records.test_missing_price_keeps_other_variant_and_marks_partial) ... ok
test_numeric_price_uses_decimal_not_binary_float (test_collector.Records.test_numeric_price_uses_decimal_not_binary_float) ... ok
test_oversized_HTML_is_rejected_before_parsing (test_collector.Records.test_oversized_HTML_is_rejected_before_parsing) ... ok
test_pack_label_is_narrow_and_weight_not_count (test_collector.Records.test_pack_label_is_narrow_and_weight_not_count) ... ok
test_selected_offers_match_independent_literal_oracle (test_collector.Records.test_selected_offers_match_independent_literal_oracle) ... ok
test_shared_URL_does_not_merge_variants_or_invent_variant_ID (test_collector.Records.test_shared_URL_does_not_merge_variants_or_invent_variant_ID) ... ok
test_two_variant_offers_are_ambiguous (test_collector.Records.test_two_variant_offers_are_ambiguous) ... ok
test_wrong_SKU_does_not_fill_the_selected_slot (test_collector.Records.test_wrong_SKU_does_not_fill_the_selected_slot) ... ok
test_wrong_group_preserving_leading_zeroes_is_rejected (test_collector.Records.test_wrong_group_preserving_leading_zeroes_is_rejected) ... ok
test_wrong_source_canonical_group_and_offer_cannot_accept (test_collector.Records.test_wrong_source_canonical_group_and_offer_cannot_accept) ... ok
test_wrong_type_and_truncated_JSON_are_failed_not_empty_inventory (test_collector.Records.test_wrong_type_and_truncated_JSON_are_failed_not_empty_inventory) ... ok
test_HTTP200_malformed_content_retains_known_receipt_cost (test_malformed_html.MalformedHTML.test_HTTP200_malformed_content_retains_known_receipt_cost) ... ok
test_marked_section_failure_returns_no_accepted_stock_observation (test_malformed_html.MalformedHTML.test_marked_section_failure_returns_no_accepted_stock_observation) ... ok
test_replay_CLI_emits_incomplete_JSON_without_traceback (test_malformed_html.MalformedHTML.test_replay_CLI_emits_incomplete_JSON_without_traceback) ... ok
test_different_body_hashes_do_not_become_shared_provenance (test_projection.Projection.test_different_body_hashes_do_not_become_shared_provenance) ... ok
test_different_full_capture_times_cannot_be_collapsed_to_one_second (test_projection.Projection.test_different_full_capture_times_cannot_be_collapsed_to_one_second) ... ok
test_direct_and_managed_source_kinds_cannot_be_mixed (test_projection.Projection.test_direct_and_managed_source_kinds_cannot_be_mixed) ... ok
test_duplicate_missing_and_extra_records_are_rejected (test_projection.Projection.test_duplicate_missing_and_extra_records_are_rejected) ... ok
test_each_body_hash_is_bounded_canonical_SHA256 (test_projection.Projection.test_each_body_hash_is_bounded_canonical_SHA256) ... ok
test_each_record_requires_valid_UTC_calendar_time (test_projection.Projection.test_each_record_requires_valid_UTC_calendar_time) ... ok
test_every_selected_identity_pack_and_context_input_is_validated (test_projection.Projection.test_every_selected_identity_pack_and_context_input_is_validated) ... ok
test_normalized_price_field_is_a_canonical_decimal_string (test_projection.Projection.test_normalized_price_field_is_a_canonical_decimal_string) ... ok
test_pack_boolean_and_wrong_numeric_type_are_not_valid_quantities (test_projection.Projection.test_pack_boolean_and_wrong_numeric_type_are_not_valid_quantities) ... ok
test_required_capture_or_material_field_cannot_be_omitted (test_projection.Projection.test_required_capture_or_material_field_cannot_be_omitted) ... ok
test_reversed_input_preserves_actual_field_locator_after_SKU_sort (test_projection.Projection.test_reversed_input_preserves_actual_field_locator_after_SKU_sort) ... ok
test_valid_zero_offset_source_time_is_normalized_to_UTC_seconds (test_projection.Projection.test_valid_zero_offset_source_time_is_normalized_to_UTC_seconds) ... ok
test_wrong_version_and_oversized_projection_are_rejected (test_projection.Projection.test_wrong_version_and_oversized_projection_are_rejected) ... ok
test_direct_owned_html_receipt_has_no_provider_charge (test_transport.Loopback.test_direct_owned_html_receipt_has_no_provider_charge) ... ok
test_direct_redirect_is_not_followed (test_transport.Loopback.test_direct_redirect_is_not_followed) ... ok
test_failure_nonhtml_and_oversize_do_not_reach_parser (test_transport.Loopback.test_failure_nonhtml_and_oversize_do_not_reach_parser) ... ok
test_API_redirect_response_is_rejected_without_retry (test_transport.Managed.test_API_redirect_response_is_rejected_without_retry) ... ok
test_actual_original_target_media_is_used_without_outer_type (test_transport.Managed.test_actual_original_target_media_is_used_without_outer_type) ... ok
test_actual_target_status_is_required (test_transport.Managed.test_actual_target_status_is_required) ... ok
test_api_failure_receipt_is_separate_from_target_success (test_transport.Managed.test_api_failure_receipt_is_separate_from_target_success) ... ok
test_body_and_encoded_key_echoes_never_leave_observer (test_transport.Managed.test_body_and_encoded_key_echoes_never_leave_observer) ... ok
test_credentials_in_target_URL_are_rejected_before_dispatch (test_transport.Managed.test_credentials_in_target_URL_are_rejected_before_dispatch) ... ok
test_duplicate_headers_do_not_create_fake_target_or_cost_acceptance (test_transport.Managed.test_duplicate_headers_do_not_create_fake_target_or_cost_acceptance) ... ok
test_elapsed_read_deadline_cannot_be_mislabeled_success (test_transport.Managed.test_elapsed_read_deadline_cannot_be_mislabeled_success) ... ok
test_error_message_key_echo_is_not_logged_and_no_retry_occurs (test_transport.Managed.test_error_message_key_echo_is_not_logged_and_no_retry_occurs) ... ok
test_explicit_header_auth_and_request_settings (test_transport.Managed.test_explicit_header_auth_and_request_settings) ... ok
test_header_key_echo_is_not_serialized_in_media_receipt (test_transport.Managed.test_header_key_echo_is_not_serialized_in_media_receipt) ... ok
test_missing_key_fails_before_any_dispatch (test_transport.Managed.test_missing_key_fails_before_any_dispatch) ... ok
test_nonhtml_and_missing_target_media_are_rejected (test_transport.Managed.test_nonhtml_and_missing_target_media_are_rejected) ... ok
test_oversized_response_is_not_retained_but_credits_are (test_transport.Managed.test_oversized_response_is_not_retained_but_credits_are) ... ok
test_raw_mode_is_explicit_and_has_no_automatic_render_retry (test_transport.Managed.test_raw_mode_is_explicit_and_has_no_automatic_render_retry) ... ok
test_unknown_and_malformed_credit_cost_remain_unknown (test_transport.Managed.test_unknown_and_malformed_credit_cost_remain_unknown) ... ok

----------------------------------------------------------------------
Ran 74 tests in 1.634s

OK
External DNS/socket attempts blocked: 0
