]> granicus.if.org Git - python/commitdiff
Merged revisions 69460,69467,69470 via svnmerge from
authorGuilherme Polo <ggpolo@gmail.com>
Mon, 9 Feb 2009 20:40:42 +0000 (20:40 +0000)
committerGuilherme Polo <ggpolo@gmail.com>
Mon, 9 Feb 2009 20:40:42 +0000 (20:40 +0000)
svn+ssh://pythondev/python/trunk

........
  r69460 | guilherme.polo | 2009-02-09 14:09:17 -0200 (Mon, 09 Feb 2009) | 1 line

  Turned setup_master public
........
  r69467 | guilherme.polo | 2009-02-09 17:21:21 -0200 (Mon, 09 Feb 2009) | 2 lines

  Some tests for Tkinter.Text.search
........
  r69470 | guilherme.polo | 2009-02-09 17:57:04 -0200 (Mon, 09 Feb 2009) | 1 line

  Checking for tk availability before continuing (basically the same that is done in test_ttk_guionly)
........

Lib/test/regrtest.py
Lib/test/test_tk.py [new file with mode: 0644]
Lib/tkinter/test/test_tkinter/__init__.py [new file with mode: 0644]
Lib/tkinter/test/test_tkinter/test_text.py [new file with mode: 0644]
Lib/tkinter/ttk.py

index 8ab0e4803cab69e15bdb335dfe70ac507ac35eae..203bd955f5fb6299451d499f97b7f9737f5810ec 100755 (executable)
@@ -1075,6 +1075,7 @@ _expectations = {
         test_pty
         test_socketserver
         test_tcl
+        test_tk
         test_ttk_guionly
         test_ttk_textonly
         test_timeout
@@ -1092,6 +1093,7 @@ _expectations = {
         test_kqueue
         test_ossaudiodev
         test_tcl
+        test_tk
         test_ttk_guionly
         test_ttk_textonly
         test_zipimport
@@ -1109,6 +1111,7 @@ _expectations = {
         test_ossaudiodev
         test_pep277
         test_tcl
+        test_tk
         test_ttk_guionly
         test_ttk_textonly
         test_multiprocessing
@@ -1125,6 +1128,7 @@ _expectations = {
         test_ossaudiodev
         test_pep277
         test_tcl
+        test_tk
         test_ttk_guionly
         test_ttk_textonly
         test_multiprocessing
diff --git a/Lib/test/test_tk.py b/Lib/test/test_tk.py
new file mode 100644 (file)
index 0000000..8b21a0f
--- /dev/null
@@ -0,0 +1,22 @@
+import tkinter
+from tkinter.test import runtktests
+from test import support
+
+try:
+    tkinter.Button()
+except tkinter.TclError as msg:
+    # assuming tk is not available
+    raise support.TestSkipped("tk not available: %s" % msg)
+
+def test_main(enable_gui=False):
+    if enable_gui:
+        if support.use_resources is None:
+            support.use_resources = ['gui']
+        elif 'gui' not in support.use_resources:
+            support.use_resources.append('gui')
+
+    support.run_unittest(
+            *runtktests.get_tests(text=False, packages=['test_tkinter']))
+
+if __name__ == '__main__':
+    test_main(enable_gui=True)
diff --git a/Lib/tkinter/test/test_tkinter/__init__.py b/Lib/tkinter/test/test_tkinter/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/Lib/tkinter/test/test_tkinter/test_text.py b/Lib/tkinter/test/test_tkinter/test_text.py
new file mode 100644 (file)
index 0000000..fffd455
--- /dev/null
@@ -0,0 +1,39 @@
+import unittest
+import tkinter
+from test.support import requires, run_unittest
+from tkinter.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.failUnlessRaises(tkinter.TclError, text.search, None, '1.0')
+        self.failUnlessRaises(tkinter.TclError, text.search, 'a', None)
+        self.failUnlessRaises(tkinter.TclError, text.search, None, None)
+
+        # Invalid text index.
+        self.failUnlessRaises(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.failUnlessEqual(text.search('-test', '1.0', 'end'), '1.2')
+        self.failUnlessEqual(text.search('test', '1.0', 'end'), '1.3')
+
+
+tests_gui = (TextTest, )
+
+if __name__ == "__main__":
+    run_unittest(*tests_gui)
index 89a9bf1368600205b3004679b301f6af36abccbf..108a65f690c8d4e86c63a3d55aed91277961930a 100644 (file)
@@ -23,7 +23,7 @@ __all__ = ["Button", "Checkbutton", "Combobox", "Entry", "Frame", "Label",
            # Extensions
            "LabeledScale", "OptionMenu",
            # functions
-           "tclobjs_to_py"]
+           "tclobjs_to_py", "setup_master"]
 
 import tkinter
 
@@ -47,24 +47,6 @@ def _load_tile(master):
         master.tk.eval('package require tile') # TclError may be raised here
         master._tile_loaded = True
 
-
-def _setup_master(master=None):
-    """If master is not None, itself is returned. If master is None,
-    the default master is returned if there is one, otherwise a new
-    master is created and returned.
-
-    If it is not allowed to use the default root and master is None,
-    RuntimeError is raised."""
-    if master is None:
-        if tkinter._support_default_root:
-            master = tkinter._default_root or tkinter.Tk()
-        else:
-            raise RuntimeError(
-                    "No master specified and tkinter is "
-                    "configured to not support default root")
-    return master
-
-
 def _format_optdict(optdict, script=False, ignore=None):
     """Formats optdict to a tuple to pass it to tk.call.
 
@@ -367,6 +349,22 @@ def tclobjs_to_py(adict):
 
     return adict
 
+def setup_master(master=None):
+    """If master is not None, itself is returned. If master is None,
+    the default master is returned if there is one, otherwise a new
+    master is created and returned.
+
+    If it is not allowed to use the default root and master is None,
+    RuntimeError is raised."""
+    if master is None:
+        if tkinter._support_default_root:
+            master = tkinter._default_root or tkinter.Tk()
+        else:
+            raise RuntimeError(
+                    "No master specified and tkinter is "
+                    "configured to not support default root")
+    return master
+
 
 class Style(object):
     """Manipulate style database."""
@@ -374,7 +372,7 @@ class Style(object):
     _name = "ttk::style"
 
     def __init__(self, master=None):
-        master = _setup_master(master)
+        master = setup_master(master)
 
         if not getattr(master, '_tile_loaded', False):
             # Load tile now, if needed
@@ -555,7 +553,7 @@ class Widget(tkinter.Widget):
             active, disabled, focus, pressed, selected, background,
             readonly, alternate, invalid
         """
-        master = _setup_master(master)
+        master = setup_master(master)
         if not getattr(master, '_tile_loaded', False):
             # Load tile now, if needed
             _load_tile(master)