classification
Title: python3 -m test -ugui -v test_tk gives 3 failures under Debian unstable (sid)
Type: behavior Stage: resolved
Components: Tkinter Versions: Python 3.4
process
Status: closed Resolution: third party
Dependencies: Superseder:
Assigned To: serhiy.storchaka Nosy List: doko, lac, serhiy.storchaka, terry.reedy
Priority: normal Keywords:

Created on 2015-08-13 17:23 by lac, last changed 2015-11-26 17:19 by serhiy.storchaka. This issue is now closed.

Messages (14)
msg248529 - (view) Author: Laura Creighton (lac) Date: 2015-08-13 17:23
I have tried this on several debian unstable releases, and get the following 3 failures

lac at smartwheels:~$ lsb_release -a
 LSB Version:	core-2.0-amd64:core-2.0-noarch:core-3.0-amd64:core-3.0-noarch:core-3.1-amd64:core-3.1-noarch:core-3.2-amd64:core-3.2-noarch:core-4.0-amd64:core-4.0-noarch:core-4.1-amd64:core-4.1-noarch:security-4.0-amd64:security-4.0-noarch:security-4.1-amd64:security-4.1-noarch
 Distributor ID:	Debian
 Description:		Debian GNU/Linux unstable (sid)
 Release:		unstable
 Codename:		sid

Idle shows my tk version as 8.6.4
python3 -m test -ugui -v test_tk gives 3 failures

= CPython 3.4.3+ (default, Jul 28 2015, 13:17:50) [GCC 4.9.3]
==   Linux-3.16.0-4-amd64-x86_64-with-debian-stretch-sid little-endian
==   hash algorithm: siphash24 64bit
==   /tmp/test_python_7974
Testing with flags: sys.flags(debug=0, inspect=0, interactive=0, optimize=0, dont_write_bytecode=0, no_user_site=0, no_site=0, ignore_environment=0, verbose=0, bytes_warning=0, quiet=0, hash_randomization=1, isolated=0)

test_default (tkinter.test.test_tkinter.test_variables.TestBooleanVar) ... FAIL
test_get (tkinter.test.test_tkinter.test_variables.TestBooleanVar) ... FAIL
test_set (tkinter.test.test_tkinter.test_variables.TestBooleanVar) ... FAIL

======================================================================
FAIL: test_default (tkinter.test.test_tkinter.test_variables.TestBooleanVar)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_variables.py", line 163, in test_default
      self.assertIs(v.get(), False)
      AssertionError: 0 is not False

======================================================================
FAIL: test_get (tkinter.test.test_tkinter.test_variables.TestBooleanVar)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_variables.py", line 167, in test_get
      self.assertIs(v.get(), True)
      AssertionError: 1 is not True

======================================================================
FAIL: test_set (tkinter.test.test_tkinter.test_variables.TestBooleanVar)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_variables.py", line 186, in test_set
      self.assertEqual(self.root.globalgetvar("name"), true)
      AssertionError: 42 != 1

----------------------------------------------------------------------
Ran 660 tests in 3.901s

FAILED (failures=3)
1 test failed:
    test_tk
msg248534 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-08-13 19:04
This looks strange. Current default Tcl in Debian unstable is 8.6 [1]. New Python3 builds depend on libtcl8.6 [2]. The full version of the 8.4 branch is 8.4.20 [3], this is the last release in the 8.4 branch. Perhaps your installation was not updated too long time if you see 8.6.4.

[1] https://packages.debian.org/sid/tcl
[2] https://packages.debian.org/sid/python3-tk
[3] https://packages.debian.org/sid/tcl8.4
msg248535 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-08-13 19:15
Even on Debian Squeeze (oldoldstable) Python 2 (2.6) [1] and Python 3 (3.1) [2] depend on Tcl 8.5 [3]. So I think we can ignore all issues with Tcl/Tk 8.4 on Debian. They are related to very old unsupported Debian versions.

[1] https://packages.debian.org/squeeze/python-tk
[2] https://packages.debian.org/squeeze/python3-tk
[3] https://packages.debian.org/squeeze/tcl8.5
msg248537 - (view) Author: Laura Creighton (lac) Date: 2015-08-13 19:37
You are misunderstanding me, so originally posting this in a report
that mentioned tk and tcl 8.4 was a bad idea. 

I have tk and tcl 8.6 and am getting these errors.  It has nothing
at all to do with 8.4

lac@fido:~$ apt-cache policy tcl tk
tcl:
  Installed: 8.6.0+8
  Candidate: 8.6.0+8
  Version table:
 *** 8.6.0+8 0
        500 http://mirror.openend.se/debian/ stable/main i386 Packages
        500 http://ftp.se.debian.org/debian/ unstable/main i386 Packages
        500 http://ftp.debian.org/debian/ unstable/main i386 Packages
        100 /var/lib/dpkg/status
