Skip to content

Commit 03f7037

Browse files
committed
[test/section] Add prop cardinality set method
Adds tests for the Section properties cardinality convenience set method including a general method that can be reused for the Section sections cardinality convenience set method.
1 parent c1bbdcb commit 03f7037

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

test/test_section.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1066,6 +1066,59 @@ def test_properties_cardinality(self):
10661066
# Use general method to reduce redundancy
10671067
self._test_cardinality_re_assignment(sec, 'prop_cardinality')
10681068

1069+
def _test_set_cardinality_method(self, obj, obj_attribute, set_cardinality_method):
1070+
"""
1071+
Tests the basic set convenience method of both Section properties and
1072+
sub-sections cardinality.
1073+
1074+
:param obj: odml Section
1075+
:param obj_attribute: string with the cardinality attribute that is supposed to be tested.
1076+
Should be either 'prop_cardinality' or 'sec_cardinality'.
1077+
:param set_cardinality_method: The convenience method used to set the cardinality.
1078+
"""
1079+
oba = obj_attribute
1080+
1081+
# Test Section prop/sec cardinality min assignment
1082+
set_cardinality_method(1)
1083+
self.assertEqual(getattr(obj, oba), (1, None))
1084+
1085+
# Test Section prop/sec cardinality keyword min assignment
1086+
set_cardinality_method(min_val=2)
1087+
self.assertEqual(getattr(obj, oba), (2, None))
1088+
1089+
# Test Section prop/sec cardinality max assignment
1090+
set_cardinality_method(None, 1)
1091+
self.assertEqual(getattr(obj, oba), (None, 1))
1092+
1093+
# Test Section prop/sec cardinality keyword max assignment
1094+
set_cardinality_method(max_val=2)
1095+
self.assertEqual(getattr(obj, oba), (None, 2))
1096+
1097+
# Test Section prop/sec cardinality min max assignment
1098+
set_cardinality_method(1, 2)
1099+
self.assertEqual(getattr(obj, oba), (1, 2))
1100+
1101+
# Test Section prop/sec cardinality keyword min max assignment
1102+
set_cardinality_method(min_val=2, max_val=5)
1103+
self.assertEqual(getattr(obj, oba), (2, 5))
1104+
1105+
# Test Section prop/sec cardinality empty reset
1106+
set_cardinality_method()
1107+
self.assertIsNone(getattr(obj, oba))
1108+
1109+
# Test Section prop/sec cardinality keyword empty reset
1110+
set_cardinality_method(1)
1111+
self.assertIsNotNone(getattr(obj, oba))
1112+
set_cardinality_method(min_val=None, max_val=None)
1113+
self.assertIsNone(getattr(obj, oba))
1114+
1115+
def test_set_properties_cardinality(self):
1116+
doc = Document()
1117+
sec = Section(name="sec", type="test", parent=doc)
1118+
1119+
# Use general method to reduce redundancy
1120+
self._test_set_cardinality_method(sec, 'prop_cardinality', sec.set_properties_cardinality)
1121+
10691122
def test_link(self):
10701123
pass
10711124

0 commit comments

Comments
 (0)