Skip to content

Commit 50476e3

Browse files
rubidium42glx22
authored andcommitted
Fix #523: metadata:url was not allowed for base sets
1 parent bc77f89 commit 50476e3

File tree

5 files changed

+13
-1
lines changed

5 files changed

+13
-1
lines changed

bananas_api/new_upload/readers/base_graphics.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class BaseGraphics(BaseSet):
1313
"description": str,
1414
"palette": str,
1515
"blitter": str,
16+
"url": str | None,
1617
},
1718
"files": {
1819
"base": str,

bananas_api/new_upload/readers/base_music.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class BaseMusic(BaseSet):
1111
"shortname": str,
1212
"version": str,
1313
"description": str,
14+
"url": str | None,
1415
},
1516
"files": {
1617
"theme": str,

bananas_api/new_upload/readers/base_sounds.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ class BaseSounds(BaseSet):
1111
"shortname": str,
1212
"version": str,
1313
"description": str,
14+
"url": str | None,
1415
},
1516
"files": {
1617
"samples": str,

bananas_api/new_upload/readers/helpers/base_sets.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ class BaseSet:
1919
@ivar description: Description of Base Set
2020
@type description: C{str}
2121
22+
@ivar url: URL of Base Set
23+
@type url: C{str}
24+
2225
@ivar files: Files included in Base Set, with their md5sum
2326
@type files: C{dict}
2427
"""
@@ -30,6 +33,7 @@ def __init__(self):
3033
self.unique_id = None
3134
self.version = None
3235
self.description = None
36+
self.url = None
3337
self.files = None
3438

3539
def read(self, fp):
@@ -63,9 +67,12 @@ def read(self, fp):
6367
# Check entries we expected but are not there
6468
for key, key_type in keys.items():
6569
if not ini_parser.has_option(section, key):
70+
if key_type == str | None:
71+
continue
6672
raise ValidationException(f"Option {section}:{key} is missing.")
73+
6774
value = ini_parser.get(section, key)
68-
if not isinstance(value, key_type):
75+
if not isinstance(value, str if key_type == str | None else key_type):
6976
raise ValidationException(f"Option {section}:{key} is not a {key_type}.")
7077

7178
# List the files, their md5sum, and the complete md5sum
@@ -95,5 +102,6 @@ def read(self, fp):
95102
self.unique_id = ini_parser.get("metadata", "shortname").encode()
96103
self.version = ini_parser.get("metadata", "version")
97104
self.description = ini_parser.get("metadata", "description")
105+
self.url = ini_parser.get("metadata", "url", fallback=None)
98106
self.files = files
99107
self.md5sum = md5sum

regression/nosound.obs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ name = NoSound
33
shortname = NULL
44
version = 0
55
description = A sound pack without any sounds
6+
url = http://localhost
67

78
[files]
89
samples = nosound.cat

0 commit comments

Comments
 (0)