From 0687fed3571b2b40948a7f11fcf5cb818a51b182 Mon Sep 17 00:00:00 2001 From: Ee Durbin Date: Wed, 23 Oct 2024 11:35:39 -0400 Subject: [PATCH] Guard our BigQuery release metadata sync against upcoming schema changes --- tests/unit/packaging/test_tasks.py | 6 ++++++ warehouse/packaging/tasks.py | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/unit/packaging/test_tasks.py b/tests/unit/packaging/test_tasks.py index 9aea5d63b618..74ade137f6e0 100644 --- a/tests/unit/packaging/test_tasks.py +++ b/tests/unit/packaging/test_tasks.py @@ -419,6 +419,8 @@ def test_update_release_description(db_request): SchemaField("maintainer", "STRING", "NULLABLE"), SchemaField("maintainer_email", "STRING", "NULLABLE"), SchemaField("license", "STRING", "NULLABLE"), + SchemaField("license_expression", "STRING", "NULLABLE"), + SchemaField("license_files", "STRING", "REPEATED"), SchemaField("keywords", "STRING", "NULLABLE"), SchemaField("classifiers", "STRING", "REPEATED"), SchemaField("platform", "STRING", "REPEATED"), @@ -624,6 +626,8 @@ def find_service(name=None): "maintainer_email": form_factory["maintainer_email"].data or None, "license": form_factory["license"].data or None, + "license_expression": None, + "license_files": [], "keywords": form_factory["description_content_type"].data or None, "classifiers": form_factory["classifiers"].data or [], @@ -774,6 +778,8 @@ def find_service(name=None): "maintainer": release.maintainer or None, "maintainer_email": release.maintainer_email or None, "license": release.license or None, + "license_expression": None, + "license_files": [], "keywords": release.keywords or None, "classifiers": release.classifiers or [], "platform": [release.platform] or [], diff --git a/warehouse/packaging/tasks.py b/warehouse/packaging/tasks.py index 2654c0bebb5f..c56208903076 100644 --- a/warehouse/packaging/tasks.py +++ b/warehouse/packaging/tasks.py @@ -316,7 +316,7 @@ def update_bigquery_release_files(task, request, dist_metadata): # values individually json_rows = dict() for sch in table_schema: - field_data = dist_metadata[sch.name] + field_data = dist_metadata.get(sch.name, None) if isinstance(field_data, datetime.datetime): field_data = field_data.isoformat()