Mailing List Archive

bpo-42142: Try to fix timeouts in ttk tests (GH-23474)
https://github.com/python/cpython/commit/6cc2c419f6cf5ed336609ba01055e77d7c553e6d
commit: 6cc2c419f6cf5ed336609ba01055e77d7c553e6d
branch: master
author: Serhiy Storchaka <storchaka@gmail.com>
committer: serhiy-storchaka <storchaka@gmail.com>
date: 2020-11-30T10:24:07+02:00
summary:

bpo-42142: Try to fix timeouts in ttk tests (GH-23474)

Instead of using wait_visibility() which waits event <VisibilityNotify> in dead loop
use update() which should proceed all queued events.

files:
M Lib/tkinter/test/test_ttk/test_extensions.py
M Lib/tkinter/test/test_ttk/test_widgets.py

diff --git a/Lib/tkinter/test/test_ttk/test_extensions.py b/Lib/tkinter/test/test_ttk/test_extensions.py
index a45f882bb00d4..6937ba1ca9be4 100644
--- a/Lib/tkinter/test/test_ttk/test_extensions.py
+++ b/Lib/tkinter/test/test_ttk/test_extensions.py
@@ -114,7 +114,6 @@ def check_positions(scale, scale_pos, label, label_pos):
def test_horizontal_range(self):
lscale = ttk.LabeledScale(self.root, from_=0, to=10)
lscale.pack()
- lscale.wait_visibility()
lscale.update()

linfo_1 = lscale.label.place_info()
@@ -144,7 +143,6 @@ def test_horizontal_range(self):
def test_variable_change(self):
x = ttk.LabeledScale(self.root)
x.pack()
- x.wait_visibility()
x.update()

curr_xcoord = x.scale.coords()[0]
@@ -187,7 +185,6 @@ def test_variable_change(self):
def test_resize(self):
x = ttk.LabeledScale(self.root)
x.pack(expand=True, fill='both')
- x.wait_visibility()
x.update()

width, height = x.master.winfo_width(), x.master.winfo_height()
@@ -268,7 +265,6 @@ def test_menu(self):

# check that variable is updated correctly
optmenu.pack()
- optmenu.wait_visibility()
optmenu['menu'].invoke(0)
self.assertEqual(optmenu._variable.get(), items[0])

@@ -299,9 +295,7 @@ def test_unique_radiobuttons(self):
textvar2 = tkinter.StringVar(self.root)
optmenu2 = ttk.OptionMenu(self.root, textvar2, default, *items)
optmenu.pack()
- optmenu.wait_visibility()
optmenu2.pack()
- optmenu2.wait_visibility()
optmenu['menu'].invoke(1)
optmenu2['menu'].invoke(2)
optmenu_stringvar_name = optmenu['menu'].entrycget(0, 'variable')
diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py
index e20ec39071085..157ef0e8f87bb 100644
--- a/Lib/tkinter/test/test_ttk/test_widgets.py
+++ b/Lib/tkinter/test/test_ttk/test_widgets.py
@@ -60,11 +60,10 @@ def setUp(self):
super().setUp()
self.widget = ttk.Button(self.root, width=0, text="Text")
self.widget.pack()
- self.widget.wait_visibility()


