]> granicus.if.org Git - python/commitdiff
Issue #5450: Moved tests involving loading tk from Lib/test/test_tcl to
authorGuilherme Polo <ggpolo@gmail.com>
Sun, 21 Jun 2009 17:22:50 +0000 (17:22 +0000)
committerGuilherme Polo <ggpolo@gmail.com>
Sun, 21 Jun 2009 17:22:50 +0000 (17:22 +0000)
Lib/lib-tk/test/test_tkinter/test_loadtk in order to follow the behaviour of
test_ttkguionly.

Lib/lib-tk/test/test_tkinter/test_loadtk.py [new file with mode: 0644]
Lib/test/test_tcl.py
Misc/NEWS

diff --git a/Lib/lib-tk/test/test_tkinter/test_loadtk.py b/Lib/lib-tk/test/test_tkinter/test_loadtk.py
new file mode 100644 (file)
index 0000000..32c640d
--- /dev/null
@@ -0,0 +1,45 @@
+import os
+import sys
+import unittest
+from test import test_support
+from Tkinter import Tcl, TclError
+
+test_support.requires('gui')
+
+class TkLoadTest(unittest.TestCase):
+
+    @unittest.skipIf('DISPLAY' not in os.environ, 'No $DISPLAY set.')
+    def testLoadTk(self):
+        tcl = Tcl()
+        self.assertRaises(TclError,tcl.winfo_geometry)
+        tcl.loadtk()
+        self.assertEqual('1x1+0+0', tcl.winfo_geometry())
+        tcl.destroy()
+
+    def testLoadTkFailure(self):
+        old_display = None
+        if sys.platform.startswith(('win', 'darwin', 'cygwin')):
+            # no failure possible on windows?
+
+            # XXX Maybe on tk older than 8.4.13 it would be possible,
+            # see tkinter.h.
+            return
+        with test_support.EnvironmentVarGuard() as env:
+            if 'DISPLAY' in os.environ:
+                del env['DISPLAY']
+                # on some platforms, deleting environment variables
+                # doesn't actually carry through to the process level
+                # because they don't support unsetenv
+                # If that's the case, abort.
+                display = os.popen('echo $DISPLAY').read().strip()
+                if display:
+                    return
+
+            tcl = Tcl()
+            self.assertRaises(TclError, tcl.winfo_geometry)
+            self.assertRaises(TclError, tcl.loadtk)
+
+tests_gui = (TkLoadTest, )
+
+if __name__ == "__main__":
+    test_support.run_unittest(*tests_gui)
index 5d16968fdd39f048f7e5bcf8afb8c97baa57ebd6..7057979dfe8d3b01cfe6b3ea5faf3aaf6e5e33c1 100644 (file)
@@ -127,37 +127,6 @@ class TclTest(unittest.TestCase):
         tcl = self.interp
         self.assertRaises(TclError,tcl.eval,'package require DNE')
 
-    def testLoadTk(self):
-        import os
-        if 'DISPLAY' not in os.environ:
-            # skipping test of clean upgradeability
-            return
-        tcl = Tcl()
-        self.assertRaises(TclError,tcl.winfo_geometry)
-        tcl.loadtk()
-        self.assertEqual('1x1+0+0', tcl.winfo_geometry())
-        tcl.destroy()
-
-    def testLoadTkFailure(self):
-        import os
-        old_display = None
-        import sys
-        if sys.platform.startswith(('win', 'darwin', 'cygwin')):
-            return  # no failure possible on windows?
-        with test_support.EnvironmentVarGuard() as env:
-            if 'DISPLAY' in os.environ:
-                del env['DISPLAY']
-                # on some platforms, deleting environment variables
-                # doesn't actually carry through to the process level
-                # because they don't support unsetenv
-                # If that's the case, abort.
-                display = os.popen('echo $DISPLAY').read().strip()
-                if display:
-                    return
-
-            tcl = Tcl()
-            self.assertRaises(TclError, tcl.winfo_geometry)
-            self.assertRaises(TclError, tcl.loadtk)
 
 def test_main():
     test_support.run_unittest(TclTest, TkinterTest)
index 958131338e23d85df8fbb105f59a612a56a32aa2..86666ffaa2caa781a924fbaf200a7b88e8ed7021 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -1152,6 +1152,11 @@ Extension Modules
 Tests
 -----
 
+- Issue #5450: Moved tests involving loading tk from Lib/test/test_tcl to
+  Lib/lib-tk/test/test_tkinter/test_loadtk. With this, these tests demonstrate
+  the same behaviour as test_ttkguionly (and now also test_tk) which is to
+  skip the tests if DISPLAY is defined but can't be used.
+
 - Issue #6152: New option '-j'/'--multiprocess' for regrtest allows running
   regression tests in parallel, shortening the total runtime.