Skip to content

[MCC-1563431] R Library - Return blinding status and warnings from dry_publish - #122

Merged
dsilaghi-mdsol merged 1 commit into
mainfrom
feat/MCC-1563431-return-blinding-status-dry-publish
Oct 19, 2026
Merged

dsilaghi-mdsol merged 1 commit into
mainfrom
feat/MCC-1563431-return-blinding-status-dry-publish

Conversation

@afieraru-mdsol

@afieraru-mdsol afieraru-mdsol commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

MCC-1563431 - R Library - Return blinding status and warnings from dry_publish

Checklist

  • Add proper PR title in format [MCC-1515601] <App> - <Fix Details>
  • Add Jira ticket MCC, title and link
  • Add summary of changes
  • Add reviewers
  • ADD LABELS!
  • If code is testable, please add/update tests for the code changes. (N/A - Documentation only)
  • If changes impact deployment, please update deploy guide. (N/A)

Changes

  • Return blinding status and warnings from dry_publish

@github-actions

Copy link
Copy Markdown
TestsPassed ✅SkippedFailedTime ⏱
R Package Test Results506 ran506 passed0 skipped0 failed4s 149ms
TestResultTime ⏱
R Package Test Results
Connection_operations..set_dataconnect_token_rejects_empty_token✅ passed131ms
Connection_operations..set_dataconnect_token_rejects_NULL_token✅ passed31ms
Connection_operations..set_dataconnect_token_rejects_missing_token✅ passed19ms
Connection_operations..set_dataconnect_token_sets_DATACONNECT_TOKEN_env_var_for_current_session✅ passed4ms
Connection_operations..set_dataconnect_token_returns_invisible_TRUE✅ passed4ms
Connection_operations..set_dataconnect_token_returns_invisible_TRUE✅ passed2ms
Connection_operations..set_dataconnect_token_permanent_TRUE_writes_token_to_.Renviron✅ passed5ms
Connection_operations..set_dataconnect_token_permanent_TRUE_writes_token_to_.Renviron✅ passed2ms
Connection_operations..set_dataconnect_token_permanent_TRUE_replaces_existing_token_in_.Renviron✅ passed9ms
Connection_operations..set_dataconnect_token_permanent_TRUE_replaces_existing_token_in_.Renviron✅ passed2ms
Connection_operations..set_dataconnect_token_permanent_TRUE_preserves_other_.Renviron_entries✅ passed5ms
Connection_operations..set_dataconnect_token_permanent_TRUE_preserves_other_.Renviron_entries✅ passed2ms
Connection_operations..set_dataconnect_token_permanent_TRUE_warns_on_write_failure_but_still_sets_session_token✅ passed4ms
Connection_operations..set_dataconnect_token_permanent_TRUE_warns_on_write_failure_but_still_sets_session_token✅ passed1ms
Connection_operations..get_client_header_returns_a_named_list✅ passed3ms
Connection_operations..get_client_header_returns_a_named_list✅ passed1ms
Connection_operations..get_client_header_uses_the_correct_header_name✅ passed6ms
Connection_operations..get_client_header_value_starts_with_R_SDK_✅ passed4ms
Connection_operations..get_client_header_value_contains_the_package_version✅ passed5ms
Connection_operations..get_flight_options_returns_NULL_with_warning_when_reticulate_and_arrow_are_unavailable✅ passed3ms
Connection_operations..get_flight_options_returns_NULL_with_warning_when_reticulate_and_arrow_are_unavailable✅ passed2ms
Connection_operations..get_flight_options_warns_and_returns_NULL_when_pyarrow_import_fails_and_arrow_is_unavailable✅ passed4ms
Connection_operations..get_flight_options_warns_and_returns_NULL_when_pyarrow_import_fails_and_arrow_is_unavailable✅ passed3ms
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed1s 915ms
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed1ms
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed1ms
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed
Connection_operations..get_flight_options_builds_client_network_and_auth_headers_without_a_public_IP✅ passed2ms
Connection_operations..connect_builds_a_grpc_tcp_URI_when_use_tls_is_FALSE✅ passed3ms
Connection_operations..connect_builds_a_grpc_tcp_URI_when_use_tls_is_FALSE✅ passed1ms
Connection_operations..connect_builds_a_grpc_tcp_URI_when_use_tls_is_FALSE✅ passed
Connection_operations..connect_builds_a_grpc_tls_URI_when_use_tls_is_TRUE✅ passed3ms
Connection_operations..connect_builds_a_grpc_tls_URI_when_use_tls_is_TRUE✅ passed2ms
Connection_operations..connect_builds_a_grpc_tls_URI_when_use_tls_is_TRUE✅ passed
Connection_operations..connect_builds_a_grpc_tls_URI_when_use_tls_is_TRUE✅ passed
Connection_operations..connect_returns_the_client_and_trace_state_from_.get_client✅ passed3ms
Connection_operations..get_client_stops_when_PyArrow_is_not_available✅ passed7ms
Connection_operations.client_trace_middleware_extracts_IDs_from_escaped_IPv6_gRPC_errors✅ passed83ms
Connection_operations.client_trace_middleware_extracts_string_and_bytes_response_headers✅ passed5ms
Connection_operations.client_trace_middleware_extracts_string_and_bytes_response_headers✅ passed12ms
Connection_operations.client_trace_middleware_ignores_trailers_without_a_trace_header✅ passed4ms
Connection_operations.client_trace_middleware_keeps_header_IDs_over_payload_IDs✅ passed14ms
Connection_operations.client_trace_middleware_resets_state_for_each_call✅ passed4ms
Connection_operations.client_trace_middleware_resets_state_for_each_call✅ passed1ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed239ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed4ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed2ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed4ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed4ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed4ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed2ms
R_to_pyarrow_data_type_conversion.data.frame_with_all_R_and_Arrow_types_converts_to_expected_arrow_types✅ passed2ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed20ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed14ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed3ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed1ms
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed
R_to_pyarrow_data_type_conversion.arrow_table_to_R_data.frame_type_mapping_is_as_expected✅ passed
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed47ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed2ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed1ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed3ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int32_when_catalog_says_int32✅ passed
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_casts_double_columns_to_int64_when_catalog_says_int64✅ passed10ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_does_not_cast_double_when_catalog_also_says_double✅ passed8ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_does_not_cast_double_when_catalog_also_says_double✅ passed5ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_handles_NULL_inputs_gracefully✅ passed4ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_handles_NULL_inputs_gracefully✅ passed2ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_skips_columns_not_in_data✅ passed9ms
R_to_pyarrow_data_type_conversion..cast_to_catalog_types_skips_columns_not_in_data✅ passed2ms
Datasets_pagination._iterates_the_raw_Flight_iterator_returned_by_.list_flights✅ passed80ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed3ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed2ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed2ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed2ms
Datasets_pagination..get_datasets_forwards_server_side_pagination_page_page_size_in_criteria✅ passed1ms
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed2ms
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed2ms
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed1ms
Datasets_pagination..get_datasets_returns_total_records_0L_and_correct_pagination_defaults_for_empty_iterator✅ passed
Datasets_pagination..get_datasets_uses_total_records_from_first_item_only✅ passed32ms
Datasets_pagination..get_datasets_uses_total_records_from_first_item_only✅ passed
Datasets_pagination..get_datasets_extracts_pagination_from_app_metadata_if_present_otherwise_uses_defaults✅ passed8ms
Datasets_pagination..get_datasets_extracts_pagination_from_app_metadata_if_present_otherwise_uses_defaults✅ passed
Datasets_pagination..get_datasets_extracts_pagination_from_app_metadata_if_present_otherwise_uses_defaults✅ passed1ms
Datasets_pagination..get_datasets_extracts_pagination_from_app_metadata_if_present_otherwise_uses_defaults✅ passed
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed3ms
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed1ms
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed1ms
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed1ms
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed3ms
Datasets_pagination..get_dataset_versions_succeeds_with_dataset_uuid_alone_and_sends_a_minimal_criteria✅ passed
Datasets_pagination..get_dataset_versions_rejects_removed_UUID_parameters✅ passed7ms
Datasets_pagination..get_dataset_versions_rejects_removed_UUID_parameters✅ passed4ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed3ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed2ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed2ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed1ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed3ms
Datasets_pagination..get_dataset_succeeds_with_dataset_uuid_alone_and_builds_a_minimal_ticket✅ passed1ms
Datasets_pagination..get_dataset_rejects_removed_UUID_parameters✅ passed6ms
Datasets_pagination..get_dataset_rejects_removed_UUID_parameters✅ passed4ms
Datasets_pagination..get_datasets_rejects_the_removed_study_uuid_parameter✅ passed5ms
Datasets_pagination..get_studies_sends_correct_criteria_to_.list_flights✅ passed4ms
Datasets_pagination..get_studies_sends_correct_criteria_to_.list_flights✅ passed4ms
Datasets_pagination..get_studies_extracts_total_records_from_first_item_only✅ passed15ms
Datasets_pagination..get_studies_extracts_total_records_from_first_item_only✅ passed
Datasets_pagination..get_studies_calls_.extract_data_with_simplify_data_frame_FALSE✅ passed4ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed6ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed1ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed1ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed1ms
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed
Datasets_pagination..get_studies_returns_correct_structure_with_studies✅ passed2ms
Datasets_pagination..get_studies_handles_empty_results✅ passed2ms
Datasets_pagination..get_studies_handles_empty_results✅ passed1ms
Datasets_pagination..get_studies_handles_empty_results✅ passed
Datasets_pagination..get_studies_handles_empty_results✅ passed
Datasets_pagination..get_studies_handles_NULL_data_from_.extract_data✅ passed4ms
Datasets_pagination..get_studies_handles_NULL_data_from_.extract_data✅ passed
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed10ms
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed1ms
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed1ms
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed1ms
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed1ms
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed
Datasets_pagination..get_studies_maps_realistic_study_environment_payload_and_prints_output✅ passed
Datasets_pagination..get_studies_returns_total_records_0L_for_empty_iterator✅ passed3ms
Datasets_pagination..get_studies_returns_total_records_0L_for_empty_iterator✅ passed1ms
Datasets_pagination..get_studies_returns_total_records_0L_for_empty_iterator✅ passed1ms
Datasets_pagination..get_studies_returns_total_records_0L_for_empty_iterator✅ passed
Datasets_pagination..get_studies_preserves_its_total_records_studies_result_shape✅ passed4ms
Datasets_pagination..get_datasets_preserves_its_total_records_pagination_datasets_result_shape✅ passed4ms
Datasets_pagination..get_dataset_versions_returns_the_version_list_directly✅ passed7ms
Datasets_pagination..extract_app_metadata_reads_the_trace_id_from_FlightInfo_metadata✅ passed4ms
Datasets_pagination..extract_app_metadata_reads_the_trace_id_from_FlightInfo_metadata✅ passed
Datasets_pagination..extract_app_metadata_ignores_malformed_metadata✅ passed4ms
Datasets_pagination..extract_app_metadata_ignores_malformed_metadata✅ passed47ms
Datasets_pagination.dataset_frames_created_while_listing_retain_the_client_s_trace_state✅ passed3ms
Datasets_pagination.dataset_frames_created_while_listing_retain_the_client_s_trace_state✅ passed
Datasets_pagination.DataConnectRef_collect_and_head_return_data_frames_directly✅ passed23ms
Datasets_pagination.DataConnectRef_collect_and_head_return_data_frames_directly✅ passed2ms
Datasets_pagination.DataConnectRef_collect_and_head_return_data_frames_directly✅ passed2ms
Datasets_pagination.DataConnectRef_collect_and_head_return_data_frames_directly✅ passed
Datasets_pagination.DataConnectRef_collection_errors_include_the_latest_trace_ID✅ passed7ms
Datasets_pagination.DataConnectRef_collection_errors_include_the_latest_trace_ID✅ passed
Datasets_pagination.DataConnectRef_collection_errors_include_the_latest_trace_ID✅ passed
Datasets_pagination.DataConnectRef_collection_errors_include_the_latest_trace_ID✅ passed1ms
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed24ms
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed3ms
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed
Datetime_formats..get_datetime_formats_returns_structured_all_formats_with_128_entries✅ passed3ms
Datetime_formats..get_datetime_formats_warns_but_still_returns_formats_when_count_differs_from_128✅ passed3ms
Datetime_formats..get_datetime_formats_warns_but_still_returns_formats_when_count_differs_from_128✅ passed1ms
Datetime_formats..get_datetime_formats_warns_but_still_returns_formats_when_count_differs_from_128✅ passed1ms
Datetime_formats..get_datetime_formats_supports_date_filter✅ passed2ms
Datetime_formats..get_datetime_formats_supports_date_filter✅ passed3ms
Datetime_formats..get_datetime_formats_supports_date_filter✅ passed
Datetime_formats..get_datetime_formats_supports_datetime_filter✅ passed4ms
Datetime_formats..get_datetime_formats_supports_datetime_filter✅ passed2ms
Datetime_formats..get_datetime_formats_supports_datetime_filter✅ passed
Datetime_formats..get_datetime_formats_sends_unsupported_types_to_the_server✅ passed4ms
Datetime_formats..get_datetime_formats_sends_unsupported_types_to_the_server✅ passed
Datetime_formats..do_command_records_trace_IDs_from_successful_JSON_payloads✅ passed4ms
Datetime_formats..do_command_records_trace_IDs_from_successful_JSON_payloads✅ passed2ms
Datetime_formats..do_command_records_trace_IDs_from_successful_JSON_payloads✅ passed1ms
Datetime_formats..do_command_records_trace_IDs_from_legacy_JSON_results✅ passed4ms
Datetime_formats..do_command_records_trace_IDs_from_legacy_JSON_results✅ passed2ms
Datetime_formats..do_command_records_trace_IDs_from_legacy_JSON_results✅ passed1ms
Datetime_formats.pre_request_validation_errors_do_not_inherit_a_previous_trace_ID✅ passed24ms
Datetime_formats.pre_request_validation_errors_do_not_inherit_a_previous_trace_ID✅ passed2ms
Datetime_formats.pre_request_validation_errors_do_not_inherit_a_previous_trace_ID✅ passed2ms
Datetime_formats..get_datetime_formats_result_maps_cleanly_to_publish_datetime_formats_payload✅ passed4ms
Datetime_formats..get_datetime_formats_preserves_the_data.frame_return_shape✅ passed5ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed69ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_complete_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed5ms
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed1ms
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed2ms
error_handler..parse_dataconnect_error_parses_basic_error_messages_correctly✅ passed2ms
error_handler.structured_error_trace_IDs_are_retained_and_printed✅ passed29ms
error_handler.structured_error_trace_IDs_are_retained_and_printed✅ passed14ms
error_handler..parse_dataconnect_error_handles_messages_without_delimiter✅ passed3ms
error_handler..parse_dataconnect_error_handles_messages_without_delimiter✅ passed
error_handler..parse_dataconnect_error_handles_messages_without_delimiter✅ passed2ms
error_handler..parse_dataconnect_error_handles_invalid_JSON_gracefully✅ passed2ms
error_handler..parse_dataconnect_error_handles_invalid_JSON_gracefully✅ passed2ms
error_handler..parse_dataconnect_error_handles_invalid_JSON_gracefully✅ passed
error_handler..parse_dataconnect_error_handles_incomplete_JSON✅ passed3ms
error_handler..parse_dataconnect_error_handles_incomplete_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_incomplete_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_empty_string✅ passed3ms
error_handler..parse_dataconnect_error_handles_empty_string✅ passed1ms
error_handler..parse_dataconnect_error_handles_empty_string✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed3ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed1ms
error_handler..parse_dataconnect_error_handles_non_character_input✅ passed
error_handler..parse_dataconnect_error_handles_multiple_delimiters✅ passed4ms
error_handler..parse_dataconnect_error_handles_multiple_delimiters✅ passed
error_handler..parse_dataconnect_error_handles_multiple_delimiters✅ passed1ms
error_handler..parse_dataconnect_error_finds_payload_after_gRPC_IPv6_debug_context✅ passed3ms
error_handler..parse_dataconnect_error_finds_payload_after_gRPC_IPv6_debug_context✅ passed1ms
error_handler..parse_dataconnect_error_finds_payload_after_gRPC_IPv6_debug_context✅ passed1ms
error_handler..parse_dataconnect_error_finds_payload_after_gRPC_IPv6_debug_context✅ passed1ms
error_handler..parse_dataconnect_error_keeps_top_level_fields_when_a_gRPC_wrapped_message_contains_quotes✅ passed3ms
error_handler..parse_dataconnect_error_keeps_top_level_fields_when_a_gRPC_wrapped_message_contains_quotes✅ passed1ms
error_handler..parse_dataconnect_error_keeps_top_level_fields_when_a_gRPC_wrapped_message_contains_quotes✅ passed1ms
error_handler..parse_dataconnect_error_keeps_top_level_fields_when_a_gRPC_wrapped_message_contains_quotes✅ passed
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed4ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed1ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed1ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed1ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed1ms
error_handler..parse_dataconnect_error_handles_JSON_with_whitespace✅ passed1ms
error_handler..parse_dataconnect_error_handles_special_characters✅ passed3ms
error_handler..parse_dataconnect_error_handles_special_characters✅ passed
error_handler..parse_dataconnect_error_handles_special_characters✅ passed1ms
error_handler..parse_dataconnect_error_handles_special_characters✅ passed1ms
error_handler..parse_dataconnect_error_handles_special_characters✅ passed1ms
error_handler..parse_dataconnect_error_handles_special_characters✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed7ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed2ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed1ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed1ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed1ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed1ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed1ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed1ms
error_handler..parse_dataconnect_error_handles_multiple_error_details✅ passed
error_handler..parse_dataconnect_error_handles_delimiter_without_JSON✅ passed3ms
error_handler..parse_dataconnect_error_handles_delimiter_without_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_delimiter_without_JSON✅ passed
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed3ms
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed1ms
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed1ms
error_handler..parse_dataconnect_error_handles_empty_JSON_object✅ passed3ms
error_handler..parse_dataconnect_error_extracts_timestamp_correctly✅ passed3ms
error_handler..parse_dataconnect_error_extracts_timestamp_correctly✅ passed1ms
error_handler..parse_dataconnect_error_extracts_timestamp_correctly✅ passed1ms
error_handler..parse_dataconnect_error_extracts_timestamp_correctly✅ passed
error_handler.DataConnectError_print_method_works_correctly✅ passed4ms
error_handler.DataConnectError_print_method_works_correctly✅ passed1ms
error_handler.DataConnectError_print_method_works_correctly✅ passed1ms
error_handler.DataConnectError_print_method_works_correctly✅ passed1ms
error_handler.DataConnectError_print_method_omits_timestamp_and_details_when_absent✅ passed4ms
error_handler.DataConnectError_print_method_omits_timestamp_and_details_when_absent✅ passed
error_handler.DataConnectError_print_method_omits_timestamp_and_details_when_absent✅ passed1ms
error_handler.DataConnectError_print_method_omits_timestamp_and_details_when_absent✅ passed
error_handler.ErrorDetail_class_can_be_created_with_standard_fields✅ passed3ms
error_handler.ErrorDetail_class_can_be_created_with_standard_fields✅ passed1ms
error_handler.ErrorDetail_class_can_be_created_with_standard_fields✅ passed1ms
error_handler.ErrorDetail_class_can_be_created_with_standard_fields✅ passed
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed3ms
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed1ms
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed1ms
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed1ms
error_handler.ErrorDetail_class_handles_extra_fields_beyond_standard_ones✅ passed
error_handler.ErrorDetail_print_method_works_correctly✅ passed3ms
error_handler.ErrorDetail_print_method_works_correctly✅ passed2ms
error_handler.ErrorDetail_print_method_works_correctly✅ passed1ms
error_handler.ErrorDetail_print_method_works_correctly✅ passed
error_handler.ErrorDetail_print_method_omits_NULL_fields✅ passed4ms
error_handler.ErrorDetail_print_method_omits_NULL_fields✅ passed1ms
error_handler.ErrorDetail_print_method_omits_NULL_fields✅ passed
error_handler.ErrorDetail_print_method_outputs_extra_fields✅ passed8ms
error_handler.ErrorDetail_print_method_outputs_extra_fields✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed3ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed1ms
error_handler..parse_dataconnect_error_handles_error_messages_with_trailing_text_after_JSON✅ passed1ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed9ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler..throw_dataconnect_error_throws_a_dataconnect_error_condition_with_all_fields✅ passed1ms
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed3ms
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed1ms
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed1ms
error_handler.client_trace_IDs_are_attached_to_errors_and_printed✅ passed1ms
error_handler.header_trace_ID_replaces_a_different_payload_trace_ID_in_the_message✅ passed3ms
error_handler.header_trace_ID_replaces_a_different_payload_trace_ID_in_the_message✅ passed3ms
error_handler.header_trace_ID_replaces_a_different_payload_trace_ID_in_the_message✅ passed
error_handler.header_trace_ID_replaces_a_different_payload_trace_ID_in_the_message✅ passed2ms
error_handler.errors_without_a_trace_ID_from_the_current_operation_stay_untagged✅ passed3ms
error_handler.errors_without_a_trace_ID_from_the_current_operation_stay_untagged✅ passed1ms
error_handler.client_wrapper_resets_its_trace_state_so_stale_IDs_are_not_attached✅ passed14ms
error_handler.client_wrapper_resets_its_trace_state_so_stale_IDs_are_not_attached✅ passed1ms
error_handler.client_wrapper_resets_its_trace_state_so_stale_IDs_are_not_attached✅ passed2ms
error_handler.client_errors_without_a_trace_ID_retain_their_original_class✅ passed2ms
error_handler.client_errors_without_a_trace_ID_retain_their_original_class✅ passed6ms
error_handler.print.dataconnect_error_does_not_repeat_a_trace_ID_already_in_the_message✅ passed3ms
error_handler.server_validation_details_appear_in_the_thrown_message✅ passed3ms
error_handler.server_validation_details_appear_in_the_thrown_message✅ passed1ms
error_handler.server_validation_details_appear_in_the_thrown_message✅ passed1ms
error_handler.multiple_server_validation_details_appear_only_in_the_details_section✅ passed4ms
error_handler.multiple_server_validation_details_appear_only_in_the_details_section✅ passed
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed3ms
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed1ms
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed1ms
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed1ms
error_handler..normalize_enodia_error_passes_through_non_enodia_errors_unchanged✅ passed1ms
error_handler..normalize_enodia_error_maps_unknown_flight_unauthenticated_messages_to_AUTH_E_001✅ passed3ms
error_handler..normalize_enodia_error_maps_unknown_flight_unauthenticated_messages_to_AUTH_E_001✅ passed1ms
error_handler..normalize_enodia_error_maps_unknown_flight_unauthenticated_messages_to_AUTH_E_001✅ passed1ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed2ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed2ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed3ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed1ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed2ms
error_handler..normalize_enodia_error_maps_missing_auth_header_to_AUTH_E_001✅ passed1ms
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed3ms
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed2ms
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed1ms
error_handler..normalize_enodia_error_maps_malformed_token_to_AUTH_E_002✅ passed1ms
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed3ms
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed1ms
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed1ms
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed1ms
error_handler..normalize_enodia_error_maps_invalid_API_token_to_AUTH_E_003✅ passed1ms
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed3ms
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed1ms
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed1ms
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed2ms
error_handler..normalize_enodia_error_maps_rate_limit_exceeded_to_AUTH_E_004✅ passed1ms
error_handler..normalize_enodia_error_defaults_to_AUTH_E_001_when_no_server_message✅ passed3ms
error_handler..normalize_enodia_error_defaults_to_AUTH_E_001_when_no_server_message✅ passed1ms
error_handler..normalize_enodia_error_defaults_to_AUTH_E_001_when_no_server_message✅ passed1ms
error_handler..normalize_enodia_error_gate_pattern_is_case_insensitive✅ passed3ms
error_handler..normalize_enodia_error_gate_pattern_is_case_insensitive✅ passed1ms
error_handler..normalize_enodia_error_strips_trailing_gRPC_debug_context✅ passed8ms
error_handler..normalize_enodia_error_strips_trailing_gRPC_debug_context✅ passed
error_handler..normalize_enodia_error_strips_trailing_Client_context_noise✅ passed4ms
error_handler..normalize_enodia_error_strips_trailing_Client_context_noise✅ passed1ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed3ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed1ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed1ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed1ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed1ms
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed
error_handler..normalize_enodia_error_output_is_parseable_by_.parse_dataconnect_error✅ passed2ms
error_handler..normalize_enodia_error_preserves_a_structured_trace_ID✅ passed3ms
error_handler..normalize_enodia_error_preserves_a_structured_trace_ID✅ passed1ms
error_handler..normalize_enodia_error_produces_valid_ISO_8601_timestamp✅ passed4ms
error_handler..parse_dataconnect_error_correctly_parses_streaming_error_details✅ passed3ms
error_handler..parse_dataconnect_error_correctly_parses_streaming_error_details✅ passed1ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed22ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed4ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed3ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed3ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed1ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed1ms
Publishing_operations.dry_publish_validates_inputs_and_prepares_for_server_call✅ passed7ms
Publishing_operations.dry_publish_parses_server_response_correctly_and_drops_batch_number✅ passed6ms
Publishing_operations.dry_publish_parses_server_response_correctly_and_drops_batch_number✅ passed1ms
Publishing_operations.dry_publish_parses_server_response_correctly_and_drops_batch_number✅ passed1ms
Publishing_operations.dry_publish_returns_an_empty_result_when_the_server_returns_no_response✅ passed6ms
Publishing_operations.dry_publish_returns_an_empty_result_when_the_server_returns_no_response✅ passed
Publishing_operations.dry_publish_handles_all_unique_rows_via_server_response✅ passed6ms
Publishing_operations.dry_publish_handles_all_unique_rows_via_server_response✅ passed1ms
Publishing_operations.dry_publish_handles_all_duplicate_rows_via_server_response✅ passed6ms
Publishing_operations.dry_publish_handles_all_duplicate_rows_via_server_response✅ passed
Publishing_operations.dry_publish_returns_server_validated_counts_regardless_of_column_casing✅ passed3ms
Publishing_operations.dry_publish_returns_server_validated_counts_regardless_of_column_casing✅ passed1ms
Publishing_operations..publish_correctly_returns_server_side_record_metrics_without_key_duplication✅ passed4ms
Publishing_operations..publish_correctly_returns_server_side_record_metrics_without_key_duplication✅ passed
Publishing_operations..publish_correctly_returns_server_side_record_metrics_without_key_duplication✅ passed2ms
Publishing_operations..publish_correctly_returns_server_side_record_metrics_without_key_duplication✅ passed
Publishing_operations..do_put_command_converts_STR_STREAMING_ERROR_to_a_soft_failure_when_is_dry_publish_is_TRUE✅ passed4ms
Publishing_operations..do_put_command_converts_STR_STREAMING_ERROR_to_a_soft_failure_when_is_dry_publish_is_TRUE✅ passed3ms
Publishing_operations..do_put_command_converts_STR_STREAMING_ERROR_to_a_soft_failure_when_is_dry_publish_is_TRUE✅ passed1ms
Publishing_operations..do_put_command_converts_STR_STREAMING_ERROR_to_a_soft_failure_when_is_dry_publish_is_TRUE✅ passed1ms
Publishing_operations..do_put_command_gracefully_handles_empty_error_stream_python.builtin.NoneType_✅ passed5ms
Publishing_operations..do_put_command_gracefully_handles_empty_error_stream_python.builtin.NoneType_✅ passed1ms
Publishing_operations..do_put_command_gracefully_handles_empty_error_stream_python.builtin.NoneType_✅ passed1ms
Publishing_operations..do_put_command_gracefully_handles_empty_error_stream_python.builtin.NoneType_✅ passed1ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed6ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed3ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed2ms
Publishing_operations..do_put_command_surfaces_the_full_checks_section_for_a_failing_dry_publish✅ passed
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed11ms
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed3ms
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed1ms
Publishing_operations..do_put_command_surfaces_dataset_uuid_and_dataset_batch_number_for_a_real_publish✅ passed3ms
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed6ms
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed1ms
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed2ms
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed
Publishing_operations..do_put_command_correctly_aggregates_multiple_chunked_batches_of_invalid_records✅ passed1ms
Publishing_operations.dry_publish_blinding_status_and_warnings_are_returned_as_provided✅ passed6ms
Publishing_operations.dry_publish_blinding_status_and_warnings_are_returned_as_provided✅ passed1ms
Publishing_operations.dry_publish_blinding_status_and_warnings_are_returned_as_provided✅ passed1ms
Publishing_operations.dry_publish_blinding_status_and_warnings_are_returned_as_provided✅ passed1ms
Publishing_operations.dry_publish_blinding_status_and_warnings_are_returned_as_provided✅ passed
Publishing_operations.dry_publish_multiple_warnings_are_returned_without_becoming_errors✅ passed18ms
Publishing_operations.dry_publish_multiple_warnings_are_returned_without_becoming_errors✅ passed
Publishing_operations.dry_publish_multiple_warnings_are_returned_without_becoming_errors✅ passed1ms
Publishing_operations.dry_publish_older_responses_omitting_both_fields_remain_compatible✅ passed6ms
Publishing_operations.dry_publish_older_responses_omitting_both_fields_remain_compatible✅ passed1ms
Publishing_operations.dry_publish_older_responses_omitting_both_fields_remain_compatible✅ passed2ms
Publishing_operations.dry_publish_older_responses_omitting_both_fields_remain_compatible✅ passed
Publishing_operations.dry_publish_older_responses_omitting_both_fields_remain_compatible✅ passed1ms
Publishing_operations.dry_publish_omitting_only_one_of_the_new_fields_is_handled✅ passed4ms
Publishing_operations.dry_publish_omitting_only_one_of_the_new_fields_is_handled✅ passed6ms
Publishing_operations.dry_publish_omitting_only_one_of_the_new_fields_is_handled✅ passed3ms
Publishing_operations.dry_publish_omitting_only_one_of_the_new_fields_is_handled✅ passed1ms
Publishing_operations.publish_blinding_status_and_warnings_are_returned_as_provided✅ passed6ms
Publishing_operations.publish_blinding_status_and_warnings_are_returned_as_provided✅ passed1ms
Publishing_operations.publish_blinding_status_and_warnings_are_returned_as_provided✅ passed1ms
Publishing_operations.publish_blinding_status_and_warnings_are_returned_as_provided✅ passed1ms
Publishing_operations.publish_blinding_status_and_warnings_are_returned_as_provided✅ passed
Publishing_operations.publish_multiple_warnings_are_returned_without_becoming_errors✅ passed7ms
Publishing_operations.publish_multiple_warnings_are_returned_without_becoming_errors✅ passed
Publishing_operations.publish_multiple_warnings_are_returned_without_becoming_errors✅ passed1ms
Publishing_operations.publish_older_responses_omitting_both_fields_remain_compatible✅ passed6ms
Publishing_operations.publish_older_responses_omitting_both_fields_remain_compatible✅ passed2ms
Publishing_operations.publish_older_responses_omitting_both_fields_remain_compatible✅ passed1ms
Publishing_operations.publish_older_responses_omitting_both_fields_remain_compatible✅ passed
Publishing_operations.publish_older_responses_omitting_both_fields_remain_compatible✅ passed1ms
Publishing_operations.publish_omitting_only_one_of_the_new_fields_is_handled✅ passed6ms
Publishing_operations.publish_omitting_only_one_of_the_new_fields_is_handled✅ passed
Publishing_operations.publish_omitting_only_one_of_the_new_fields_is_handled✅ passed5ms
Publishing_operations.publish_omitting_only_one_of_the_new_fields_is_handled✅ passed
Study_environments.StudyEnvironment_stores_uuid_and_name✅ passed7ms
Study_environments.StudyEnvironment_stores_uuid_and_name✅ passed
Study_environments.StudyEnvironment_stores_uuid_and_name✅ passed1ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed4ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environments_as_named_list_entries✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed3ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed69ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms
Study_environments..get_studies_preserves_environment_entries_with_missing_fields✅ passed1ms

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

Static review found no blocking issues, and the added tests cover both publishing modes and backward compatibility.

0 open findings

What changed in this PR

Adds service-provided blinding status and warnings to results from both dry_publish and publish.

Changes:

  • Passes through blinding status and warnings while supporting older responses.
  • Adds regression tests for both publishing modes and missing fields.
File Description
tests/​testthat/​test-publish.R Tests field passthrough and backward compatibility.
R/​commands.R Includes blinding status and warnings in publish results.

🧠 Review effort: Balanced


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@dsilaghi-mdsol
dsilaghi-mdsol merged commit f472d51 into main Oct 19, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants