Skip to content

Commit 88ceaf2

Browse files
Apply suggestions from code review
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
1 parent 4210002 commit 88ceaf2

File tree

3 files changed

+34
-5
lines changed

3 files changed

+34
-5
lines changed

ckanext/gdi_userportal/helpers.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,7 @@ def scheming_missing_required_fields(
109109
elif not _is_missing_value(value):
110110
continue
111111

112-
field_name = field.get("field_name")
113-
if field_name:
112+
if field_name := field.get("field_name"):
114113
page_missing.append(field_name)
115114

116115
missing_per_page.append(page_missing)

ckanext/gdi_userportal/logic/action/translation_utils.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,4 @@ def _has_content(value: Any) -> bool:
234234
return False
235235
if isinstance(value, str):
236236
return bool(value.strip())
237-
if isinstance(value, (list, dict)):
238-
return bool(value)
239-
return True
237+
return bool(value) if isinstance(value, (list, dict)) else True

ckanext/gdi_userportal/tests/test_translation_utils.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,38 @@ def test_replace_package_prefers_requested_language():
8484
assert attribution_agent["name"] == "Nederlandse agent"
8585

8686

87+
def test_replace_package_requested_language_empty_or_none():
88+
package = deepcopy(_base_package())
89+
90+
# Set the requested language values to empty string and None
91+
package["title"] = {"en": "English title", "nl": ""}
92+
package["notes"] = {"en": "English notes", "nl": None}
93+
package["provenance"] = {"en": "English provenance", "nl": ""}
94+
package["population_coverage"] = {"en": "English coverage", "nl": None}
95+
package["publisher_note"] = {"en": "English publisher note", "nl": ""}
96+
97+
package["resources"][0]["name"] = {"en": "English resource", "nl": ""}
98+
package["resources"][0]["rights"] = {"en": "English rights", "nl": None}
99+
100+
package["qualified_attribution"][0]["agent"][0]["name"] = {"en": "English agent", "nl": ""}
101+
102+
result = replace_package(package, translation_dict={}, lang="nl")
103+
104+
# Should fallback to English when nl is empty or None
105+
assert result["title"] == "English title"
106+
assert result["notes"] == "English notes"
107+
assert result["provenance"] == "English provenance"
108+
assert result["population_coverage"] == "English coverage"
109+
assert result["publisher_note"] == "English publisher note"
110+
111+
resource = result["resources"][0]
112+
assert resource["name"] == "English resource"
113+
assert resource["rights"] == "English rights"
114+
115+
attribution_agent = result["qualified_attribution"][0]["agent"][0]
116+
assert attribution_agent["name"] == "English agent"
117+
118+
87119
def test_replace_package_falls_back_to_default_language():
88120
package = deepcopy(_base_package())
89121

0 commit comments

Comments
 (0)