diff options
author | mlouielu <git@louie.lu> | 2017-05-21 22:19:35 (GMT) |
---|---|---|
committer | terryjreedy <tjreedy@udel.edu> | 2017-05-21 22:19:35 (GMT) |
commit | 054e09147aaa6f61aca6cd40c7bf7ce6dc54a04b (patch) | |
tree | 0f3866748980df2c3e3a6ca3827461e9c3097c0a /Lib/idlelib/idle_test | |
parent | 817554715b5578b0bac5c35e6ec9a1abd8649e53 (diff) | |
download | cpython-054e09147aaa6f61aca6cd40c7bf7ce6dc54a04b.zip cpython-054e09147aaa6f61aca6cd40c7bf7ce6dc54a04b.tar.gz cpython-054e09147aaa6f61aca6cd40c7bf7ce6dc54a04b.tar.bz2 |
bpo-30290: IDLE: Add more tests for help_about dialog (#1697)
Increases coverage to 99%
Diffstat (limited to 'Lib/idlelib/idle_test')
-rw-r--r-- | Lib/idlelib/idle_test/test_help_about.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Lib/idlelib/idle_test/test_help_about.py b/Lib/idlelib/idle_test/test_help_about.py index 843efb9..031c7ff 100644 --- a/Lib/idlelib/idle_test/test_help_about.py +++ b/Lib/idlelib/idle_test/test_help_about.py @@ -6,8 +6,12 @@ from idlelib import help_about from idlelib import textview from idlelib.idle_test.mock_idle import Func from idlelib.idle_test.mock_tk import Mbox_func +from test.support import requires, findfile +requires('gui') +from tkinter import Tk import unittest + About = help_about.AboutDialog class Dummy_about_dialog(): # Dummy class for testing file display functions. @@ -16,6 +20,65 @@ class Dummy_about_dialog(): idle_news = About.ShowIDLENEWS # Called by the above display_file_text = About.display_file_text + _utest = True + + +class AboutDialogTest(unittest.TestCase): + @classmethod + def setUpClass(cls): + cls.root = Tk() + cls.root.withdraw() + cls.dialog = About(cls.root, 'About IDLE', _utest=True) + + @classmethod + def tearDownClass(cls): + del cls.dialog + cls.root.update_idletasks() + cls.root.destroy() + del cls.root + + def tearDown(self): + if self.dialog._current_textview: + self.dialog._current_textview.destroy() + + def test_dialog_title(self): + """This will test about dialog title""" + self.assertEqual(self.dialog.title(), 'About IDLE') + + def test_printer_dialog(self): + """This will test dialog which using printer""" + buttons = [(license, self.dialog.buttonLicense), + (copyright, self.dialog.buttonCopyright), + (credits, self.dialog.buttonCredits)] + + for printer, button in buttons: + dialog = self.dialog + printer._Printer__setup() + button.invoke() + self.assertEqual(printer._Printer__lines[0], + dialog._current_textview.textView.get('1.0', '1.end')) + self.assertEqual(printer._Printer__lines[1], + dialog._current_textview.textView.get('2.0', '2.end')) + + dialog._current_textview.destroy() + + def test_file_dialog(self): + """This will test dialog which using file""" + buttons = [('README.txt', self.dialog.idle_about_b), + ('NEWS.txt', self.dialog.idle_news_b), + ('CREDITS.txt', self.dialog.idle_credits_b)] + + for filename, button in buttons: + dialog = self.dialog + button.invoke() + fn = findfile(filename, subdir='idlelib') + with open(fn) as f: + self.assertEqual(f.readline().strip(), + dialog._current_textview.textView.get('1.0', '1.end')) + f.readline() + self.assertEqual(f.readline().strip(), + dialog._current_textview.textView.get('3.0', '3.end')) + dialog._current_textview.destroy() class DisplayFileTest(unittest.TestCase): |