Skip to content

Commit 26a4983

Browse files
committed
fix: faulty use of set.difference()
1 parent 506d84d commit 26a4983

File tree

2 files changed

+16
-9
lines changed

2 files changed

+16
-9
lines changed

questionpy_sdk/_package/_validate.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -138,28 +138,30 @@ def validate_package_name_and_description(manifest: Manifest) -> None:
138138
name_translations = set(manifest.name.keys())
139139
description_translations = set(manifest.description.keys())
140140

141-
if missing_name_translations := name_translations.difference(declared_translations):
141+
if missing_name_translations := declared_translations - name_translations:
142142
missing_translations_list = "\n\t- " + "\n\t- ".join(missing_name_translations)
143143
_log.warning("The following package name translations are missing:%s", missing_translations_list)
144144

145-
if unused_name_translations := declared_translations.difference(name_translations):
145+
if unused_name_translations := name_translations - declared_translations:
146146
unused_translations_list = "\n\t- " + "\n\t- ".join(unused_name_translations)
147147
_log.warning(
148148
"The following package name translations are given but missing in the languages list:%s",
149149
unused_translations_list,
150150
)
151151

152152
if description_translations:
153-
if missing_description_translations := description_translations.difference(declared_translations):
153+
if missing_description_translations := declared_translations - description_translations:
154154
missing_translations_list = "\n\t- " + "\n\t- ".join(missing_description_translations)
155-
_log.warning("The following package description translations are missing:%s", missing_translations_list)
155+
message = "The following package description translations are missing:%s"
156156

157-
if unused_description_translations := declared_translations.difference(description_translations):
158-
unused_translations_list = "\n\t- " + "\n\t- ".join(unused_description_translations)
159-
message = "The following package description translations are given but missing in the languages list:%s"
160-
if Bcp47LanguageTag("en") in unused_description_translations:
157+
if Bcp47LanguageTag("en") in missing_translations_list:
161158
message += "\nThe package description should be available in English as it is used as a fallback."
159+
160+
_log.warning(message, missing_translations_list)
161+
162+
if unused_description_translations := description_translations - declared_translations:
163+
unused_translations_list = "\n\t- " + "\n\t- ".join(unused_description_translations)
162164
_log.warning(
163-
message,
165+
"The following package description translations are given but missing in the languages list:%s",
164166
unused_translations_list,
165167
)

tests/questionpy_sdk/package/test_validate.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ def test_warn_when_name_translations_are_missing(manifest: Manifest, caplog: Log
106106

107107
warn_messages = get_warnings(caplog)
108108
assert len(warn_messages) == 1
109+
assert "translations are missing" in warn_messages[0]
109110
assert "- de" in warn_messages[0]
110111
assert "- en" not in warn_messages[0]
111112

@@ -119,6 +120,7 @@ def test_warn_when_description_translations_are_missing(manifest: Manifest, capl
119120

120121
warn_messages = get_warnings(caplog)
121122
assert len(warn_messages) == 1
123+
assert "translations are missing" in warn_messages[0]
122124
assert "- de" in warn_messages[0]
123125
assert "- en" not in warn_messages[0]
124126

@@ -131,6 +133,7 @@ def test_warn_when_name_translation_is_give_in_missing_language(manifest: Manife
131133

132134
warn_messages = get_warnings(caplog)
133135
assert len(warn_messages) == 1
136+
assert "translations are given but missing" in warn_messages[0]
134137
assert "- de" in warn_messages[0]
135138
assert "- en" not in warn_messages[0]
136139

@@ -146,6 +149,7 @@ def test_warn_when_description_translation_is_give_in_missing_language(
146149

147150
warn_messages = get_warnings(caplog)
148151
assert len(warn_messages) == 1
152+
assert "translations are given but missing" in warn_messages[0]
149153
assert "- de" in warn_messages[0]
150154
assert "- en" not in warn_messages[0]
151155

@@ -159,4 +163,5 @@ def test_warn_when_description_is_given_but_not_in_english(manifest: Manifest, c
159163

160164
warn_messages = get_warnings(caplog)
161165
assert len(warn_messages) == 1
166+
assert "translations are missing" in warn_messages[0]
162167
assert "description should be available in English" in warn_messages[0]

0 commit comments

Comments
 (0)