Added golden file & modified validation config EurostatData_Fertility #2033
Google Cloud Build / data-pull-request-py (datcom-ci)
failed
Jun 9, 2026 in 9m 18s
Summary
Build Information
| Trigger | data-pull-request-py |
| Build | 3d8bb176-a49e-4402-a9a0-12573e984715 |
| Start | 2026-06-09T10:16:55-07:00 |
| Duration | 9m16.037s |
| Status | FAILURE |
Steps
| Step | Status | Duration |
|---|---|---|
| python_install | SUCCESS | 5m18.737s |
| python_test | CANCELLED | 3m21.087s |
| python_format_check | FAILURE | 3m19.126s |
Details
starting build "3d8bb176-a49e-4402-a9a0-12573e984715"
FETCHSOURCE
From https://github.com/datacommonsorg/data
* branch 60aa7acc8af5f2520a0601fa5cc6baa2de95f65c -> FETCH_HEAD
Updating files: 18% (930/5059)
Updating files: 18% (951/5059)
Updating files: 19% (962/5059)
Updating files: 20% (1012/5059)
Updating files: 21% (1063/5059)
Updating files: 22% (1113/5059)
Updating files: 23% (1164/5059)
Updating files: 24% (1215/5059)
Updating files: 25% (1265/5059)
Updating files: 26% (1316/5059)
Updating files: 27% (1366/5059)
Updating files: 28% (1417/5059)
Updating files: 29% (1468/5059)
Updating files: 30% (1518/5059)
Updating files: 31% (1569/5059)
Updating files: 32% (1619/5059)
Updating files: 33% (1670/5059)
Updating files: 34% (1721/5059)
Updating files: 35% (1771/5059)
Updating files: 36% (1822/5059)
Updating files: 37% (1872/5059)
Updating files: 38% (1923/5059)
Updating files: 39% (1974/5059)
Updating files: 39% (1989/5059)
Updating files: 40% (2024/5059)
Updating files: 41% (2075/5059)
Updating files: 42% (2125/5059)
Updating files: 43% (2176/5059)
Updating files: 44% (2226/5059)
Updating files: 45% (2277/5059)
Updating files: 46% (2328/5059)
Updating files: 47% (2378/5059)
Updating files: 48% (2429/5059)
Updating files: 49% (2479/5059)
Updating files: 50% (2530/5059)
Updating files: 51% (2581/5059)
Updating files: 52% (2631/5059)
Updating files: 53% (2682/5059)
Updating files: 54% (2732/5059)
Updating files: 55% (2783/5059)
Updating files: 56% (2834/5059)
Updating files: 57% (2884/5059)
Updating files: 58% (2935/5059)
Updating files: 59% (2985/5059)
Updating files: 60% (3036/5059)
Updating files: 61% (3086/5059)
Updating files: 62% (3137/5059)
Updating files: 63% (3188/5059)
Updating files: 64% (3238/5059)
Updating files: 65% (3289/5059)
Updating files: 66% (3339/5059)
Updating files: 67% (3390/5059)
Updating files: 68% (3441/5059)
Updating files: 69% (3491/5059)
Updating files: 70% (3542/5059)
Updating files: 71% (3592/5059)
Updating files: 72% (3643/5059)
Updating files: 73% (3694/5059)
Updating files: 74% (3744/5059)
Updating files: 75% (3795/5059)
Updating files: 76% (3845/5059)
Updating files: 77% (3896/5059)
Updating files: 78% (3947/5059)
Updating files: 79% (3997/5059)
Updating files: 80% (4048/5059)
Updating files: 81% (4098/5059)
Updating files: 82% (4149/5059)
Updating files: 83% (4199/5059)
Updating files: 84% (4250/5059)
Updating files: 85% (4301/5059)
Updating files: 86% (4351/5059)
Updating files: 87% (4402/5059)
Updating files: 88% (4452/5059)
Updating files: 88% (4454/5059)
Updating files: 89% (4503/5059)
Updating files: 90% (4554/5059)
Updating files: 91% (4604/5059)
Updating files: 92% (4655/5059)
Updating files: 93% (4705/5059)
Updating files: 94% (4756/5059)
Updating files: 95% (4807/5059)
Updating files: 96% (4857/5059)
Updating files: 97% (4908/5059)
Updating files: 98% (4958/5059)
Updating files: 99% (5009/5059)
Updating files: 100% (5059/5059)
Updating files: 100% (5059/5059), done.
HEAD is now at 60aa7ac testing
GitCommit:
60aa7acc8af5f2520a0601fa5cc6baa2de95f65c
BUILD
Starting Step #0 - "python_install"
Step #0 - "python_install": Pulling image: python:3.12.8
Step #0 - "python_install": 3.12.8: Pulling from library/python
Step #0 - "python_install": a492eee5e559: Pulling fs layer
Step #0 - "python_install": 32b550be6cb6: Pulling fs layer
Step #0 - "python_install": 35af2a7690f2: Pulling fs layer
Step #0 - "python_install": 7576b00d9bb1: Pulling fs layer
Step #0 - "python_install": a57a7d4db735: Pulling fs layer
Step #0 - "python_install": a113cc029c60: Pulling fs layer
Step #0 - "python_install": dc93fee02728: Pulling fs layer
Step #0 - "python_install": dc93fee02728: Waiting
Step #0 - "python_install": a57a7d4db735: Verifying Checksum
Step #0 - "python_install": a57a7d4db735: Download complete
Step #0 - "python_install": dc93fee02728: Verifying Checksum
Step #0 - "python_install": dc93fee02728: Download complete
Step #0 - "python_install": 32b550be6cb6: Verifying Checksum
Step #0 - "python_install": 32b550be6cb6: Download complete
Step #0 - "python_install": a113cc029c60: Verifying Checksum
Step #0 - "python_install": a113cc029c60: Download complete
Step #0 - "python_install": a492eee5e559: Verifying Checksum
Step #0 - "python_install": a492eee5e559: Download complete
Step #0 - "python_install": 35af2a7690f2: Verifying Checksum
Step #0 - "python_install": 35af2a7690f2: Download complete
Step #0 - "python_install": 7576b00d9bb1: Verifying Checksum
Step #0 - "python_install": 7576b00d9bb1: Download complete
Step #0 - "python_install": a492eee5e559: Pull complete
Step #0 - "python_install": 32b550be6cb6: Pull complete
Step #0 - "python_install": 35af2a7690f2: Pull complete
Step #0 - "python_install": 7576b00d9bb1: Pull complete
Step #0 - "python_install": a57a7d4db735: Pull complete
Step #0 - "python_install": a113cc029c60: Pull complete
Step #0 - "python_install": dc93fee02728: Pull complete
Step #0 - "python_install": Digest: sha256:e74938514dc67ad3eade8798aa929f5dd569e463758c83243636d4e1b54aa559
Step #0 - "python_install": Status: Downloaded newer image for python:3.12.8
Step #0 - "python_install": docker.io/library/python:3.12.8
Step #0 - "python_install": ### Installing Python requirements
Step #0 - "python_install": Installing Python requirements
Step #0 - "python_install":
Step #0 - "python_install": [notice] A new release of pip is available: 24.3.1 -> 26.1.2
Step #0 - "python_install": [notice] To update, run: pip install --upgrade pip
Finished Step #0 - "python_install"
Starting Step #1 - "python_test"
Starting Step #2 - "python_format_check"
Step #1 - "python_test": Already have image (with digest): python:3.12.8
Step #2 - "python_format_check": Already have image (with digest): python:3.12.8
Step #2 - "python_format_check": ### Testing lint
Step #1 - "python_test": ### Running all tests
Step #1 - "python_test": Installing Python requirements
Step #2 - "python_format_check": Installing Python requirements
Step #2 - "python_format_check":
Step #2 - "python_format_check": [notice] A new release of pip is available: 24.3.1 -> 26.1.2
Step #2 - "python_format_check": [notice] To update, run: pip install --upgrade pip
Step #1 - "python_test":
Step #1 - "python_test": [notice] A new release of pip is available: 24.3.1 -> 26.1.2
Step #1 - "python_test": [notice] To update, run: pip install --upgrade pip
Step #2 - "python_format_check": #### Testing Python lint
Step #1 - "python_test": #### Testing Python code in util/
Step #1 - "python_test": test_aggregate_dict (aggregation_util_test.AggregationUtilTest.test_aggregate_dict) ... ok
Step #1 - "python_test": test_aggregate_value (aggregation_util_test.AggregationUtilTest.test_aggregate_value) ... ok
Step #1 - "python_test": test_config_map_with_override (config_map_test.TestConfigMap.test_config_map_with_override) ... ok
Step #1 - "python_test": test_load_config_file (config_map_test.TestConfigMap.test_load_config_file)
Step #1 - "python_test": Test loading of config dictionary from a file. ... ok
Step #1 - "python_test": test_set_config (config_map_test.TestConfigMap.test_set_config) ... ok
Step #1 - "python_test": test_update_config (config_map_test.TestConfigMap.test_update_config) ... ok
Step #1 - "python_test": test_add_counter_decrement (counters_test.TestCounters.test_add_counter_decrement) ... ok
Step #1 - "python_test": test_add_counter_default_increment (counters_test.TestCounters.test_add_counter_default_increment) ... ok
Step #1 - "python_test": test_add_counter_increment (counters_test.TestCounters.test_add_counter_increment) ... ok
Step #1 - "python_test": test_add_counters (counters_test.TestCounters.test_add_counters) ... ok
Step #1 - "python_test": test_counter_dict_is_shared (counters_test.TestCounters.test_counter_dict_is_shared)
Step #1 - "python_test": Verify counter dict is shared across counters. ... ok
Step #1 - "python_test": test_debug_counters_are_correctly_updated (counters_test.TestCounters.test_debug_counters_are_correctly_updated)
Step #1 - "python_test": Verify counters with debug string suffixes. ... ok
Step #1 - "python_test": test_debug_counters_are_not_created_when_debug_is_false (counters_test.TestCounters.test_debug_counters_are_not_created_when_debug_is_false) ... ok
Step #1 - "python_test": test_get_counters_string (counters_test.TestCounters.test_get_counters_string) ... ok
Step #1 - "python_test": test_get_non_existent_counter (counters_test.TestCounters.test_get_non_existent_counter) ... ok
Step #1 - "python_test": test_max_counter (counters_test.TestCounters.test_max_counter) ... ok
Step #1 - "python_test": test_min_counter (counters_test.TestCounters.test_min_counter) ... ok
Step #1 - "python_test": test_prefix (counters_test.TestCounters.test_prefix) ... ok
Step #1 - "python_test": test_processing_rate (counters_test.TestCounters.test_processing_rate) ... ok
Step #1 - "python_test": test_set_counter_overwrites_value (counters_test.TestCounters.test_set_counter_overwrites_value)
Step #1 - "python_test": Verify set_counter overrides current value. ... ok
Step #1 - "python_test": test_show_counters_produces_correct_output (counters_test.TestCounters.test_show_counters_produces_correct_output) ... ok
Step #1 - "python_test": test_convert_v1_to_v2_coordinate_request (dc_api_wrapper_test.TestDCAPIWrapper.test_convert_v1_to_v2_coordinate_request)
Step #1 - "python_test": Test coordinate request conversion from v1 to v2. ... ok
Step #1 - "python_test": test_convert_v2_to_v1_coordinate_response (dc_api_wrapper_test.TestDCAPIWrapper.test_convert_v2_to_v1_coordinate_response)
Step #1 - "python_test": Test coordinate response conversion from v2 to v1. ... ok
Step #1 - "python_test": test_dc_api_batched_wrapper (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_batched_wrapper)
Step #1 - "python_test": Test DC API wrapper for batched calls. ... ok
Step #1 - "python_test": test_dc_api_get_node_property (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_get_node_property)
Step #1 - "python_test": Test API wrapper to get a single property for a node. ... ok
Step #1 - "python_test": test_dc_api_get_node_property_multi_v2 (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_get_node_property_multi_v2)
Step #1 - "python_test": Test API wrapper to get multiple properties for a node. ... ok
Step #1 - "python_test": test_dc_api_is_defined_dcid (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_is_defined_dcid)
Step #1 - "python_test": Test API wrapper for defined DCIDs. ... ok
Step #1 - "python_test": test_dc_api_resolve_latlng (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_resolve_latlng)
Step #1 - "python_test": Test API wrapper for latlng resolution. ... ok
Step #1 - "python_test": test_dc_api_resolve_latlng_v1_compat_shape (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_resolve_latlng_v1_compat_shape)
Step #1 - "python_test": Test latlng resolution supports v1 compatibility response shape. ... ok
Step #1 - "python_test": test_dc_api_resolve_placeid (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_resolve_placeid)
Step #1 - "python_test": Test API wrapper to resolve entity using a placeid. ... ok
Step #1 - "python_test": test_dc_api_wrapper (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper)
Step #1 - "python_test": Test the wrapper for DC API. ... ok
Step #1 - "python_test": test_dc_api_wrapper_attempts_no_extra_retries (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_attempts_no_extra_retries)
Step #1 - "python_test": Test wrapper doesn't retry beyond the max attempts. ... ok
Step #1 - "python_test": test_dc_api_wrapper_does_not_retry_http_400 (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_does_not_retry_http_400)
Step #1 - "python_test": Test wrapper does not retry non-transient HTTP errors. ... ERROR:absl:Got status: 400, not retrying.
Step #1 - "python_test": ok
Step #1 - "python_test": test_dc_api_wrapper_keyerror_returns_none_without_retry (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_keyerror_returns_none_without_retry)
Step #1 - "python_test": Test wrapper returns None and does not retry for KeyError. ... ERROR:absl:Got exception for api: <Mock id='140068644847392'>, 'missing-dcid'
Step #1 - "python_test": ok
Step #1 - "python_test": test_dc_api_wrapper_non_positive_retries_defaults_to_one_attempt (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_non_positive_retries_defaults_to_one_attempt)
Step #1 - "python_test": Test non-positive retries are treated as one attempt. ... ok
Step #1 - "python_test": test_dc_api_wrapper_non_retryable_exception_has_note (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_non_retryable_exception_has_note)
Step #1 - "python_test": Test non-retryable exceptions bubble once with added context note. ... ok
Step #1 - "python_test": test_dc_api_wrapper_retries_http_429 (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_retries_http_429)
Step #1 - "python_test": Test wrapper retries HTTP 429 and succeeds. ... ok
Step #1 - "python_test": test_dc_api_wrapper_retries_http_503_until_exhausted (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_retries_http_503_until_exhausted)
Step #1 - "python_test": Test wrapper retries HTTP 503 until max attempts are exhausted. ... ok
Step #1 - "python_test": test_dc_api_wrapper_stops_after_success (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_api_wrapper_stops_after_success)
Step #1 - "python_test": Test wrapper stops retrying after a successful response. ... ok
Step #1 - "python_test": test_dc_get_node_property_values (dc_api_wrapper_test.TestDCAPIWrapper.test_dc_get_node_property_values)
Step #1 - "python_test": Test API wrapper to get all property:values for a node. ... ok
Step #1 - "python_test": test_non_v2_config_rejected (dc_api_wrapper_test.TestDCAPIWrapper.test_non_v2_config_rejected)
Step #1 - "python_test": Test wrapper rejects non-V2 dc_api_version values. ... ok
Step #1 - "python_test": test_download_and_unzip_file (download_util_script_test.DownloadFileTest.test_download_and_unzip_file) ... ok
Step #1 - "python_test": test_download_failure (download_util_script_test.DownloadFileTest.test_download_failure) ... WARNING:absl:Direct HEAD request failed for 'http://example.com/error' (cannot get Last-Modified): 404 Client Error: Not Found for url: http://example.com/error
Step #1 - "python_test": ERROR:absl:Processing failed: File system error for 'http://example.com/error'. Error: 404 Client Error: Not Found for url: http://example.com/error
Step #1 - "python_test": ok
Step #1 - "python_test": test_download_file_without_extension (download_util_script_test.DownloadFileTest.test_download_file_without_extension) ... ok
Step #1 - "python_test": test_download_invalid_url (download_util_script_test.DownloadFileTest.test_download_invalid_url) ... ERROR:absl:Invalid URL format or missing scheme for 'invalid_url'. Please ensure URL starts with 'http://' or 'https://'.
Step #1 - "python_test": ok
Step #1 - "python_test": test_download_txt_file (download_util_script_test.DownloadFileTest.test_download_txt_file) ... ok
Step #1 - "python_test": test_download_file (download_util_test.TestCounters.test_download_file) ... ok
Step #1 - "python_test": test_prefilled_url (download_util_test.TestCounters.test_prefilled_url) ... ok
Step #1 - "python_test": test_request_url (download_util_test.TestCounters.test_request_url) ... ok
Step #1 - "python_test": test_fetch_all_provenances_api_failure (extract_source_dataset_provenance_test.TestExtractSourceDatasetProvenance.test_fetch_all_provenances_api_failure)
Step #1 - "python_test": Tests correct handling of exceptions thrown by the API wrapper. ... ERROR:absl:Error fetching provenances: API failure
Step #1 - "python_test": ok
Step #1 - "python_test": test_fetch_all_provenances_empty (extract_source_dataset_provenance_test.TestExtractSourceDatasetProvenance.test_fetch_all_provenances_empty)
Step #1 - "python_test": Tests execution flow when no provenances are returned. ... WARNING:absl:No provenances found.
Step #1 - "python_test": ok
Step #1 - "python_test": test_fetch_all_provenances_success (extract_source_dataset_provenance_test.TestExtractSourceDatasetProvenance.test_fetch_all_provenances_success)
Step #1 - "python_test": Tests successful fetches and hierarchy resolver end-to-end. ... ok
Step #1 - "python_test": test_get_node_dcid (extract_source_dataset_provenance_test.TestExtractSourceDatasetProvenance.test_get_node_dcid)
Step #1 - "python_test": Tests extracting DCID values from node property structures. ... ok
Step #1 - "python_test": test_get_node_property (extract_source_dataset_provenance_test.TestExtractSourceDatasetProvenance.test_get_node_property)
Step #1 - "python_test": Tests extracting string values from node property structures. ... ok
Step #1 - "python_test": test_read_write (file_util_test.FileIOTest.test_read_write) ... ok
Step #1 - "python_test": test_file_get_estimate_num_rows (file_util_test.FileUtilsTest.test_file_get_estimate_num_rows) ... ok
Step #1 - "python_test": test_file_get_matching (file_util_test.FileUtilsTest.test_file_get_matching) ... ok
Step #1 - "python_test": test_file_load_csv_dict (file_util_test.FileUtilsTest.test_file_load_csv_dict) ... ok
Step #1 - "python_test": test_file_type (file_util_test.FileUtilsTest.test_file_type) ... ok
Step #1 - "python_test": test_file_write_load_py_dict (file_util_test.FileUtilsTest.test_file_write_load_py_dict) ... ok
Step #1 - "python_test": test_aa2 (latlng2place_mapsapi_test.Latlng2PlaceMapsAPITest.test_aa2) ... ok
Step #1 - "python_test": test_country (latlng2place_mapsapi_test.Latlng2PlaceMapsAPITest.test_country) ... ok
Step #1 - "python_test": test_main (latlng_recon_geojson_test.LatlngReconGeojsonTest.test_main) ... ok
Step #1 - "python_test": test_basic (latlng_recon_service_test.LatlngReconServiceTest.test_basic) ... ok
Step #1 - "python_test": test_filter (latlng_recon_service_test.LatlngReconServiceTest.test_filter) ... ok
Step #1 - "python_test": test_dict_list_to_mcf_str (mcf_dict_util_test.TestMCFDict.test_dict_list_to_mcf_str) ... ok
Step #1 - "python_test": test_drop_nodes (mcf_dict_util_test.TestMCFDict.test_drop_nodes) ... ok
Step #1 - "python_test": test_get_dcid_node (mcf_dict_util_test.TestMCFDict.test_get_dcid_node) ... ok
Step #1 - "python_test": test_mcf_dict_rename_namespace (mcf_dict_util_test.TestMCFDict.test_mcf_dict_rename_namespace) ... ok
Step #1 - "python_test": test_mcf_dict_rename_prop (mcf_dict_util_test.TestMCFDict.test_mcf_dict_rename_prop) ... ok
Step #1 - "python_test": test_mcf_dict_rename_prop_value (mcf_dict_util_test.TestMCFDict.test_mcf_dict_rename_prop_value) ... ok
Step #1 - "python_test": test_mcf_to_dict_list (mcf_dict_util_test.TestMCFDict.test_mcf_to_dict_list) ... ok
Step #1 - "python_test": test_node_list_check_existence_dc (mcf_dict_util_test.TestMCFDict.test_node_list_check_existence_dc) ... ok
Step #1 - "python_test": test_node_list_check_existence_node_list (mcf_dict_util_test.TestMCFDict.test_node_list_check_existence_node_list) ... ok
Step #1 - "python_test": test_example_usage (mcf_template_filler_test.MCFTemplateFillerTest.test_example_usage) ... ok
Step #1 - "python_test": test_pop_and_2_obs_with_all_pv (mcf_template_filler_test.MCFTemplateFillerTest.test_pop_and_2_obs_with_all_pv)
Step #1 - "python_test": Use separate templates for Pop Obs, and use Obs template repeatedly. ... ok
Step #1 - "python_test": test_pop_with_missing_req_pv (mcf_template_filler_test.MCFTemplateFillerTest.test_pop_with_missing_req_pv) ... ok
Step #1 - "python_test": test_require_node_name (mcf_template_filler_test.MCFTemplateFillerTest.test_require_node_name) ... ok
Step #1 - "python_test": test_unified_pop_obs_with_missing_optional_pv (mcf_template_filler_test.MCFTemplateFillerTest.test_unified_pop_obs_with_missing_optional_pv) ... ok
Step #1 - "python_test": test_place_id_resolution_by_name (state_division_to_dcid_test.PlaceMapTest.test_place_id_resolution_by_name) ... ok
Step #1 - "python_test": test_boolean_naming (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_boolean_naming) ... ok
Step #1 - "python_test": test_double_underscore (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_double_underscore) ... ok
Step #1 - "python_test": test_ignore_props (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_ignore_props) ... ok
Step #1 - "python_test": test_legacy_mapping (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_legacy_mapping) ... ok
Step #1 - "python_test": test_measured_property (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_measured_property) ... ok
Step #1 - "python_test": test_measurement_constraint_removal (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_measurement_constraint_removal) ... ok
Step #1 - "python_test": test_measurement_denominator (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_measurement_denominator) ... ok
Step #1 - "python_test": test_measurement_qualifier (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_measurement_qualifier) ... ok
Step #1 - "python_test": test_naics_name_generation (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_naics_name_generation) ... ok
Step #1 - "python_test": test_namespace_removal (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_namespace_removal) ... ok
Step #1 - "python_test": test_prepend_append_replace (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_prepend_append_replace) ... ok
Step #1 - "python_test": test_quantity_name_generation (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_quantity_name_generation) ... ok
Step #1 - "python_test": test_quantity_range_name_generation (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_quantity_range_name_generation) ... ok
Step #1 - "python_test": test_soc_map (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_soc_map) ... ok
Step #1 - "python_test": test_soc_name_generation (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_soc_name_generation) ... ok
Step #1 - "python_test": test_sorted_constraints (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_sorted_constraints) ... ok
Step #1 - "python_test": test_stat_type (statvar_dcid_generator_test.TestStatVarDcidGenerator.test_stat_type) ... ok
Step #1 - "python_test": test_timer_start (timer_test.TimerTest.test_timer_start) ... ok
Step #1 - "python_test": test_timer_stop (timer_test.TimerTest.test_timer_stop) ... ok
Step #1 - "python_test": test_timer_time (timer_test.TimerTest.test_timer_time) ... ok
Step #1 - "python_test": test_xml_with_different_data_types (xml_to_json_test.XMLToJsonConverterTest.test_xml_with_different_data_types) ... ok
Step #1 - "python_test":
Step #1 - "python_test": ----------------------------------------------------------------------
Step #1 - "python_test": Ran 101 tests in 8.193s
Step #1 - "python_test":
Step #1 - "python_test": OK
Step #1 - "python_test": #### Testing Python code in tools/
Step #1 - "python_test": /workspace/tools/statvar_importer/place/place_name_matcher.py:14: SyntaxWarning: invalid escape sequence '\`'
Step #1 - "python_test": """Script to lookup places by names.
Step #1 - "python_test": test_diff_analysis (import_differ.import_differ_test.TestImportDiffer.test_diff_analysis) ... ok
Step #1 - "python_test": test_empty_differ_file_runs_validation (import_validation.import_validation_test.ImportValidationTest.test_empty_differ_file_runs_validation)
Step #1 - "python_test": Tests that a differ file with only headers (empty DataFrame) still runs ... ok
Step #1 - "python_test": test_failed_run (import_validation.import_validation_test.ImportValidationTest.test_failed_run)
Step #1 - "python_test": Tests a failed run of the script. ... ok
Step #1 - "python_test": test_missing_differ_file_does_not_throw_exception (import_validation.import_validation_test.ImportValidationTest.test_missing_differ_file_does_not_throw_exception)
Step #1 - "python_test": Tests that a missing differ file does not cause the runner to throw an ... ok
Step #1 - "python_test": test_missing_required_file_fails (import_validation.import_validation_test.ImportValidationTest.test_missing_required_file_fails)
Step #1 - "python_test": Tests that the script fails when a required data file is missing. ... ok
Step #1 - "python_test": test_sql_validator_fails (import_validation.import_validation_test.ImportValidationTest.test_sql_validator_fails)
Step #1 - "python_test": Tests that the SQL_VALIDATOR works in a run. ... ok
Step #1 - "python_test": test_successful_run (import_validation.import_validation_test.ImportValidationTest.test_successful_run)
Step #1 - "python_test": Tests a successful run of the script. ... ok
Step #1 - "python_test": test_variables_filtering (import_validation.import_validation_test.ImportValidationTest.test_variables_filtering)
Step #1 - "python_test": Tests that the runner correctly applies the 'variables' filter. ... ok
Step #1 - "python_test": test_generate_csv_report (import_validation.report_generator_test.TestReportGenerator.test_generate_csv_report) ... ok
Step #1 - "python_test": test_generate_json_report (import_validation.report_generator_test.TestReportGenerator.test_generate_json_report) ... ok
Step #1 - "python_test": test_generate_summary_report_placeholder (import_validation.report_generator_test.TestReportGenerator.test_generate_summary_report_placeholder) ... ok
Step #1 - "python_test": test_init_raises_error_if_required_file_is_missing (import_validation.runner_test.TestValidationRunner.test_init_raises_error_if_required_file_is_missing)
Step #1 - "python_test": Tests that the constructor raises a ValueError if a required file is missing. ... ok
Step #1 - "python_test": test_runner_applies_filters_correctly (import_validation.runner_test.TestValidationRunner.test_runner_applies_filters_correctly) ... WARNING:absl:
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_calls_correct_validator_function (import_validation.runner_test.TestValidationRunner.test_runner_calls_correct_validator_function) ... WARNING:absl:
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_deleted_records_percent (import_validation.runner_test.TestValidationRunner.test_runner_deleted_records_percent) ... WARNING:absl:
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_handles_failed_validation (import_validation.runner_test.TestValidationRunner.test_runner_handles_failed_validation) ... WARNING:absl:It failed
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_handles_unknown_validation (import_validation.runner_test.TestValidationRunner.test_runner_handles_unknown_validation) ... ok
Step #1 - "python_test": test_runner_uses_custom_name (import_validation.runner_test.TestValidationRunner.test_runner_uses_custom_name) ... WARNING:absl:
Step #1 - "python_test": ok
Step #1 - "python_test": test_runner_writes_correct_output (import_validation.runner_test.TestValidationRunner.test_runner_writes_correct_output) ... WARNING:absl:Too many deletions, found 100
Step #1 - "python_test": ok
Step #1 - "python_test": test_filter_with_dcids (import_validation.util_test.TestFilterDataFrame.test_filter_with_dcids)
Step #1 - "python_test": Tests filtering by a list of exact StatVar DCIDs. ... ok
Step #1 - "python_test": test_filter_with_multiple_substrings_match (import_validation.util_test.TestFilterDataFrame.test_filter_with_multiple_substrings_match)
Step #1 - "python_test": Tests that all substrings must match for a row to be included. ... ok
Step #1 - "python_test": test_filter_with_non_matching_dcid (import_validation.util_test.TestFilterDataFrame.test_filter_with_non_matching_dcid)
Step #1 - "python_test": Tests that a non-matching DCID returns an empty DataFrame. ... ok
Step #1 - "python_test": test_filter_with_non_matching_regex (import_validation.util_test.TestFilterDataFrame.test_filter_with_non_matching_regex)
Step #1 - "python_test": Tests that a non-matching regex returns an empty DataFrame. ... ok
Step #1 - "python_test": test_filter_with_non_matching_substring (import_validation.util_test.TestFilterDataFrame.test_filter_with_non_matching_substring)
Step #1 - "python_test": Tests that a non-matching substring returns an empty DataFrame. ... ok
Step #1 - "python_test": test_filter_with_regex (import_validation.util_test.TestFilterDataFrame.test_filter_with_regex)
Step #1 - "python_test": Tests filtering by a regex pattern. ... ok
Step #1 - "python_test": test_filter_with_single_substring_match (import_validation.util_test.TestFilterDataFrame.test_filter_with_single_substring_match)
Step #1 - "python_test": Tests filtering by a single matching substring. ... ok
Step #1 - "python_test": test_filter_with_substring_existence (import_validation.util_test.TestFilterDataFrame.test_filter_with_substring_existence)
Step #1 - "python_test": Tests filtering for the existence of a substring. ... ok
Step #1 - "python_test": test_multiple_filter_types_are_unioned (import_validation.util_test.TestFilterDataFrame.test_multiple_filter_types_are_unioned)
Step #1 - "python_test": Tests that results from different filter types are combined (union). ... ok
Step #1 - "python_test": test_no_filters (import_validation.util_test.TestFilterDataFrame.test_no_filters)
Step #1 - "python_test": Tests that providing no filters returns the original DataFrame. ... ok
Step #1 - "python_test": test_both_missing_files_raise (import_validation.validation_config_test.ValidationConfigTest.test_both_missing_files_raise) ... ok
Step #1 - "python_test": test_definitions_are_deep_merged (import_validation.validation_config_test.ValidationConfigTest.test_definitions_are_deep_merged) ... ok
Step #1 - "python_test": test_rule_list_params_are_replaced (import_validation.validation_config_test.ValidationConfigTest.test_rule_list_params_are_replaced)
Step #1 - "python_test": Lists should follow OmegaConf default: override list replaces base. ... ok
Step #1 - "python_test": test_rules_are_deep_merged_by_rule_id (import_validation.validation_config_test.ValidationConfigTest.test_rules_are_deep_merged_by_rule_id) ... ok
Step #1 - "python_test": test_generate_goldens (import_validation.validator_goldens_test.TestValidatorGoldens.test_generate_goldens) ... ok
Step #1 - "python_test": test_generate_goldens_all_props (import_validation.validator_goldens_test.TestValidatorGoldens.test_generate_goldens_all_props) ... ok
Step #1 - "python_test": test_generate_goldens_all_props_mixed_schema (import_validation.validator_goldens_test.TestValidatorGoldens.test_generate_goldens_all_props_mixed_schema) ... ok
Step #1 - "python_test": test_generate_goldens_with_sampling (import_validation.validator_goldens_test.TestValidatorGoldens.test_generate_goldens_with_sampling) ... ok
Step #1 - "python_test": test_get_validator_goldens_config (import_validation.validator_goldens_test.TestValidatorGoldens.test_get_
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/cloud-build/builds/3d8bb176-a49e-4402-a9a0-12573e984715?project=879489846695.]
...
/workspace/tools/statvar_importer/test_data/us_census_B01001_input.csv:1:45', 'typeOf': 'dcs:StatVarObservation'}
Step #1 - "python_test": WARNING:absl:No place in SVObs {'Data': 'Total:!!Female:!!70 to 74 years', 'Key': '70 to 74 years', 'age': '[70 74 Years]', 'gender': 'dcs:Female', 'populationType': 'dcs:Person', 'value': '{Number}', 'observationDate': '2020', 'measurementMethod': 'dcs:CensusACS5yrSurvey', '#input': '/workspace/tools/statvar_importer/test_data/us_census_B01001_input.csv:1:46', 'typeOf': 'dcs:StatVarObservation'}
Step #1 - "python_test": WARNING:absl:No place in SVObs {'Data': 'Total:!!Female:!!75 to 79 years', 'Key': '75 to 79 years', 'age': '[75 79 Years]', 'gender': 'dcs:Female', 'populationType': 'dcs:Person', 'value': '{Number}', 'observationDate': '2020', 'measurementMethod': 'dcs:CensusACS5yrSurvey', '#input': '/workspace/tools/statvar_importer/test_data/us_census_B01001_input.csv:1:47', 'typeOf': 'dcs:StatVarObservation'}
Step #1 - "python_test": WARNING:absl:No place in SVObs {'Data': 'Total:!!Female:!!80 to 84 years', 'Key': '80 to 84 years', 'age': '[80 84 Years]', 'gender': 'dcs:Female', 'populationType': 'dcs:Person', 'value': '{Number}', 'observationDate': '2020', 'measurementMethod': 'dcs:CensusACS5yrSurvey', '#input': '/workspace/tools/statvar_importer/test_data/us_census_B01001_input.csv:1:48', 'typeOf': 'dcs:StatVarObservation'}
Step #1 - "python_test": WARNING:absl:No place in SVObs {'Data': 'Total:!!Female:!!85 years and over', 'Key': '85 years and over', 'age': '[85 - Years]', 'gender': 'dcs:Female', 'populationType': 'dcs:Person', 'value': '{Number}', 'observationDate': '2020', 'measurementMethod': 'dcs:CensusACS5yrSurvey', '#input': '/workspace/tools/statvar_importer/test_data/us_census_B01001_input.csv:1:49', 'typeOf': 'dcs:StatVarObservation'}
Step #1 - "python_test": WARNING:absl:Ignoring node without a dcid: OrderedDict({'# comment1': '# Auto generated using command: "python3 -m unittest discover -v -s tools/ -p *_test.py" on 2026-06-09 17:24:52.248610'})
Step #1 - "python_test": ok
Step #1 - "python_test": test_already_capitalized (statvar_importer.utils_test.TestCapitalizeFirstChar.test_already_capitalized) ... ok
Step #1 - "python_test": test_empty_string (statvar_importer.utils_test.TestCapitalizeFirstChar.test_empty_string) ... ok
Step #1 - "python_test": test_hello (statvar_importer.utils_test.TestCapitalizeFirstChar.test_hello) ... ok
Step #1 - "python_test": test_integer_input (statvar_importer.utils_test.TestCapitalizeFirstChar.test_integer_input) ... ok
Step #1 - "python_test": test_none_input (statvar_importer.utils_test.TestCapitalizeFirstChar.test_none_input) ... ok
Step #1 - "python_test": test_numeric_first_char (statvar_importer.utils_test.TestCapitalizeFirstChar.test_numeric_first_char) ... ok
Step #1 - "python_test": test_single_char (statvar_importer.utils_test.TestCapitalizeFirstChar.test_single_char) ... ok
Step #1 - "python_test": test_space_first_char (statvar_importer.utils_test.TestCapitalizeFirstChar.test_space_first_char) ... ok
Step #1 - "python_test": test_convert_xls_to_csv (statvar_importer.utils_test.TestConvertXlsToCsv.test_convert_xls_to_csv) ... ok
Step #1 - "python_test": test_convert_xls_to_csv_no_xls (statvar_importer.utils_test.TestConvertXlsToCsv.test_convert_xls_to_csv_no_xls) ... ok
Step #1 - "python_test": test_empty_files (statvar_importer.utils_test.TestConvertXlsToCsv.test_empty_files) ... ok
Step #1 - "python_test": test_download_fails (statvar_importer.utils_test.TestDownloadCsvFromUrl.test_download_fails) ... ok
Step #1 - "python_test": test_empty_urls (statvar_importer.utils_test.TestDownloadCsvFromUrl.test_empty_urls) ... ok
Step #1 - "python_test": test_multiple_urls (statvar_importer.utils_test.TestDownloadCsvFromUrl.test_multiple_urls) ... ok
Step #1 - "python_test": test_single_url (statvar_importer.utils_test.TestDownloadCsvFromUrl.test_single_url) ... ok
Step #1 - "python_test": test_single_url_with_filename (statvar_importer.utils_test.TestDownloadCsvFromUrl.test_single_url_with_filename) ... ok
Step #1 - "python_test": test_filename_and_suffixed_exist (statvar_importer.utils_test.TestGetFilenameForUrl.test_filename_and_suffixed_exist) ... ok
Step #1 - "python_test": test_filename_exists (statvar_importer.utils_test.TestGetFilenameForUrl.test_filename_exists) ... ok
Step #1 - "python_test": test_no_existing_files (statvar_importer.utils_test.TestGetFilenameForUrl.test_no_existing_files) ... ok
Step #1 - "python_test": test_url_with_multiple_dots (statvar_importer.utils_test.TestGetFilenameForUrl.test_url_with_multiple_dots) ... ok
Step #1 - "python_test": test_url_with_multiple_dots_and_exists (statvar_importer.utils_test.TestGetFilenameForUrl.test_url_with_multiple_dots_and_exists) ... ok
Step #1 - "python_test": test_url_with_no_extension (statvar_importer.utils_test.TestGetFilenameForUrl.test_url_with_no_extension) ... ok
Step #1 - "python_test": test_url_with_no_extension_and_exists (statvar_importer.utils_test.TestGetFilenameForUrl.test_url_with_no_extension_and_exists) ... ok
Step #1 - "python_test": test_url_with_query_params (statvar_importer.utils_test.TestGetFilenameForUrl.test_url_with_query_params) ... ok
Step #1 - "python_test": test_extra_hyphen (statvar_importer.utils_test.TestGetObservationDateFormat.test_extra_hyphen) ... ok
Step #1 - "python_test": test_slashes (statvar_importer.utils_test.TestGetObservationDateFormat.test_slashes) ... ok
Step #1 - "python_test": test_year (statvar_importer.utils_test.TestGetObservationDateFormat.test_year) ... ok
Step #1 - "python_test": test_year_month (statvar_importer.utils_test.TestGetObservationDateFormat.test_year_month) ... ok
Step #1 - "python_test": test_year_month_day (statvar_importer.utils_test.TestGetObservationDateFormat.test_year_month_day) ... ok
Step #1 - "python_test": test_extra_hyphen (statvar_importer.utils_test.TestGetObservationPeriodForDate.test_extra_hyphen) ... ok
Step #1 - "python_test": test_invalid_date (statvar_importer.utils_test.TestGetObservationPeriodForDate.test_invalid_date) ... ok
Step #1 - "python_test": test_slashes (statvar_importer.utils_test.TestGetObservationPeriodForDate.test_slashes) ... ok
Step #1 - "python_test": test_year (statvar_importer.utils_test.TestGetObservationPeriodForDate.test_year) ... ok
Step #1 - "python_test": test_year_month (statvar_importer.utils_test.TestGetObservationPeriodForDate.test_year_month) ... ok
Step #1 - "python_test": test_year_month_day (statvar_importer.utils_test.TestGetObservationPeriodForDate.test_year_month_day) ... ok
Step #1 - "python_test": test_dcid_prefix (statvar_importer.utils_test.TestIsPlaceDcid.test_dcid_prefix) ... ok
Step #1 - "python_test": test_dcs_prefix (statvar_importer.utils_test.TestIsPlaceDcid.test_dcs_prefix) ... ok
Step #1 - "python_test": test_empty_string (statvar_importer.utils_test.TestIsPlaceDcid.test_empty_string) ... ok
Step #1 - "python_test": test_no_prefix_valid (statvar_importer.utils_test.TestIsPlaceDcid.test_no_prefix_valid) ... ok
Step #1 - "python_test": test_no_slash (statvar_importer.utils_test.TestIsPlaceDcid.test_no_slash) ... ok
Step #1 - "python_test": test_none (statvar_importer.utils_test.TestIsPlaceDcid.test_none) ... ok
Step #1 - "python_test": test_special_chars_no_prefix (statvar_importer.utils_test.TestIsPlaceDcid.test_special_chars_no_prefix) ... ok
Step #1 - "python_test": test_special_chars_with_prefix (statvar_importer.utils_test.TestIsPlaceDcid.test_special_chars_with_prefix) ... ok
Step #1 - "python_test": test_download_and_convert (statvar_importer.utils_test.TestPrepareInputData.test_download_and_convert) ... ok
Step #1 - "python_test": test_local_csv_found (statvar_importer.utils_test.TestPrepareInputData.test_local_csv_found) ... ok
Step #1 - "python_test": test_no_input_data (statvar_importer.utils_test.TestPrepareInputData.test_no_input_data) ... ok
Step #1 - "python_test": test_sharding_enabled (statvar_importer.utils_test.TestPrepareInputData.test_sharding_enabled) ... ok
Step #1 - "python_test": test_empty_props (statvar_importer.utils_test.TestPvsHasAnyProp.test_empty_props) ... ok
Step #1 - "python_test": test_empty_pvs (statvar_importer.utils_test.TestPvsHasAnyProp.test_empty_pvs) ... ok
Step #1 - "python_test": test_none_props (statvar_importer.utils_test.TestPvsHasAnyProp.test_none_props) ... ok
Step #1 - "python_test": test_none_pvs (statvar_importer.utils_test.TestPvsHasAnyProp.test_none_pvs) ... ok
Step #1 - "python_test": test_one_of_props_exists (statvar_importer.utils_test.TestPvsHasAnyProp.test_one_of_props_exists) ... ok
Step #1 - "python_test": test_prop_does_not_exist (statvar_importer.utils_test.TestPvsHasAnyProp.test_prop_does_not_exist) ... ok
Step #1 - "python_test": test_prop_exists (statvar_importer.utils_test.TestPvsHasAnyProp.test_prop_exists) ... ok
Step #1 - "python_test": test_prop_is_none (statvar_importer.utils_test.TestPvsHasAnyProp.test_prop_is_none) ... ok
Step #1 - "python_test": test_empty_files (statvar_importer.utils_test.TestShardCsvData.test_empty_files) ... ok
Step #1 - "python_test": test_shard_csv_data (statvar_importer.utils_test.TestShardCsvData.test_shard_csv_data) ... ok
Step #1 - "python_test": test_float (statvar_importer.utils_test.TestStrFromNumber.test_float) ... ok
Step #1 - "python_test": test_float_with_decimal (statvar_importer.utils_test.TestStrFromNumber.test_float_with_decimal) ... ok
Step #1 - "python_test": test_integer (statvar_importer.utils_test.TestStrFromNumber.test_integer) ... ok
Step #1 - "python_test": test_precision (statvar_importer.utils_test.TestStrFromNumber.test_precision) ... ok
Step #1 - "python_test": test_rounding (statvar_importer.utils_test.TestStrFromNumber.test_rounding) ... ok
Step #1 - "python_test": test_trailing_zeros (statvar_importer.utils_test.TestStrFromNumber.test_trailing_zeros) ... ok
Step #1 - "python_test":
Step #1 - "python_test": ----------------------------------------------------------------------
Step #1 - "python_test": Ran 310 tests in 98.454s
Step #1 - "python_test":
Step #1 - "python_test": OK (skipped=2)
Step #1 - "python_test": #### Testing Python code in import-automation/executor
Step #1 - "python_test": test_appengine_job_request (test.cloud_scheduler_test.CloudSchedulerTest.test_appengine_job_request) ... ok
Step #1 - "python_test": test_cloud_run_job_request (test.cloud_scheduler_test.CloudSchedulerTest.test_cloud_run_job_request) ... ok
Step #1 - "python_test": test_gke_job_request (test.cloud_scheduler_test.CloudSchedulerTest.test_gke_job_request) ... ok
Step #1 - "python_test": test_invalid_string_args (test.file_uploader_test.GCSFileUploaderTest.test_invalid_string_args) ... ok
Step #1 - "python_test": test_upload_file (test.file_uploader_test.GCSFileUploaderTest.test_upload_file) ... ok
Step #1 - "python_test": test_upload_string (test.file_uploader_test.GCSFileUploaderTest.test_upload_string) ... ok
Step #1 - "python_test": test_invalid_string_args (test.file_uploader_test.LocalFileUploaderTest.test_invalid_string_args) ... ok
Step #1 - "python_test": test_upload_file (test.file_uploader_test.LocalFileUploaderTest.test_upload_file) ... ok
Step #1 - "python_test": test_upload_string (test.file_uploader_test.LocalFileUploaderTest.test_upload_string) ... ok
Step #1 - "python_test": test_build_commit_query (test.github_api_test.GitHubAPITest.test_build_commit_query) ... ok
Step #1 - "python_test": test_build_content_query (test.github_api_test.GitHubAPITest.test_build_content_query) ... ok
Step #1 - "python_test": test_dir_exists (test.github_api_test.GitHubAPITest.test_dir_exists) ... ok
Step #1 - "python_test": test_dir_exists_not (test.github_api_test.GitHubAPITest.test_dir_exists_not) ... ok
Step #1 - "python_test": test_dir_exists_other_error (test.github_api_test.GitHubAPITest.test_dir_exists_other_error) ... ok
Step #1 - "python_test": test_download_repo (test.github_api_test.GitHubAPITest.test_download_repo) ... /workspace/import-automation/executor/app/service/github_api.py:193: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
Step #1 - "python_test": tar.extractall(dest_dir)
Step #1 - "python_test": ok
Step #1 - "python_test": test_download_repo_empty (test.github_api_test.GitHubAPITest.test_download_repo_empty) ... ok
Step #1 - "python_test": test_download_repo_http_error (test.github_api_test.GitHubAPITest.test_download_repo_http_error) ... ok
Step #1 - "python_test": test_download_repo_timeout (test.github_api_test.GitHubAPITest.test_download_repo_timeout) ... ok
Step #1 - "python_test": test_find_dirs_in_commit (test.github_api_test.GitHubAPITest.test_find_dirs_in_commit) ... ok
Step #1 - "python_test": test_find_dirs_in_commit_empty (test.github_api_test.GitHubAPITest.test_find_dirs_in_commit_empty) ... ok
Step #1 - "python_test": test_find_dirs_up_path (test.github_api_test.GitHubAPITest.test_find_dirs_up_path) ... ok
Step #1 - "python_test": test_find_dirs_up_path_empty (test.github_api_test.GitHubAPITest.test_find_dirs_up_path_empty) ... ok
Step #1 - "python_test": test_find_dirs_up_path_root (test.github_api_test.GitHubAPITest.test_find_dirs_up_path_root) ... ok
Step #1 - "python_test": test_find_dirs_up_path_skip_call (test.github_api_test.GitHubAPITest.test_find_dirs_up_path_skip_call) ... ok
Step #1 - "python_test": test_get_path_first_component (test.github_api_test.GitHubAPITest.test_get_path_first_component) ... ok
Step #1 - "python_test": test_path_containing_file (test.github_api_test.GitHubAPITest.test_path_containing_file) ... ok
Step #1 - "python_test": test_path_containing_file_not_exist (test.github_api_test.GitHubAPITest.test_path_containing_file_not_exist) ... ok
Step #1 - "python_test": test_query_changed_files_in_commit (test.github_api_test.GitHubAPITest.test_query_changed_files_in_commit) ... ok
Step #1 - "python_test": test_query_changed_files_in_commit_raise (test.github_api_test.GitHubAPITest.test_query_changed_files_in_commit_raise) ... ok
Step #1 - "python_test": test_query_commit (test.github_api_test.GitHubAPITest.test_query_commit) ... ok
Step #1 - "python_test": test_query_files_in_dir (test.github_api_test.GitHubAPITest.test_query_files_in_dir) ... ok
Step #1 - "python_test": test_query_files_in_dir_raise (test.github_api_test.GitHubAPITest.test_query_files_in_dir_raise) ... ok
Step #1 - "python_test": test_clean_date (test.import_executor_test.ImportExecutorTest.test_clean_date) ... ok
Step #1 - "python_test": test_clean_time (test.import_executor_test.ImportExecutorTest.test_clean_time) ... ok
Step #1 - "python_test": test_construct_process_message (test.import_executor_test.ImportExecutorTest.test_construct_process_message) ... ok
Step #1 - "python_test": test_construct_process_message_no_output (test.import_executor_test.ImportExecutorTest.test_construct_process_message_no_output)
Step #1 - "python_test": Tests that _construct_process_message does not append ... ok
Step #1 - "python_test": test_create_venv (test.import_executor_test.ImportExecutorTest.test_create_venv) ... ok
Step #1 - "python_test": test_run_and_handle_exception (test.import_executor_test.ImportExecutorTest.test_run_and_handle_exception) ... ERROR:root:An unexpected exception was thrown
Step #1 - "python_test": Traceback (most recent call last):
Step #1 - "python_test": File "/workspace/import-automation/executor/app/executor/import_executor.py", line 1113, in run_and_handle_exception
Step #1 - "python_test": return exec_func(*args)
Step #1 - "python_test": ^^^^^^^^^^^^^^^^
Step #1 - "python_test": File "/workspace/import-automation/executor/test/import_executor_test.py", line 69, in raise_exception
Step #1 - "python_test": raise Exception
Step #1 - "python_test": Exception
Step #1 - "python_test": ok
Step #1 - "python_test": test_run_with_timeout (test.import_executor_test.ImportExecutorTest.test_run_with_timeout) ... ERROR:root:An unexpected exception was thrown: Command '['sleep', '5']' timed out after 0.1 seconds when running ['sleep', '5']: Traceback (most recent call last):
Step #1 - "python_test": File "/workspace/import-automation/executor/app/executor/import_executor.py", line 1243, in _run_with_timeout
Step #1 - "python_test": process = subprocess.run(args,
Step #1 - "python_test": ^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test": File "/usr/local/lib/python3.12/subprocess.py", line 550, in run
Step #1 - "python_test": stdout, stderr = process.communicate(input, timeout=timeout)
Step #1 - "python_test": ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test": File "/usr/local/lib/python3.12/subprocess.py", line 1209, in communicate
Step #1 - "python_test": stdout, stderr = self._communicate(input, endtime, timeout)
Step #1 - "python_test": ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test": File "/usr/local/lib/python3.12/subprocess.py", line 2116, in _communicate
Step #1 - "python_test": self._check_timeout(endtime, orig_timeout, stdout, stderr)
Step #1 - "python_test": File "/usr/local/lib/python3.12/subprocess.py", line 1253, in _check_timeout
Step #1 - "python_test": raise TimeoutExpired(
Step #1 - "python_test": subprocess.TimeoutExpired: Command '['sleep', '5']' timed out after 0.1 seconds
Step #1 - "python_test": Traceback (most recent call last):
Step #1 - "python_test": File "/workspace/import-automation/executor/app/executor/import_executor.py", line 1243, in _run_with_timeout
Step #1 - "python_test": process = subprocess.run(args,
Step #1 - "python_test": ^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test": File "/usr/local/lib/python3.12/subprocess.py", line 550, in run
Step #1 - "python_test": stdout, stderr = process.communicate(input, timeout=timeout)
Step #1 - "python_test": ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test": File "/usr/local/lib/python3.12/subprocess.py", line 1209, in communicate
Step #1 - "python_test": stdout, stderr = self._communicate(input, endtime, timeout)
Step #1 - "python_test": ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Step #1 - "python_test": File "/usr/local/lib/python3.12/subprocess.py", line 2116, in _communicate
Step #1 - "python_test": self._check_timeout(endtime, orig_timeout, stdout, stderr)
Step #1 - "python_test": File "/usr/local/lib/python3.12/subprocess.py", line 1253, in _check_timeout
Step #1 - "python_test": raise TimeoutExpired(
Step #1 - "python_test": subprocess.TimeoutExpired: Command '['sleep', '5']' timed out after 0.1 seconds
Step #1 - "python_test": ok
Step #1 - "python_test": test_are_imports_finished (test.import_service_test.ImportServiceTest.test_are_imports_finished) ... ok
Step #1 - "python_test": test_block_on_import (test.import_service_test.ImportServiceTest.test_block_on_import) ... ok
Step #1 - "python_test": test_fix_input_path (test.import_service_test.ImportServiceTest.test_fix_input_path) ... ok
Step #1 - "python_test": test_format_import_info (test.import_service_test.ImportServiceTest.test_format_import_info) ... ok
Step #1 - "python_test": test_get_fixed_absolute_import_name (test.import_service_test.ImportServiceTest.test_get_fixed_absolute_import_name) ... ok
Step #1 - "python_test": test_get_import_id (test.import_service_test.ImportServiceTest.test_get_import_id) ... ok
Step #1 - "python_test": test_smart_import (test.import_service_test.ImportServiceTest.test_smart_import) ... ok
Step #1 - "python_test": test_absolute_import_name (test.import_target_test.ImportTargetTest.test_absolute_import_name) ... ok
Step #1 - "python_test": test_is_import_targetted_by_commit (test.import_target_test.ImportTargetTest.test_is_import_targetted_by_commit) ... ok
Step #1 - "python_test": test_parse_commit_message_targets (test.import_target_test.ImportTargetTest.test_parse_commit_message_targets) ... ok
Step #1 - "python_test": test_download_file (test.utils_test.AppUtilsTest.test_download_file)
Step #1 - "python_test": Response does not have a Content-Disposition header. ... ok
Step #1 - "python_test": test_download_file_timeout (test.utils_test.AppUtilsTest.test_download_file_timeout)
Step #1 - "python_test": Raises requests.Timeout exception. ... ok
Step #1 - "python_test": test_get_filename (test.utils_test.AppUtilsTest.test_get_filename) ... ok
Step #1 - "python_test": test_get_filename_raise (test.utils_test.AppUtilsTest.test_get_filename_raise) ... ok
Step #1 - "python_test": test_next_utc_date (test.utils_test.AppUtilsTest.test_next_utc_date)
Step #1 - "python_test": Tests next_utc_date. ... ok
Step #1 - "python_test": test_pacific_time_to_datetime (test.utils_test.AppUtilsTest.test_pacific_time_to_datetime)
Step #1 - "python_test": Tests that the string returned by pacific_time can be converted to ... ok
Step #1 - "python_test": test_pacific_time_to_datetime_then_back (test.utils_test.AppUtilsTest.test_pacific_time_to_datetime_then_back)
Step #1 - "python_test": Tests that the string returned by pacific_time can be converted to ... ok
Step #1 - "python_test": test_compare_lines (test.utils_test.TestUtilsTest.test_compare_lines) ... ok
Step #1 - "python_test": test_import_spec_valid (test.validation_test.ValidationTest.test_import_spec_valid) ... ok
Step #1 - "python_test": test_import_spec_valid_fields_absent (test.validation_test.ValidationTest.test_import_spec_valid_fields_absent) ... ok
Step #1 - "python_test": test_import_spec_valid_script_not_exist (test.validation_test.ValidationTest.test_import_spec_valid_script_not_exist) ... ok
Step #1 - "python_test": test_import_targets_valid_absolute_names (test.validation_test.ValidationTest.test_import_targets_valid_absolute_names) ... ok
Step #1 - "python_test": test_import_targets_valid_manifest_not_exist (test.validation_test.ValidationTest.test_import_targets_valid_manifest_not_exist) ... ok
Step #1 - "python_test": test_import_targets_valid_name_not_exist (test.validation_test.ValidationTest.test_import_targets_valid_name_not_exist) ... ok
Step #1 - "python_test": test_import_targets_valid_relative_names (test.validation_test.ValidationTest.test_import_targets_valid_relative_names) ... ok
Step #1 - "python_test": test_import_targets_valid_relative_names_multiple_dirs (test.validation_test.ValidationTest.test_import_targets_valid_relative_names_multiple_dirs) ... ok
Step #1 - "python_test": test_manifest_valid_fields_absent (test.validation_test.ValidationTest.test_manifest_valid_fields_absent) ... ok
Step #1 - "python_test":
Step #1 - "python_test": ----------------------------------------------------------------------
Step #1 - "python_test": Ran 66 tests in 16.100s
Step #1 - "python_test":
Step #1 - "python_test": OK
Step #1 - "python_test": #### Testing Python code in scripts/
Step #1 - "python_test": /workspace/scripts/un/sdg/util.py:188: SyntaxWarning: invalid escape sequence '\('
Step #1 - "python_test": formatted = re.sub('\((?:[^)(]|\([^)(]*\))*\)', '', s)
Step #1 - "python_test": /workspace/scripts/un/sdg/util.py:190: SyntaxWarning: invalid escape sequence '\['
Step #1 - "python_test": formatted = re.sub('\[(?:[^)(]|\[[^)(]*\])*\]', '', formatted)
Step #1 - "python_test": INFO:absl:Started writing statistical variable schemas to 'BLSJolts_StatisticalVariables.mcf'.
Step #1 - "python_test": INFO:absl:Finished writing all statistical variable schemas.
Step #1 - "python_test": INFO:absl:Started writing statistical variable schemas to 'BLSJolts_StatisticalVariables.mcf'.
Step #1 - "python_test": INFO:absl:Finished writing all statistical variable schemas.
Step #1 - "python_test": INFO:absl:Started writing statistical variable schemas to 'BLSJolts_StatisticalVariables.mcf'.
Step #1 - "python_test": INFO:absl:Finished writing all statistical variable schemas.
Step #1 - "python_test": /workspace/scripts/us_census/enhanced_tmcf/process_etmcf_test.py:160: SyntaxWarning: invalid escape sequence '\?'
Step #1 - "python_test": "Exactly one '\?' expected in variableMeasured*"):
Step #1 - "python_test": test_write_csv (aqicn.aqicn_test.AqicnTest.test_write_csv) ... ok
Step #1 - "python_test": test_main (biomedical.antibodyABCD.parse_abcd_test.TestParseAbcd.test_main)
Step #1 - "python_test": Test in the main function ... ok
Step #1 - "python_test": test_MergeAndProcessData (climate_trace.preprocess_data_test.PreprocessDataTest.test_MergeAndProcessData) ... ok
Step #1 - "python_test": test_create_csv (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv) ... ok
Step #1 - "python_test": test_create_csv_include_dn_dd (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_include_dn_dd) ... ok
Step #1 - "python_test": test_create_csv_ingore_invalid_state (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_ingore_invalid_state) ... ok
Step #1 - "python_test": test_create_csv_latest_report_of_the_day (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_latest_report_of_the_day) ... ok
Step #1 - "python_test": test_create_csv_skip_unassigned (covid19_india.cases_count_states_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_skip_unassigned) ... ok
Step #1 - "python_test": test_create_csv (covid19_india.medical_tests_in_data.preprocess_test.TestPreprocessCSVTest.test_create_csv) ... ok
Step #1 - "python_test": test_create_csv_remove_duplicate_dates (covid19_india.medical_tests_in_data.preprocess_test.TestPreprocessCSVTest.test_create_csv_remove_duplicate_dates) ... ok
Step #1 - "python_test": test_generate_tmcf (covid_tracking_project.historic_state_data.preprocess_csv_test.TestPreprocessCSVTest.test_generate_tmcf) ... ok
Step #1 - "python_test": test_write_csv (deepsolar.deepsolar_test.TestDeepSolar.test_write_csv) ... ok
Step #1 - "python_test": test_geocode_city (fbi.crime.geocode_cities_test.GeocodeCitiesTest.test_geocode_city) ... ok
Step #1 - "python_test": test_manual_geocode_city (fbi.crime.geocode_cities_test.GeocodeCitiesTest.test_manual_geocode_city) ... ok
Step #1 - "python_test": test_update_crime_geocode (fbi.crime.geocode_cities_test.GeocodeCitiesTest.test_update_crime_geocode) ... ok
Step #1 - "python_test": test_calculate_crimes (fbi.crime.preprocess_states_test.CleanCrimeFileTest.test_calculate_crimes) ... ok
Step #1 - "python_test": test_clean_crime_file (fbi.crime.preprocess_states_test.CleanCrimeFileTest.test_clean_crime_file) ... ok
Step #1 - "python_test": test_create_tmcf (fbi.crime.preprocess_states_test.CleanCrimeFileTest.test_create_tmcf) ... ok
Step #1 - "python_test": test_calculate_crimes (fbi.crime.preprocess_test.CleanCrimeFileTest.test_calculate_crimes) ... ok
Step #1 - "python_test": test_clean_crime_file (fbi.crime.preprocess_test.CleanCrimeFileTest.test_clean_crime_file) ... ok
Step #1 - "python_test": test_create_tmcf (fbi.crime.preprocess_test.CleanCrimeFileTest.test_create_tmcf) ... ok
Step #1 - "python_test": test_extract_geojsons (fires.perimeter.wfigs_fire_perimeter_test.PerimeterDataTest.test_extract_geojsons) ... ok
Step #1 - "python_test": test_ProcessDF (fires.wfigs_data_test.PreprocessDataTest.test_ProcessDF) ... INFO:absl:Initial size: 4, without duplicates: 4
Step #1 - "python_test": ok
Step #1 - "python_test": test1 (google_datasets.covid_mobility.covidmobility_test.TestCovidMobility.test1)
Step #1 - "python_test": Simple test 1 ... ok
Step #1 - "python_test": test2 (google_datasets.covid_mobility.covidmobility_test.TestCovidMobility.test2)
Step #1 - "python_test": Simple test 2 ... ok
Step #1 - "python_test": test3 (google_datasets.covid_mobility.covidmobility_test.TestCovidMobility.test3)
Step #1 - "python_test": Tests a row with empty data. ... ok
Step #1 - "python_test": test4 (google_datasets.covid_mobility.covidmobility_test.TestCovidMobility.test4)
Step #1 - "python_test": Tests a row with an empty date. ... ok
Step #1 - "python_test": test_format_census2001_district_code (india.formatters_test.TestPreprocess.test_format_census2001_district_code) ... ok
Step #1 - "python_test": test_format_census2011_code (india.formatters_test.TestPreprocess.test_format_census2011_code) ... ok
Step #1 - "python_test": test_format_lgd_district_code (india.formatters_test.TestPreprocess.test_format_lgd_district_code) ... ok
Step #1 - "python_test": test_format_lgd_state_code (india.formatters_test.TestPreprocess.test_format_lgd_state_code) ... ok
Step #1 - "python_test": test_get_district_name_to_lgd_code_mapping (india.geo.districts_test.TestPreprocess.test_get_district_name_to_lgd_code_mapping) ... ok
Step #1 - "python_test": test_get_state_name_to_census2001_code_mapping (india.geo.states_test.TestPreprocess.test_get_state_name_to_census2001_code_mapping) ... ok
Step #1 - "python_test": test_get_state_name_to_iso_code_mapping (india.geo.states_test.TestPreprocess.test_get_state_name_to_iso_code_mapping) ... ok
Step #1 - "python_test": test_create_csv (india_aqi.preprocess_test.TestPreprocess.test_create_csv) ... ok
Step #1 - "python_test": test_create_csv (india_census.common.base_test.TestCensusPrimaryAbstractDataLoaderBase.test_create_csv) ... ok
Step #1 - "python_test": test_create_csv_literate_data (india_census.common.base_test.TestCensusPrimaryAbstractDataLoaderBase.test_create_csv_literate_data) ... ok
Step #1 - "python_test": test_create_csv_workers_data (india_census.common.base_test.TestCensusPrimaryAbstractDataLoaderBase.test_create_csv_workers_data) ... ok
Step #1 - "python_test": test_create_cleaned_religion_data_csv (india_census.primary_religion_data.preprocess_test.TestCensusCensusPrimaryReligiousDataLoader.test_create_cleaned_religion_data_csv) ... ok
Step #2 - "python_format_check": --- tools/import_validation/validator_goldens.py (original)
Step #2 - "python_format_check": +++ tools/import_validation/validator_goldens.py (reformatted)
Step #2 - "python_format_check": @@ -312,6 +312,7 @@
Step #2 - "python_format_check": logging.info(f'Loaded {len(nodes)} nodes from {input_files}')
Step #2 - "python_format_check": return nodes
Step #2 - "python_format_check":
Step #2 - "python_format_check": +
Step #2 - "python_format_check": def generate_goldens(input_files: str,
Step #2 - "python_format_check": property_sets: list,
Step #2 - "python_format_check": output_file: str = None,
Step #2 - "python_format_check": ERROR: Fix lint errors by running ./run_tests.sh -f
Finished Step #2 - "python_format_check"
ERROR
ERROR: build step 2 "python:3.12.8" failed: step exited with non-zero status: 1
Finished Step #1 - "python_test"
Step #1 - "python_test": test_specific_religion_data_csv (india_census.primary_religion_data.preprocess_test.TestCensusCensusPrimaryReligiousDataLoader.test_specific_religion_data_csv) ...
Loading