Skip to content
Snippets Groups Projects
Verified Commit 4c3cd343 authored by Daniel Hornung's avatar Daniel Hornung
Browse files

FIX: YAML parser: Descriptions are honored now for list properties.

parent 526b634d
No related branches found
No related tags found
2 merge requests!89ENH: JsonSchemaExporter accepts do_not_create parameter.,!88jsex / yaml parser
Pipeline #44122 failed
...@@ -533,9 +533,13 @@ debug : bool, optional ...@@ -533,9 +533,13 @@ debug : bool, optional
if not isinstance(definition, dict): if not isinstance(definition, dict):
return return
if ("datatype" in definition # These definition items must be handled even for list props.
and definition["datatype"].startswith("LIST")): for prop_name, prop in definition.items():
if prop_name == "description":
self.model[name].description = prop
# For lists, everything else is not needed at this level.
if ("datatype" in definition and definition["datatype"].startswith("LIST")):
return return
if name in self.treated: if name in self.treated:
...@@ -553,7 +557,8 @@ debug : bool, optional ...@@ -553,7 +557,8 @@ debug : bool, optional
self.model[name].value = prop self.model[name].value = prop
elif prop_name == "description": elif prop_name == "description":
self.model[name].description = prop # Handled above
continue
elif prop_name == "recommended_properties": elif prop_name == "recommended_properties":
self._add_to_recordtype( self._add_to_recordtype(
......
...@@ -21,7 +21,7 @@ from datetime import date ...@@ -21,7 +21,7 @@ from datetime import date
from tempfile import NamedTemporaryFile from tempfile import NamedTemporaryFile
from pytest import deprecated_call, raises, mark from pytest import deprecated_call, raises, mark
import caosdb as db import linkahead as db
from caosadvancedtools.models.parser import (TwiceDefinedException, from caosadvancedtools.models.parser import (TwiceDefinedException,
YamlDefinitionError, YamlDefinitionError,
parse_model_from_string, parse_model_from_string,
...@@ -302,10 +302,12 @@ A: ...@@ -302,10 +302,12 @@ A:
def test_reference_property(self): def test_reference_property(self):
"""Test correct creation of reference property using an RT.""" """Test correct creation of reference property using an RT."""
modeldef = """A: modeldef = """
A:
recommended_properties: recommended_properties:
ref: ref:
datatype: LIST<A> datatype: LIST<A>
description: new description
""" """
model = parse_model_from_string(modeldef) model = parse_model_from_string(modeldef)
self.assertEqual(len(model), 2) self.assertEqual(len(model), 2)
...@@ -315,6 +317,7 @@ A: ...@@ -315,6 +317,7 @@ A:
elif key == "ref": elif key == "ref":
self.assertTrue(isinstance(value, db.Property)) self.assertTrue(isinstance(value, db.Property))
self.assertEqual(value.datatype, "LIST<A>") self.assertEqual(value.datatype, "LIST<A>")
assert value.description == "new description"
class ExternTest(unittest.TestCase): class ExternTest(unittest.TestCase):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment