summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/test/regrtest.py12
-rw-r--r--Lib/test/test_ttk_guionly.py (renamed from Lib/test/test_tk_guionly.py)15
-rw-r--r--Lib/test/test_ttk_textonly.py (renamed from Lib/test/test_tk_textonly.py)5
-rw-r--r--Lib/tkinter/test/runtktests.py15
-rw-r--r--Lib/tkinter/test/test_ttk/test_widgets.py5
5 files changed, 43 insertions, 9 deletions
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 43794d2..8ab0e48 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -123,6 +123,8 @@ resources to test. Currently only the following are defined:
urlfetch - It is okay to download files required on testing.
+ gui - Run tests that require a running GUI.
+
To enable all resources except one, use '-uall,-<resource>'. For
example, to run all the tests except for the bsddb tests, give the
option '-uall,-bsddb'.
@@ -176,7 +178,7 @@ if sys.platform == 'darwin':
from test import support
RESOURCE_NAMES = ('audio', 'curses', 'largefile', 'network', 'bsddb',
- 'decimal', 'compiler', 'subprocess', 'urlfetch')
+ 'decimal', 'compiler', 'subprocess', 'urlfetch', 'gui')
def usage(msg):
@@ -1073,6 +1075,8 @@ _expectations = {
test_pty
test_socketserver
test_tcl
+ test_ttk_guionly
+ test_ttk_textonly
test_timeout
test_urllibnet
test_multiprocessing
@@ -1088,6 +1092,8 @@ _expectations = {
test_kqueue
test_ossaudiodev
test_tcl
+ test_ttk_guionly
+ test_ttk_textonly
test_zipimport
test_zlib
""",
@@ -1103,6 +1109,8 @@ _expectations = {
test_ossaudiodev
test_pep277
test_tcl
+ test_ttk_guionly
+ test_ttk_textonly
test_multiprocessing
""",
'netbsd3':
@@ -1117,6 +1125,8 @@ _expectations = {
test_ossaudiodev
test_pep277
test_tcl
+ test_ttk_guionly
+ test_ttk_textonly
test_multiprocessing
""",
}
diff --git a/Lib/test/test_tk_guionly.py b/Lib/test/test_ttk_guionly.py
index d3eb5a1c..bff490a 100644
--- a/Lib/test/test_tk_guionly.py
+++ b/Lib/test/test_ttk_guionly.py
@@ -1,5 +1,15 @@
-from test import support
+import os
+import sys
+from tkinter import ttk
from tkinter.test import runtktests
+from _tkinter import TclError
+from test import support
+
+try:
+ ttk.Button()
+except TclError as msg:
+ # assuming ttk is not available
+ raise support.TestSkipped("ttk not available: %s" % msg)
def test_main(enable_gui=False):
if enable_gui:
@@ -8,7 +18,8 @@ def test_main(enable_gui=False):
elif 'gui' not in support.use_resources:
support.use_resources.append('gui')
- support.run_unittest(*runtktests.get_tests(text=False))
+ support.run_unittest(
+ *runtktests.get_tests(text=False, packages=['test_ttk']))
if __name__ == '__main__':
test_main(enable_gui=True)
diff --git a/Lib/test/test_tk_textonly.py b/Lib/test/test_ttk_textonly.py
index ad13244..131e420 100644
--- a/Lib/test/test_tk_textonly.py
+++ b/Lib/test/test_ttk_textonly.py
@@ -1,8 +1,11 @@
+import os
+import sys
from test import support
from tkinter.test import runtktests
def test_main():
- support.run_unittest(*runtktests.get_tests(gui=False))
+ support.run_unittest(
+ *runtktests.get_tests(gui=False, packages=['test_ttk']))
if __name__ == '__main__':
test_main()
diff --git a/Lib/tkinter/test/runtktests.py b/Lib/tkinter/test/runtktests.py
index 3d3868f..7067594 100644
--- a/Lib/tkinter/test/runtktests.py
+++ b/Lib/tkinter/test/runtktests.py
@@ -19,9 +19,13 @@ def is_package(path):
return True
return False
-def get_tests_modules(basepath=this_dir_path, gui=True):
+def get_tests_modules(basepath=this_dir_path, gui=True, packages=None):
"""This will import and yield modules whose names start with test_
- and are inside packages found in the path starting at basepath."""
+ and are inside packages found in the path starting at basepath.
+
+ If packages is specified it should contain package names that
+ want their tests collected.
+ """
py_ext = '.py'
for dirpath, dirnames, filenames in os.walk(basepath):
@@ -31,6 +35,9 @@ def get_tests_modules(basepath=this_dir_path, gui=True):
if is_package(dirpath) and filenames:
pkg_name = dirpath[len(basepath) + len(os.sep):].replace('/', '.')
+ if packages and pkg_name not in packages:
+ continue
+
filenames = filter(
lambda x: x.startswith('test_') and x.endswith(py_ext),
filenames)
@@ -48,7 +55,7 @@ def get_tests_modules(basepath=this_dir_path, gui=True):
if gui:
raise
-def get_tests(text=True, gui=True):
+def get_tests(text=True, gui=True, packages=None):
"""Yield all the tests in the modules found by get_tests_modules.
If nogui is True, only tests that do not require a GUI will be
@@ -58,7 +65,7 @@ def get_tests(text=True, gui=True):
attrs.append('tests_nogui')
if gui:
attrs.append('tests_gui')
- for module in get_tests_modules(gui=gui):
+ for module in get_tests_modules(gui=gui, packages=packages):
for attr in attrs:
for test in getattr(module, attr, ()):
yield test
diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py
index e92d2fa..48cf614 100644
--- a/Lib/tkinter/test/test_ttk/test_widgets.py
+++ b/Lib/tkinter/test/test_ttk/test_widgets.py
@@ -708,10 +708,13 @@ class NotebookTest(unittest.TestCase):
class TreeviewTest(unittest.TestCase):
def setUp(self):
- self.tv = ttk.Treeview()
+ self.root = support.get_tk_root()
+ self.tv = ttk.Treeview(self.root)
def tearDown(self):
self.tv.destroy()
+ self.root.update_idletasks()
+ self.root.destroy()
def test_bbox(self):