cpython/Lib/tkinter/test/test_tkinter/test_loadtk.py
Guilherme Polo 2a998fabec 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.
........
2009-06-21 17:40:07 +00:00

45 lines
1.4 KiB
Python

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)