From: Benjamin Peterson Date: Sun, 8 Jun 2014 00:57:36 +0000 (-0700) Subject: backed out 86ba41b7bb46 (#18910) for test breakage X-Git-Tag: v2.7.8~37^2~32 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7e1eb5c713c6b14e5c71155f206d37cc16541300;p=python backed out 86ba41b7bb46 (#18910) for test breakage --- diff --git a/Lib/idlelib/idle_test/test_textview.py b/Lib/idlelib/idle_test/test_textview.py index b6b34fe9be..9b25ecdbef 100644 --- a/Lib/idlelib/idle_test/test_textview.py +++ b/Lib/idlelib/idle_test/test_textview.py @@ -1,60 +1,58 @@ -'''Test the functions and main class method of textView.py. - -Since all methods and functions create (or destroy) a TextViewer, which -is a widget containing multiple widgets, all tests must be gui tests. -Using mock Text would not change this. Other mocks are used to retrieve -information about calls. - -The coverage is essentially 100%. -''' -from test.test_support import requires -requires('gui') +'''Test the functions and main class method of textView.py.''' import unittest import os +from test.test_support import requires from Tkinter import Tk, Text, TclError from idlelib import textView as tv from idlelib.idle_test.mock_idle import Func from idlelib.idle_test.mock_tk import Mbox -def setUpModule(): - global root - root = Tk() - -def tearDownModule(): - global root - root.destroy() - del root +orig_mbox = tv.tkMessageBox +class textviewClassTest(unittest.TestCase): -class TV(tv.TextViewer): # used by TextViewTest - transient = Func() - grab_set = Func() - wait_window = Func() + @classmethod + def setUpClass(cls): + requires('gui') + cls.root = Tk() + cls.TV = TV = tv.TextViewer + TV.transient = Func() + TV.grab_set = Func() + TV.wait_window = Func() -class TextViewTest(unittest.TestCase): + @classmethod + def tearDownClass(cls): + cls.root.destroy() + TV = cls.TV + del cls.root, cls.TV + del TV.transient, TV.grab_set, TV.wait_window def setUp(self): + TV = self.TV TV.transient.__init__() TV.grab_set.__init__() TV.wait_window.__init__() + def test_init_modal(self): - view = TV(root, 'Title', 'test text') + TV = self.TV + view = TV(self.root, 'Title', 'test text') self.assertTrue(TV.transient.called) self.assertTrue(TV.grab_set.called) self.assertTrue(TV.wait_window.called) view.Ok() def test_init_nonmodal(self): - view = TV(root, 'Title', 'test text', modal=False) + TV = self.TV + view = TV(self.root, 'Title', 'test text', modal=False) self.assertFalse(TV.transient.called) self.assertFalse(TV.grab_set.called) self.assertFalse(TV.wait_window.called) view.Ok() def test_ok(self): - view = TV(root, 'Title', 'test text', modal=False) + view = self.TV(self.root, 'Title', 'test text', modal=False) view.destroy = Func() view.Ok() self.assertTrue(view.destroy.called) @@ -66,32 +64,35 @@ class textviewTest(unittest.TestCase): @classmethod def setUpClass(cls): - cls.orig_mbox = tv.tkMessageBox + requires('gui') + cls.root = Tk() tv.tkMessageBox = Mbox @classmethod def tearDownClass(cls): - tv.tkMessageBox = cls.orig_mbox - del cls.orig_mbox + cls.root.destroy() + del cls.root + tv.tkMessageBox = orig_mbox def test_view_text(self): # If modal True, tkinter will error with 'can't invoke "event" command' - view = tv.view_text(root, 'Title', 'test text', modal=False) + view = tv.view_text(self.root, 'Title', 'test text', modal=False) self.assertIsInstance(view, tv.TextViewer) def test_view_file(self): test_dir = os.path.dirname(__file__) testfile = os.path.join(test_dir, 'test_textview.py') - view = tv.view_file(root, 'Title', testfile, modal=False) + view = tv.view_file(self.root, 'Title', testfile, modal=False) self.assertIsInstance(view, tv.TextViewer) self.assertIn('Test', view.textView.get('1.0', '1.end')) view.Ok() # Mock messagebox will be used and view_file will not return anything testfile = os.path.join(test_dir, '../notthere.py') - view = tv.view_file(root, 'Title', testfile, modal=False) + view = tv.view_file(self.root, 'Title', testfile, modal=False) self.assertIsNone(view) - if __name__ == '__main__': - unittest.main(verbosity=2) + unittest.main(verbosity=2, exit=False) + from idlelib.idle_test.htest import run + run(TextViewer)