@@ -65,7 +65,7 @@ def test_close(self):
6565 del cb .top .destroy , cb .node .destroy
6666
6767
68- # Same nested tree creation as in test_pyclbr.py except for super on C0.
68+ # Nested tree same as in test_pyclbr.py except for supers on C0. C1 .
6969mb = pyclbr
7070module , fname = 'test' , 'test.py'
7171f0 = mb .Function (module , 'f0' , fname , 1 )
@@ -79,26 +79,43 @@ def test_close(self):
7979F3 = mb ._nest_function (C2 , 'F3' , 14 )
8080mock_pyclbr_tree = {'f0' : f0 , 'C0' : C0 }
8181
82- # transform_children(mock_pyclbr_tree, 'test') mutates C0.name.
82+ # Adjust C0.name, C1.name so tests do not depend on order.
83+ browser .transform_children (mock_pyclbr_tree , 'test' ) # C0(base)
84+ browser .transform_children (C0 .children ) # C1()
85+
86+ # The class below checks that the calls above are correct
87+ # and that duplicate calls have no effect.
88+
8389
8490class TransformChildrenTest (unittest .TestCase ):
8591
86- def test_transform_children (self ):
92+ def test_transform_module_children (self ):
8793 eq = self .assertEqual
94+ transform = browser .transform_children
8895 # Parameter matches tree module.
89- tcl = list (browser . transform_children (mock_pyclbr_tree , 'test' ))
90- eq (tcl [ 0 ], f0 )
91- eq (tcl [1 ], C0 )
96+ tcl = list (transform (mock_pyclbr_tree , 'test' ))
97+ eq (tcl , [ f0 , C0 ] )
98+ eq (tcl [0 ]. name , 'f0' )
9299 eq (tcl [1 ].name , 'C0(base)' )
93- # Check that second call does not add second '(base)' suffix.
94- tcl = list (browser . transform_children (mock_pyclbr_tree , 'test' ))
100+ # Check that second call does not change suffix.
101+ tcl = list (transform (mock_pyclbr_tree , 'test' ))
95102 eq (tcl [1 ].name , 'C0(base)' )
96103 # Nothing to traverse if parameter name isn't same as tree module.
97- tn = browser .transform_children (mock_pyclbr_tree , 'different name' )
98- self .assertEqual (list (tn ), [])
99- # No name parameter.
100- tn = browser .transform_children ({'f1' : f1 , 'c1' : c1 })
101- self .assertEqual (list (tn ), [f1 , c1 ])
104+ tcl = list (transform (mock_pyclbr_tree , 'different name' ))
105+ eq (tcl , [])
106+
107+ def test_transform_node_children (self ):
108+ eq = self .assertEqual
109+ transform = browser .transform_children
110+ # Class with two children, one name altered.
111+ tcl = list (transform (C0 .children ))
112+ eq (tcl , [F1 , C1 ])
113+ eq (tcl [0 ].name , 'F1' )
114+ eq (tcl [1 ].name , 'C1()' )
115+ tcl = list (transform (C0 .children ))
116+ eq (tcl [1 ].name , 'C1()' )
117+ # Function with two children.
118+ eq (list (transform (f0 .children )), [f1 , c1 ])
102119
103120
104121class ModuleBrowserTreeItemTest (unittest .TestCase ):
@@ -138,7 +155,7 @@ def test_getsublist(self):
138155 self .assertIsInstance (sub0 , browser .ChildBrowserTreeItem )
139156 self .assertIsInstance (sub1 , browser .ChildBrowserTreeItem )
140157 self .assertEqual (sub0 .name , 'f0' )
141- self .assertEqual (sub1 .name , 'C0' )
158+ self .assertEqual (sub1 .name , 'C0(base) ' )
142159
143160
144161 def test_ondoubleclick (self ):
@@ -172,13 +189,13 @@ def tearDownClass(cls):
172189
173190 def test_init (self ):
174191 eq = self .assertEqual
175- eq (self .cbt_C1 .name , 'C1' )
192+ eq (self .cbt_C1 .name , 'C1() ' )
176193 self .assertFalse (self .cbt_C1 .isfunction )
177194 eq (self .cbt_f1 .name , 'f1' )
178195 self .assertTrue (self .cbt_f1 .isfunction )
179196
180197 def test_gettext (self ):
181- self .assertEqual (self .cbt_C1 .GetText (), 'class C1' )
198+ self .assertEqual (self .cbt_C1 .GetText (), 'class C1() ' )
182199 self .assertEqual (self .cbt_f1 .GetText (), 'def f1(...)' )
183200
184201 def test_geticonname (self ):
@@ -221,7 +238,7 @@ def test_nested(self):
221238 # The tree items are processed in breadth first order.
222239 # Verify that processing each sublist hits every node and
223240 # in the right order.
224- expected_names = ['f0' , 'C0' , # This is run before transform test.
241+ expected_names = ['f0' , 'C0(base)' ,
225242 'f1' , 'c1' , 'F1' , 'C1()' ,
226243 'f2' , 'C2' ,
227244 'F3' ]
0 commit comments