17db96d56Sopenharmony_ci"Test pathbrowser, coverage 95%."
27db96d56Sopenharmony_ci
37db96d56Sopenharmony_cifrom idlelib import pathbrowser
47db96d56Sopenharmony_ciimport unittest
57db96d56Sopenharmony_cifrom test.support import requires
67db96d56Sopenharmony_cifrom tkinter import Tk
77db96d56Sopenharmony_ci
87db96d56Sopenharmony_ciimport os.path
97db96d56Sopenharmony_ciimport pyclbr  # for _modules
107db96d56Sopenharmony_ciimport sys  # for sys.path
117db96d56Sopenharmony_ci
127db96d56Sopenharmony_cifrom idlelib.idle_test.mock_idle import Func
137db96d56Sopenharmony_ciimport idlelib  # for __file__
147db96d56Sopenharmony_cifrom idlelib import browser
157db96d56Sopenharmony_cifrom idlelib.tree import TreeNode
167db96d56Sopenharmony_ci
177db96d56Sopenharmony_ci
187db96d56Sopenharmony_ciclass PathBrowserTest(unittest.TestCase):
197db96d56Sopenharmony_ci
207db96d56Sopenharmony_ci    @classmethod
217db96d56Sopenharmony_ci    def setUpClass(cls):
227db96d56Sopenharmony_ci        requires('gui')
237db96d56Sopenharmony_ci        cls.root = Tk()
247db96d56Sopenharmony_ci        cls.root.withdraw()
257db96d56Sopenharmony_ci        cls.pb = pathbrowser.PathBrowser(cls.root, _utest=True)
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ci    @classmethod
287db96d56Sopenharmony_ci    def tearDownClass(cls):
297db96d56Sopenharmony_ci        cls.pb.close()
307db96d56Sopenharmony_ci        cls.root.update_idletasks()
317db96d56Sopenharmony_ci        cls.root.destroy()
327db96d56Sopenharmony_ci        del cls.root, cls.pb
337db96d56Sopenharmony_ci
347db96d56Sopenharmony_ci    def test_init(self):
357db96d56Sopenharmony_ci        pb = self.pb
367db96d56Sopenharmony_ci        eq = self.assertEqual
377db96d56Sopenharmony_ci        eq(pb.master, self.root)
387db96d56Sopenharmony_ci        eq(pyclbr._modules, {})
397db96d56Sopenharmony_ci        self.assertIsInstance(pb.node, TreeNode)
407db96d56Sopenharmony_ci        self.assertIsNotNone(browser.file_open)
417db96d56Sopenharmony_ci
427db96d56Sopenharmony_ci    def test_settitle(self):
437db96d56Sopenharmony_ci        pb = self.pb
447db96d56Sopenharmony_ci        self.assertEqual(pb.top.title(), 'Path Browser')
457db96d56Sopenharmony_ci        self.assertEqual(pb.top.iconname(), 'Path Browser')
467db96d56Sopenharmony_ci
477db96d56Sopenharmony_ci    def test_rootnode(self):
487db96d56Sopenharmony_ci        pb = self.pb
497db96d56Sopenharmony_ci        rn = pb.rootnode()
507db96d56Sopenharmony_ci        self.assertIsInstance(rn, pathbrowser.PathBrowserTreeItem)
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_ci    def test_close(self):
537db96d56Sopenharmony_ci        pb = self.pb
547db96d56Sopenharmony_ci        pb.top.destroy = Func()
557db96d56Sopenharmony_ci        pb.node.destroy = Func()
567db96d56Sopenharmony_ci        pb.close()
577db96d56Sopenharmony_ci        self.assertTrue(pb.top.destroy.called)
587db96d56Sopenharmony_ci        self.assertTrue(pb.node.destroy.called)
597db96d56Sopenharmony_ci        del pb.top.destroy, pb.node.destroy
607db96d56Sopenharmony_ci
617db96d56Sopenharmony_ci
627db96d56Sopenharmony_ciclass DirBrowserTreeItemTest(unittest.TestCase):
637db96d56Sopenharmony_ci
647db96d56Sopenharmony_ci    def test_DirBrowserTreeItem(self):
657db96d56Sopenharmony_ci        # Issue16226 - make sure that getting a sublist works
667db96d56Sopenharmony_ci        d = pathbrowser.DirBrowserTreeItem('')
677db96d56Sopenharmony_ci        d.GetSubList()
687db96d56Sopenharmony_ci        self.assertEqual('', d.GetText())
697db96d56Sopenharmony_ci
707db96d56Sopenharmony_ci        dir = os.path.split(os.path.abspath(idlelib.__file__))[0]
717db96d56Sopenharmony_ci        self.assertEqual(d.ispackagedir(dir), True)
727db96d56Sopenharmony_ci        self.assertEqual(d.ispackagedir(dir + '/Icons'), False)
737db96d56Sopenharmony_ci
747db96d56Sopenharmony_ci
757db96d56Sopenharmony_ciclass PathBrowserTreeItemTest(unittest.TestCase):
767db96d56Sopenharmony_ci
777db96d56Sopenharmony_ci    def test_PathBrowserTreeItem(self):
787db96d56Sopenharmony_ci        p = pathbrowser.PathBrowserTreeItem()
797db96d56Sopenharmony_ci        self.assertEqual(p.GetText(), 'sys.path')
807db96d56Sopenharmony_ci        sub = p.GetSubList()
817db96d56Sopenharmony_ci        self.assertEqual(len(sub), len(sys.path))
827db96d56Sopenharmony_ci        self.assertEqual(type(sub[0]), pathbrowser.DirBrowserTreeItem)
837db96d56Sopenharmony_ci
847db96d56Sopenharmony_ci
857db96d56Sopenharmony_ciif __name__ == '__main__':
867db96d56Sopenharmony_ci    unittest.main(verbosity=2, exit=False)
87