@@ -54,6 +54,35 @@ def test_name(self):
5454 s = Section (name = name )
5555 self .assertEqual (s .name , name )
5656
57+ # Test name can be properly set on single and connected Sections
58+ sec = Section ()
59+ self .assertNotEqual (sec .name , "sec" )
60+ sec .name = "sec"
61+ self .assertEqual (sec .name , "sec" )
62+
63+ subsec_a = Section (parent = sec )
64+ self .assertNotEqual (subsec_a .name , "subsec_a" )
65+ subsec_a .name = "subsec_a"
66+ self .assertEqual (subsec_a .name , "subsec_a" )
67+
68+ # Test subsection name can be changed with siblings
69+ subsec_b = Section (name = "subsec_b" , parent = sec )
70+ self .assertEqual (subsec_b .name , "subsec_b" )
71+ subsec_b .name = "subsec"
72+ self .assertEqual (subsec_b .name , "subsec" )
73+
74+ # Test subsection name set will fail on existing sibling with same name
75+ with self .assertRaises (KeyError ):
76+ subsec_b .name = "subsec_a"
77+ self .assertEqual (subsec_b .name , "subsec" )
78+
79+ # Test section name set will fail on existing same name document sibling
80+ doc = Document ()
81+ sec_a = Section (name = "a" , parent = doc )
82+ sec_b = Section (name = "b" , parent = doc )
83+ with self .assertRaises (KeyError ):
84+ sec_b .name = "a"
85+
5786 def test_parent (self ):
5887 s = Section ("Section" )
5988 self .assertIsNone (s .parent )
0 commit comments