test_iomenu.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. "Test , coverage 17%."
  2. from idlelib import iomenu
  3. import unittest
  4. from test.support import requires
  5. from tkinter import Tk
  6. from idlelib.editor import EditorWindow
  7. class IOBindingTest(unittest.TestCase):
  8. @classmethod
  9. def setUpClass(cls):
  10. requires('gui')
  11. cls.root = Tk()
  12. cls.root.withdraw()
  13. cls.editwin = EditorWindow(root=cls.root)
  14. cls.io = iomenu.IOBinding(cls.editwin)
  15. @classmethod
  16. def tearDownClass(cls):
  17. cls.io.close()
  18. cls.editwin._close()
  19. del cls.editwin
  20. cls.root.update_idletasks()
  21. for id in cls.root.tk.call('after', 'info'):
  22. cls.root.after_cancel(id) # Need for EditorWindow.
  23. cls.root.destroy()
  24. del cls.root
  25. def test_init(self):
  26. self.assertIs(self.io.editwin, self.editwin)
  27. def test_fixnewlines_end(self):
  28. eq = self.assertEqual
  29. io = self.io
  30. fix = io.fixnewlines
  31. text = io.editwin.text
  32. self.editwin.interp = None
  33. eq(fix(), '')
  34. del self.editwin.interp
  35. text.insert(1.0, 'a')
  36. eq(fix(), 'a'+io.eol_convention)
  37. eq(text.get('1.0', 'end-1c'), 'a\n')
  38. eq(fix(), 'a'+io.eol_convention)
  39. if __name__ == '__main__':
  40. unittest.main(verbosity=2)