python / cpython

The Python programming language
https://www.python.org
Other
62.75k stars 30.08k forks source link

Tkinter tests that fail on linux in tiling window manager #69134

Open terryjreedy opened 9 years ago

terryjreedy commented 9 years ago
BPO 24946
Nosy @terryjreedy, @serhiy-storchaka, @The-Compiler

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields: ```python assignee = None closed_at = None created_at = labels = ['type-bug', 'expert-tkinter'] title = 'Tkinter tests that fail on linux in tiling window manager' updated_at = user = 'https://github.com/terryjreedy' ``` bugs.python.org fields: ```python activity = actor = 'The Compiler' assignee = 'none' closed = False closed_date = None closer = None components = ['Tkinter'] creation = creator = 'terry.reedy' dependencies = [] files = [] hgrepos = [] issue_num = 24946 keywords = [] message_count = 3.0 messages = ['249237', '249285', '249472'] nosy_count = 3.0 nosy_names = ['terry.reedy', 'serhiy.storchaka', 'The Compiler'] pr_nums = [] priority = 'normal' resolution = None stage = 'test needed' status = 'open' superseder = None type = 'behavior' url = 'https://bugs.python.org/issue24946' versions = ['Python 3.4', 'Python 3.5', 'Python 3.6'] ```

terryjreedy commented 9 years ago

Serhiy, Florian emailed this to me in response to my pydev post on Linux gui tests. I'll let you decide if you think anything needs to be done.

>>>>>>from Florian FWIW, those tests seem to fail when using a tiling window manager (herbstluftwm):

\====================================================================== FAIL: test_pack_configure_anchor (tkinter.test.test_tkinter.test_geometry_managers.PackTest) ----------------------------------------------------------------------

Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 48, in test_pack_configure_anchor
    check('n', '30x70+135+20')
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 47, in check
    self.assertEqual(a.winfo_geometry(), geom)
AssertionError: '30x70+210+20' != '30x70+135+20'
- 30x70+210+20
?       - ^
+ 30x70+135+20
?        ^^

====================================================================== FAIL: test_pack_configure_expand (tkinter.test.test_tkinter.test_geometry_managers.PackTest) ----------------------------------------------------------------------

Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 86, in test_pack_configure_expand
    check('20x40+0+80', '50x30+135+0', '80x80+220+75', '40x30+100+170')
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 78, in check
    self.assertEqual(a.winfo_geometry(), geoms[0])
AssertionError: '20x40+0+102' != '20x40+0+80'
- 20x40+0+102
?         ^ -
+ 20x40+0+80
?         ^

====================================================================== FAIL: test_pack_configure_padx_ipadx_fill (tkinter.test.test_tkinter.test_geometry_managers.PackTest) ----------------------------------------------------------------------

Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 125, in test_pack_configure_padx_ipadx_fill
    check('20x40+260+80', '240x200+0+0', side='right', padx=20)
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 123, in check
    self.assertEqual(a.winfo_geometry(), geom1)
AssertionError: '20x40+412+102' != '20x40+260+80'
- 20x40+412+102
+ 20x40+260+80

====================================================================== FAIL: test_pack_configure_pady_ipady_fill (tkinter.test.test_tkinter.test_geometry_managers.PackTest) ----------------------------------------------------------------------

Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 167, in test_pack_configure_pady_ipady_fill
    check('20x40+280+80', '280x200+0+0', side='right', pady=20)
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 165, in check
    self.assertEqual(a.winfo_geometry(), geom1)
AssertionError: '20x40+432+102' != '20x40+280+80'
- 20x40+432+102
+ 20x40+280+80

====================================================================== FAIL: test_pack_configure_side (tkinter.test.test_tkinter.test_geometry_managers.PackTest) ----------------------------------------------------------------------

Traceback (most recent call last):
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 208, in test_pack_configure_side
    check('top', '20x40+140+0', '300x160+0+40')
  File "/usr/lib/python3.4/tkinter/test/test_tkinter/test_geometry_managers.py", line 206, in check
    self.assertEqual(a.winfo_geometry(), geom1)
AssertionError: '20x40+216+0' != '20x40+140+0'
- 20x40+216+0
?       - ^
+ 20x40+140+0
?        ^^

They however run fine in floating mode, so I'm guessing this is just a limitation of those tests.

serhiy-storchaka commented 9 years ago

I already added a workaround to pass these tests on my netbook (new windows are opened maximized on it). May be there is a way to make a window floating in tiled window manager in Tk.

b8c17aa0-8543-473e-baae-23d368fad117 commented 9 years ago

At least with my WM, there is no concept of having floating windows when in tiling mode, so I don't think that would be possible.

I also don't think there's a standard way to tell a window manager to not tile windows.

What about opening a simple window with a fixed geometry, checking if this was changed by the WM, and if it is, skip those tests?