mirror of
https://github.com/python/cpython.git
synced 2025-11-17 01:25:57 +00:00
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
5 changed files with 84 additions and 21 deletions
|
|
@ -1075,6 +1075,7 @@ _expectations = {
|
||||||
test_pty
|
test_pty
|
||||||
test_socketserver
|
test_socketserver
|
||||||
test_tcl
|
test_tcl
|
||||||
|
test_tk
|
||||||
test_ttk_guionly
|
test_ttk_guionly
|
||||||
test_ttk_textonly
|
test_ttk_textonly
|
||||||
test_timeout
|
test_timeout
|
||||||
|
|
@ -1092,6 +1093,7 @@ _expectations = {
|
||||||
test_kqueue
|
test_kqueue
|
||||||
test_ossaudiodev
|
test_ossaudiodev
|
||||||
test_tcl
|
test_tcl
|
||||||
|
test_tk
|
||||||
test_ttk_guionly
|
test_ttk_guionly
|
||||||
test_ttk_textonly
|
test_ttk_textonly
|
||||||
test_zipimport
|
test_zipimport
|
||||||
|
|
@ -1109,6 +1111,7 @@ _expectations = {
|
||||||
test_ossaudiodev
|
test_ossaudiodev
|
||||||
test_pep277
|
test_pep277
|
||||||
test_tcl
|
test_tcl
|
||||||
|
test_tk
|
||||||
test_ttk_guionly
|
test_ttk_guionly
|
||||||
test_ttk_textonly
|
test_ttk_textonly
|
||||||
test_multiprocessing
|
test_multiprocessing
|
||||||
|
|
@ -1125,6 +1128,7 @@ _expectations = {
|
||||||
test_ossaudiodev
|
test_ossaudiodev
|
||||||
test_pep277
|
test_pep277
|
||||||
test_tcl
|
test_tcl
|
||||||
|
test_tk
|
||||||
test_ttk_guionly
|
test_ttk_guionly
|
||||||
test_ttk_textonly
|
test_ttk_textonly
|
||||||
test_multiprocessing
|
test_multiprocessing
|
||||||
|
|
|
||||||
22
Lib/test/test_tk.py
Normal file
22
Lib/test/test_tk.py
Normal file
|
|
@ -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
Lib/tkinter/test/test_tkinter/__init__.py
Normal file
0
Lib/tkinter/test/test_tkinter/__init__.py
Normal file
39
Lib/tkinter/test/test_tkinter/test_text.py
Normal file
39
Lib/tkinter/test/test_tkinter/test_text.py
Normal file
|
|
@ -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 @@ __all__ = ["Button", "Checkbutton", "Combobox", "Entry", "Frame", "Label",
|
||||||
# Extensions
|
# Extensions
|
||||||
"LabeledScale", "OptionMenu",
|
"LabeledScale", "OptionMenu",
|
||||||
# functions
|
# functions
|
||||||
"tclobjs_to_py"]
|
"tclobjs_to_py", "setup_master"]
|
||||||
|
|
||||||
import tkinter
|
import tkinter
|
||||||
|
|
||||||
|
|
@ -47,24 +47,6 @@ def _load_tile(master):
|
||||||
master.tk.eval('package require tile') # TclError may be raised here
|
master.tk.eval('package require tile') # TclError may be raised here
|
||||||
master._tile_loaded = True
|
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):
|
def _format_optdict(optdict, script=False, ignore=None):
|
||||||
"""Formats optdict to a tuple to pass it to tk.call.
|
"""Formats optdict to a tuple to pass it to tk.call.
|
||||||
|
|
||||||
|
|
@ -367,6 +349,22 @@ def tclobjs_to_py(adict):
|
||||||
|
|
||||||
return 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):
|
class Style(object):
|
||||||
"""Manipulate style database."""
|
"""Manipulate style database."""
|
||||||
|
|
@ -374,7 +372,7 @@ class Style(object):
|
||||||
_name = "ttk::style"
|
_name = "ttk::style"
|
||||||
|
|
||||||
def __init__(self, master=None):
|
def __init__(self, master=None):
|
||||||
master = _setup_master(master)
|
master = setup_master(master)
|
||||||
|
|
||||||
if not getattr(master, '_tile_loaded', False):
|
if not getattr(master, '_tile_loaded', False):
|
||||||
# Load tile now, if needed
|
# Load tile now, if needed
|
||||||
|
|
@ -555,7 +553,7 @@ class Widget(tkinter.Widget):
|
||||||
active, disabled, focus, pressed, selected, background,
|
active, disabled, focus, pressed, selected, background,
|
||||||
readonly, alternate, invalid
|
readonly, alternate, invalid
|
||||||
"""
|
"""
|
||||||
master = _setup_master(master)
|
master = setup_master(master)
|
||||||
if not getattr(master, '_tile_loaded', False):
|
if not getattr(master, '_tile_loaded', False):
|
||||||
# Load tile now, if needed
|
# Load tile now, if needed
|
||||||
_load_tile(master)
|
_load_tile(master)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue