@@ -49,6 +49,10 @@ def save_load(self):
4949 return jdoc , xdoc , ydoc
5050
5151 def test_id (self ):
52+ """
53+ This test checks the correct writing and loading of
54+ autogenerated and assigned document id.
55+ """
5256 # Test correct save and load of generated id.
5357 jdoc , xdoc , ydoc = self .save_load ()
5458
@@ -66,6 +70,10 @@ def test_id(self):
6670 self .assertEqual (ydoc .id , assigned_id )
6771
6872 def test_simple_attributes (self ):
73+ """
74+ This test checks correct writing and loading of 'simple'
75+ Document format attributes.
76+ """
6977 author = "HPL"
7078 version = "ver64"
7179 date = "1890-08-20"
@@ -91,3 +99,68 @@ def test_simple_attributes(self):
9199 self .assertEqual (ydoc .version , version )
92100 self .assertEqual (str (ydoc .date ), date )
93101 self .assertEqual (ydoc .repository , repository )
102+
103+ def test_children (self ):
104+ """
105+ This test checks the correct saving and loading of Section children of a Document.
106+ """
107+ # Lvl 1 child Sections
108+ sec_lvl_11 = odml .Section (name = "sec_11" , parent = self .doc )
109+ _ = odml .Section (name = "sec_12" , parent = self .doc )
110+
111+ # Lvl 2 child Sections
112+ sec_lvl_21 = odml .Section (name = "sec_21" , parent = sec_lvl_11 )
113+ _ = odml .Section (name = "sec_22" , parent = sec_lvl_11 )
114+ _ = odml .Section (name = "sec_23" , parent = sec_lvl_11 )
115+
116+ # Lvl 2 child Properties
117+ _ = odml .Property (name = "prop_21" , parent = sec_lvl_11 )
118+ _ = odml .Property (name = "prop_22" , parent = sec_lvl_11 )
119+ _ = odml .Property (name = "prop_23" , parent = sec_lvl_11 )
120+
121+ # Lvl 3 child Sections
122+ _ = odml .Section (name = "sec_31" , parent = sec_lvl_21 )
123+ _ = odml .Section (name = "sec_32" , parent = sec_lvl_21 )
124+ _ = odml .Section (name = "sec_33" , parent = sec_lvl_21 )
125+ _ = odml .Section (name = "sec_34" , parent = sec_lvl_21 )
126+
127+ # Lvl 3 child Properties
128+ _ = odml .Property (name = "prop_31" , parent = sec_lvl_21 )
129+ _ = odml .Property (name = "prop_32" , parent = sec_lvl_21 )
130+ _ = odml .Property (name = "prop_33" , parent = sec_lvl_21 )
131+ _ = odml .Property (name = "prop_34" , parent = sec_lvl_21 )
132+
133+ jdoc , xdoc , ydoc = self .save_load ()
134+
135+ # Test correct JSON save and load.
136+ self .assertEqual (len (jdoc .sections ), 2 )
137+
138+ jsec_lvl_1 = jdoc [sec_lvl_11 .name ]
139+ self .assertEqual (len (jsec_lvl_1 .sections ), 3 )
140+ self .assertEqual (len (jsec_lvl_1 .properties ), 3 )
141+
142+ jsec_lvl_2 = jsec_lvl_1 [sec_lvl_21 .name ]
143+ self .assertEqual (len (jsec_lvl_2 .sections ), 4 )
144+ self .assertEqual (len (jsec_lvl_2 .properties ), 4 )
145+
146+ # Test correct XML save and load.
147+ self .assertEqual (len (xdoc .sections ), 2 )
148+
149+ xsec_lvl_1 = xdoc [sec_lvl_11 .name ]
150+ self .assertEqual (len (xsec_lvl_1 .sections ), 3 )
151+ self .assertEqual (len (xsec_lvl_1 .properties ), 3 )
152+
153+ xsec_lvl_2 = xsec_lvl_1 [sec_lvl_21 .name ]
154+ self .assertEqual (len (xsec_lvl_2 .sections ), 4 )
155+ self .assertEqual (len (xsec_lvl_2 .properties ), 4 )
156+
157+ # Test correct YAML save and load.
158+ self .assertEqual (len (ydoc .sections ), 2 )
159+
160+ ysec_lvl_1 = ydoc [sec_lvl_11 .name ]
161+ self .assertEqual (len (ysec_lvl_1 .sections ), 3 )
162+ self .assertEqual (len (ysec_lvl_1 .properties ), 3 )
163+
164+ ysec_lvl_2 = ysec_lvl_1 [sec_lvl_21 .name ]
165+ self .assertEqual (len (ysec_lvl_2 .sections ), 4 )
166+ self .assertEqual (len (ysec_lvl_2 .properties ), 4 )
0 commit comments