From 9a18a53379e79a2a633c0f8d69b11f2013d39799 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Sat, 23 Sep 2017 12:01:55 -0400 Subject: [PATCH 1/4] Immediately adjust global tree to remove test-order dependence. --- Lib/idlelib/idle_test/test_browser.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Lib/idlelib/idle_test/test_browser.py b/Lib/idlelib/idle_test/test_browser.py index 025e2902d8f87aa..c8b4f567641acc2 100644 --- a/Lib/idlelib/idle_test/test_browser.py +++ b/Lib/idlelib/idle_test/test_browser.py @@ -65,7 +65,7 @@ def test_close(self): del cb.top.destroy, cb.node.destroy -# Same nested tree creation as in test_pyclbr.py except for super on C0. +# Nested tree as in test_pyclbr.py except for supers on C0. C1. mb = pyclbr module, fname = 'test', 'test.py' f0 = mb.Function(module, 'f0', fname, 1) @@ -79,7 +79,9 @@ def test_close(self): F3 = mb._nest_function(C2, 'F3', 14) mock_pyclbr_tree = {'f0': f0, 'C0': C0} -# transform_children(mock_pyclbr_tree, 'test') mutates C0.name. +# Adjust C0.name, C1.name so tests do not depend on order. +browser.transform_children(mock_pyclbr_tree, 'test') +browser.transform_children(C0.children) class TransformChildrenTest(unittest.TestCase): @@ -138,7 +140,7 @@ def test_getsublist(self): self.assertIsInstance(sub0, browser.ChildBrowserTreeItem) self.assertIsInstance(sub1, browser.ChildBrowserTreeItem) self.assertEqual(sub0.name, 'f0') - self.assertEqual(sub1.name, 'C0') + self.assertEqual(sub1.name, 'C0(base)') def test_ondoubleclick(self): @@ -172,13 +174,13 @@ def tearDownClass(cls): def test_init(self): eq = self.assertEqual - eq(self.cbt_C1.name, 'C1') + eq(self.cbt_C1.name, 'C1()') self.assertFalse(self.cbt_C1.isfunction) eq(self.cbt_f1.name, 'f1') self.assertTrue(self.cbt_f1.isfunction) def test_gettext(self): - self.assertEqual(self.cbt_C1.GetText(), 'class C1') + self.assertEqual(self.cbt_C1.GetText(), 'class C1()') self.assertEqual(self.cbt_f1.GetText(), 'def f1(...)') def test_geticonname(self): @@ -221,7 +223,7 @@ def test_nested(self): # The tree items are processed in breadth first order. # Verify that processing each sublist hits every node and # in the right order. - expected_names = ['f0', 'C0', # This is run before transform test. + expected_names = ['f0', 'C0(base)', 'f1', 'c1', 'F1', 'C1()', 'f2', 'C2', 'F3'] From 04b433b19748ece09031b9e710d41635f5ec0e32 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Sat, 23 Sep 2017 12:52:46 -0400 Subject: [PATCH 2/4] News blurb. --- Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst diff --git a/Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst b/Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst new file mode 100644 index 000000000000000..b55ed733e922240 --- /dev/null +++ b/Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst @@ -0,0 +1 @@ +Remove test order dependence in idle_test.test_browswer. From 44ca03df935acfa179917823cd6aaea565d39a00 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Sat, 23 Sep 2017 13:51:55 -0400 Subject: [PATCH 3/4] Refines comments, adjusts transform tests. --- Lib/idlelib/idle_test/test_browser.py | 43 ++++++++++++++++++--------- 1 file changed, 29 insertions(+), 14 deletions(-) diff --git a/Lib/idlelib/idle_test/test_browser.py b/Lib/idlelib/idle_test/test_browser.py index c8b4f567641acc2..3b1ece995289395 100644 --- a/Lib/idlelib/idle_test/test_browser.py +++ b/Lib/idlelib/idle_test/test_browser.py @@ -65,7 +65,7 @@ def test_close(self): del cb.top.destroy, cb.node.destroy -# Nested tree as in test_pyclbr.py except for supers on C0. C1. +# Nested tree same as in test_pyclbr.py except for supers on C0. C1. mb = pyclbr module, fname = 'test', 'test.py' f0 = mb.Function(module, 'f0', fname, 1) @@ -80,27 +80,42 @@ def test_close(self): mock_pyclbr_tree = {'f0': f0, 'C0': C0} # Adjust C0.name, C1.name so tests do not depend on order. -browser.transform_children(mock_pyclbr_tree, 'test') -browser.transform_children(C0.children) +browser.transform_children(mock_pyclbr_tree, 'test') # C0(base) +browser.transform_children(C0.children) # C1() + +# The class below checks that the calls above are correct +# and that duplicate calls have no effect. + class TransformChildrenTest(unittest.TestCase): - def test_transform_children(self): + def test_transform_module_children(self): eq = self.assertEqual + transform = browser.transform_children # Parameter matches tree module. - tcl = list(browser.transform_children(mock_pyclbr_tree, 'test')) - eq(tcl[0], f0) - eq(tcl[1], C0) + tcl = list(transform(mock_pyclbr_tree, 'test')) + eq(tcl, [f0, C0]) + eq(tcl[0].name, 'f0') eq(tcl[1].name, 'C0(base)') - # Check that second call does not add second '(base)' suffix. - tcl = list(browser.transform_children(mock_pyclbr_tree, 'test')) + # Check that second call does not change suffix. + tcl = list(transform(mock_pyclbr_tree, 'test')) eq(tcl[1].name, 'C0(base)') # Nothing to traverse if parameter name isn't same as tree module. - tn = browser.transform_children(mock_pyclbr_tree, 'different name') - self.assertEqual(list(tn), []) - # No name parameter. - tn = browser.transform_children({'f1': f1, 'c1': c1}) - self.assertEqual(list(tn), [f1, c1]) + tcl = list(transform(mock_pyclbr_tree, 'different name')) + eq(tcl, []) + + def test_transform_node_children(self): + eq = self.assertEqual + transform = browser.transform_children + # Class with two children, one name altered. + tcl = list(transform(C0.children)) + eq(tcl, [F1, C1]) + eq(tcl[0].name, 'F1') + eq(tcl[1].name, 'C1()') + tcl = list(transform(C0.children)) + eq(tcl[1].name, 'C1()') + # Function with two children. + eq(list(transform(f0.children)), [f1, c1]) class ModuleBrowserTreeItemTest(unittest.TestCase): From 37d8ed5cd1f39140f4315c52e4dac0f2c64c4352 Mon Sep 17 00:00:00 2001 From: Terry Jan Reedy Date: Sat, 23 Sep 2017 13:57:19 -0400 Subject: [PATCH 4/4] Spelling correction. --- Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst b/Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst index b55ed733e922240..424da7a3f17a7e9 100644 --- a/Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst +++ b/Misc/NEWS.d/next/IDLE/2017-09-23-12-52-24.bpo-31559.ydckYX.rst @@ -1 +1 @@ -Remove test order dependence in idle_test.test_browswer. +Remove test order dependence in idle_test.test_browser.