tk:
  Installed: 8.6.0+8
  Candidate: 8.6.0+8
  Version table:
 *** 8.6.0+8 0
        500 http://mirror.openend.se/debian/ stable/main i386 Packages
        500 http://ftp.se.debian.org/debian/ unstable/main i386 Packages
        500 http://ftp.debian.org/debian/ unstable/main i386 Packages
        100 /var/lib/dpkg/status
lac@fido:~$
msg248542 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-08-13 22:10
Oh, sorry.

The issue still looks strange to me. It looks as a result of mix Python core, library or tests of different versions.

Could you please test what following commands output?

>>> import tkinter
>>> tcl = tkinter.Tcl()
>>> tcl.getboolean(42)
True
>>> tkinter.BooleanVar.set
<function BooleanVar.set at 0xb6ed5614>
msg248554 - (view) Author: Laura Creighton (lac) Date: 2015-08-14 03:42
Python 3.4.3+ (default, Jul 28 2015, 13:17:50) 
[GCC 4.9.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>import tkinter
>>>tcl = tkinter.Tcl()
>>>tcl.getboolean(42)
42
>>>tkinter.BooleanVar.set
<function BooleanVar.set at 0x7f15b780bea0>
>>>print (tkinter)
<module 'tkinter' from '/usr/lib/python3.4/tkinter/__init__.py'>
>>>import _tkinter
>>>print(_tkinter)
<module '_tkinter' from '/usr/lib/python3.4/lib-dynload_tkinter.cpython-34m-x86_64-linux-gnu.so'>


I have the libpython3.4-testsuite installed

lac@fido:~$  apt-cache policy libpython3.4-testsuite
libpython3.4-testsuite:
  Installed: 3.4.3-8
  Candidate: 3.4.3-8
  Version table:
 *** 3.4.3-8 0
        500 http://ftp.se.debian.org/debian/ unstable/main amd64 Packages
        500 http://ftp.debian.org/debian/ unstable/main amd64 Packages
        100 /var/lib/dpkg/status

I am getting these same errors on multiple machines.  As far as I know every one of them gets their packages from the same place, ftp.se.debian.org
msg248555 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-08-14 04:26
Thanks Laura. Looks as binary _tkinter is out of sync with the library and tests. Failing tests were added in issue15133 together with related changes in Python library (added BooleanVar.set and other changes) and _tkinter (changed getboolean()). If Debian version includes 117f45749359, getboolean() always should return boolean. Otherwise failing tests shouldn't exist.
msg248556 - (view) Author: Laura Creighton (lac) Date: 2015-08-14 04:33
So this is a debian packaging issue we need to tell the debian package maintainers about?
msg248558 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-08-14 05:12
Yes, this looks as packaging issue. Added Matthias Klose, the Debian package maintainer.
msg248678 - (view) Author: Laura Creighton (lac) Date: 2015-08-16 09:59
Things work with python3.5 so this is an issue with what debian sid calls python3 (i.e. CPython 3.4.3+ (default, Jul 28 2015, 13:17:50) [GCC 4.9.3])
msg248679 - (view) Author: Laura Creighton (lac) Date: 2015-08-16 10:01
(as expected) Fails when invoked as python3.4 as well.
msg250001 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-09-06 17:37
Laura, could you please report a bug to Debian?
msg250010 - (view) Author: Laura Creighton (lac) Date: 2015-09-06 19:02
I could.  Have you heard from doko?  If python3 on debian unstable is about to become python3.5 and things work fine on 3.5 I wonder if it is worth the effort.
msg255107 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2015-11-22 16:17
Matthias, can you confirm that this is Debian packaging issue?
History
Date User Action Args
2015-11-26 17:19:37serhiy.storchakasetstatus: pending -> closed
resolution: third party
stage: resolved
2015-11-22 16:17:08serhiy.storchakasetstatus: open -> pending

messages: + msg255107
2015-09-06 19:02:52lacsetmessages: + msg250010
2015-09-06 17:37:32serhiy.storchakasetmessages: + msg250001
2015-08-16 10:01:00lacsetmessages: + msg248679
2015-08-16 09:59:27lacsetmessages: + msg248678
2015-08-14 05:12:11serhiy.storchakasetmessages: + msg248558
2015-08-14 04:33:30lacsetmessages: + msg248556
2015-08-14 04:26:43serhiy.storchakasetnosy: + doko
messages: + msg248555
2015-08-14 03:42:58lacsetmessages: + msg248554
2015-08-13 22:10:14serhiy.storchakasetmessages: + msg248542
2015-08-13 19:37:16lacsetmessages: + msg248537
2015-08-13 19:15:33serhiy.storchakasetmessages: + msg248535
2015-08-13 19:04:36serhiy.storchakasetnosy: + serhiy.storchaka
messages: + msg248534

assignee: serhiy.storchaka
type: behavior
2015-08-13 17:23:00laccreate