| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- "Test pyshell, coverage 12%."
- # Plus coverage of test_warning. Was 20% with test_openshell.
- from idlelib import pyshell
- import unittest
- from test.support import requires
- from tkinter import Tk
- class FunctionTest(unittest.TestCase):
- # Test stand-alone module level non-gui functions.
- def test_restart_line_wide(self):
- eq = self.assertEqual
- for file, mul, extra in (('', 22, ''), ('finame', 21, '=')):
- width = 60
- bar = mul * '='
- with self.subTest(file=file, bar=bar):
- file = file or 'Shell'
- line = pyshell.restart_line(width, file)
- eq(len(line), width)
- eq(line, f"{bar+extra} RESTART: {file} {bar}")
- def test_restart_line_narrow(self):
- expect, taglen = "= RESTART: Shell", 16
- for width in (taglen-1, taglen, taglen+1):
- with self.subTest(width=width):
- self.assertEqual(pyshell.restart_line(width, ''), expect)
- self.assertEqual(pyshell.restart_line(taglen+2, ''), expect+' =')
- class PyShellFileListTest(unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- requires('gui')
- cls.root = Tk()
- cls.root.withdraw()
- @classmethod
- def tearDownClass(cls):
- #cls.root.update_idletasks()
- ## for id in cls.root.tk.call('after', 'info'):
- ## cls.root.after_cancel(id) # Need for EditorWindow.
- cls.root.destroy()
- del cls.root
- def test_init(self):
- psfl = pyshell.PyShellFileList(self.root)
- self.assertEqual(psfl.EditorWindow, pyshell.PyShellEditorWindow)
- self.assertIsNone(psfl.pyshell)
- # The following sometimes causes 'invalid command name "109734456recolorize"'.
- # Uncommenting after_cancel above prevents this, but results in
- # TclError: bad window path name ".!listedtoplevel.!frame.text"
- # which is normally prevented by after_cancel.
- ## def test_openshell(self):
- ## pyshell.use_subprocess = False
- ## ps = pyshell.PyShellFileList(self.root).open_shell()
- ## self.assertIsInstance(ps, pyshell.PyShell)
- if __name__ == '__main__':
- unittest.main(verbosity=2)
|