classification
Title: test_tkinter fails randomly on the buildbots "AMD64 Windows10" (3.4, 3.5, 3.x)
Type: behavior Stage: resolved
Components: Tests, Tkinter, Windows Versions: Python 3.6, Python 3.5, Python 3.4, Python 2.7
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: serhiy.storchaka Nosy List: haypo, paul.moore, python-dev, serhiy.storchaka, steve.dower, tim.golden, zach.ware
Priority: normal Keywords: patch

Created on 2015-09-29 07:54 by haypo, last changed 2015-11-11 08:15 by serhiy.storchaka. This issue is now closed.

Files
File name Uploaded Description Edit
tkinter_test_use_workaround.patch serhiy.storchaka, 2015-11-10 15:49 review
Messages (9)
msg251827 - (view) Author: STINNER Victor (haypo) * (Python committer) Date: 2015-09-29 07:54
http://buildbot.python.org/all/builders/AMD64%20Windows10%203.x/builds/203/steps/test/logs/stdio

======================================================================
ERROR: setUpClass (tkinter.test.test_tkinter.test_font.FontTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\buildarea\3.x.bolen-windows10\build\lib\tkinter\test\test_tkinter\test_font.py", line 17, in setUpClass
    cls.font = font.Font(root=cls.root, name=fontname, exists=True)
  File "D:\buildarea\3.x.bolen-windows10\build\lib\tkinter\font.py", line 71, in __init__
    root = tkinter._default_root
AttributeError: module 'tkinter' has no attribute '_default_root'

======================================================================
ERROR: test_use (tkinter.test.test_tkinter.test_widgets.ToplevelTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\buildarea\3.x.bolen-windows10\build\lib\tkinter\test\test_tkinter\test_widgets.py", line 95, in test_use
    widget2 = self.create(use=wid)
  File "D:\buildarea\3.x.bolen-windows10\build\lib\tkinter\test\test_tkinter\test_widgets.py", line 70, in create
    return tkinter.Toplevel(self.root, **kwargs)
  File "D:\buildarea\3.x.bolen-windows10\build\lib\tkinter\__init__.py", line 2181, in __init__
    BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra)
  File "D:\buildarea\3.x.bolen-windows10\build\lib\tkinter\__init__.py", line 2138, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: integer value too large to represent
msg254283 - (view) Author: Roundup Robot (python-dev) Date: 2015-11-07 16:06
New changeset d70026504feb by Serhiy Storchaka in branch 'default':
Issue #25263: Trying to fix test_use on Windows.
https://hg.python.org/cpython/rev/d70026504feb
msg254382 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-11-09 12:26
Didn't help.

http://buildbot.python.org/all/builders/AMD64%20Windows8%203.x/builds/1494/steps/test/logs/stdio
======================================================================
ERROR: test_use (tkinter.test.test_tkinter.test_widgets.ToplevelTest) (wid='0xffffffffbf300038')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\buildarea\3.x.bolen-windows8\build\lib\tkinter\test\test_tkinter\test_widgets.py", line 96, in test_use
    widget2 = self.create(use=wid)
  File "D:\buildarea\3.x.bolen-windows8\build\lib\tkinter\test\test_tkinter\test_widgets.py", line 70, in create
    return tkinter.Toplevel(self.root, **kwargs)
  File "D:\buildarea\3.x.bolen-windows8\build\lib\tkinter\__init__.py", line 2181, in __init__
    BaseWidget.__init__(self, master, 'toplevel', cnf, {}, extra)
  File "D:\buildarea\3.x.bolen-windows8\build\lib\tkinter\__init__.py", line 2138, in __init__
    (widgetName, self._w) + extra + self._options(cnf))
_tkinter.TclError: integer value too large to represent

----------------------------------------------------------------------
msg254384 - (view) Author: Roundup Robot (python-dev) Date: 2015-11-09 12:44
New changeset 3f8998c2fbf9 by Serhiy Storchaka in branch 'default':
Issue #25263: Trying to fix test_use on Windows.
https://hg.python.org/cpython/rev/3f8998c2fbf9
msg254388 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-11-09 13:51
Looks as there is also Tk bug. Perhaps on Windows (and Unix?) "winfo id" can return 64-bit integer, but the -use option works only with 32-bit integers.

Opened Tk ticket: http://core.tcl.tk/tk/tktview?name=5ee8af61e5 .
msg254446 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-11-10 13:25
The other failure is not Windows specific. It can be reproduced if run test_tk twice. FontTest.setUpClass() incorrectly call parent's method and the root attribute is set in parent class. tearDownClass() sets the root attribute to None in child class, and this overrides parent's attribute. The test in the second run passes self.root (is None) to font.Font constructor, and this is interpreted as no the root argument passed.
msg254447 - (view) Author: Roundup Robot (python-dev) Date: 2015-11-10 13:33
New changeset 385b3aaf8401 by Serhiy Storchaka in branch '3.4':
Issue #25263: Fixed the tkinter.test.test_tkinter.test_font.FontTest test
https://hg.python.org/cpython/rev/385b3aaf8401

New changeset db168611c6c8 by Serhiy Storchaka in branch '3.5':
Issue #25263: Fixed the tkinter.test.test_tkinter.test_font.FontTest test
https://hg.python.org/cpython/rev/db168611c6c8

New changeset 0632642c30dd by Serhiy Storchaka in branch 'default':
Issue #25263: Fixed the tkinter.test.test_tkinter.test_font.FontTest test
https://hg.python.org/cpython/rev/0632642c30dd

New changeset f81e357b2318 by Serhiy Storchaka in branch '2.7':
Issue #25263: Fixed the tkinter.test.test_tkinter.test_font.FontTest test
https://hg.python.org/cpython/rev/f81e357b2318
msg254451 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-11-10 15:49
Tk bug looks fixed in next releases of Tk 8.5 and 8.6. Here is a patch that adds a workaround for the test.
msg254481 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-11-11 08:15
Tests are fixed.
History
Date User Action Args
2015-11-11 08:15:06serhiy.storchakasetstatus: open -> closed
versions: + Python 2.7, Python 3.4
messages: + msg254481

resolution: fixed
stage: patch review -> resolved
2015-11-10 15:49:47serhiy.storchakasetfiles: + tkinter_test_use_workaround.patch
messages: + msg254451

keywords: + patch
type: behavior
stage: patch review
2015-11-10 13:33:36python-devsetmessages: + msg254447
2015-11-10 13:25:25serhiy.storchakasetmessages: + msg254446
2015-11-09 13:51:20serhiy.storchakasetassignee: serhiy.storchaka
messages: + msg254388
2015-11-09 12:44:04python-devsetmessages: + msg254384
2015-11-09 12:26:15serhiy.storchakasetmessages: + msg254382
2015-11-07 16:06:56python-devsetnosy: + python-dev
messages: + msg254283
2015-09-29 07:54:24hayposetnosy: + paul.moore, tim.golden, serhiy.storchaka, zach.ware, steve.dower
components: + Tests, Tkinter, Windows
2015-09-29 07:54:13haypocreate