Dear Maintainer,
Please see below the output of this command:
> cd obj-x86_64-linux-gnu
> PYTHONPATH=../python python3 -m pytest -x --pdb ../tests/test_rules.py
...
test
session starts
platform linux -- Python 3.11.1, pytest-7.2.0, pluggy-1.0.0+repack
rootdir: /build/herbstluftwm-0.9.5, configfile: tox.ini
plugins: xvfb-2.0.0, xdist-3.1.0
collected 193 items
../tests/test_rules.py
..
[ 65%]
F
>> captured
>> stdout
>> >>
Running: Xvfb -nolisten tcp -screen 0 800x600x24 -noreset +extension RENDER
-displayfd 19
Xvfb is using the display ":2"
hlwm started
Client command ['move_monitor', '', '500x520'] succeeded (no output)
Client command ['rule', 'floatplacement=smart', 'floating=on'] succeeded (no
output)
>> captured
>> stderr
>> >>
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
_XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed
_XSERVTransMakeAllCOTSServerListeners: server already running
EWMH: 0 desktops:
0 managed clients:
./src/xconnection.cpp: 227: compositing manager = 0
> traceback
>
> >
hlwm = , x11 = , invisible_tag = False
@pytest.mark.exclude_from_coverage(
reason='This test does not verify functionality but only whether \
creating lots of windows can be handled by the algorithm')
@pytest.mark.parametrize('invisible_tag', [False, True])
def test_floatplacement_smart_create_many(hlwm, x11, invisible_tag):
hlwm.call('move_monitor "" 500x520')
if invisible_tag:
hlwm.call('add invisible_tag')
hlwm.call('rule tag=invisible_tag')
hlwm.call('rule floatplacement=smart floating=on')
# create many clients with different sizes
def index2geometry(i):
# vary between 2 different widths and 3 different
# heights to get a lot of combinations
return (30, 40, (i % 2) * 110, (i % 3) * 120)
for i in range(0, 50):
> x11.create_client(geometry=index2geometry(i))
../tests/test_rules.py:867:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
../tests/conftest.py:822: in create_client
self.display.sync()
/usr/lib/python3/dist-packages/Xlib/display.py:182: in sync
self.get_pointer_control()
/usr/lib/python3/dist-packages/Xlib/display.py:833: in get_pointer_control
return request.GetPointerControl(display = self.display)
/usr/lib/python3/dist-packages/Xlib/protocol/rq.py:1368: in __init__
self.reply()
/usr/lib/python3/dist-packages/Xlib/protocol/rq.py:1380: in reply
self._display.send_and_recv(request = self._serial)
/usr/lib/python3/dist-packages/Xlib/protocol/display.py:612: in send_and_recv
gotreq = self.parse_response(request)
/usr/lib/python3/dist-packages/Xlib/protocol/display.py:719: in parse_response
gotreq = self.parse_error_response(request) or gotreq
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = , request = 20
def parse_error_response(self, request):
# Code is second byte
code = indexbytes(self.data_recv, 1)
# Fetch error class
estruct = self.error_classes.get(code, error.XError)
e = estruct(self, self.data_recv[:32])
self.data_recv = bytesview(self.data_recv, 32)
# print 'recv Error:', e
> req = self.get_waiting_request(e.sequence_number)
E AttributeError: 'BadRRModeError' object has no attribute
'sequence_number'