[Python-checkins] bpo-30981: IDLE: Augment one configdialog font page test (#2810)

Terry Jan Reedy webhook-mailer at python.org
Sat Jul 22 00:36:15 EDT 2017


https://github.com/python/cpython/commit/616ecf18f3aacbd8d172e01673877b22fe946e54
commit: 616ecf18f3aacbd8d172e01673877b22fe946e54
branch: master
author: Terry Jan Reedy <tjreedy at udel.edu>
committer: GitHub <noreply at github.com>
date: 2017-07-22T00:36:13-04:00
summary:

bpo-30981: IDLE: Augment one configdialog font page test (#2810)

Remove broken test of bold_toggle and test it along with its command, set_samples.
This has been incorporated into 3.6 backport PR-2796.

files:
M Lib/idlelib/configdialog.py
M Lib/idlelib/idle_test/test_configdialog.py

diff --git a/Lib/idlelib/configdialog.py b/Lib/idlelib/configdialog.py
index 59822fc8b37..c1db76817c1 100644
--- a/Lib/idlelib/configdialog.py
+++ b/Lib/idlelib/configdialog.py
@@ -153,6 +153,14 @@ def create_action_buttons(self):
     def create_page_font_tab(self):
         """Return frame of widgets for Font/Tabs tab.
 
+        Enable users to provisionally change font face, size, or
+        boldness and to see the consequence of proposed choices.  Each
+        action set 3 options in changes structuree and changes the
+        corresponding aspect of the font sample on this page and
+        highlight sample on highlight page.
+
+        Enable users to change spaces entered for indent tabs.
+
         Tk Variables:
             font_name: Font face.
             font_size: Font size.
@@ -161,7 +169,7 @@ def create_page_font_tab(self):
             space_num: Indentation width.
 
         Data Attribute:
-            edit_font: Font widget with default font name, size, and weight.
+            edit_font: Font with default font name, size, and weight.
 
         Methods:
             load_font_cfg: Set vars and fontlist.
diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py
index d3002a99161..171fa3d309c 100644
--- a/Lib/idlelib/idle_test/test_configdialog.py
+++ b/Lib/idlelib/idle_test/test_configdialog.py
@@ -45,14 +45,17 @@ def tearDownModule():
     del root
 
 
- at unittest.skip("skip failing tests until fixed")
 class FontTabTest(unittest.TestCase):
+    "Test that font widget enable users to make font changes."
+
 
     def setUp(self):
         changes.clear()
 
     def test_font_set(self):
-        # Set values guaranteed not to be defaults.
+        # Test that setting a font Variable results in 3 provisional
+        # change entries. Use values sure to not be defaults.
+        # Other font tests verify that user actions set Variables.
         default_font = idleConf.GetFont(root, 'main', 'EditorWindow')
         default_size = str(default_font[1])
         default_bold = default_font[2] == 'bold'
@@ -74,22 +77,29 @@ def test_font_set(self):
                                      'font-bold': str(not default_bold)}}
         self.assertEqual(mainpage, expected)
 
-    def test_bold_toggle(self):
-        d = dialog
-        d.set_samples = Func()
-        d.bold_toggle.toggle()
-        self.assertEqual(d.set_samples.called, 1)
-        del d.set_samples
-
-    def test_set_samples(self):
+    def test_set_samples_bold_toggle(self):
+        # Set up.
         d = dialog
-        d.font_sample, d.highlight_sample = {}, {}
+        d.font_sample, d.highlight_sample = {}, {}  # Must undo this.
         d.font_name.set('test')
         d.font_size.set('5')
         d.font_bold.set(1)
+        expected0 = {'font': ('test', '5', 'normal')}
+        expected1 = {'font': ('test', '5', 'bold')}
+
+        # Test set_samples.
         d.set_samples()
-        expected = {'font': ('test', '5', 'bold')}
-        self.assertTrue(d.font_sample == d.highlight_sample == expected)
+        self.assertTrue(d.font_sample == d.highlight_sample == expected1)
+
+        # Test bold_toggle.
+        d.bold_toggle.invoke()
+        self.assertFalse(d.font_bold.get())
+        self.assertTrue(d.font_sample == d.highlight_sample == expected0)
+        d.bold_toggle.invoke()
+        self.assertTrue(d.font_bold.get())
+        self.assertTrue(d.font_sample == d.highlight_sample == expected1)
+
+        #  Clean up.
         del d.font_sample, d.highlight_sample
 
     def test_tabspace(self):



More information about the Python-checkins mailing list