From 2a998fabec10f4b0dad9e94d781fead870053105 Mon Sep 17 00:00:00 2001 From: Guilherme Polo Date: Sun, 21 Jun 2009 17:40:07 +0000 Subject: Merged revisions 73495 via svnmerge from svn+ssh://pythondev/python/trunk ........ r73495 | guilherme.polo | 2009-06-21 14:22:50 -0300 (Sun, 21 Jun 2009) | 4 lines Issue #5450: Moved tests involving loading tk from Lib/test/test_tcl to Lib/lib-tk/test/test_tkinter/test_loadtk in order to follow the behaviour of test_ttkguionly. ........ --- Lib/test/test_tcl.py | 31 ------------------- Lib/tkinter/test/test_tkinter/test_loadtk.py | 45 ++++++++++++++++++++++++++++ Misc/NEWS | 5 ++++ 3 files changed, 50 insertions(+), 31 deletions(-) create mode 100644 Lib/tkinter/test/test_tkinter/test_loadtk.py diff --git a/Lib/test/test_tcl.py b/Lib/test/test_tcl.py index cfff971..eebdd25 100644 --- a/Lib/test/test_tcl.py +++ b/Lib/test/test_tcl.py @@ -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 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(): support.run_unittest(TclTest, TkinterTest) diff --git a/Lib/tkinter/test/test_tkinter/test_loadtk.py b/Lib/tkinter/test/test_tkinter/test_loadtk.py new file mode 100644 index 0000000..8f1a085 --- /dev/null +++ b/Lib/tkinter/test/test_tkinter/test_loadtk.py @@ -0,0 +1,45 @@ +import os +import sys +import unittest +import test.support as 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) diff --git a/Misc/NEWS b/Misc/NEWS index 9adcfdf..7ecb6d7 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -1337,6 +1337,11 @@ Extension Modules Tests ----- +- Issue #5450: Moved tests involving loading tk from Lib/test/test_tcl to + Lib/tkinter/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. + - regrtest no longer treats ImportError as equivalent to SkipTest. Imports that should cause a test to be skipped are now done using import_module from test support, which does the conversion. -- cgit v0.12