mirror of https://github.com/python/cpython.git
Merged revisions 69460,69467,69470 via svnmerge from
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) ........
This commit is contained in:
parent
87ec0855c6
commit
a91790a5b0
|
@ -1075,6 +1075,7 @@ def printlist(x, width=70, indent=4):
|
|||
test_pty
|
||||
test_socketserver
|
||||
test_tcl
|
||||
test_tk
|
||||
test_ttk_guionly
|
||||
test_ttk_textonly
|
||||
test_timeout
|
||||
|
@ -1092,6 +1093,7 @@ def printlist(x, width=70, indent=4):
|
|||
test_kqueue
|
||||
test_ossaudiodev
|
||||
test_tcl
|
||||
test_tk
|
||||
test_ttk_guionly
|
||||
test_ttk_textonly
|
||||
test_zipimport
|
||||
|
@ -1109,6 +1111,7 @@ def printlist(x, width=70, indent=4):
|
|||
test_ossaudiodev
|
||||
test_pep277
|
||||
test_tcl
|
||||
test_tk
|
||||
test_ttk_guionly
|
||||
test_ttk_textonly
|
||||
test_multiprocessing
|
||||
|
@ -1125,6 +1128,7 @@ def printlist(x, width=70, indent=4):
|
|||
test_ossaudiodev
|
||||
test_pep277
|
||||
test_tcl
|
||||
test_tk
|
||||
test_ttk_guionly
|
||||
test_ttk_textonly
|
||||
test_multiprocessing
|
||||
|
|
|
@ -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)
|
|
@ -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)
|
|
@ -23,7 +23,7 @@
|
|||
# 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 @@ def __init__(self, master, widgetname, kw=None):
|
|||
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)
|
||||
|
|
Loading…
Reference in New Issue