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