test_multicall.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. "Test multicall, coverage 33%."
  2. from idlelib import multicall
  3. import unittest
  4. from test.support import requires
  5. from tkinter import Tk, Text
  6. class MultiCallTest(unittest.TestCase):
  7. @classmethod
  8. def setUpClass(cls):
  9. requires('gui')
  10. cls.root = Tk()
  11. cls.root.withdraw()
  12. cls.mc = multicall.MultiCallCreator(Text)
  13. @classmethod
  14. def tearDownClass(cls):
  15. del cls.mc
  16. cls.root.update_idletasks()
  17. ## for id in cls.root.tk.call('after', 'info'):
  18. ## cls.root.after_cancel(id) # Need for EditorWindow.
  19. cls.root.destroy()
  20. del cls.root
  21. def test_creator(self):
  22. mc = self.mc
  23. self.assertIs(multicall._multicall_dict[Text], mc)
  24. self.assertTrue(issubclass(mc, Text))
  25. mc2 = multicall.MultiCallCreator(Text)
  26. self.assertIs(mc, mc2)
  27. def test_init(self):
  28. mctext = self.mc(self.root)
  29. self.assertIsInstance(mctext._MultiCall__binders, list)
  30. def test_yview(self):
  31. # Added for tree.wheel_event
  32. # (it depends on yview to not be overridden)
  33. mc = self.mc
  34. self.assertIs(mc.yview, Text.yview)
  35. mctext = self.mc(self.root)
  36. self.assertIs(mctext.yview.__func__, Text.yview)
  37. if __name__ == '__main__':
  38. unittest.main(verbosity=2)