summaryrefslogtreecommitdiff
path: root/src/python/stdlib/lib-tk/test/test_tkinter
diff options
context:
space:
mode:
Diffstat (limited to 'src/python/stdlib/lib-tk/test/test_tkinter')
-rw-r--r--src/python/stdlib/lib-tk/test/test_tkinter/__init__.py0
-rw-r--r--src/python/stdlib/lib-tk/test/test_tkinter/test_loadtk.py45
-rw-r--r--src/python/stdlib/lib-tk/test/test_tkinter/test_text.py39
3 files changed, 84 insertions, 0 deletions
diff --git a/src/python/stdlib/lib-tk/test/test_tkinter/__init__.py b/src/python/stdlib/lib-tk/test/test_tkinter/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/python/stdlib/lib-tk/test/test_tkinter/__init__.py
diff --git a/src/python/stdlib/lib-tk/test/test_tkinter/test_loadtk.py b/src/python/stdlib/lib-tk/test/test_tkinter/test_loadtk.py
new file mode 100644
index 0000000..32c640d
--- /dev/null
+++ b/src/python/stdlib/lib-tk/test/test_tkinter/test_loadtk.py
@@ -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)
diff --git a/src/python/stdlib/lib-tk/test/test_tkinter/test_text.py b/src/python/stdlib/lib-tk/test/test_tkinter/test_text.py
new file mode 100644
index 0000000..e6c08be
--- /dev/null
+++ b/src/python/stdlib/lib-tk/test/test_tkinter/test_text.py
@@ -0,0 +1,39 @@
+import unittest
+import Tkinter
+from test.test_support import requires, run_unittest
+from ttk import setup_master
+
+requires('gui')
+
+class TextTest(unittest.TestCase):
+
+ def setUp(self):
+ self.root = setup_master()
+ self.text = Tkinter.Text(self.root)
+
+ def tearDown(self):
+ self.text.destroy()
+
+
+ def test_search(self):
+ text = self.text
+
+ # pattern and index are obligatory arguments.
+ self.assertRaises(Tkinter.TclError, text.search, None, '1.0')
+ self.assertRaises(Tkinter.TclError, text.search, 'a', None)
+ self.assertRaises(Tkinter.TclError, text.search, None, None)
+
+ # Invalid text index.
+ self.assertRaises(Tkinter.TclError, text.search, '', 0)
+
+ # Check if we are getting the indices as strings -- you are likely
+ # to get Tcl_Obj under Tk 8.5 if Tkinter doesn't convert it.
+ text.insert('1.0', 'hi-test')
+ self.assertEqual(text.search('-test', '1.0', 'end'), '1.2')
+ self.assertEqual(text.search('test', '1.0', 'end'), '1.3')
+
+
+tests_gui = (TextTest, )
+
+if __name__ == "__main__":
+ run_unittest(*tests_gui)