Skip to content
Snippets Groups Projects
Commit a187c11a authored by Florian Spreckelsen's avatar Florian Spreckelsen
Browse files

Merge branch 'dev' into f-enum

parents 6d733c76 d5b3e46b
No related branches found
No related tags found
1 merge request!22Release 0.3
Pipeline #14715 failed
......@@ -9,6 +9,7 @@ Experiment:
# TODO empty recommended_properties is a problem
#recommended_properties:
responsible:
datatype: LIST<Person>
Project:
SoftwareVersion:
recommended_properties:
......@@ -30,8 +31,6 @@ Person:
email:
datatype: TEXT
description: 'Email of a Person.'
responsible:
datatype: REFERENCE
revisionOf:
datatype: REFERENCE
results:
......
......@@ -252,9 +252,8 @@ class Parser(object):
# is it a property
and "datatype" in definition
# but not simply an RT of the model
and not (definition["datatype"] in self.model
or _get_listdatatype(
definition["datatype"]) in self.model)):
and not (_get_listdatatype(definition["datatype"]) == name and
_get_listdatatype(definition["datatype"]) in self.model)):
# and create the new property
self.model[name] = db.Property(name=name,
......
......@@ -88,6 +88,9 @@ def date_converter(val, fmt="%Y-%m-%d"):
converts it using format string
"""
if val is None:
return None
else:
return datetime_converter(val, fmt=fmt).date()
......
......@@ -274,6 +274,22 @@ A:
parse_model_from_string(yaml)
self.assertIn("line 3", yde.exception.args[0])
def test_reference_property(self):
"""Test correct creation of reference property using an RT."""
modeldef = """A:
recommended_properties:
ref:
datatype: LIST<A>
"""
model = parse_model_from_string(modeldef)
self.assertEqual(len(model), 2)
for key in model.keys():
if key == "A":
self.assertTrue(isinstance(model[key], db.RecordType))
elif key == "ref":
self.assertTrue(isinstance(model[key], db.Property))
self.assertEqual(model[key].datatype, "LIST<A>")
class ExternTest(unittest.TestCase):
"""TODO Testing the "extern" keyword in the YAML."""
......
......@@ -75,6 +75,7 @@ class ConverterTest(unittest.TestCase):
r"\this\computer,\this\computer"),
["/this/computer", "/this/computer"])
@pytest.mark.xfail(reason="To be fixed, see Issue #34")
def test_datetime(self):
test_file = os.path.join(os.path.dirname(__file__), "date.xlsx")
self.importer = XLSImporter(converters={'d': datetime_converter,
......@@ -178,6 +179,5 @@ class XLSImporterTest(unittest.TestCase):
def test_raise(self):
tmp = NamedTemporaryFile(delete=False, suffix=".lol")
tmp.close()
# TODO ValueError is raised instead
self.assertRaises(DataInconsistencyError, self.importer.read_xls,
tmp.name)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment