[Python-checkins] cpython (2.7): Issue #21982: Add minimal unittest for configDialog with 46% coverage.

terry.reedy python-checkins at python.org
Tue Jul 15 05:08:33 CEST 2014


http://hg.python.org/cpython/rev/af1351800c7a
changeset:   91683:af1351800c7a
branch:      2.7
parent:      91674:1c42f1ff2439
user:        Terry Jan Reedy <tjreedy at udel.edu>
date:        Mon Jul 14 23:07:21 2014 -0400
summary:
  Issue #21982: Add minimal unittest for configDialog with 46% coverage.

files:
  Lib/idlelib/configDialog.py                |  12 ++-
  Lib/idlelib/idle_test/test_configdialog.py |  32 ++++++++++
  2 files changed, 41 insertions(+), 3 deletions(-)


diff --git a/Lib/idlelib/configDialog.py b/Lib/idlelib/configDialog.py
--- a/Lib/idlelib/configDialog.py
+++ b/Lib/idlelib/configDialog.py
@@ -23,9 +23,10 @@
 
 class ConfigDialog(Toplevel):
 
-    def __init__(self,parent,title,_htest=False):
+    def __init__(self, parent, title, _htest=False, _utest=False):
         """
         _htest - bool, change box location when running htest
+        _utest - bool, don't wait_window when running unittest
         """
         Toplevel.__init__(self, parent)
         self.wm_withdraw()
@@ -68,8 +69,9 @@
         self.LoadConfigs()
         self.AttachVarCallbacks() #avoid callbacks during LoadConfigs
 
-        self.wm_deiconify()
-        self.wait_window()
+        if not _utest:
+            self.wm_deiconify()
+            self.wait_window()
 
     def CreateWidgets(self):
         self.tabPages = TabbedPageSet(self,
@@ -1156,5 +1158,9 @@
         pass
 
 if __name__ == '__main__':
+    import unittest
+    unittest.main('idlelib.idle_test.test_configdialog',
+                  verbosity=2, exit=False)
+
     from idlelib.idle_test.htest import run
     run(ConfigDialog)
diff --git a/Lib/idlelib/idle_test/test_configdialog.py b/Lib/idlelib/idle_test/test_configdialog.py
new file mode 100644
--- /dev/null
+++ b/Lib/idlelib/idle_test/test_configdialog.py
@@ -0,0 +1,32 @@
+'''Unittests for idlelib/configHandler.py
+
+Coverage: 46% just by creating dialog. The other half is change code.
+
+'''
+import unittest
+from test.test_support import requires
+from Tkinter import Tk
+from idlelib.configDialog import ConfigDialog
+from idlelib.macosxSupport import _initializeTkVariantTests
+
+
+class ConfigDialogTest(unittest.TestCase):
+
+    @classmethod
+    def setUpClass(cls):
+        requires('gui')
+        cls.root = Tk()
+        _initializeTkVariantTests(cls.root)
+
+    @classmethod
+    def tearDownClass(cls):
+        cls.root.destroy()
+        del cls.root
+
+    def test_dialog(self):
+        d=ConfigDialog(self.root, 'Test', _utest=True)
+        d.destroy()
+
+
+if __name__ == '__main__':
+    unittest.main(verbosity=2)

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list