@@ -54,6 +54,35 @@ def test_name(self):
54
54
s = Section (name = name )
55
55
self .assertEqual (s .name , name )
56
56
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
+
57
86
def test_parent (self ):
58
87
s = Section ("Section" )
59
88
self .assertIsNone (s .parent )
0 commit comments