Skip to content

Commit 4af7868

Browse files
feat(list_geode_objects): test is_loadable
BREAKING CHANGE : arg extension -> file_absolute_path
1 parent 2de6600 commit 4af7868

File tree

2 files changed

+31
-22
lines changed

2 files changed

+31
-22
lines changed

src/opengeodeweb_back/geode_functions.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -135,23 +135,29 @@ def has_creator(geode_object: str, extension: str):
135135
return input_factory(geode_object).has_creator(extension)
136136

137137

138-
def list_geode_objects(extension: str, key: str = None):
139-
geode_objects_list = []
140-
for geode_object, value in geode_objects_dict().items():
141-
if key != None:
142-
if key in value:
143-
if type(value[key]) == bool:
144-
if value[key] == True:
145-
if has_creator(geode_object, extension):
146-
geode_objects_list.append(geode_object)
147-
elif has_creator(geode_object, extension):
148-
geode_objects_list.append(geode_object)
149-
else:
150-
if has_creator(geode_object, extension):
151-
geode_objects_list.append(geode_object)
138+
def list_geode_objects(
139+
file_absolute_path: str,
140+
key: str = None,
141+
):
142+
return_dict = {}
143+
file_extension = extension_from_filename(os.path.basename(file_absolute_path))
152144

153-
geode_objects_list.sort()
154-
return geode_objects_list
145+
for geode_object, value in geode_objects_dict().items():
146+
if has_creator(geode_object, file_extension):
147+
file_is_loadable = is_loadable(geode_object, file_absolute_path)
148+
if key != None:
149+
if key in value:
150+
if type(value[key]) == bool:
151+
if value[key] == True:
152+
return_dict[geode_object] = {
153+
"is_loadable": file_is_loadable
154+
}
155+
else:
156+
return_dict[geode_object] = {"is_loadable": file_is_loadable}
157+
else:
158+
return_dict[geode_object] = {"is_loadable": file_is_loadable}
159+
160+
return return_dict
155161

156162

157163
def geode_objects_output_extensions(geode_object: str, data):

tests/test_functions.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -228,17 +228,20 @@ def test_list_geode_objects():
228228
input_extensions = geode_functions.list_input_extensions(key)
229229
for geode_object, value in geode_objects.geode_objects_dict().items():
230230
for input_extension in input_extensions:
231-
geode_objects_list = geode_functions.list_geode_objects(
232-
input_extension, key
231+
file_apsolute_path = os.path.abspath(
232+
f"tests/data/test.{input_extension}"
233+
)
234+
return_dict = geode_functions.list_geode_objects(
235+
file_apsolute_path, key
233236
)
234-
assert type(geode_objects_list) is list
237+
assert type(return_dict) is dict
235238

236239
if key != None:
237-
assert len(geode_objects_list) > 0
240+
assert len(return_dict.keys()) > 0
238241
for invalid_geode_object in invalid_geode_objects:
239-
assert invalid_geode_object not in geode_objects_list
242+
assert invalid_geode_object not in return_dict.keys()
240243
else:
241-
assert len(geode_objects_list) >= 1
244+
assert len(return_dict.keys()) >= 1
242245

243246

244247
def test_geode_objects_output_extensions():

0 commit comments

Comments
 (0)