Skip to content

Commit bff325c

Browse files
committed
[test/property_int] Add values cardinality test
1 parent 9b23378 commit bff325c

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

test/test_property_integration.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,71 @@ def test_simple_attributes(self):
131131
self.assertEqual(yprop.definition, p_def)
132132
self.assertEqual(yprop.dependency, p_dep)
133133
self.assertEqual(yprop.dependency_value, p_dep_val)
134+
135+
def test_cardinality(self):
136+
"""
137+
Test saving and loading of property values cardinality variants to
138+
and from all supported file formats.
139+
"""
140+
doc = odml.Document()
141+
sec = odml.Section(name="sec", type="sometype", parent=doc)
142+
143+
prop_empty = "prop_cardinality_empty"
144+
prop_max = "prop_cardinality_max"
145+
prop_max_card = (None, 10)
146+
prop_min = "prop_cardinality_min"
147+
prop_min_card = (2, None)
148+
prop_full = "prop_full"
149+
prop_full_card = (1, 5)
150+
151+
_ = odml.Property(name=prop_empty, parent=sec)
152+
_ = odml.Property(name=prop_max, val_cardinality=prop_max_card, parent=sec)
153+
_ = odml.Property(name=prop_min, val_cardinality=prop_min_card, parent=sec)
154+
_ = odml.Property(name=prop_full, val_cardinality=prop_full_card, parent=sec)
155+
156+
# Test saving to and loading from an XML file
157+
odml.save(doc, self.xml_file)
158+
xml_doc = odml.load(self.xml_file)
159+
xml_prop = xml_doc.sections["sec"].properties[prop_empty]
160+
self.assertIsNone(xml_prop.val_cardinality)
161+
162+
xml_prop = xml_doc.sections["sec"].properties[prop_max]
163+
self.assertEqual(xml_prop.val_cardinality, prop_max_card)
164+
165+
xml_prop = xml_doc.sections["sec"].properties[prop_min]
166+
self.assertEqual(xml_prop.val_cardinality, prop_min_card)
167+
168+
xml_prop = xml_doc.sections["sec"].properties[prop_full]
169+
self.assertEqual(xml_prop.val_cardinality, prop_full_card)
170+
171+
# Test saving to and loading from a JSON file
172+
odml.save(doc, self.json_file, "JSON")
173+
json_doc = odml.load(self.json_file, "JSON")
174+
175+
json_prop = json_doc.sections["sec"].properties[prop_empty]
176+
self.assertIsNone(json_prop.val_cardinality)
177+
178+
json_prop = json_doc.sections["sec"].properties[prop_max]
179+
self.assertEqual(json_prop.val_cardinality, prop_max_card)
180+
181+
json_prop = json_doc.sections["sec"].properties[prop_min]
182+
self.assertEqual(json_prop.val_cardinality, prop_min_card)
183+
184+
json_prop = json_doc.sections["sec"].properties[prop_full]
185+
self.assertEqual(json_prop.val_cardinality, prop_full_card)
186+
187+
# Test saving to and loading from a YAML file
188+
odml.save(doc, self.yaml_file, "YAML")
189+
yaml_doc = odml.load(self.yaml_file, "YAML")
190+
191+
yaml_prop = yaml_doc.sections["sec"].properties[prop_empty]
192+
self.assertIsNone(yaml_prop.val_cardinality)
193+
194+
yaml_prop = yaml_doc.sections["sec"].properties[prop_max]
195+
self.assertEqual(yaml_prop.val_cardinality, prop_max_card)
196+
197+
yaml_prop = yaml_doc.sections["sec"].properties[prop_min]
198+
self.assertEqual(yaml_prop.val_cardinality, prop_min_card)
199+
200+
yaml_prop = yaml_doc.sections["sec"].properties[prop_full]
201+
self.assertEqual(yaml_prop.val_cardinality, prop_full_card)

0 commit comments

Comments
 (0)