def test_identify(self):
- self.widget.update_idletasks()
+ self.widget.update()
self.assertEqual(self.widget.identify(
int(self.widget.winfo_width() / 2),
int(self.widget.winfo_height() / 2)
@@ -326,8 +325,7 @@ def test_bbox(self):

def test_identify(self):
self.entry.pack()
- self.entry.wait_visibility()
- self.entry.update_idletasks()
+ self.entry.update()

# bpo-27313: macOS Cocoa widget differs from X, allow either
if sys.platform == 'darwin':
@@ -450,7 +448,7 @@ def test_virtual_event(self):
self.combo.bind('<<ComboboxSelected>>',
lambda evt: success.append(True))
self.combo.pack()
- self.combo.wait_visibility()
+ self.combo.update()

height = self.combo.winfo_height()
self._show_drop_down_listbox()
@@ -466,7 +464,7 @@ def test_postcommand(self):

self.combo['postcommand'] = lambda: success.append(True)
self.combo.pack()
- self.combo.wait_visibility()
+ self.combo.update()

self._show_drop_down_listbox()
self.assertTrue(success)
@@ -666,7 +664,6 @@ def test_sashpos(self):
self.assertRaises(tkinter.TclError, self.paned.sashpos, 1)

self.paned.pack(expand=True, fill='both')
- self.paned.wait_visibility()

curr_pos = self.paned.sashpos(0)
self.paned.sashpos(0, 1000)
@@ -934,7 +931,7 @@ def test_tab_identifiers(self):
self.nb.add(self.child1, text='a')

self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()
if sys.platform == 'darwin':
tb_idx = "@20,5"
else:
@@ -1042,7 +1039,7 @@ def test_insert(self):

def test_select(self):
self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()

success = []
tab_changed = []
@@ -1085,7 +1082,7 @@ def test_tabs(self):

def test_traversal(self):
self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()

self.nb.select(0)

@@ -1347,7 +1344,6 @@ def test_show(self):
def test_bbox(self):
self.tv.pack()
self.assertEqual(self.tv.bbox(''), '')
- self.tv.wait_visibility()
self.tv.update()

item_id = self.tv.insert('', 'end')
@@ -1544,7 +1540,6 @@ def simulate_heading_click(x, y):
success = [] # no success for now

self.tv.pack()
- self.tv.wait_visibility()
self.tv.heading('#0', command=lambda: success.append(True))
self.tv.column('#0', width=100)
self.tv.update()
@@ -1792,7 +1787,6 @@ def test_tag_bind(self):
lambda evt: events.append(2))

self.tv.pack()
- self.tv.wait_visibility()
self.tv.update()

pos_y = set()

_______________________________________________
Python-checkins mailing list
Python-checkins@python.org
https://mail.python.org/mailman/listinfo/python-checkins
bpo-42142: Try to fix timeouts in ttk tests (GH-23474) [ In reply to ]
https://github.com/python/cpython/commit/a5b0c17e0d04931e639c4aa7a908a69cd0b529b3
commit: a5b0c17e0d04931e639c4aa7a908a69cd0b529b3
branch: 3.8
author: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
committer: miss-islington <31488909+miss-islington@users.noreply.github.com>
date: 2020-11-30T00:42:56-08:00
summary:

bpo-42142: Try to fix timeouts in ttk tests (GH-23474)


Instead of using wait_visibility() which waits event <VisibilityNotify> in dead loop
use update() which should proceed all queued events.
(cherry picked from commit 6cc2c419f6cf5ed336609ba01055e77d7c553e6d)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>

files:
M Lib/tkinter/test/test_ttk/test_extensions.py
M Lib/tkinter/test/test_ttk/test_widgets.py

diff --git a/Lib/tkinter/test/test_ttk/test_extensions.py b/Lib/tkinter/test/test_ttk/test_extensions.py
index a45f882bb00d4..6937ba1ca9be4 100644
--- a/Lib/tkinter/test/test_ttk/test_extensions.py
+++ b/Lib/tkinter/test/test_ttk/test_extensions.py
@@ -114,7 +114,6 @@ def check_positions(scale, scale_pos, label, label_pos):
def test_horizontal_range(self):
lscale = ttk.LabeledScale(self.root, from_=0, to=10)
lscale.pack()
- lscale.wait_visibility()
lscale.update()

linfo_1 = lscale.label.place_info()
@@ -144,7 +143,6 @@ def test_horizontal_range(self):
def test_variable_change(self):
x = ttk.LabeledScale(self.root)
x.pack()
- x.wait_visibility()
x.update()

curr_xcoord = x.scale.coords()[0]
@@ -187,7 +185,6 @@ def test_variable_change(self):
def test_resize(self):
x = ttk.LabeledScale(self.root)
x.pack(expand=True, fill='both')
- x.wait_visibility()
x.update()

width, height = x.master.winfo_width(), x.master.winfo_height()
@@ -268,7 +265,6 @@ def test_menu(self):

# check that variable is updated correctly
optmenu.pack()
- optmenu.wait_visibility()
optmenu['menu'].invoke(0)
self.assertEqual(optmenu._variable.get(), items[0])

@@ -299,9 +295,7 @@ def test_unique_radiobuttons(self):
textvar2 = tkinter.StringVar(self.root)
optmenu2 = ttk.OptionMenu(self.root, textvar2, default, *items)
optmenu.pack()
- optmenu.wait_visibility()
optmenu2.pack()
- optmenu2.wait_visibility()
optmenu['menu'].invoke(1)
optmenu2['menu'].invoke(2)
optmenu_stringvar_name = optmenu['menu'].entrycget(0, 'variable')
diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py
index e20ec39071085..157ef0e8f87bb 100644
--- a/Lib/tkinter/test/test_ttk/test_widgets.py
+++ b/Lib/tkinter/test/test_ttk/test_widgets.py
@@ -60,11 +60,10 @@ def setUp(self):
super().setUp()
self.widget = ttk.Button(self.root, width=0, text="Text")
self.widget.pack()
- self.widget.wait_visibility()


def test_identify(self):
- self.widget.update_idletasks()
+ self.widget.update()
self.assertEqual(self.widget.identify(
int(self.widget.winfo_width() / 2),
int(self.widget.winfo_height() / 2)
@@ -326,8 +325,7 @@ def test_bbox(self):

def test_identify(self):
self.entry.pack()
- self.entry.wait_visibility()
- self.entry.update_idletasks()
+ self.entry.update()

# bpo-27313: macOS Cocoa widget differs from X, allow either
if sys.platform == 'darwin':
@@ -450,7 +448,7 @@ def test_virtual_event(self):
self.combo.bind('<<ComboboxSelected>>',
lambda evt: success.append(True))
self.combo.pack()
- self.combo.wait_visibility()
+ self.combo.update()

height = self.combo.winfo_height()
self._show_drop_down_listbox()
@@ -466,7 +464,7 @@ def test_postcommand(self):

self.combo['postcommand'] = lambda: success.append(True)
self.combo.pack()
- self.combo.wait_visibility()
+ self.combo.update()

self._show_drop_down_listbox()
self.assertTrue(success)
@@ -666,7 +664,6 @@ def test_sashpos(self):
self.assertRaises(tkinter.TclError, self.paned.sashpos, 1)

self.paned.pack(expand=True, fill='both')
- self.paned.wait_visibility()

curr_pos = self.paned.sashpos(0)
self.paned.sashpos(0, 1000)
@@ -934,7 +931,7 @@ def test_tab_identifiers(self):
self.nb.add(self.child1, text='a')

self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()
if sys.platform == 'darwin':
tb_idx = "@20,5"
else:
@@ -1042,7 +1039,7 @@ def test_insert(self):

def test_select(self):
self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()

success = []
tab_changed = []
@@ -1085,7 +1082,7 @@ def test_tabs(self):

def test_traversal(self):
self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()

self.nb.select(0)

@@ -1347,7 +1344,6 @@ def test_show(self):
def test_bbox(self):
self.tv.pack()
self.assertEqual(self.tv.bbox(''), '')
- self.tv.wait_visibility()
self.tv.update()

item_id = self.tv.insert('', 'end')
@@ -1544,7 +1540,6 @@ def simulate_heading_click(x, y):
success = [] # no success for now

self.tv.pack()
- self.tv.wait_visibility()
self.tv.heading('#0', command=lambda: success.append(True))
self.tv.column('#0', width=100)
self.tv.update()
@@ -1792,7 +1787,6 @@ def test_tag_bind(self):
lambda evt: events.append(2))

self.tv.pack()
- self.tv.wait_visibility()
self.tv.update()

pos_y = set()

_______________________________________________
Python-checkins mailing list
Python-checkins@python.org
https://mail.python.org/mailman/listinfo/python-checkins
bpo-42142: Try to fix timeouts in ttk tests (GH-23474) [ In reply to ]
https://github.com/python/cpython/commit/03ae7e4518dae6547576c616173106d2eb283ae2
commit: 03ae7e4518dae6547576c616173106d2eb283ae2
branch: 3.9
author: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com>
committer: miss-islington <31488909+miss-islington@users.noreply.github.com>
date: 2020-11-30T00:43:59-08:00
summary:

bpo-42142: Try to fix timeouts in ttk tests (GH-23474)


Instead of using wait_visibility() which waits event <VisibilityNotify> in dead loop
use update() which should proceed all queued events.
(cherry picked from commit 6cc2c419f6cf5ed336609ba01055e77d7c553e6d)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>

files:
M Lib/tkinter/test/test_ttk/test_extensions.py
M Lib/tkinter/test/test_ttk/test_widgets.py

diff --git a/Lib/tkinter/test/test_ttk/test_extensions.py b/Lib/tkinter/test/test_ttk/test_extensions.py
index a45f882bb00d4..6937ba1ca9be4 100644
--- a/Lib/tkinter/test/test_ttk/test_extensions.py
+++ b/Lib/tkinter/test/test_ttk/test_extensions.py
@@ -114,7 +114,6 @@ def check_positions(scale, scale_pos, label, label_pos):
def test_horizontal_range(self):
lscale = ttk.LabeledScale(self.root, from_=0, to=10)
lscale.pack()
- lscale.wait_visibility()
lscale.update()

linfo_1 = lscale.label.place_info()
@@ -144,7 +143,6 @@ def test_horizontal_range(self):
def test_variable_change(self):
x = ttk.LabeledScale(self.root)
x.pack()
- x.wait_visibility()
x.update()

curr_xcoord = x.scale.coords()[0]
@@ -187,7 +185,6 @@ def test_variable_change(self):
def test_resize(self):
x = ttk.LabeledScale(self.root)
x.pack(expand=True, fill='both')
- x.wait_visibility()
x.update()

width, height = x.master.winfo_width(), x.master.winfo_height()
@@ -268,7 +265,6 @@ def test_menu(self):

# check that variable is updated correctly
optmenu.pack()
- optmenu.wait_visibility()
optmenu['menu'].invoke(0)
self.assertEqual(optmenu._variable.get(), items[0])

@@ -299,9 +295,7 @@ def test_unique_radiobuttons(self):
textvar2 = tkinter.StringVar(self.root)
optmenu2 = ttk.OptionMenu(self.root, textvar2, default, *items)
optmenu.pack()
- optmenu.wait_visibility()
optmenu2.pack()
- optmenu2.wait_visibility()
optmenu['menu'].invoke(1)
optmenu2['menu'].invoke(2)
optmenu_stringvar_name = optmenu['menu'].entrycget(0, 'variable')
diff --git a/Lib/tkinter/test/test_ttk/test_widgets.py b/Lib/tkinter/test/test_ttk/test_widgets.py
index 2598bc6765207..572e6daddf008 100644
--- a/Lib/tkinter/test/test_ttk/test_widgets.py
+++ b/Lib/tkinter/test/test_ttk/test_widgets.py
@@ -60,11 +60,10 @@ def setUp(self):
super().setUp()
self.widget = ttk.Button(self.root, width=0, text="Text")
self.widget.pack()
- self.widget.wait_visibility()


def test_identify(self):
- self.widget.update_idletasks()
+ self.widget.update()
self.assertEqual(self.widget.identify(
int(self.widget.winfo_width() / 2),
int(self.widget.winfo_height() / 2)
@@ -326,8 +325,7 @@ def test_bbox(self):

def test_identify(self):
self.entry.pack()
- self.entry.wait_visibility()
- self.entry.update_idletasks()
+ self.entry.update()

# bpo-27313: macOS Cocoa widget differs from X, allow either
if sys.platform == 'darwin':
@@ -449,7 +447,7 @@ def test_virtual_event(self):
self.combo.bind('<<ComboboxSelected>>',
lambda evt: success.append(True))
self.combo.pack()
- self.combo.wait_visibility()
+ self.combo.update()

height = self.combo.winfo_height()
self._show_drop_down_listbox()
@@ -465,7 +463,7 @@ def test_postcommand(self):

self.combo['postcommand'] = lambda: success.append(True)
self.combo.pack()
- self.combo.wait_visibility()
+ self.combo.update()

self._show_drop_down_listbox()
self.assertTrue(success)
@@ -665,7 +663,6 @@ def test_sashpos(self):
self.assertRaises(tkinter.TclError, self.paned.sashpos, 1)

self.paned.pack(expand=True, fill='both')
- self.paned.wait_visibility()

curr_pos = self.paned.sashpos(0)
self.paned.sashpos(0, 1000)
@@ -933,7 +930,7 @@ def test_tab_identifiers(self):
self.nb.add(self.child1, text='a')

self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()
if sys.platform == 'darwin':
tb_idx = "@20,5"
else:
@@ -1041,7 +1038,7 @@ def test_insert(self):

def test_select(self):
self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()

success = []
tab_changed = []
@@ -1084,7 +1081,7 @@ def test_tabs(self):

def test_traversal(self):
self.nb.pack()
- self.nb.wait_visibility()
+ self.nb.update()

self.nb.select(0)

@@ -1342,7 +1339,6 @@ def test_show(self):
def test_bbox(self):
self.tv.pack()
self.assertEqual(self.tv.bbox(''), '')
- self.tv.wait_visibility()
self.tv.update()

item_id = self.tv.insert('', 'end')
@@ -1536,7 +1532,6 @@ def simulate_heading_click(x, y):
success = [] # no success for now

self.tv.pack()
- self.tv.wait_visibility()
self.tv.heading('#0', command=lambda: success.append(True))
self.tv.column('#0', width=100)
self.tv.update()
@@ -1784,7 +1779,6 @@ def test_tag_bind(self):
lambda evt: events.append(2))

self.tv.pack()
- self.tv.wait_visibility()
self.tv.update()

pos_y = set()

_______________________________________________
Python-checkins mailing list
Python-checkins@python.org
https://mail.python.org/mailman/listinfo/python-checkins