Make sure that metadata `friendly_name` and `description` are not None (#4513)

* Fill empty description

* Assign a friendly name if the table doesn't have one

* Update metadata tests

* Update bigquery_etl/metadata/parse_metadata.py

Co-authored-by: Alexander <anicholson@mozilla.com>

* update test again

---------

Co-authored-by: Alexander <anicholson@mozilla.com>
This commit is contained in:
Linh Nguyen 2023-11-17 11:48:11 -05:00 коммит произвёл GitHub
Родитель cbb843e455
Коммит c1c73e690e
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 11 добавлений и 4 удалений

Просмотреть файл

@ -3,6 +3,8 @@
import enum
import os
import re
import string
from pathlib import Path
from typing import Any, Dict, List, Optional
import attr
@ -230,9 +232,14 @@ class Metadata:
with open(metadata_file, "r") as yaml_stream:
try:
metadata = yaml.safe_load(yaml_stream)
friendly_name = metadata.get("friendly_name", None)
description = metadata.get("description", None)
table_name = str(Path(metadata_file).parent.name)
friendly_name = metadata.get(
"friendly_name", string.capwords(table_name.replace("_", " "))
)
description = metadata.get(
"description",
"Please provide a description for the query",
)
if "labels" in metadata:
for key, label in metadata["labels"].items():

Просмотреть файл

@ -72,7 +72,7 @@ class TestParseMetadata(object):
metadata = Metadata.from_file(metadata_file)
assert metadata.friendly_name == "Test metadata file"
assert metadata.description is None
assert metadata.description == "Please provide a description for the query"
assert "schedule" in metadata.labels
assert metadata.labels["schedule"] == "daily"
assert "public_json" in metadata.labels