(root)/
Python-3.12.0/
Lib/
idlelib/
idle_test/
test_pathbrowser.py
       1  "Test pathbrowser, coverage 95%."
       2  
       3  from idlelib import pathbrowser
       4  import unittest
       5  from test.support import requires
       6  from tkinter import Tk
       7  
       8  import os.path
       9  import pyclbr  # for _modules
      10  import sys  # for sys.path
      11  
      12  from idlelib.idle_test.mock_idle import Func
      13  import idlelib  # for __file__
      14  from idlelib import browser
      15  from idlelib.tree import TreeNode
      16  
      17  
      18  class ESC[4;38;5;81mPathBrowserTest(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
      19  
      20      @classmethod
      21      def setUpClass(cls):
      22          requires('gui')
      23          cls.root = Tk()
      24          cls.root.withdraw()
      25          cls.pb = pathbrowser.PathBrowser(cls.root, _utest=True)
      26  
      27      @classmethod
      28      def tearDownClass(cls):
      29          cls.pb.close()
      30          cls.root.update_idletasks()
      31          cls.root.destroy()
      32          del cls.root, cls.pb
      33  
      34      def test_init(self):
      35          pb = self.pb
      36          eq = self.assertEqual
      37          eq(pb.master, self.root)
      38          eq(pyclbr._modules, {})
      39          self.assertIsInstance(pb.node, TreeNode)
      40          self.assertIsNotNone(browser.file_open)
      41  
      42      def test_settitle(self):
      43          pb = self.pb
      44          self.assertEqual(pb.top.title(), 'Path Browser')
      45          self.assertEqual(pb.top.iconname(), 'Path Browser')
      46  
      47      def test_rootnode(self):
      48          pb = self.pb
      49          rn = pb.rootnode()
      50          self.assertIsInstance(rn, pathbrowser.PathBrowserTreeItem)
      51  
      52      def test_close(self):
      53          pb = self.pb
      54          pb.top.destroy = Func()
      55          pb.node.destroy = Func()
      56          pb.close()
      57          self.assertTrue(pb.top.destroy.called)
      58          self.assertTrue(pb.node.destroy.called)
      59          del pb.top.destroy, pb.node.destroy
      60  
      61  
      62  class ESC[4;38;5;81mDirBrowserTreeItemTest(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
      63  
      64      def test_DirBrowserTreeItem(self):
      65          # Issue16226 - make sure that getting a sublist works
      66          d = pathbrowser.DirBrowserTreeItem('')
      67          d.GetSubList()
      68          self.assertEqual('', d.GetText())
      69  
      70          dir = os.path.split(os.path.abspath(idlelib.__file__))[0]
      71          self.assertEqual(d.ispackagedir(dir), True)
      72          self.assertEqual(d.ispackagedir(dir + '/Icons'), False)
      73  
      74  
      75  class ESC[4;38;5;81mPathBrowserTreeItemTest(ESC[4;38;5;149munittestESC[4;38;5;149m.ESC[4;38;5;149mTestCase):
      76  
      77      def test_PathBrowserTreeItem(self):
      78          p = pathbrowser.PathBrowserTreeItem()
      79          self.assertEqual(p.GetText(), 'sys.path')
      80          sub = p.GetSubList()
      81          self.assertEqual(len(sub), len(sys.path))
      82          self.assertEqual(type(sub[0]), pathbrowser.DirBrowserTreeItem)
      83  
      84  
      85  if __name__ == '__main__':
      86      unittest.main(verbosity=2, exit=False)