Skip to content

Commit 67c06f4

Browse files
Snailedltlunatic-foxPanquesito7
authored
Feature/update check icon pr py (#1406)
* add check for 'name' attribute * add check for 'altnames' attribute * add extra check for content of aliases field in devicon.json * Change from single quotes to escaped double quotes Apply suggestions from code review. Thanks @lunatic-fox Co-authored-by: Josélio Júnior <76992016+lunatic-fox@users.noreply.github.com> * Replace ' with \" Apply suggestions from code review Co-authored-by: David Leal <halfpacho@gmail.com> --------- Co-authored-by: Josélio Júnior <76992016+lunatic-fox@users.noreply.github.com> Co-authored-by: David Leal <halfpacho@gmail.com>
1 parent 8534f89 commit 67c06f4

1 file changed

Lines changed: 46 additions & 3 deletions

File tree

.github/scripts/check_icon_pr.py

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,24 @@ def check_devicon_object(icon: dict):
6767
:return a string containing the error messages if any.
6868
"""
6969
err_msgs = []
70+
71+
try:
72+
if type(icon["name"]) != str:
73+
err_msgs.append("- Property \"name\" value must be type string.")
74+
except KeyError:
75+
err_msgs.append("- Missing property key: \"name\".")
76+
77+
try:
78+
for altname in icon["altnames"]:
79+
if type(altname) != str:
80+
raise TypeError()
81+
if altname == icon["name"]:
82+
err_msgs.append(f"- \"altnames\" should not contain the same name as \"name\" property. Please remove \"{altname}\" from \"altnames\"")
83+
except TypeError:
84+
err_msgs.append("- \"altnames\" must be an array of strings, not: " + str(icon["altnames"]))
85+
except KeyError:
86+
err_msgs.append("- Missing property key: \"altnames\".")
87+
7088
try:
7189
for tag in icon["tags"]:
7290
if type(tag) != str:
@@ -110,12 +128,37 @@ def check_devicon_object(icon: dict):
110128

111129
try:
112130
if type(icon["aliases"]) != list:
113-
err_msgs.append("- 'aliases' must be an array.")
131+
err_msgs.append("- \"aliases\" must be an array of objects.")
114132
except KeyError:
115133
err_msgs.append("- missing key: 'aliases'.")
116-
134+
135+
try:
136+
for alias_objects in icon["aliases"]:
137+
if type(alias_objects) != dict:
138+
raise TypeError()
139+
except TypeError:
140+
err_msgs.append("- \"aliases\" must be an array of objects, not: " + str(icon["aliases"]))
141+
142+
try:
143+
for alias_objects in icon["aliases"]:
144+
if type(alias_objects["base"]) != str:
145+
err_msgs.append("- must contain at least 1 base in aliases.")
146+
if not util.is_svg_version_valid(alias_objects['base']):
147+
err_msgs.append(f"- Invalid base name in aliases[\"base\"]: \"{alias_objects['base']}\". Must match regexp: (original|plain|line)(-wordmark)?")
148+
except KeyError:
149+
err_msgs.append("- missing key: \"base\" in \"aliases\".")
150+
151+
try:
152+
for alias_objects in icon["aliases"]:
153+
if type(alias_objects["alias"]) != str:
154+
err_msgs.append("- must contain at least 1 alias in aliases.")
155+
if not util.is_svg_version_valid(alias_objects['alias']):
156+
err_msgs.append(f"- Invalid alias name in aliases['alias']: \"{alias_objects['alias']}\". Must match regexp: (original|plain|line)(-wordmark)?")
157+
except KeyError:
158+
err_msgs.append("- missing key: \"alias\" in \"aliases\".")
159+
117160
if len(err_msgs) > 0:
118-
message = "Error found in 'devicon.json' for '{}' entry: \n{}".format(icon["name"], "\n".join(err_msgs))
161+
message = "Error found in \"devicon.json\" for \"{}\" entry: \n{}".format(icon["name"], "\n".join(err_msgs))
119162
return message
120163
return ""
121164

0 commit comments

Comments
 (0)