123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- "Test , coverage 17%."
- from idlelib import iomenu
- import unittest
- from test.support import requires
- from tkinter import Tk
- from idlelib.editor import EditorWindow
- from idlelib import util
- from idlelib.idle_test.mock_idle import Func
- # Fail if either tokenize.open and t.detect_encoding does not exist.
- # These are used in loadfile and encode.
- # Also used in pyshell.MI.execfile and runscript.tabnanny.
- from tokenize import open, detect_encoding
- # Remove when we have proper tests that use both.
- class IOBindingTest(unittest.TestCase):
- @classmethod
- def setUpClass(cls):
- requires('gui')
- cls.root = Tk()
- cls.root.withdraw()
- cls.editwin = EditorWindow(root=cls.root)
- cls.io = iomenu.IOBinding(cls.editwin)
- @classmethod
- def tearDownClass(cls):
- cls.io.close()
- cls.editwin._close()
- del cls.editwin
- 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):
- self.assertIs(self.io.editwin, self.editwin)
- def test_fixnewlines_end(self):
- eq = self.assertEqual
- io = self.io
- fix = io.fixnewlines
- text = io.editwin.text
- # Make the editor temporarily look like Shell.
- self.editwin.interp = None
- shelltext = '>>> if 1'
- self.editwin.get_prompt_text = Func(result=shelltext)
- eq(fix(), shelltext) # Get... call and '\n' not added.
- del self.editwin.interp, self.editwin.get_prompt_text
- text.insert(1.0, 'a')
- eq(fix(), 'a'+io.eol_convention)
- eq(text.get('1.0', 'end-1c'), 'a\n')
- eq(fix(), 'a'+io.eol_convention)
- def _extension_in_filetypes(extension):
- return any(
- f'*{extension}' in filetype_tuple[1]
- for filetype_tuple in iomenu.IOBinding.filetypes
- )
- class FiletypesTest(unittest.TestCase):
- def test_python_source_files(self):
- for extension in util.py_extensions:
- with self.subTest(extension=extension):
- self.assertTrue(
- _extension_in_filetypes(extension)
- )
- def test_text_files(self):
- self.assertTrue(_extension_in_filetypes('.txt'))
- def test_all_files(self):
- self.assertTrue(_extension_in_filetypes(''))
- if __name__ == '__main__':
- unittest.main(verbosity=2)
|