==> Synchronizing chroot copy [/data/alhp-workspace/chroot/root] -> [build_30da7f5b-6c8e-4094-857e-b59170ca7201]...done ==> Making package: qtile 0.22.1-3.1 (Wed Jan 4 13:11:39 2023) ==> Retrieving sources... -> Cloning qtile git repo... Cloning into bare repository '/data/alhp-workspace/build/x86-64-v2/qtile-0.22.1-1.1/qtile'... ==> Validating source files with sha512sums... qtile ... Skipped ==> Validating source files with b2sums... qtile ... Skipped ==> Verifying source file signatures with gpg... qtile git repo ... Passed ==> Making package: qtile 0.22.1-3.1 (Wed Jan 4 13:11:49 2023) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... warning: dependency cycle detected: warning: harfbuzz will be installed before its freetype2 dependency warning: dependency cycle detected: warning: mesa will be installed before its libglvnd dependency Package (80) New Version Net Change core/argon2 20190702-4 0.11 MiB extra/cairo 1.17.6-2 3.43 MiB core/cryptsetup 2.6.0-1 2.54 MiB core/dbus 1.14.4-1 0.89 MiB extra/default-cursors 2-1 0.00 MiB core/device-mapper 2.03.18-1 0.83 MiB extra/fontconfig 2:2.14.1-2 1.08 MiB extra/freetype2 2.12.1-1 1.63 MiB extra/fribidi 1.0.12-1 0.22 MiB extra/gobject-introspection-runtime 1.74.0-1 0.84 MiB extra/graphite 1:1.3.14-2 0.67 MiB extra/harfbuzz 6.0.0-1 5.96 MiB core/hwdata 0.365-1 8.60 MiB core/iptables 1:1.8.8-2 2.40 MiB core/kbd 2.5.1-1 2.99 MiB core/kmod 30-3 0.28 MiB extra/libdatrie 0.2.13-2 0.06 MiB extra/libdrm 2.4.114-1 1.18 MiB core/libedit 20210910_3.1-2 0.27 MiB extra/libevdev 1.13.0-1 0.25 MiB extra/libglvnd 1.6.0-1 3.70 MiB extra/libgudev 237-2 0.39 MiB extra/libinput 1.22.0-1 1.04 MiB extra/libjpeg-turbo 2.1.4-2 1.89 MiB core/libmnl 1.0.5-1 0.03 MiB core/libnetfilter_conntrack 1.0.9-1 0.15 MiB core/libnfnetlink 1.0.2-1 0.04 MiB core/libnftnl 1.2.4-1 0.24 MiB core/libnl 3.7.0-1 2.08 MiB core/libnsl 2.0.0-2 0.07 MiB extra/libomxil-bellagio 0.9.3-4 0.58 MiB core/libpcap 1.10.1-2 0.60 MiB extra/libpciaccess 0.17-1 0.06 MiB extra/libpng 1.6.39-1 0.57 MiB extra/libthai 0.1.29-2 0.65 MiB extra/libtiff 4.4.0-4 2.86 MiB extra/libunwind 1.6.2-2 0.25 MiB extra/libwacom 2.5.0-1 0.67 MiB extra/libx11 1.8.3-3 10.04 MiB extra/libxau 1.0.11-1 0.02 MiB extra/libxcb 1.15-2 3.78 MiB extra/libxdamage 1.1.6-1 0.02 MiB extra/libxdmcp 1.1.4-1 0.13 MiB extra/libxext 1.3.5-1 0.30 MiB extra/libxfixes 6.0.0-2 0.04 MiB extra/libxft 2.3.7-1 0.13 MiB extra/libxkbcommon 1.5.0-1 0.75 MiB extra/libxrender 0.9.11-1 0.10 MiB extra/libxshmfence 1.3.2-1 0.02 MiB extra/libxxf86vm 1.1.5-1 0.03 MiB extra/llvm-libs 14.0.6-4 112.48 MiB extra/lm_sensors 1:3.6.0.r41.g31d1f125-2 0.47 MiB core/lzo 2.10-4 0.38 MiB extra/mesa 22.3.2-3 75.46 MiB extra/mtdev 1.1.6-2 0.05 MiB extra/pixman 0.42.2-1 0.72 MiB core/popt 1.19-1 0.23 MiB core/python 3.10.9-1 55.19 MiB extra/python-ply 3.11-10 0.31 MiB extra/python-pycparser 2.21-3 1.39 MiB community/seatd 0.7.0-2 0.11 MiB extra/shared-mime-info 2.0+155+gf4e7cbc-1 4.52 MiB core/systemd 252.4-2 28.34 MiB extra/vulkan-icd-loader 1.3.235-1 0.53 MiB extra/wayland 1.21.0-2 0.77 MiB extra/xcb-proto 1.15.2-2 0.88 MiB community/xcb-util-errors 1.0.1-1 0.05 MiB extra/xcb-util-renderutil 0.3.10-1 0.03 MiB extra/xcb-util-wm 0.4.2-1 0.21 MiB extra/xkeyboard-config 2.37-1 6.50 MiB extra/xorgproto 2022.2-1 1.43 MiB extra/gdk-pixbuf2 2.42.10-1 2.96 MiB extra/libnotify 0.8.1-1 0.31 MiB extra/librsvg 2:2.55.1-1 13.93 MiB extra/pango 1:1.50.12-1 2.26 MiB community/python-cairocffi 1.4.0-1 1.22 MiB extra/python-cffi 1.15.1-1 1.02 MiB extra/python-gobject 3.42.2-1 1.13 MiB community/python-xcffib 1.0.0-1 1.90 MiB community/wlroots0.15 0.15.1-1 1.09 MiB Total Installed Size: 381.33 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing libpng... installing libjpeg-turbo... Optional dependencies for libjpeg-turbo java-runtime>11: for TurboJPEG Java wrapper installing libtiff... Optional dependencies for libtiff freeglut: for using tiffgt installing shared-mime-info... installing gdk-pixbuf2... Optional dependencies for gdk-pixbuf2 libwmf: Load .wmf and .apm libopenraw: Load .dng, .cr2, .crw, .nef, .orf, .pef, .arw, .erf, .mrw, and .raf libavif: Load .avif libheif: Load .heif, .heic, and .avif libjxl: Load .jxl librsvg: Load .svg, .svgz, and .svg.gz [pending] webp-pixbuf-loader: Load .webp installing libnotify... installing lzo... installing graphite... installing harfbuzz... Optional dependencies for harfbuzz cairo: hb-view program [pending] chafa: hb-view program installing freetype2... installing fontconfig... Creating fontconfig configuration... Rebuilding fontconfig cache... installing xcb-proto... installing libxdmcp... installing libxau... installing libxcb... installing xorgproto... installing libx11... installing libxext... installing libxrender... installing pixman... installing cairo... installing libdatrie... installing libthai... installing libxft... installing fribidi... installing pango... installing librsvg... installing libnsl... installing python... Optional dependencies for python python-setuptools python-pip sqlite [installed] mpdecimal: for decimal xz: for lzma [installed] tk: for tkinter installing python-ply... installing python-pycparser... installing python-cffi... installing python-xcffib... installing python-cairocffi... Optional dependencies for python-cairocffi gdk-pixbuf2: for cairocffi.pixbuf [installed] installing gobject-introspection-runtime... installing python-gobject... Optional dependencies for python-gobject cairo: Cairo bindings [installed] installing libpciaccess... installing libdrm... installing default-cursors... Optional dependencies for default-cursors adwaita-cursors: default cursor theme installing wayland... installing libxxf86vm... installing libxfixes... installing libxdamage... installing libxshmfence... installing libomxil-bellagio... installing libunwind... installing libedit... installing llvm-libs... installing lm_sensors... Optional dependencies for lm_sensors rrdtool: for logging with sensord perl: for sensor detection and configuration convert [installed] installing vulkan-icd-loader... Optional dependencies for vulkan-icd-loader vulkan-driver: packaged vulkan driver installing mesa... Optional dependencies for mesa opengl-man-pages: for the OpenGL API man pages mesa-vdpau: for accelerated video playback libva-mesa-driver: for accelerated video playback installing libglvnd... installing mtdev... installing device-mapper... installing popt... installing argon2... installing cryptsetup... installing dbus... installing libmnl... installing libnftnl... installing libnl... installing libpcap... installing libnfnetlink... installing libnetfilter_conntrack... installing iptables... installing kbd... installing kmod... installing hwdata... installing systemd... warning: directory permissions differ on /var/log/journal/ filesystem: 755 package: 2755 Creating group 'sys' with GID 3. Creating group 'mem' with GID 8. Creating group 'ftp' with GID 11. Creating group 'mail' with GID 12. Creating group 'log' with GID 19. Creating group 'smmsp' with GID 25. Creating group 'proc' with GID 26. Creating group 'games' with GID 50. Creating group 'lock' with GID 54. Creating group 'network' with GID 90. Creating group 'floppy' with GID 94. Creating group 'scanner' with GID 96. Creating group 'power' with GID 98. Creating group 'nobody' with GID 65534. Creating group 'adm' with GID 999. Creating group 'wheel' with GID 998. Creating group 'utmp' with GID 997. Creating group 'audio' with GID 996. Creating group 'disk' with GID 995. Creating group 'input' with GID 994. Creating group 'kmem' with GID 993. Creating group 'kvm' with GID 992. Creating group 'lp' with GID 991. Creating group 'optical' with GID 990. Creating group 'render' with GID 989. Creating group 'sgx' with GID 988. Creating group 'storage' with GID 987. Creating group 'tty' with GID 5. Creating group 'uucp' with GID 986. Creating group 'video' with GID 985. Creating group 'users' with GID 984. Creating group 'systemd-journal' with GID 983. Creating group 'rfkill' with GID 982. Creating group 'bin' with GID 1. Creating user 'bin' (n/a) with UID 1 and GID 1. Creating group 'daemon' with GID 2. Creating user 'daemon' (n/a) with UID 2 and GID 2. Creating user 'mail' (n/a) with UID 8 and GID 12. Creating user 'ftp' (n/a) with UID 14 and GID 11. Creating group 'http' with GID 33. Creating user 'http' (n/a) with UID 33 and GID 33. Creating user 'nobody' (Kernel Overflow User) with UID 65534 and GID 65534. Creating group 'dbus' with GID 81. Creating user 'dbus' (System Message Bus) with UID 81 and GID 81. Creating group 'systemd-coredump' with GID 981. Creating user 'systemd-coredump' (systemd Core Dumper) with UID 981 and GID 981. Creating group 'systemd-network' with GID 980. Creating user 'systemd-network' (systemd Network Management) with UID 980 and GID 980. Creating group 'systemd-oom' with GID 979. Creating user 'systemd-oom' (systemd Userspace OOM Killer) with UID 979 and GID 979. Creating group 'systemd-journal-remote' with GID 978. Creating user 'systemd-journal-remote' (systemd Journal Remote) with UID 978 and GID 978. Creating group 'systemd-resolve' with GID 977. Creating user 'systemd-resolve' (systemd Resolver) with UID 977 and GID 977. Creating group 'systemd-timesync' with GID 976. Creating user 'systemd-timesync' (systemd Time Synchronization) with UID 976 and GID 976. Creating group 'tss' with GID 975. Creating user 'tss' (tss user for tpm2) with UID 975 and GID 975. Creating group 'uuidd' with GID 68. Creating user 'uuidd' (n/a) with UID 68 and GID 68. Created symlink /etc/systemd/system/getty.target.wants/getty@tty1.service → /usr/lib/systemd/system/getty@.service. Created symlink /etc/systemd/system/multi-user.target.wants/remote-fs.target → /usr/lib/systemd/system/remote-fs.target. Optional dependencies for systemd libmicrohttpd: remote journald capabilities quota-tools: kernel-level quota management systemd-sysvcompat: symlink package to provide sysvinit binaries polkit: allow administration as unprivileged user curl: machinectl pull-tar and pull-raw [installed] libbpf: support BPF programs libfido2: unlocking LUKS2 volumes with FIDO2 token tpm2-tss: unlocking LUKS2 volumes with TPM2 [installed] installing libevdev... installing libgudev... installing libwacom... Optional dependencies for libwacom python-libevdev: for libwacom-show-stylus installing libinput... Optional dependencies for libinput gtk4: libinput debug-gui python-pyudev: libinput measure python-libevdev: libinput measure installing seatd... installing xkeyboard-config... installing libxkbcommon... Optional dependencies for libxkbcommon libxkbcommon-x11: xkbcli interactive-x11 wayland: xkbcli interactive-wayland [installed] installing xcb-util-errors... installing xcb-util-renderutil... installing xcb-util-wm... installing wlroots0.15... Optional dependencies for wlroots0.15 xorg-xwayland: Xwayland support :: Running post-transaction hooks... ( 1/13) Creating system user accounts... Creating group 'seat' with GID 974. ( 2/13) Updating journal message catalog... ( 3/13) Reloading system manager configuration... Skipped: Current root is not booted. ( 4/13) Updating udev hardware database... ( 5/13) Applying kernel sysctl settings... Skipped: Current root is not booted. ( 6/13) Creating temporary files... ( 7/13) Reloading device manager configuration... Skipped: Device manager is not running. ( 8/13) Arming ConditionNeedsUpdate... ( 9/13) Updating the MIME type database... (10/13) Updating fontconfig configuration... (11/13) Reloading system bus configuration... Skipped: Current root is not booted. (12/13) Updating fontconfig cache... (13/13) Probing GDK-Pixbuf loader modules... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (137) New Version Net Change extra/adobe-source-code-pro-fonts 2.038ro+1.058it+1.018var-1 1.86 MiB extra/adwaita-cursors 43-2 11.53 MiB extra/adwaita-icon-theme 43-2 4.77 MiB extra/aom 3.5.0-1 9.16 MiB extra/at-spi2-core 2.46.0-2 3.87 MiB extra/avahi 0.8+22+gfd482a7-3 1.85 MiB extra/cantarell-fonts 1:0.303.1-1 0.19 MiB community/cython 0.29.32-2 8.03 MiB extra/dav1d 1.0.0-1 1.62 MiB extra/dconf 0.40.0-2 0.45 MiB extra/desktop-file-utils 0.26-2 0.20 MiB community/duktape 2.7.0-5 0.80 MiB extra/flac 1.4.2-1 1.10 MiB extra/gd 2.3.3-5 0.67 MiB extra/ghostscript 10.0.0-2 39.06 MiB extra/giflib 5.2.1-2 0.30 MiB extra/glib-networking 1:2.74.0-1 0.61 MiB extra/gsettings-desktop-schemas 43.0-1 4.85 MiB extra/gsfonts 20200910-2 3.11 MiB extra/gtk-update-icon-cache 1:4.8.3-1 0.04 MiB extra/gts 0.7.6.121130-2 0.67 MiB extra/hicolor-icon-theme 0.17-2 0.05 MiB extra/http-parser 2.9.4-1 0.06 MiB extra/ijs 0.35-5 0.12 MiB extra/iso-codes 4.12.0-1 18.35 MiB extra/jbig2dec 0.19-1 0.15 MiB extra/json-glib 1.6.6-2 0.95 MiB extra/lcms2 2.14-1 0.66 MiB extra/libasyncns 1:0.8+r3+g68cd5af-2 0.05 MiB community/libavif 0.11.1-1 0.34 MiB extra/libcloudproviders 0.3.1+r8+g3a229ee-1 0.47 MiB extra/libcolord 1.4.6-1 1.25 MiB extra/libcups 1:2.4.2-3 0.82 MiB extra/libdaemon 0.14-5 0.06 MiB extra/libde265 1.0.9-1 1.04 MiB extra/libepoxy 1.5.10-1 2.79 MiB extra/libfontenc 1.1.7-1 0.04 MiB extra/libgit2 1:1.5.0-2 2.64 MiB extra/libheif 1.14.1-1 0.81 MiB extra/libice 1.1.1-1 0.36 MiB extra/libidn 1.41-1 0.76 MiB extra/liblqr 0.4.2-3 0.09 MiB extra/libogg 1.3.5-1 0.44 MiB extra/libpaper 1.1.28-2 0.09 MiB extra/libproxy 0.4.18-2 0.29 MiB extra/libraqm 0.9.0-1 0.15 MiB extra/libsm 1.2.4-1 0.26 MiB extra/libsndfile 1.1.0-3 1.00 MiB extra/libsoup3 3.2.2-1 1.92 MiB extra/libstemmer 2.2.0-2 0.79 MiB core/libusb 1.0.26-1 0.21 MiB extra/libvorbis 1.3.7-3 1.44 MiB extra/libwebp 1.2.4-1 1.05 MiB extra/libxaw 1.0.14-1 1.69 MiB extra/libxcomposite 0.4.6-1 0.02 MiB extra/libxcursor 1.2.1-3 0.06 MiB extra/libxcvt 0.1.2-1 0.03 MiB extra/libxfont2 2.0.6-1 0.23 MiB extra/libxi 1.8-2 0.48 MiB extra/libxinerama 1.1.5-1 0.02 MiB extra/libxkbfile 1.1.2-1 0.19 MiB extra/libxmu 1.1.4-1 0.33 MiB extra/libxpm 3.5.14-1 0.16 MiB extra/libxrandr 1.5.3-1 0.07 MiB extra/libxt 1.2.1-1 2.03 MiB extra/libxtst 1.2.4-1 0.11 MiB extra/libxv 1.0.12-1 0.06 MiB community/libyuv r2322+3aebf69d-1 1.65 MiB extra/netpbm 10.73.42-1 6.74 MiB extra/openjpeg2 2.5.0-1 13.50 MiB extra/opus 1.3.1-3 0.54 MiB core/pcre 8.45-3 3.49 MiB extra/perl-error 0.17029-4 0.04 MiB extra/perl-mailtools 2.21-6 0.11 MiB extra/perl-timedate 2.33-4 0.08 MiB extra/poppler-data 0.4.11-3 12.34 MiB extra/python-appdirs 1.4.4-7 0.07 MiB extra/python-attrs 22.2.0-1 0.44 MiB community/python-autocommand 2.2.2-1 0.07 MiB community/python-click 8.1.3-1 0.89 MiB community/python-exceptiongroup 1.1.0-1 0.09 MiB community/python-fissix 21.11.13-1 1.76 MiB community/python-inflect 6.0.2-1 0.28 MiB community/python-iniconfig 1.1.1-5 0.02 MiB community/python-jaraco.context 4.2.0-1 0.03 MiB community/python-jaraco.functools 3.5.2-1 0.05 MiB community/python-jaraco.text 3.11.0-1 0.07 MiB community/python-more-itertools 9.0.0-1 0.49 MiB community/python-moreorless 0.4.0-3 0.05 MiB extra/python-ordered-set 4.1.0-1 0.06 MiB extra/python-packaging 21.3-1 0.26 MiB extra/python-pep517 0.13.0-1 0.13 MiB community/python-pluggy 1.0.0-1 0.10 MiB community/python-pydantic 1.10.4-1 7.23 MiB extra/python-pyparsing 3.0.9-1 0.96 MiB community/python-pywayland 0.4.15-1 3.01 MiB extra/python-setuptools 1:65.6.3-1 3.31 MiB extra/python-tomli 2.0.1-1 0.08 MiB extra/python-trove-classifiers 2022.12.22-1 0.11 MiB community/python-typing_extensions 4.4.0-1 0.22 MiB extra/python-validate-pyproject 0.10.1-1 0.41 MiB community/python-volatile 2.1.0-3 0.01 MiB community/python-xkbcommon 0.4-3 0.23 MiB extra/rav1e 0.6.2-1 6.77 MiB core/run-parts 5.5-1 0.04 MiB extra/speex 1.2.1-1 0.62 MiB extra/speexdsp 1.2.1-1 0.54 MiB extra/svt-av1 1.4.1-1 7.35 MiB extra/tracker3 3.4.2-1 3.03 MiB extra/x265 3.5-3 19.13 MiB extra/xcb-util 0.4.1-1 0.04 MiB extra/xcb-util-image 0.4.1-2 0.05 MiB extra/xcb-util-keysyms 0.4.1-4 0.02 MiB extra/xorg-fonts-encodings 1.0.6-1 0.61 MiB extra/xorg-server-common 21.1.6-1 0.12 MiB extra/xorg-setxkbmap 1.3.3-1 0.03 MiB extra/xorg-xauth 1.1.2-1 0.05 MiB extra/xorg-xkbcomp 1.4.6-1 0.21 MiB extra/git 2.39.0-1 37.39 MiB extra/graphviz 7.0.5-1 10.04 MiB extra/gtk3 1:3.24.36-1 48.77 MiB extra/imagemagick 7.1.0.57-1 10.96 MiB extra/libpulse 16.1-3 1.51 MiB core/procps-ng 3.3.17-1 1.53 MiB community/python-bowler 0.9.0-5 0.31 MiB community/python-build 0.9.0-1 1.06 MiB community/python-dbus-next 0.2.3-3 0.59 MiB community/python-installer 0.6.0-1 1.20 MiB community/python-pytest 7.2.0-4 2.79 MiB community/python-pywlroots 0.15.24-3 1.27 MiB extra/python-pyxdg 0.28-1 0.38 MiB community/python-setuptools-scm 7.1.0-1 0.27 MiB community/python-wheel 0.38.4-1 0.16 MiB extra/xorg-server-xephyr 21.1.6-1 2.26 MiB extra/xorg-server-xvfb 21.1.6-1 1.91 MiB extra/xorg-xrandr 1.5.2-1 0.07 MiB extra/xorg-xwayland 22.1.7-1 2.20 MiB Total Installed Size: 361.93 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing perl-error... installing perl-timedate... installing perl-mailtools... installing git... Optional dependencies for git tk: gitk and git gui perl-libwww: git svn perl-term-readkey: git svn and interactive.singlekey setting perl-io-socket-ssl: git send-email TLS support perl-authen-sasl: git send-email TLS support perl-mediawiki-api: git mediawiki support perl-datetime-format-iso8601: git mediawiki support perl-lwp-protocol-https: git mediawiki https support perl-cgi: gitweb (web interface) support python: git svn & git p4 [installed] subversion: git svn org.freedesktop.secrets: keyring credential helper libsecret: libsecret credential helper [installed] installing libasyncns... installing libice... installing libsm... installing opus... installing libogg... installing speexdsp... installing speex... installing flac... installing libvorbis... installing libsndfile... Optional dependencies for libsndfile alsa-lib: for sndfile-play installing libpulse... Optional dependencies for libpulse glib2: mainloop integration [installed] installing python-tomli... installing python-pep517... installing python-pyparsing... Optional dependencies for python-pyparsing python-railroad-diagrams: for generating Railroad Diagrams python-jinja: for generating Railroad Diagrams installing python-packaging... installing python-build... Optional dependencies for python-build python-virtualenv: Use virtualenv for build isolation installing python-installer... installing python-appdirs... installing python-more-itertools... installing python-jaraco.functools... installing python-jaraco.context... installing python-autocommand... installing cython... installing python-typing_extensions... installing python-pydantic... Optional dependencies for python-pydantic python-dotenv: for .env file support python-email-validator: for email validation installing python-inflect... installing python-jaraco.text... installing python-ordered-set... installing python-trove-classifiers... installing python-validate-pyproject... installing python-setuptools... installing python-setuptools-scm... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures [pending] installing libxt... installing libxpm... installing giflib... installing libwebp... Optional dependencies for libwebp freeglut: vwebp viewer installing aom... installing dav1d... Optional dependencies for dav1d dav1d-doc: HTML documentation installing http-parser... installing pcre... installing libgit2... installing rav1e... installing svt-av1... installing libyuv... installing libavif... installing libde265... Optional dependencies for libde265 ffmpeg: for sherlock265 qt5-base: for sherlock265 sdl: dec265 YUV overlay output installing x265... installing libheif... Optional dependencies for libheif libjpeg: for heif-convert and heif-enc [installed] libpng: for heif-convert and heif-enc [installed] installing gd... Optional dependencies for gd perl: bdftogd script [installed] installing libxmu... installing libxaw... installing libdaemon... installing avahi... Optional dependencies for avahi gtk3: avahi-discover, avahi-discover-standalone, bshell, bssh, bvnc [pending] qt5-base: qt5 bindings libevent: libevent bindings [installed] nss-mdns: NSS support for mDNS python-twisted: avahi-bookmarks python-gobject: avahi-bookmarks, avahi-discover [installed] python-dbus: avahi-bookmarks, avahi-discover installing libusb... installing libcups... installing jbig2dec... installing lcms2... installing run-parts... installing libpaper... installing ijs... installing openjpeg2... installing libidn... installing poppler-data... installing ghostscript... Optional dependencies for ghostscript texlive-core: needed for dvipdf gtk3: needed for gsx [pending] installing netpbm... installing gts... installing gsfonts... installing graphviz... Warning: Could not load "/usr/lib/graphviz/libgvplugin_gdk.so.6" - It was found, so perhaps one of its dependents was not. Try ldd. Warning: Could not load "/usr/lib/graphviz/libgvplugin_gtk.so.6" - It was found, so perhaps one of its dependents was not. Try ldd. Warning: Could not load "/usr/lib/graphviz/libgvplugin_gdk.so.6" - It was found, so perhaps one of its dependents was not. Try ldd. Warning: Could not load "/usr/lib/graphviz/libgvplugin_gtk.so.6" - It was found, so perhaps one of its dependents was not. Try ldd. Optional dependencies for graphviz mono: sharp bindings guile: guile bindings [installed] lua: lua bindings ocaml: ocaml bindings perl: perl bindings [installed] python: python bindings [installed] r: r bindings tcl: tcl bindings qt5-base: gvedit gtk2: gtk output plugin xterm: vimdot installing hicolor-icon-theme... installing gtk-update-icon-cache... installing adwaita-cursors... installing adwaita-icon-theme... installing libxi... installing libxtst... installing at-spi2-core... Optional dependencies for at-spi2-core dbus-broker: Alternative bus implementation installing cantarell-fonts... installing dconf... installing desktop-file-utils... installing iso-codes... installing libcloudproviders... installing libcolord... installing libepoxy... installing libxcomposite... installing libxcursor... installing libxinerama... installing libxrandr... installing json-glib... installing duktape... installing libproxy... Optional dependencies for libproxy networkmanager: NetworkManager configuration module perl: Perl bindings [installed] python: Python 3.x bindings [installed] libproxy-webkit: PAC proxy support (via WebKit) pacrunner: PAC proxy support (via pacrunner) installing adobe-source-code-pro-fonts... installing gsettings-desktop-schemas... installing glib-networking... installing libsoup3... Optional dependencies for libsoup3 samba: Windows Domain SSO installing libstemmer... installing tracker3... Optional dependencies for tracker3 libsoup: Alternative remoting backend installing gtk3... Optional dependencies for gtk3 evince: Default print preview command installing liblqr... installing libraqm... installing imagemagick... Optional dependencies for imagemagick ghostscript: PS/PDF support [installed] libheif: HEIF support [installed] libjxl: JPEG XL support libraw: DNG support librsvg: SVG support [installed] libwebp: WEBP support [installed] libwmf: WMF support libxml2: Magick Scripting Language [installed] libzip: OpenRaster support ocl-icd: OpenCL support openexr: OpenEXR support openjpeg2: JPEG2000 support [installed] djvulibre: DJVU support pango: Text rendering [installed] imagemagick-doc: manual and API docs installing procps-ng... installing python-attrs... installing python-click... installing python-fissix... installing python-moreorless... installing python-volatile... installing python-bowler... installing python-dbus-next... installing python-exceptiongroup... installing python-iniconfig... installing python-pluggy... installing python-pytest... installing python-pywayland... installing python-xkbcommon... installing python-pywlroots... installing python-pyxdg... installing xorg-fonts-encodings... installing libfontenc... installing libxfont2... installing libxv... installing libxkbfile... installing xorg-xkbcomp... installing xorg-xrandr... installing xorg-setxkbmap... installing xorg-server-common... installing xcb-util... installing xcb-util-image... installing xcb-util-keysyms... installing xorg-server-xephyr... installing xorg-xauth... installing xorg-server-xvfb... installing libxcvt... installing xorg-xwayland... :: Running post-transaction hooks... ( 1/15) Creating system user accounts... Creating group 'avahi' with GID 973. Creating user 'avahi' (Avahi mDNS/DNS-SD daemon) with UID 973 and GID 973. Creating group 'git' with GID 972. Creating user 'git' (git daemon user) with UID 972 and GID 972. ( 2/15) Reloading system manager configuration... Skipped: Current root is not booted. ( 3/15) Arming ConditionNeedsUpdate... ( 4/15) Updating the MIME type database... ( 5/15) Updating fontconfig configuration... ( 6/15) Reloading system bus configuration... Skipped: Current root is not booted. ( 7/15) Warn about old perl modules ( 8/15) Updating fontconfig cache... ( 9/15) Probing GDK-Pixbuf loader modules... (10/15) Updating GIO module cache... (11/15) Compiling GSettings XML schema files... (12/15) Probing GTK3 input method modules... (13/15) Updating icon theme caches... (14/15) Updating the info directory file... (15/15) Updating the desktop file MIME type cache... [?25h==> Retrieving sources... ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources... -> Creating working copy of qtile git repo... Cloning into 'qtile'... done. Switched to a new branch 'makepkg' ==> Starting build()... Building Pango interface Building xcursors Building PulseAudio interface Building Wayland libinput interface * Getting build dependencies for wheel... /usr/lib/python3.10/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead. warnings.warn(msg, warning_class) Built with support for XWayland helpers. * Building wheel... /usr/lib/python3.10/site-packages/setuptools/config/setupcfg.py:508: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead. warnings.warn(msg, warning_class) Built with support for XWayland helpers. running bdist_wheel running build running build_py creating build creating build/lib.linux-x86_64-cpython-310 creating build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/_ffi_pango.py -> build/lib.linux-x86_64-cpython-310/libqtile creating build/lib.linux-x86_64-cpython-310/libqtile/backend creating build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/backend/x11/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/backend/x11/_ffi_xcursors.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/popup.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/utils.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/pangocffi.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/command_object.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/drawer.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/scratchpad.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/configurable.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/notify.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/log_utils.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/group.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/confreader.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/sh.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/command_client.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/command_graph.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/lazy.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/dgroups.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/config.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/hook.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/command_interface.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/bar.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/images.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/pango_ffi_build.py -> build/lib.linux-x86_64-cpython-310/libqtile copying libqtile/ipc.py -> build/lib.linux-x86_64-cpython-310/libqtile creating build/lib.linux-x86_64-cpython-310/libqtile/interactive copying libqtile/interactive/iqshell_install.py -> build/lib.linux-x86_64-cpython-310/libqtile/interactive copying libqtile/interactive/iqshell_kernel.py -> build/lib.linux-x86_64-cpython-310/libqtile/interactive copying libqtile/interactive/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/interactive creating build/lib.linux-x86_64-cpython-310/libqtile/core copying libqtile/core/state.py -> build/lib.linux-x86_64-cpython-310/libqtile/core copying libqtile/core/loop.py -> build/lib.linux-x86_64-cpython-310/libqtile/core copying libqtile/core/lifecycle.py -> build/lib.linux-x86_64-cpython-310/libqtile/core copying libqtile/core/manager.py -> build/lib.linux-x86_64-cpython-310/libqtile/core copying libqtile/core/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/core creating build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/widgetbox.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/import_error.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/canto.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/khal_calendar.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/caps_num_lock_indicator.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/pulse_volume.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/textbox.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/currentlayout.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/battery.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/spacer.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/pulseaudio_ffi.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/tasklist.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/keyboardkbdd.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/clock.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/statusnotifier.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/crashme.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/wlan.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/notify.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/df.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/windowtabs.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/moc.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/countdown.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/backlight.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/pomodoro.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/windowname.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/wttr.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/sensors.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/check_updates.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/nvidia_sensors.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/imapwidget.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/prompt.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/quick_exit.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/window_count.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/mpris2widget.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/keyboardlayout.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/sep.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/stock_ticker.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/load.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/open_weather.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/net.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/graph.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/bluetooth.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/wallpaper.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/maildir.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/idlerpg.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/base.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/volume.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/chord.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/image.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/gmail_checker.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/generic_poll_text.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/thermal_zone.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/clipboard.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/mpd2widget.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/currentscreen.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/groupbox.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/she.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/memory.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/cpu.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/config_error.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/systray.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/cmus.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/launchbar.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget copying libqtile/widget/crypto_ticker.py -> build/lib.linux-x86_64-cpython-310/libqtile/widget creating build/lib.linux-x86_64-cpython-310/libqtile/resources copying libqtile/resources/default_config.py -> build/lib.linux-x86_64-cpython-310/libqtile/resources copying libqtile/resources/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/resources creating build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/cmd_obj.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/main.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/check.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/migrate.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/start.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/top.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/run_cmd.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/shell.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/scripts/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/scripts copying libqtile/backend/base.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend copying libqtile/backend/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend creating build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/max.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/spiral.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/columns.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/slice.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/tree.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/stack.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/tile.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/verticaltile.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/ratiotile.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/base.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/matrix.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/bsp.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/floating.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/zoomy.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/xmonad.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout copying libqtile/layout/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/layout creating build/lib.linux-x86_64-cpython-310/libqtile/extension copying libqtile/extension/dmenu.py -> build/lib.linux-x86_64-cpython-310/libqtile/extension copying libqtile/extension/window_list.py -> build/lib.linux-x86_64-cpython-310/libqtile/extension copying libqtile/extension/command_set.py -> build/lib.linux-x86_64-cpython-310/libqtile/extension copying libqtile/extension/base.py -> build/lib.linux-x86_64-cpython-310/libqtile/extension copying libqtile/extension/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/extension creating build/lib.linux-x86_64-cpython-310/libqtile/command copying libqtile/command/graph.py -> build/lib.linux-x86_64-cpython-310/libqtile/command copying libqtile/command/base.py -> build/lib.linux-x86_64-cpython-310/libqtile/command copying libqtile/command/client.py -> build/lib.linux-x86_64-cpython-310/libqtile/command copying libqtile/command/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/command copying libqtile/command/interface.py -> build/lib.linux-x86_64-cpython-310/libqtile/command creating build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/output.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/drawer.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/wlrq.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/inputs.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/subsurface.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/xdgwindow.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/xwindow.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/layer.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/libinput_ffi_build.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/core.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/window.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/wayland/__init__.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland copying libqtile/backend/x11/drawer.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/backend/x11/xkeysyms.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/backend/x11/xcursors.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/backend/x11/xcbq.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/backend/x11/xcursors_ffi_build.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/backend/x11/core.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 copying libqtile/backend/x11/window.py -> build/lib.linux-x86_64-cpython-310/libqtile/backend/x11 running egg_info creating qtile.egg-info writing qtile.egg-info/PKG-INFO writing dependency_links to qtile.egg-info/dependency_links.txt writing entry points to qtile.egg-info/entry_points.txt writing requirements to qtile.egg-info/requires.txt writing top-level names to qtile.egg-info/top_level.txt writing manifest file 'qtile.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' no previously-included directories found matching 'rpm' warning: no previously-included files matching '__pycache__' found under directory '*' warning: no previously-included files matching '*.py[co]' found under directory '*' adding license file 'LICENSE' writing manifest file 'qtile.egg-info/SOURCES.txt' copying libqtile/py.typed -> build/lib.linux-x86_64-cpython-310/libqtile creating build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-caution-charging.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-caution.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-empty.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-full-charged.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-full-charging.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-full.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-good-charging.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-good.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-low-charging.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-low.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons copying libqtile/resources/battery-icons/battery-missing.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons creating build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-bsp.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-columns.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-floating.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-matrix.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-max.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-monadtall.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-monadthreecol.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-monadwide.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-ratiotile.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-slice.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-spiral.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-stack.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-tile.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-treetab.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-unknown.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-verticaltile.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-wmii.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons copying libqtile/resources/layout-icons/layout-zoomy.png -> build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons generating cffi module 'build/lib.linux-x86_64-cpython-310/libqtile/_ffi_pango.py' already up-to-date generating cffi module 'build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/_ffi_xcursors.py' already up-to-date running build_ext generating cffi module 'build/temp.linux-x86_64-cpython-310/libqtile.backend.wayland._libinput.c' creating build/temp.linux-x86_64-cpython-310 generating cffi module 'build/temp.linux-x86_64-cpython-310/libqtile.widget._pulse_audio.c' building 'libqtile.widget._pulse_audio' extension creating build/temp.linux-x86_64-cpython-310/build creating build/temp.linux-x86_64-cpython-310/build/temp.linux-x86_64-cpython-310 gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -ffat-lto-objects -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -march=x86-64-v2 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -mpclmul -g -ffile-prefix-map=/startdir/src=/usr/src/debug/qtile -flto=auto -falign-functions=32 -I/usr/include/wlroots0.15 -fPIC -I/usr/include/python3.10 -c build/temp.linux-x86_64-cpython-310/libqtile.widget._pulse_audio.c -o build/temp.linux-x86_64-cpython-310/build/temp.linux-x86_64-cpython-310/libqtile.widget._pulse_audio.o gcc -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -falign-functions=32 -L/usr/lib/wlroots0.15 -march=x86-64-v2 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -mpclmul -g -ffile-prefix-map=/startdir/src=/usr/src/debug/qtile -flto=auto -falign-functions=32 -I/usr/include/wlroots0.15 build/temp.linux-x86_64-cpython-310/build/temp.linux-x86_64-cpython-310/libqtile.widget._pulse_audio.o -L/usr/lib -lpulse -o build/lib.linux-x86_64-cpython-310/libqtile/widget/_pulse_audio.abi3.so building 'libqtile.backend.wayland._libinput' extension gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -ffat-lto-objects -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -march=x86-64 -mtune=generic -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -g -ffile-prefix-map=/build/python/src=/usr/src/debug/python -flto=auto -march=x86-64-v2 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -mpclmul -g -ffile-prefix-map=/startdir/src=/usr/src/debug/qtile -flto=auto -falign-functions=32 -I/usr/include/wlroots0.15 -fPIC -DWLR_USE_UNSTABLE -I/usr/include/pixman-1 -I/usr/lib/python3.10/site-packages/wlroots/include -I/usr/include/python3.10 -c build/temp.linux-x86_64-cpython-310/libqtile.backend.wayland._libinput.c -o build/temp.linux-x86_64-cpython-310/build/temp.linux-x86_64-cpython-310/libqtile.backend.wayland._libinput.o gcc -shared -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -Wl,-O1,--sort-common,--as-needed,-z,relro,-z,now -flto=auto -falign-functions=32 -L/usr/lib/wlroots0.15 -march=x86-64-v2 -O3 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -mpclmul -g -ffile-prefix-map=/startdir/src=/usr/src/debug/qtile -flto=auto -falign-functions=32 -I/usr/include/wlroots0.15 build/temp.linux-x86_64-cpython-310/build/temp.linux-x86_64-cpython-310/libqtile.backend.wayland._libinput.o -L/usr/lib -lwlroots -linput -o build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/_libinput.abi3.so installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64 creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/popup.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/utils.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/interactive copying build/lib.linux-x86_64-cpython-310/libqtile/interactive/iqshell_install.py -> build/bdist.linux-x86_64/wheel/libqtile/interactive copying build/lib.linux-x86_64-cpython-310/libqtile/interactive/iqshell_kernel.py -> build/bdist.linux-x86_64/wheel/libqtile/interactive copying build/lib.linux-x86_64-cpython-310/libqtile/interactive/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/interactive copying build/lib.linux-x86_64-cpython-310/libqtile/pangocffi.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/command_object.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/drawer.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/core copying build/lib.linux-x86_64-cpython-310/libqtile/core/state.py -> build/bdist.linux-x86_64/wheel/libqtile/core copying build/lib.linux-x86_64-cpython-310/libqtile/core/loop.py -> build/bdist.linux-x86_64/wheel/libqtile/core copying build/lib.linux-x86_64-cpython-310/libqtile/core/lifecycle.py -> build/bdist.linux-x86_64/wheel/libqtile/core copying build/lib.linux-x86_64-cpython-310/libqtile/core/manager.py -> build/bdist.linux-x86_64/wheel/libqtile/core copying build/lib.linux-x86_64-cpython-310/libqtile/core/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/core copying build/lib.linux-x86_64-cpython-310/libqtile/scratchpad.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/configurable.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/notify.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/log_utils.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/group.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/widgetbox.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/import_error.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/canto.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/khal_calendar.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/caps_num_lock_indicator.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/pulse_volume.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/textbox.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/currentlayout.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/battery.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/spacer.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/pulseaudio_ffi.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/tasklist.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/keyboardkbdd.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/clock.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/statusnotifier.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/crashme.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/wlan.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/notify.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/df.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/windowtabs.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/moc.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/countdown.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/backlight.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/pomodoro.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/windowname.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/wttr.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/sensors.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/check_updates.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/nvidia_sensors.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/imapwidget.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/prompt.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/quick_exit.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/_pulse_audio.abi3.so -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/window_count.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/mpris2widget.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/keyboardlayout.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/sep.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/stock_ticker.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/load.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/open_weather.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/net.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/graph.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/bluetooth.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/wallpaper.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/maildir.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/idlerpg.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/base.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/volume.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/chord.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/image.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/gmail_checker.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/generic_poll_text.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/thermal_zone.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/clipboard.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/mpd2widget.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/currentscreen.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/groupbox.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/she.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/memory.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/cpu.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/config_error.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/systray.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/cmus.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/launchbar.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/widget/crypto_ticker.py -> build/bdist.linux-x86_64/wheel/libqtile/widget copying build/lib.linux-x86_64-cpython-310/libqtile/confreader.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/sh.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/resources creating build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-caution.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-full.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-low.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-empty.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-missing.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-full-charged.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-full-charging.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-caution-charging.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-good-charging.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-low-charging.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/battery-icons/battery-good.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/battery-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/default_config.py -> build/bdist.linux-x86_64/wheel/libqtile/resources creating build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-max.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-matrix.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-treetab.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-tile.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-wmii.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-slice.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-zoomy.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-unknown.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-spiral.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-verticaltile.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-monadwide.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-monadtall.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-monadthreecol.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-columns.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-ratiotile.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-floating.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-bsp.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/layout-icons/layout-stack.png -> build/bdist.linux-x86_64/wheel/libqtile/resources/layout-icons copying build/lib.linux-x86_64-cpython-310/libqtile/resources/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/resources copying build/lib.linux-x86_64-cpython-310/libqtile/py.typed -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/command_client.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/command_graph.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/lazy.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/cmd_obj.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/main.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/check.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/migrate.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/start.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/top.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/run_cmd.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/shell.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/scripts/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/scripts copying build/lib.linux-x86_64-cpython-310/libqtile/_ffi_pango.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/backend creating build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/output.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/drawer.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/wlrq.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/inputs.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/subsurface.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/xdgwindow.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/_libinput.abi3.so -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/xwindow.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/layer.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/libinput_ffi_build.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/core.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/window.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland copying build/lib.linux-x86_64-cpython-310/libqtile/backend/wayland/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/wayland creating build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/drawer.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/xkeysyms.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/_ffi_xcursors.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/xcursors.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/xcbq.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/xcursors_ffi_build.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/core.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/window.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/x11/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/backend/x11 copying build/lib.linux-x86_64-cpython-310/libqtile/backend/base.py -> build/bdist.linux-x86_64/wheel/libqtile/backend copying build/lib.linux-x86_64-cpython-310/libqtile/backend/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/backend copying build/lib.linux-x86_64-cpython-310/libqtile/dgroups.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/config.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/max.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/spiral.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/columns.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/slice.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/tree.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/stack.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/tile.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/verticaltile.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/ratiotile.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/base.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/matrix.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/bsp.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/floating.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/zoomy.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/xmonad.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/layout/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/layout copying build/lib.linux-x86_64-cpython-310/libqtile/hook.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/extension copying build/lib.linux-x86_64-cpython-310/libqtile/extension/dmenu.py -> build/bdist.linux-x86_64/wheel/libqtile/extension copying build/lib.linux-x86_64-cpython-310/libqtile/extension/window_list.py -> build/bdist.linux-x86_64/wheel/libqtile/extension copying build/lib.linux-x86_64-cpython-310/libqtile/extension/command_set.py -> build/bdist.linux-x86_64/wheel/libqtile/extension copying build/lib.linux-x86_64-cpython-310/libqtile/extension/base.py -> build/bdist.linux-x86_64/wheel/libqtile/extension copying build/lib.linux-x86_64-cpython-310/libqtile/extension/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/extension copying build/lib.linux-x86_64-cpython-310/libqtile/command_interface.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/bar.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/images.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/pango_ffi_build.py -> build/bdist.linux-x86_64/wheel/libqtile copying build/lib.linux-x86_64-cpython-310/libqtile/ipc.py -> build/bdist.linux-x86_64/wheel/libqtile creating build/bdist.linux-x86_64/wheel/libqtile/command copying build/lib.linux-x86_64-cpython-310/libqtile/command/graph.py -> build/bdist.linux-x86_64/wheel/libqtile/command copying build/lib.linux-x86_64-cpython-310/libqtile/command/base.py -> build/bdist.linux-x86_64/wheel/libqtile/command copying build/lib.linux-x86_64-cpython-310/libqtile/command/client.py -> build/bdist.linux-x86_64/wheel/libqtile/command copying build/lib.linux-x86_64-cpython-310/libqtile/command/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile/command copying build/lib.linux-x86_64-cpython-310/libqtile/command/interface.py -> build/bdist.linux-x86_64/wheel/libqtile/command copying build/lib.linux-x86_64-cpython-310/libqtile/__init__.py -> build/bdist.linux-x86_64/wheel/libqtile running install_egg_info Copying qtile.egg-info to build/bdist.linux-x86_64/wheel/qtile-0.22.1-py3.10.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/qtile-0.22.1.dist-info/WHEEL creating '/startdir/src/qtile/dist/.tmp-cndwclco/qtile-0.22.1-cp310-cp310-linux_x86_64.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'libqtile/__init__.py' adding 'libqtile/_ffi_pango.py' adding 'libqtile/bar.py' adding 'libqtile/command_client.py' adding 'libqtile/command_graph.py' adding 'libqtile/command_interface.py' adding 'libqtile/command_object.py' adding 'libqtile/config.py' adding 'libqtile/configurable.py' adding 'libqtile/confreader.py' adding 'libqtile/dgroups.py' adding 'libqtile/drawer.py' adding 'libqtile/group.py' adding 'libqtile/hook.py' adding 'libqtile/images.py' adding 'libqtile/ipc.py' adding 'libqtile/lazy.py' adding 'libqtile/log_utils.py' adding 'libqtile/notify.py' adding 'libqtile/pango_ffi_build.py' adding 'libqtile/pangocffi.py' adding 'libqtile/popup.py' adding 'libqtile/py.typed' adding 'libqtile/scratchpad.py' adding 'libqtile/sh.py' adding 'libqtile/utils.py' adding 'libqtile/backend/__init__.py' adding 'libqtile/backend/base.py' adding 'libqtile/backend/wayland/__init__.py' adding 'libqtile/backend/wayland/_libinput.abi3.so' adding 'libqtile/backend/wayland/core.py' adding 'libqtile/backend/wayland/drawer.py' adding 'libqtile/backend/wayland/inputs.py' adding 'libqtile/backend/wayland/layer.py' adding 'libqtile/backend/wayland/libinput_ffi_build.py' adding 'libqtile/backend/wayland/output.py' adding 'libqtile/backend/wayland/subsurface.py' adding 'libqtile/backend/wayland/window.py' adding 'libqtile/backend/wayland/wlrq.py' adding 'libqtile/backend/wayland/xdgwindow.py' adding 'libqtile/backend/wayland/xwindow.py' adding 'libqtile/backend/x11/__init__.py' adding 'libqtile/backend/x11/_ffi_xcursors.py' adding 'libqtile/backend/x11/core.py' adding 'libqtile/backend/x11/drawer.py' adding 'libqtile/backend/x11/window.py' adding 'libqtile/backend/x11/xcbq.py' adding 'libqtile/backend/x11/xcursors.py' adding 'libqtile/backend/x11/xcursors_ffi_build.py' adding 'libqtile/backend/x11/xkeysyms.py' adding 'libqtile/command/__init__.py' adding 'libqtile/command/base.py' adding 'libqtile/command/client.py' adding 'libqtile/command/graph.py' adding 'libqtile/command/interface.py' adding 'libqtile/core/__init__.py' adding 'libqtile/core/lifecycle.py' adding 'libqtile/core/loop.py' adding 'libqtile/core/manager.py' adding 'libqtile/core/state.py' adding 'libqtile/extension/__init__.py' adding 'libqtile/extension/base.py' adding 'libqtile/extension/command_set.py' adding 'libqtile/extension/dmenu.py' adding 'libqtile/extension/window_list.py' adding 'libqtile/interactive/__init__.py' adding 'libqtile/interactive/iqshell_install.py' adding 'libqtile/interactive/iqshell_kernel.py' adding 'libqtile/layout/__init__.py' adding 'libqtile/layout/base.py' adding 'libqtile/layout/bsp.py' adding 'libqtile/layout/columns.py' adding 'libqtile/layout/floating.py' adding 'libqtile/layout/matrix.py' adding 'libqtile/layout/max.py' adding 'libqtile/layout/ratiotile.py' adding 'libqtile/layout/slice.py' adding 'libqtile/layout/spiral.py' adding 'libqtile/layout/stack.py' adding 'libqtile/layout/tile.py' adding 'libqtile/layout/tree.py' adding 'libqtile/layout/verticaltile.py' adding 'libqtile/layout/xmonad.py' adding 'libqtile/layout/zoomy.py' adding 'libqtile/resources/__init__.py' adding 'libqtile/resources/default_config.py' adding 'libqtile/resources/battery-icons/battery-caution-charging.png' adding 'libqtile/resources/battery-icons/battery-caution.png' adding 'libqtile/resources/battery-icons/battery-empty.png' adding 'libqtile/resources/battery-icons/battery-full-charged.png' adding 'libqtile/resources/battery-icons/battery-full-charging.png' adding 'libqtile/resources/battery-icons/battery-full.png' adding 'libqtile/resources/battery-icons/battery-good-charging.png' adding 'libqtile/resources/battery-icons/battery-good.png' adding 'libqtile/resources/battery-icons/battery-low-charging.png' adding 'libqtile/resources/battery-icons/battery-low.png' adding 'libqtile/resources/battery-icons/battery-missing.png' adding 'libqtile/resources/layout-icons/layout-bsp.png' adding 'libqtile/resources/layout-icons/layout-columns.png' adding 'libqtile/resources/layout-icons/layout-floating.png' adding 'libqtile/resources/layout-icons/layout-matrix.png' adding 'libqtile/resources/layout-icons/layout-max.png' adding 'libqtile/resources/layout-icons/layout-monadtall.png' adding 'libqtile/resources/layout-icons/layout-monadthreecol.png' adding 'libqtile/resources/layout-icons/layout-monadwide.png' adding 'libqtile/resources/layout-icons/layout-ratiotile.png' adding 'libqtile/resources/layout-icons/layout-slice.png' adding 'libqtile/resources/layout-icons/layout-spiral.png' adding 'libqtile/resources/layout-icons/layout-stack.png' adding 'libqtile/resources/layout-icons/layout-tile.png' adding 'libqtile/resources/layout-icons/layout-treetab.png' adding 'libqtile/resources/layout-icons/layout-unknown.png' adding 'libqtile/resources/layout-icons/layout-verticaltile.png' adding 'libqtile/resources/layout-icons/layout-wmii.png' adding 'libqtile/resources/layout-icons/layout-zoomy.png' adding 'libqtile/scripts/__init__.py' adding 'libqtile/scripts/check.py' adding 'libqtile/scripts/cmd_obj.py' adding 'libqtile/scripts/main.py' adding 'libqtile/scripts/migrate.py' adding 'libqtile/scripts/run_cmd.py' adding 'libqtile/scripts/shell.py' adding 'libqtile/scripts/start.py' adding 'libqtile/scripts/top.py' adding 'libqtile/widget/__init__.py' adding 'libqtile/widget/_pulse_audio.abi3.so' adding 'libqtile/widget/backlight.py' adding 'libqtile/widget/base.py' adding 'libqtile/widget/battery.py' adding 'libqtile/widget/bluetooth.py' adding 'libqtile/widget/canto.py' adding 'libqtile/widget/caps_num_lock_indicator.py' adding 'libqtile/widget/check_updates.py' adding 'libqtile/widget/chord.py' adding 'libqtile/widget/clipboard.py' adding 'libqtile/widget/clock.py' adding 'libqtile/widget/cmus.py' adding 'libqtile/widget/config_error.py' adding 'libqtile/widget/countdown.py' adding 'libqtile/widget/cpu.py' adding 'libqtile/widget/crashme.py' adding 'libqtile/widget/crypto_ticker.py' adding 'libqtile/widget/currentlayout.py' adding 'libqtile/widget/currentscreen.py' adding 'libqtile/widget/df.py' adding 'libqtile/widget/generic_poll_text.py' adding 'libqtile/widget/gmail_checker.py' adding 'libqtile/widget/graph.py' adding 'libqtile/widget/groupbox.py' adding 'libqtile/widget/idlerpg.py' adding 'libqtile/widget/image.py' adding 'libqtile/widget/imapwidget.py' adding 'libqtile/widget/import_error.py' adding 'libqtile/widget/keyboardkbdd.py' adding 'libqtile/widget/keyboardlayout.py' adding 'libqtile/widget/khal_calendar.py' adding 'libqtile/widget/launchbar.py' adding 'libqtile/widget/load.py' adding 'libqtile/widget/maildir.py' adding 'libqtile/widget/memory.py' adding 'libqtile/widget/moc.py' adding 'libqtile/widget/mpd2widget.py' adding 'libqtile/widget/mpris2widget.py' adding 'libqtile/widget/net.py' adding 'libqtile/widget/notify.py' adding 'libqtile/widget/nvidia_sensors.py' adding 'libqtile/widget/open_weather.py' adding 'libqtile/widget/pomodoro.py' adding 'libqtile/widget/prompt.py' adding 'libqtile/widget/pulse_volume.py' adding 'libqtile/widget/pulseaudio_ffi.py' adding 'libqtile/widget/quick_exit.py' adding 'libqtile/widget/sensors.py' adding 'libqtile/widget/sep.py' adding 'libqtile/widget/she.py' adding 'libqtile/widget/spacer.py' adding 'libqtile/widget/statusnotifier.py' adding 'libqtile/widget/stock_ticker.py' adding 'libqtile/widget/systray.py' adding 'libqtile/widget/tasklist.py' adding 'libqtile/widget/textbox.py' adding 'libqtile/widget/thermal_zone.py' adding 'libqtile/widget/volume.py' adding 'libqtile/widget/wallpaper.py' adding 'libqtile/widget/widgetbox.py' adding 'libqtile/widget/window_count.py' adding 'libqtile/widget/windowname.py' adding 'libqtile/widget/windowtabs.py' adding 'libqtile/widget/wlan.py' adding 'libqtile/widget/wttr.py' adding 'qtile-0.22.1.dist-info/LICENSE' adding 'qtile-0.22.1.dist-info/METADATA' adding 'qtile-0.22.1.dist-info/WHEEL' adding 'qtile-0.22.1.dist-info/entry_points.txt' adding 'qtile-0.22.1.dist-info/top_level.txt' adding 'qtile-0.22.1.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Successfully built qtile-0.22.1-cp310-cp310-linux_x86_64.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.10.9, pytest-7.2.0, pluggy-1.0.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /startdir/src/qtile, configfile: setup.cfg, testpaths: test collecting ... collected 1540 items test/test_bar.py::test_completion PASSED [ 0%] test/test_bar.py::test_draw[1-x11-GBConfig] ERROR [ 0%] test/test_bar.py::test_draw[1-wayland-GBConfig] PASSED [ 0%] test/test_bar.py::test_prompt[1-x11-GBConfig] ERROR [ 0%] test/test_bar.py::test_prompt[1-wayland-GBConfig] PASSED [ 0%] test/test_bar.py::test_event[1-x11-GBConfig] PASSED [ 0%] test/test_bar.py::test_event[1-wayland-GBConfig] PASSED [ 0%] test/test_bar.py::test_textbox[1-x11-GBConfig] PASSED [ 0%] test/test_bar.py::test_textbox[1-wayland-GBConfig] PASSED [ 0%] test/test_bar.py::test_textbox_errors[1-x11-GBConfig] PASSED [ 0%] test/test_bar.py::test_textbox_errors[1-wayland-GBConfig] PASSED [ 0%] test/test_bar.py::test_groupbox_button_press[1-x11-GBConfig] PASSED [ 0%] test/test_bar.py::test_groupbox_button_press[1-wayland-GBConfig] PASSED [ 0%] test/test_bar.py::test_geometry[1-x11-GeomConf] PASSED [ 0%] test/test_bar.py::test_geometry[1-wayland-GeomConf] PASSED [ 0%] test/test_bar.py::test_resize[1-x11-GeomConf] PASSED [ 1%] test/test_bar.py::test_resize[1-wayland-GeomConf] PASSED [ 1%] test/test_bar.py::test_basic[1-x11] PASSED [ 1%] test/test_bar.py::test_basic[1-wayland] PASSED [ 1%] test/test_bar.py::test_singlespacer[1-x11] PASSED [ 1%] test/test_bar.py::test_singlespacer[1-wayland] PASSED [ 1%] test/test_bar.py::test_nospacer[1-x11] PASSED [ 1%] test/test_bar.py::test_nospacer[1-wayland] PASSED [ 1%] test/test_bar.py::test_consecutive_spacer[1-x11] FAILED [ 1%] test/test_bar.py::test_consecutive_spacer[1-wayland] PASSED [ 1%] test/test_bar.py::test_configure_broken_widgets[1-x11] FAILED [ 1%] test/test_bar.py::test_configure_broken_widgets[1-wayland] PASSED [ 1%] test/test_bar.py::test_bar_hide_show_with_margin[1-x11] FAILED [ 1%] test/test_bar.py::test_bar_hide_show_with_margin[1-wayland] PASSED [ 1%] test/test_bar.py::test_bar_border_horizontal[1-x11] FAILED [ 1%] test/test_bar.py::test_bar_border_horizontal[1-wayland] PASSED [ 2%] test/test_bar.py::test_bar_border_vertical[1-x11] FAILED [ 2%] test/test_bar.py::test_bar_border_vertical[1-wayland] PASSED [ 2%] test/test_bar.py::test_unsupported_widget[1-x11] FAILED [ 2%] test/test_bar.py::test_unsupported_widget[1-wayland] PASSED [ 2%] test/test_command.py::test_layout_filter[1-x11-CallConfig] ERROR [ 2%] test/test_command.py::test_layout_filter[1-wayland-CallConfig] PASSED [ 2%] test/test_command.py::test_cmd_commands[1-x11-ServerConfig] ERROR [ 2%] test/test_command.py::test_cmd_commands[1-wayland-ServerConfig] PASSED [ 2%] test/test_command.py::test_cmd_eval_namespace[1-x11-ServerConfig] ERROR [ 2%] test/test_command.py::test_cmd_eval_namespace[1-wayland-ServerConfig] PASSED [ 2%] test/test_command.py::test_call_unknown[1-x11-ServerConfig] ERROR [ 2%] test/test_command.py::test_call_unknown[1-wayland-ServerConfig] PASSED [ 2%] test/test_command.py::test_items_qtile[x11-ServerConfig-2] FAILED [ 2%] test/test_command.py::test_items_qtile[wayland-ServerConfig-2] PASSED [ 2%] test/test_command.py::test_select_qtile[x11-ServerConfig-2] FAILED [ 2%] test/test_command.py::test_select_qtile[wayland-ServerConfig-2] PASSED [ 3%] test/test_command.py::test_items_group[1-x11-ServerConfig] FAILED [ 3%] test/test_command.py::test_items_group[1-wayland-ServerConfig] PASSED [ 3%] test/test_command.py::test_select_group[x11-ServerConfig-2] FAILED [ 3%] test/test_command.py::test_select_group[wayland-ServerConfig-2] PASSED [ 3%] test/test_command.py::test_items_screen[1-x11-ServerConfig] FAILED [ 3%] test/test_command.py::test_items_screen[1-wayland-ServerConfig] PASSED [ 3%] test/test_command.py::test_select_screen[1-x11-ServerConfig] FAILED [ 3%] test/test_command.py::test_select_screen[1-wayland-ServerConfig] PASSED [ 3%] test/test_command.py::test_items_bar[1-x11-ServerConfig] ERROR [ 3%] test/test_command.py::test_items_bar[1-wayland-ServerConfig] PASSED [ 3%] test/test_command.py::test_select_bar[x11-ServerConfig-2] FAILED [ 3%] test/test_command.py::test_select_bar[wayland-ServerConfig-2] PASSED [ 3%] test/test_command.py::test_items_layout[1-x11-ServerConfig] PASSED [ 3%] test/test_command.py::test_items_layout[1-wayland-ServerConfig] PASSED [ 3%] test/test_command.py::test_select_layout[1-x11-ServerConfig] PASSED [ 4%] test/test_command.py::test_select_layout[1-wayland-ServerConfig] PASSED [ 4%] test/test_command.py::test_items_window[x11-ServerConfig-2] PASSED [ 4%] test/test_command.py::test_items_window[wayland-ServerConfig-2] PASSED [ 4%] test/test_command.py::test_select_window[x11-ServerConfig-2] PASSED [ 4%] test/test_command.py::test_select_window[wayland-ServerConfig-2] PASSED [ 4%] test/test_command.py::test_items_widget[1-x11-ServerConfig] PASSED [ 4%] test/test_command.py::test_items_widget[1-wayland-ServerConfig] PASSED [ 4%] test/test_command.py::test_select_widget[1-x11-ServerConfig] PASSED [ 4%] test/test_command.py::test_select_widget[1-wayland-ServerConfig] PASSED [ 4%] test/test_command.py::test_core_node[1-x11] PASSED [ 4%] test/test_command.py::test_core_node[1-wayland] PASSED [ 4%] test/test_command.py::test_lazy_arguments[1-x11] PASSED [ 4%] test/test_command.py::test_lazy_arguments[1-wayland] PASSED [ 4%] test/test_fakescreen.py::test_basic[1-x11-FakeScreenConfig] FAILED [ 4%] test/test_fakescreen.py::test_basic[1-wayland-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_gaps[1-x11-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_gaps[1-wayland-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_maximize_with_move_to_screen[1-x11-FakeScreenConfig] FAILED [ 5%] test/test_fakescreen.py::test_maximize_with_move_to_screen[1-wayland-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_float_first_on_second_screen[1-x11-FakeScreenConfig] FAILED [ 5%] test/test_fakescreen.py::test_float_first_on_second_screen[1-wayland-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_float_change_screens[1-x11-FakeScreenConfig] FAILED [ 5%] test/test_fakescreen.py::test_float_change_screens[1-wayland-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_float_outside_edges[1-x11-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_float_outside_edges[1-wayland-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_hammer_tile[1-x11-FakeScreenConfig] FAILED [ 5%] test/test_fakescreen.py::test_hammer_tile[1-wayland-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_hammer_ratio_tile[1-x11-FakeScreenConfig] FAILED [ 5%] test/test_fakescreen.py::test_hammer_ratio_tile[1-wayland-FakeScreenConfig] PASSED [ 5%] test/test_fakescreen.py::test_ratio_to_fourth_screen[1-x11-FakeScreenConfig] FAILED [ 5%] test/test_fakescreen.py::test_ratio_to_fourth_screen[1-wayland-FakeScreenConfig] PASSED [ 6%] test/test_group.py::test_window_order[1-x11-GroupConfig] FAILED [ 6%] test/test_group.py::test_window_order[1-wayland-GroupConfig] PASSED [ 6%] test/test_group.py::test_toscreen_toggle[1-x11-GroupConfig] PASSED [ 6%] test/test_group.py::test_toscreen_toggle[1-wayland-GroupConfig] PASSED [ 6%] test/test_hook.py::test_can_subscribe_to_startup_hooks[1-x11] PASSED [ 6%] test/test_hook.py::test_can_subscribe_to_startup_hooks[1-wayland] PASSED [ 6%] test/test_hook.py::test_can_update_by_selection_change[1-x11] PASSED [ 6%] test/test_hook.py::test_can_update_by_selection_change[1-wayland] PASSED [ 6%] test/test_hook.py::test_can_call_by_selection_notify[1-x11] PASSED [ 6%] test/test_hook.py::test_can_call_by_selection_notify[1-wayland] PASSED [ 6%] test/test_hook.py::test_resume_hook[1-x11] PASSED [ 6%] test/test_hook.py::test_resume_hook[1-wayland] PASSED [ 6%] test/test_manager.py::test_screen_dim[x11-ManagerConfig-2] FAILED [ 6%] test/test_manager.py::test_screen_dim[wayland-ManagerConfig-2] PASSED [ 6%] test/test_manager.py::test_clone_dim[1-x11-ManagerConfig-xephyr0] ERROR [ 7%] test/test_manager.py::test_clone_dim[1-wayland-ManagerConfig-xephyr0] PASSED [ 7%] test/test_manager.py::test_to_screen[x11-ManagerConfig-2] FAILED [ 7%] test/test_manager.py::test_to_screen[wayland-ManagerConfig-2] PASSED [ 7%] test/test_manager.py::test_togroup[x11-ManagerConfig-2] FAILED [ 7%] test/test_manager.py::test_togroup[wayland-ManagerConfig-2] PASSED [ 7%] test/test_manager.py::test_resize[1-x11-ManagerConfig] PASSED [ 7%] test/test_manager.py::test_resize[1-wayland-ManagerConfig] PASSED [ 7%] test/test_manager.py::test_minimal[1-x11] PASSED [ 7%] test/test_manager.py::test_minimal[1-wayland] PASSED [ 7%] test/test_manager.py::test_events[1-x11-ManagerConfig] PASSED [ 7%] test/test_manager.py::test_events[1-wayland-ManagerConfig] PASSED [ 7%] test/test_manager.py::test_keypress[1-x11-ManagerConfig] PASSED [ 7%] test/test_manager.py::test_keypress[1-wayland-ManagerConfig] PASSED [ 7%] test/test_manager.py::test_too_few_groups[x11-1-TooFewGroupsConfig] PASSED [ 7%] test/test_manager.py::test_too_few_groups[wayland-1-TooFewGroupsConfig] PASSED [ 7%] test/test_manager.py::test_immediate_chord[1-x11-_ChordsConfig] PASSED [ 8%] test/test_manager.py::test_immediate_chord[1-wayland-_ChordsConfig] PASSED [ 8%] test/test_manager.py::test_mode_chord[1-x11-_ChordsConfig] PASSED [ 8%] test/test_manager.py::test_mode_chord[1-wayland-_ChordsConfig] PASSED [ 8%] test/test_manager.py::test_chord_stack[1-x11-_ChordsConfig] PASSED [ 8%] test/test_manager.py::test_chord_stack[1-wayland-_ChordsConfig] PASSED [ 8%] test/test_manager.py::test_spawn[1-x11-ManagerConfig] PASSED [ 8%] test/test_manager.py::test_spawn[1-wayland-ManagerConfig] PASSED [ 8%] test/test_manager.py::test_spawn_list[1-x11-ManagerConfig] PASSED [ 8%] test/test_manager.py::test_spawn_list[1-wayland-ManagerConfig] PASSED [ 8%] test/test_manager.py::test_kill_window[1-x11-ManagerConfig] PASSED [ 8%] test/test_manager.py::test_kill_window[1-wayland-ManagerConfig] PASSED [ 8%] test/test_manager.py::test_kill_other[1-x11-ManagerConfig] FAILED [ 8%] test/test_manager.py::test_kill_other[1-wayland-ManagerConfig] PASSED [ 8%] test/test_manager.py::test_regression_groupswitch[1-x11-ManagerConfig] PASSED [ 8%] test/test_manager.py::test_regression_groupswitch[1-wayland-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_next_layout[1-x11-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_next_layout[1-wayland-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_setlayout[1-x11-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_setlayout[1-wayland-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_to_layout_index[1-x11-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_to_layout_index[1-wayland-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_adddelgroup[1-x11-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_adddelgroup[1-wayland-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_delgroup[1-x11-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_delgroup[1-wayland-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_nextprevgroup[1-x11-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_nextprevgroup[1-wayland-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_toggle_group[1-x11-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_toggle_group[1-wayland-ManagerConfig] PASSED [ 9%] test/test_manager.py::test_static[1-x11-ManagerConfig] FAILED [ 10%] test/test_manager.py::test_static[1-wayland-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_match[1-x11-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_match[1-wayland-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_default_float[1-x11-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_default_float[1-wayland-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_last_float_size[1-x11-ManagerConfig] FAILED [ 10%] test/test_manager.py::test_last_float_size[1-wayland-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_float_max_min_combo[1-x11-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_float_max_min_combo[1-wayland-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_toggle_fullscreen[1-x11-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_toggle_fullscreen[1-wayland-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_toggle_max[1-x11-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_toggle_max[1-wayland-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_toggle_min[1-x11-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_toggle_min[1-wayland-ManagerConfig] PASSED [ 10%] test/test_manager.py::test_toggle_floating[1-x11-ManagerConfig] PASSED [ 11%] test/test_manager.py::test_toggle_floating[1-wayland-ManagerConfig] PASSED [ 11%] test/test_manager.py::test_floating_focus[1-x11-ManagerConfig] FAILED [ 11%] test/test_manager.py::test_floating_focus[1-wayland-ManagerConfig] PASSED [ 11%] test/test_manager.py::test_move_floating[1-x11-ManagerConfig] FAILED [ 11%] test/test_manager.py::test_move_floating[1-wayland-ManagerConfig] PASSED [ 11%] test/test_manager.py::test_one_screen[1-x11-ManagerConfig] PASSED [ 11%] test/test_manager.py::test_one_screen[1-wayland-ManagerConfig] PASSED [ 11%] test/test_manager.py::test_two_screens[x11-ManagerConfig-2] FAILED [ 11%] test/test_manager.py::test_two_screens[wayland-ManagerConfig-2] PASSED [ 11%] test/test_manager.py::test_focus_stays_on_layout_switch[1-x11-ManagerConfig] ERROR [ 11%] test/test_manager.py::test_focus_stays_on_layout_switch[1-wayland-ManagerConfig] PASSED [ 11%] test/test_manager.py::test_map_request[1-x11-BareConfig] PASSED [ 11%] test/test_manager.py::test_map_request[1-x11-ManagerConfig] PASSED [ 11%] test/test_manager.py::test_map_request[1-wayland-BareConfig] PASSED [ 11%] test/test_manager.py::test_map_request[1-wayland-ManagerConfig] PASSED [ 12%] test/test_manager.py::test_unmap[1-x11-BareConfig] ERROR [ 12%] test/test_manager.py::test_unmap[1-x11-ManagerConfig] ERROR [ 12%] test/test_manager.py::test_unmap[1-wayland-BareConfig] PASSED [ 12%] test/test_manager.py::test_unmap[1-wayland-ManagerConfig] PASSED [ 12%] test/test_manager.py::test_setgroup[x11-1-BareConfig] ERROR [ 12%] test/test_manager.py::test_setgroup[x11-1-ManagerConfig] ERROR [ 12%] test/test_manager.py::test_setgroup[wayland-1-BareConfig] PASSED [ 12%] test/test_manager.py::test_setgroup[wayland-1-ManagerConfig] PASSED [ 12%] test/test_manager.py::test_unmap_noscreen[x11-1-BareConfig] ERROR [ 12%] test/test_manager.py::test_unmap_noscreen[x11-1-ManagerConfig] ERROR [ 12%] test/test_manager.py::test_unmap_noscreen[wayland-1-BareConfig] PASSED [ 12%] test/test_manager.py::test_unmap_noscreen[wayland-1-ManagerConfig] PASSED [ 12%] test/test_manager.py::test_labelgroup[1-x11-ManagerConfig] PASSED [ 12%] test/test_manager.py::test_labelgroup[1-wayland-ManagerConfig] PASSED [ 12%] test/test_manager.py::test_change_loglevel[1-x11-ManagerConfig] ERROR [ 12%] test/test_manager.py::test_change_loglevel[1-wayland-ManagerConfig] PASSED [ 13%] test/test_manager.py::test_switch_groups_cursor_warp[1-x11] PASSED [ 13%] test/test_manager.py::test_switch_groups_cursor_warp[1-wayland] PASSED [ 13%] test/test_manager.py::test_cmd_reload_config[1-x11] FAILED [ 13%] test/test_manager.py::test_cmd_reload_config[1-wayland] PASSED [ 13%] test/test_manager.py::test_windows_from_commands[1-x11-CommandsConfig] ERROR [ 13%] test/test_manager.py::test_windows_from_commands[1-wayland-CommandsConfig] PASSED [ 13%] test/test_manager.py::test_widget_duplicate_names[1-x11-DuplicateWidgetsConfig] PASSED [ 13%] test/test_manager.py::test_widget_duplicate_names[1-wayland-DuplicateWidgetsConfig] PASSED [ 13%] test/test_manager.py::test_widget_duplicate_warnings[1-x11-DuplicateWidgetsConfig] PASSED [ 13%] test/test_manager.py::test_widget_duplicate_warnings[1-wayland-DuplicateWidgetsConfig] PASSED [ 13%] test/test_popup.py::test_popup_focus[1-x11] PASSED [ 13%] test/test_popup.py::test_popup_focus[1-wayland] PASSED [ 13%] test/test_qtile_cmd.py::test_qtile_cmd[1-x11-ServerConfig] ERROR [ 13%] test/test_qtile_cmd.py::test_qtile_cmd[1-wayland-ServerConfig] PASSED [ 13%] test/test_qtile_cmd.py::test_display_kb[1-x11-ServerConfig] ERROR [ 14%] test/test_qtile_cmd.py::test_display_kb[1-wayland-ServerConfig] PASSED [ 14%] test/test_restart.py::test_restart_hook_and_state[1-x11] FAILED [ 14%] test/test_restart.py::test_restart_hook_and_state[1-wayland] SKIPPED (Skipping test on Wayland.) [ 14%] test/test_scratchpad.py::test_sratchpad_with_matcher[1-x11-ScratchPadBaseConfic] ERROR [ 14%] test/test_scratchpad.py::test_sratchpad_with_matcher[1-wayland-ScratchPadBaseConfic] PASSED [ 14%] test/test_scratchpad.py::test_toggling_single[1-x11-ScratchPadBaseConfic] ERROR [ 14%] test/test_scratchpad.py::test_toggling_single[1-wayland-ScratchPadBaseConfic] PASSED [ 14%] test/test_scratchpad.py::test_toggling[1-x11-ScratchPadBaseConfic] ERROR [ 14%] test/test_scratchpad.py::test_toggling[1-wayland-ScratchPadBaseConfic] PASSED [ 14%] test/test_scratchpad.py::test_focus_cycle[1-x11-ScratchPadBaseConfic] ERROR [ 14%] test/test_scratchpad.py::test_focus_cycle[1-wayland-ScratchPadBaseConfic] PASSED [ 14%] test/test_scratchpad.py::test_focus_lost_hide[1-x11-ScratchPadBaseConfic] PASSED [ 14%] test/test_scratchpad.py::test_focus_lost_hide[1-wayland-ScratchPadBaseConfic] PASSED [ 14%] test/test_scratchpad.py::test_kill[1-x11-ScratchPadBaseConfic] ERROR [ 14%] test/test_scratchpad.py::test_kill[1-wayland-ScratchPadBaseConfic] PASSED [ 15%] test/test_scratchpad.py::test_floating_toggle[1-x11-ScratchPadBaseConfic] ERROR [ 15%] test/test_scratchpad.py::test_floating_toggle[1-wayland-ScratchPadBaseConfic] PASSED [ 15%] test/test_scratchpad.py::test_stepping_between_groups_should_skip_scratchpads[1-x11-ScratchPadBaseConfic] ERROR [ 15%] test/test_scratchpad.py::test_stepping_between_groups_should_skip_scratchpads[1-wayland-ScratchPadBaseConfic] PASSED [ 15%] test/test_sh.py::test_columnize[1-x11-ShConfig] PASSED [ 15%] test/test_sh.py::test_columnize[1-wayland-ShConfig] PASSED [ 15%] test/test_sh.py::test_ls[1-x11-ShConfig] PASSED [ 15%] test/test_sh.py::test_ls[1-wayland-ShConfig] PASSED [ 15%] test/test_sh.py::test_do_cd[1-x11-ShConfig] PASSED [ 15%] test/test_sh.py::test_do_cd[1-wayland-ShConfig] PASSED [ 15%] test/test_sh.py::test_call[1-x11-ShConfig] PASSED [ 15%] test/test_sh.py::test_call[1-wayland-ShConfig] PASSED [ 15%] test/test_sh.py::test_complete[1-x11-ShConfig] PASSED [ 15%] test/test_sh.py::test_complete[1-wayland-ShConfig] PASSED [ 15%] test/test_sh.py::test_help[1-x11-ShConfig] PASSED [ 15%] test/test_sh.py::test_help[1-wayland-ShConfig] PASSED [ 16%] test/test_when.py::test_when[1-x11-WhenConfig] FAILED [ 16%] test/test_when.py::test_when[1-wayland-WhenConfig] PASSED [ 16%] test/test_window.py::test_info[1-x11-BareConfig] PASSED [ 16%] test/test_window.py::test_info[1-wayland-BareConfig] PASSED [ 16%] test/test_window.py::test_is_visible_hidden[1-x11-BareConfig] PASSED [ 16%] test/test_window.py::test_is_visible_hidden[1-wayland-BareConfig] PASSED [ 16%] test/test_window.py::test_is_visible_minimized[1-x11-BareConfig] PASSED [ 16%] test/test_window.py::test_is_visible_minimized[1-wayland-BareConfig] PASSED [ 16%] test/test_window.py::test_margin[1-x11-BareConfig] PASSED [ 16%] test/test_window.py::test_margin[1-wayland-BareConfig] PASSED [ 16%] test/test_window.py::test_no_size_hint[1-x11-BareConfig] PASSED [ 16%] test/test_window.py::test_no_size_hint[1-wayland-BareConfig] PASSED [ 16%] test/test_window.py::test_togroup_toggle[1-x11-BareConfig] FAILED [ 16%] test/test_window.py::test_togroup_toggle[1-wayland-BareConfig] PASSED [ 16%] test/test_window.py::test_bring_front_click[1-x11-ManagerConfig-False] FAILED [ 17%] test/test_window.py::test_bring_front_click[1-x11-BringFrontClickConfig-True] FAILED [ 17%] test/test_window.py::test_bring_front_click[1-x11-BringFrontClickFloatingOnlyConfig-floating_only] FAILED [ 17%] test/test_window.py::test_bring_front_click[1-wayland-ManagerConfig-False] PASSED [ 17%] test/test_window.py::test_bring_front_click[1-wayland-BringFrontClickConfig-True] PASSED [ 17%] test/test_window.py::test_bring_front_click[1-wayland-BringFrontClickFloatingOnlyConfig-floating_only] PASSED [ 17%] test/test_window.py::test_center_window[1-x11-BareConfig] PASSED [ 17%] test/test_window.py::test_center_window[1-wayland-BareConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_kill_via_message[1-ManagerConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_change_state_via_message[1-ManagerConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_default_float_hints[1-ManagerConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_user_position[1-ManagerConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_only_one_focus[1-ManagerConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_only_wm_protocols_focus[1-ManagerConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_only_input_hint_focus[1-ManagerConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_no_focus[1-ManagerConfig] PASSED [ 17%] test/backend/x11/test_window.py::test_hints_setting_unsetting[1-ManagerConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_strut_handling[ManagerConfig-2] FAILED [ 18%] test/backend/x11/test_window.py::test_cursor_warp[CursorWarpConfig-2] FAILED [ 18%] test/backend/x11/test_window.py::test_click_focus_screen[2] FAILED [ 18%] test/backend/x11/test_window.py::test_min_size_hint[1-BareConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_min_size_hint_no_flag[1-BareConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_max_size_hint[1-BareConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_max_size_hint_no_flag[1-BareConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_both_size_hints[1-BareConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_inspect_window[1-ManagerConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_multiple_borders[1-MultipleBordersConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_net_frame_extents[1-NetFrameExtentsConfig] PASSED [ 18%] test/backend/x11/test_window.py::test_net_wm_state_focused[1] PASSED [ 18%] test/backend/x11/test_xcbq.py::test_new_window[1] PASSED [ 18%] test/backend/x11/test_xcore.py::test_no_two_qtiles[1] PASSED [ 18%] test/backend/x11/test_xcore.py::test_color_pixel[1] PASSED [ 19%] test/backend/x11/test_xcore.py::test_net_client_list[1-ManagerConfig] FAILED [ 19%] test/extension/test_window_list.py::test_window_list[1-x11] FAILED [ 19%] test/extension/test_window_list.py::test_window_list[1-wayland] PASSED [ 19%] test/layouts/test_base.py::test_base_client_position_bottom[1-x11-BaseLayoutConfigBottom] FAILED [ 19%] test/layouts/test_base.py::test_base_client_position_bottom[1-wayland-BaseLayoutConfigBottom] PASSED [ 19%] test/layouts/test_base.py::test_base_client_position_top[1-x11-BaseLayoutConfigTop] FAILED [ 19%] test/layouts/test_base.py::test_base_client_position_top[1-wayland-BaseLayoutConfigTop] PASSED [ 19%] test/layouts/test_bsp.py::test_bsp_window_focus_cycle[1-x11-BspConfig] FAILED [ 19%] test/layouts/test_bsp.py::test_bsp_window_focus_cycle[1-wayland-BspConfig] PASSED [ 19%] test/layouts/test_bsp.py::test_bsp_margin_on_single[1-x11-BspConfig] FAILED [ 19%] test/layouts/test_bsp.py::test_bsp_margin_on_single[1-wayland-BspConfig] PASSED [ 19%] test/layouts/test_bsp.py::test_bsp_wrap_clients[1-x11-BspConfig] FAILED [ 19%] test/layouts/test_bsp.py::test_bsp_wrap_clients[1-wayland-BspConfig] PASSED [ 19%] test/layouts/test_columns.py::test_columns_window_focus_cycle[1-x11-ColumnsConfig] FAILED [ 19%] test/layouts/test_columns.py::test_columns_window_focus_cycle[1-wayland-ColumnsConfig] PASSED [ 20%] test/layouts/test_columns.py::test_columns_swap_column_left[1-x11-ColumnsConfig] FAILED [ 20%] test/layouts/test_columns.py::test_columns_swap_column_left[1-wayland-ColumnsConfig] PASSED [ 20%] test/layouts/test_columns.py::test_columns_swap_column_right[1-x11-ColumnsConfig] FAILED [ 20%] test/layouts/test_columns.py::test_columns_swap_column_right[1-wayland-ColumnsConfig] PASSED [ 20%] test/layouts/test_columns.py::test_columns_margins_single[1-x11-ColumnsConfig] FAILED [ 20%] test/layouts/test_columns.py::test_columns_margins_single[1-wayland-ColumnsConfig] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Bsp] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Columns] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Floating] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Matrix] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Max] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-MonadTall] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-MonadThreeCol] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-MonadWide] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-RatioTile] PASSED [ 20%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Spiral] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Stack] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Tile] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-TreeTab] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-VerticalTile] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-x11-Zoomy] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Bsp] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Columns] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Floating] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Matrix] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Max] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-MonadTall] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-MonadThreeCol] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-MonadWide] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-RatioTile] PASSED [ 21%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Spiral] PASSED [ 22%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Stack] PASSED [ 22%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Tile] PASSED [ 22%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-TreeTab] PASSED [ 22%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-VerticalTile] PASSED [ 22%] test/layouts/test_common.py::test_window_order_fullscreen[1-wayland-Zoomy] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-Bsp] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-Columns] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-Floating] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-Matrix] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-Max] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-MonadTall] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-MonadThreeCol] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-MonadWide] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-RatioTile] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-Spiral] PASSED [ 22%] test/layouts/test_common.py::test_window_types[1-x11-Stack] PASSED [ 23%] test/layouts/test_common.py::test_window_types[1-x11-Tile] PASSED [ 23%] test/layouts/test_common.py::test_window_types[1-x11-TreeTab] PASSED [ 23%] test/layouts/test_common.py::test_window_types[1-x11-VerticalTile] PASSED [ 23%] test/layouts/test_common.py::test_window_types[1-x11-Zoomy] PASSED [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-Bsp] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-Columns] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-Floating] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-Matrix] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-Max] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-MonadTall] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-MonadThreeCol] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-MonadWide] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-RatioTile] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-Spiral] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 23%] test/layouts/test_common.py::test_window_types[1-wayland-Stack] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 24%] test/layouts/test_common.py::test_window_types[1-wayland-Tile] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 24%] test/layouts/test_common.py::test_window_types[1-wayland-TreeTab] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 24%] test/layouts/test_common.py::test_window_types[1-wayland-VerticalTile] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 24%] test/layouts/test_common.py::test_window_types[1-wayland-Zoomy] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-Bsp] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-Columns] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-Floating] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-Matrix] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-Max] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-MonadTall] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-MonadThreeCol] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-MonadWide] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-RatioTile] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-Spiral] FAILED [ 24%] test/layouts/test_common.py::test_focus_cycle[1-x11-Stack] FAILED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-x11-Tile] FAILED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-x11-TreeTab] FAILED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-x11-VerticalTile] FAILED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-x11-Zoomy] FAILED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Bsp] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Columns] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Floating] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Matrix] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Max] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-MonadTall] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-MonadThreeCol] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-MonadWide] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-RatioTile] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Spiral] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Stack] PASSED [ 25%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Tile] PASSED [ 26%] test/layouts/test_common.py::test_focus_cycle[1-wayland-TreeTab] PASSED [ 26%] test/layouts/test_common.py::test_focus_cycle[1-wayland-VerticalTile] PASSED [ 26%] test/layouts/test_common.py::test_focus_cycle[1-wayland-Zoomy] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-Bsp] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-Columns] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-Floating] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-Matrix] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-Max] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-MonadTall] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-MonadThreeCol] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-MonadWide] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-RatioTile] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-Spiral] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-Stack] PASSED [ 26%] test/layouts/test_common.py::test_focus_back[1-x11-Tile] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-x11-TreeTab] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-x11-VerticalTile] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-x11-Zoomy] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-Bsp] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-Columns] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-Floating] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-Matrix] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-Max] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-MonadTall] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-MonadThreeCol] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-MonadWide] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-RatioTile] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-Spiral] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-Stack] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-Tile] PASSED [ 27%] test/layouts/test_common.py::test_focus_back[1-wayland-TreeTab] PASSED [ 28%] test/layouts/test_common.py::test_focus_back[1-wayland-VerticalTile] PASSED [ 28%] test/layouts/test_common.py::test_focus_back[1-wayland-Zoomy] PASSED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-Bsp] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-Columns] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-Floating] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-Matrix] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-Max] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-MonadTall] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-MonadThreeCol] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-MonadWide] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-RatioTile] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-Spiral] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-Stack] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-Tile] FAILED [ 28%] test/layouts/test_common.py::test_focus_change_event[1-x11-TreeTab] FAILED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-x11-VerticalTile] FAILED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-x11-Zoomy] FAILED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Bsp] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Columns] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Floating] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Matrix] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Max] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-MonadTall] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-MonadThreeCol] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-MonadWide] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-RatioTile] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Spiral] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Stack] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Tile] PASSED [ 29%] test/layouts/test_common.py::test_focus_change_event[1-wayland-TreeTab] PASSED [ 30%] test/layouts/test_common.py::test_focus_change_event[1-wayland-VerticalTile] PASSED [ 30%] test/layouts/test_common.py::test_focus_change_event[1-wayland-Zoomy] PASSED [ 30%] test/layouts/test_common.py::test_remove[1-x11-Bsp] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-Columns] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-Floating] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-Matrix] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-Max] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-MonadTall] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-MonadThreeCol] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-MonadWide] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-RatioTile] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-Spiral] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-Stack] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-Tile] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-TreeTab] FAILED [ 30%] test/layouts/test_common.py::test_remove[1-x11-VerticalTile] FAILED [ 31%] test/layouts/test_common.py::test_remove[1-x11-Zoomy] FAILED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-Bsp] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-Columns] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-Floating] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-Matrix] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-Max] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-MonadTall] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-MonadThreeCol] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-MonadWide] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-RatioTile] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-Spiral] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-Stack] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-Tile] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-TreeTab] PASSED [ 31%] test/layouts/test_common.py::test_remove[1-wayland-VerticalTile] PASSED [ 32%] test/layouts/test_common.py::test_remove[1-wayland-Zoomy] PASSED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Bsp] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Columns] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Floating] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Matrix] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Max] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-MonadTall] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-MonadThreeCol] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-MonadWide] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-RatioTile] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Spiral] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Stack] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Tile] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-TreeTab] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-VerticalTile] FAILED [ 32%] test/layouts/test_common.py::test_remove_floating[1-x11-Zoomy] FAILED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Bsp] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Columns] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Floating] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Matrix] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Max] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-MonadTall] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-MonadThreeCol] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-MonadWide] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-RatioTile] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Spiral] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Stack] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Tile] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-TreeTab] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-VerticalTile] PASSED [ 33%] test/layouts/test_common.py::test_remove_floating[1-wayland-Zoomy] PASSED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Bsp] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Columns] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Floating] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Matrix] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Max] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadTall] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadThreeCol] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadWide] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-RatioTile] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Spiral] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Stack] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Tile] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-TreeTab] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-VerticalTile] FAILED [ 34%] test/layouts/test_common.py::test_desktop_notifications[1-x11-Zoomy] FAILED [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Bsp] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Columns] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Floating] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Matrix] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Max] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-MonadTall] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-MonadThreeCol] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-MonadWide] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-RatioTile] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Spiral] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Stack] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Tile] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-TreeTab] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-VerticalTile] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_desktop_notifications[1-wayland-Zoomy] SKIPPED (Notification tests for Wayland need gtk-layer-shell) [ 35%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Bsp] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Columns] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Floating] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Matrix] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Max] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-MonadTall] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-MonadThreeCol] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-MonadWide] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-RatioTile] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Spiral] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Stack] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Tile] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-TreeTab] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-VerticalTile] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-x11-Zoomy] PASSED [ 36%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Bsp] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Columns] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Floating] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Matrix] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Max] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-MonadTall] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-MonadThreeCol] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-MonadWide] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-RatioTile] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Spiral] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Stack] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Tile] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-TreeTab] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-VerticalTile] PASSED [ 37%] test/layouts/test_common.py::test_only_uses_delegated_screen_rect[1-wayland-Zoomy] PASSED [ 37%] test/layouts/test_common.py::test_cycle_layouts[1-x11-AllLayouts] PASSED [ 37%] test/layouts/test_common.py::test_cycle_layouts[1-wayland-AllLayouts] PASSED [ 38%] test/layouts/test_common.py::test_multiple_borders[1-x11-AllLayoutsMultipleBorders] PASSED [ 38%] test/layouts/test_common.py::test_multiple_borders[1-wayland-AllLayoutsMultipleBorders] PASSED [ 38%] test/layouts/test_floating.py::test_float_next_prev_window[1-x11-FloatingConfig] FAILED [ 38%] test/layouts/test_floating.py::test_float_next_prev_window[1-wayland-FloatingConfig] PASSED [ 38%] test/layouts/test_floating.py::test_border_widths[1-x11-FloatingConfig] PASSED [ 38%] test/layouts/test_floating.py::test_border_widths[1-wayland-FloatingConfig] PASSED [ 38%] test/layouts/test_matrix.py::test_matrix_simple[1-x11-MatrixConfig] FAILED [ 38%] test/layouts/test_matrix.py::test_matrix_simple[1-wayland-MatrixConfig] PASSED [ 38%] test/layouts/test_matrix.py::test_matrix_navigation[1-x11-MatrixConfig] PASSED [ 38%] test/layouts/test_matrix.py::test_matrix_navigation[1-wayland-MatrixConfig] PASSED [ 38%] test/layouts/test_matrix.py::test_matrix_add_remove_columns[1-x11-MatrixConfig] FAILED [ 38%] test/layouts/test_matrix.py::test_matrix_add_remove_columns[1-wayland-MatrixConfig] PASSED [ 38%] test/layouts/test_matrix.py::test_matrix_window_focus_cycle[1-x11-MatrixConfig] FAILED [ 38%] test/layouts/test_matrix.py::test_matrix_window_focus_cycle[1-wayland-MatrixConfig] PASSED [ 38%] test/layouts/test_matrix.py::test_matrix_next_no_clients[1-x11-MatrixConfig] PASSED [ 39%] test/layouts/test_matrix.py::test_matrix_next_no_clients[1-wayland-MatrixConfig] PASSED [ 39%] test/layouts/test_matrix.py::test_matrix_previous_no_clients[1-x11-MatrixConfig] PASSED [ 39%] test/layouts/test_matrix.py::test_matrix_previous_no_clients[1-wayland-MatrixConfig] PASSED [ 39%] test/layouts/test_max.py::test_max_simple[1-x11-MaxConfig] FAILED [ 39%] test/layouts/test_max.py::test_max_simple[1-wayland-MaxConfig] PASSED [ 39%] test/layouts/test_max.py::test_max_updown[1-x11-MaxConfig] FAILED [ 39%] test/layouts/test_max.py::test_max_updown[1-wayland-MaxConfig] PASSED [ 39%] test/layouts/test_max.py::test_max_remove[1-x11-MaxConfig] FAILED [ 39%] test/layouts/test_max.py::test_max_remove[1-wayland-MaxConfig] PASSED [ 39%] test/layouts/test_max.py::test_max_window_focus_cycle[1-x11-MaxConfig] FAILED [ 39%] test/layouts/test_max.py::test_max_window_focus_cycle[1-wayland-MaxConfig] PASSED [ 39%] test/layouts/test_max.py::test_max_window_margins_and_borders[1-x11-MaxConfig] PASSED [ 39%] test/layouts/test_max.py::test_max_window_margins_and_borders[1-wayland-MaxConfig] PASSED [ 39%] test/layouts/test_ratiotile.py::test_ratiotile_add_windows[1-x11-RatioTileConfig] FAILED [ 39%] test/layouts/test_ratiotile.py::test_ratiotile_add_windows[1-wayland-RatioTileConfig] PASSED [ 40%] test/layouts/test_ratiotile.py::test_ratiotile_add_windows_golden_ratio[1-x11-RatioTileConfig] FAILED [ 40%] test/layouts/test_ratiotile.py::test_ratiotile_add_windows_golden_ratio[1-wayland-RatioTileConfig] PASSED [ 40%] test/layouts/test_ratiotile.py::test_ratiotile_basic[1-x11-RatioTileConfig] FAILED [ 40%] test/layouts/test_ratiotile.py::test_ratiotile_basic[1-wayland-RatioTileConfig] PASSED [ 40%] test/layouts/test_ratiotile.py::test_ratiotile_window_focus_cycle[1-x11-RatioTileConfig] FAILED [ 40%] test/layouts/test_ratiotile.py::test_ratiotile_window_focus_cycle[1-wayland-RatioTileConfig] PASSED [ 40%] test/layouts/test_ratiotile.py::test_ratiotile_alternative_calculation[1-x11-RatioTileConfig] FAILED [ 40%] test/layouts/test_ratiotile.py::test_ratiotile_alternative_calculation[1-wayland-RatioTileConfig] PASSED [ 40%] test/layouts/test_ratiotile.py::test_shuffling[1-x11-RatioTileConfig] FAILED [ 40%] test/layouts/test_ratiotile.py::test_shuffling[1-wayland-RatioTileConfig] PASSED [ 40%] test/layouts/test_ratiotile.py::test_resizing[1-x11-RatioTileConfig] FAILED [ 40%] test/layouts/test_ratiotile.py::test_resizing[1-wayland-RatioTileConfig] PASSED [ 40%] test/layouts/test_slice.py::test_no_slice[1-x11-SliceConfig] PASSED [ 40%] test/layouts/test_slice.py::test_no_slice[1-wayland-SliceConfig] PASSED [ 40%] test/layouts/test_slice.py::test_slice_first[1-x11-SliceConfig] PASSED [ 40%] test/layouts/test_slice.py::test_slice_first[1-wayland-SliceConfig] PASSED [ 41%] test/layouts/test_slice.py::test_slice_last[1-x11-SliceConfig] PASSED [ 41%] test/layouts/test_slice.py::test_slice_last[1-wayland-SliceConfig] PASSED [ 41%] test/layouts/test_slice.py::test_slice_focus[1-x11-SliceConfig] FAILED [ 41%] test/layouts/test_slice.py::test_slice_focus[1-wayland-SliceConfig] PASSED [ 41%] test/layouts/test_slice.py::test_all_slices[1-x11-SliceConfig] PASSED [ 41%] test/layouts/test_slice.py::test_all_slices[1-wayland-SliceConfig] PASSED [ 41%] test/layouts/test_slice.py::test_command_propagation[1-x11-SliceConfig] PASSED [ 41%] test/layouts/test_slice.py::test_command_propagation[1-wayland-SliceConfig] PASSED [ 41%] test/layouts/test_spiral.py::test_spiral_left[1-x11-SpiralConfig] FAILED [ 41%] test/layouts/test_spiral.py::test_spiral_left[1-wayland-SpiralConfig] PASSED [ 41%] test/layouts/test_spiral.py::test_spiral_top[1-x11-SpiralConfig] FAILED [ 41%] test/layouts/test_spiral.py::test_spiral_top[1-wayland-SpiralConfig] PASSED [ 41%] test/layouts/test_spiral.py::test_spiral_right[1-x11-SpiralConfig] FAILED [ 41%] test/layouts/test_spiral.py::test_spiral_right[1-wayland-SpiralConfig] PASSED [ 41%] test/layouts/test_spiral.py::test_spiral_bottom[1-x11-SpiralConfig] FAILED [ 42%] test/layouts/test_spiral.py::test_spiral_bottom[1-wayland-SpiralConfig] PASSED [ 42%] test/layouts/test_spiral.py::test_spiral_left_anticlockwise[1-x11-AnticlockwiseConfig] FAILED [ 42%] test/layouts/test_spiral.py::test_spiral_left_anticlockwise[1-wayland-AnticlockwiseConfig] PASSED [ 42%] test/layouts/test_spiral.py::test_spiral_top_anticlockwise[1-x11-AnticlockwiseConfig] FAILED [ 42%] test/layouts/test_spiral.py::test_spiral_top_anticlockwise[1-wayland-AnticlockwiseConfig] PASSED [ 42%] test/layouts/test_spiral.py::test_spiral_right_anticlockwise[1-x11-AnticlockwiseConfig] FAILED [ 42%] test/layouts/test_spiral.py::test_spiral_right_anticlockwise[1-wayland-AnticlockwiseConfig] PASSED [ 42%] test/layouts/test_spiral.py::test_spiral_bottom_anticlockwise[1-x11-AnticlockwiseConfig] FAILED [ 42%] test/layouts/test_spiral.py::test_spiral_bottom_anticlockwise[1-wayland-AnticlockwiseConfig] PASSED [ 42%] test/layouts/test_spiral.py::test_spiral_adjust_master_ratios[1-x11-SpiralConfig] FAILED [ 42%] test/layouts/test_spiral.py::test_spiral_adjust_master_ratios[1-wayland-SpiralConfig] PASSED [ 42%] test/layouts/test_spiral.py::test_spiral_adjust_ratios[1-x11-SpiralConfig] FAILED [ 42%] test/layouts/test_spiral.py::test_spiral_adjust_ratios[1-wayland-SpiralConfig] PASSED [ 42%] test/layouts/test_stack.py::test_stack_commands[1-x11-StackConfig] FAILED [ 42%] test/layouts/test_stack.py::test_stack_commands[1-wayland-StackConfig] PASSED [ 42%] test/layouts/test_stack.py::test_stack_cmd_down[1-x11-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_cmd_down[1-wayland-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_addremove[1-x11-StackConfig] FAILED [ 43%] test/layouts/test_stack.py::test_stack_addremove[1-wayland-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_rotation[1-x11-StackConfig] FAILED [ 43%] test/layouts/test_stack.py::test_stack_rotation[1-wayland-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_nextprev[1-x11-StackConfig] FAILED [ 43%] test/layouts/test_stack.py::test_stack_nextprev[1-wayland-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_window_removal[1-x11-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_window_removal[1-wayland-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_split[1-x11-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_split[1-wayland-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_shuffle[1-x11-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_shuffle[1-wayland-StackConfig] PASSED [ 43%] test/layouts/test_stack.py::test_stack_client_to[1-x11-StackConfig] FAILED [ 43%] test/layouts/test_stack.py::test_stack_client_to[1-wayland-StackConfig] PASSED [ 44%] test/layouts/test_stack.py::test_stack_info[1-x11-StackConfig] PASSED [ 44%] test/layouts/test_stack.py::test_stack_info[1-wayland-StackConfig] PASSED [ 44%] test/layouts/test_stack.py::test_stack_window_focus_cycle[1-x11-StackConfig] FAILED [ 44%] test/layouts/test_stack.py::test_stack_window_focus_cycle[1-wayland-StackConfig] PASSED [ 44%] test/layouts/test_tile.py::test_tile_updown[1-x11-TileConfig] FAILED [ 44%] test/layouts/test_tile.py::test_tile_updown[1-wayland-TileConfig] PASSED [ 44%] test/layouts/test_tile.py::test_tile_nextprev[1-x11-TileConfig] FAILED [ 44%] test/layouts/test_tile.py::test_tile_nextprev[1-wayland-TileConfig] PASSED [ 44%] test/layouts/test_tile.py::test_tile_master_and_slave[1-x11-TileConfig] FAILED [ 44%] test/layouts/test_tile.py::test_tile_master_and_slave[1-wayland-TileConfig] PASSED [ 44%] test/layouts/test_tile.py::test_tile_remove[1-x11-TileConfig] PASSED [ 44%] test/layouts/test_tile.py::test_tile_remove[1-wayland-TileConfig] PASSED [ 44%] test/layouts/test_tile.py::test_tile_window_focus_cycle[1-x11-TileConfig] FAILED [ 44%] test/layouts/test_tile.py::test_tile_window_focus_cycle[1-wayland-TileConfig] PASSED [ 44%] test/layouts/test_tile.py::test_tile_add_on_top[1-x11-TileConfig] FAILED [ 45%] test/layouts/test_tile.py::test_tile_add_on_top[1-wayland-TileConfig] PASSED [ 45%] test/layouts/test_tile.py::test_tile_min_max_ratios[1-x11-TileConfig] FAILED [ 45%] test/layouts/test_tile.py::test_tile_min_max_ratios[1-wayland-TileConfig] PASSED [ 45%] test/layouts/test_treetab.py::test_window[1-x11-TreeTabConfig] FAILED [ 45%] test/layouts/test_treetab.py::test_window[1-wayland-TreeTabConfig] PASSED [ 45%] test/layouts/test_treetab.py::test_sort_windows[1-x11-TreeTabConfig] FAILED [ 45%] test/layouts/test_treetab.py::test_sort_windows[1-wayland-TreeTabConfig] PASSED [ 45%] test/layouts/test_verticaltile.py::test_verticaltile_simple[1-x11-VerticalTileConfig] FAILED [ 45%] test/layouts/test_verticaltile.py::test_verticaltile_simple[1-wayland-VerticalTileConfig] PASSED [ 45%] test/layouts/test_verticaltile.py::test_verticaltile_maximize[1-x11-VerticalTileConfig] FAILED [ 45%] test/layouts/test_verticaltile.py::test_verticaltile_maximize[1-wayland-VerticalTileConfig] PASSED [ 45%] test/layouts/test_verticaltile.py::test_verticaltile_window_focus_cycle[1-x11-VerticalTileConfig] FAILED [ 45%] test/layouts/test_verticaltile.py::test_verticaltile_window_focus_cycle[1-wayland-VerticalTileConfig] PASSED [ 45%] test/layouts/test_xmonad.py::test_tall_add_clients[1-x11-MonadTallConfig] FAILED [ 45%] test/layouts/test_xmonad.py::test_tall_add_clients[1-wayland-MonadTallConfig] PASSED [ 45%] test/layouts/test_xmonad.py::test_tall_add_clients_before_current[1-x11-MonadTallNCPBeforeCurrentConfig] FAILED [ 46%] test/layouts/test_xmonad.py::test_tall_add_clients_before_current[1-wayland-MonadTallNCPBeforeCurrentConfig] PASSED [ 46%] test/layouts/test_xmonad.py::test_tall_add_clients_after_current[1-x11-MonadTallNCPAfterCurrentConfig] FAILED [ 46%] test/layouts/test_xmonad.py::test_tall_add_clients_after_current[1-wayland-MonadTallNCPAfterCurrentConfig] PASSED [ 46%] test/layouts/test_xmonad.py::test_tall_add_clients_at_bottom[1-x11-MonadTallNewCLientPositionBottomConfig] FAILED [ 46%] test/layouts/test_xmonad.py::test_tall_add_clients_at_bottom[1-wayland-MonadTallNewCLientPositionBottomConfig] PASSED [ 46%] test/layouts/test_xmonad.py::test_wide_add_clients[1-x11-MonadWideConfig] FAILED [ 46%] test/layouts/test_xmonad.py::test_wide_add_clients[1-wayland-MonadWideConfig] PASSED [ 46%] test/layouts/test_xmonad.py::test_wide_add_clients_new_client_postion_top[1-x11-MonadWideNewClientPositionTopConfig] FAILED [ 46%] test/layouts/test_xmonad.py::test_wide_add_clients_new_client_postion_top[1-wayland-MonadWideNewClientPositionTopConfig] PASSED [ 46%] test/layouts/test_xmonad.py::test_tall_margins[1-x11-MonadTallMarginsConfig] FAILED [ 46%] test/layouts/test_xmonad.py::test_tall_margins[1-wayland-MonadTallMarginsConfig] PASSED [ 46%] test/layouts/test_xmonad.py::test_wide_margins[1-x11-MonadWideMarginsConfig] FAILED [ 46%] test/layouts/test_xmonad.py::test_wide_margins[1-wayland-MonadWideMarginsConfig] PASSED [ 46%] test/layouts/test_xmonad.py::test_tall_growmain_solosecondary[1-x11-MonadTallConfig] FAILED [ 46%] test/layouts/test_xmonad.py::test_tall_growmain_solosecondary[1-wayland-MonadTallConfig] PASSED [ 47%] test/layouts/test_xmonad.py::test_wide_growmain_solosecondary[1-x11-MonadWideConfig] FAILED [ 47%] test/layouts/test_xmonad.py::test_wide_growmain_solosecondary[1-wayland-MonadWideConfig] PASSED [ 47%] test/layouts/test_xmonad.py::test_tall_growmain_multiplesecondary[1-x11-MonadTallConfig] FAILED [ 47%] test/layouts/test_xmonad.py::test_tall_growmain_multiplesecondary[1-wayland-MonadTallConfig] PASSED [ 47%] test/layouts/test_xmonad.py::test_wide_growmain_multiplesecondary[1-x11-MonadWideConfig] FAILED [ 47%] test/layouts/test_xmonad.py::test_wide_growmain_multiplesecondary[1-wayland-MonadWideConfig] PASSED [ 47%] test/layouts/test_xmonad.py::test_tall_growsecondary_solosecondary[1-x11-MonadTallConfig] FAILED [ 47%] test/layouts/test_xmonad.py::test_tall_growsecondary_solosecondary[1-wayland-MonadTallConfig] PASSED [ 47%] test/layouts/test_xmonad.py::test_wide_growsecondary_solosecondary[1-x11-MonadWideConfig] FAILED [ 47%] test/layouts/test_xmonad.py::test_wide_growsecondary_solosecondary[1-wayland-MonadWideConfig] PASSED [ 47%] test/layouts/test_xmonad.py::test_tall_growsecondary_multiplesecondary[1-x11-MonadTallConfig] FAILED [ 47%] test/layouts/test_xmonad.py::test_tall_growsecondary_multiplesecondary[1-wayland-MonadTallConfig] PASSED [ 47%] test/layouts/test_xmonad.py::test_wide_growsecondary_multiplesecondary[1-x11-MonadWideConfig] FAILED [ 47%] test/layouts/test_xmonad.py::test_wide_growsecondary_multiplesecondary[1-wayland-MonadWideConfig] PASSED [ 47%] test/layouts/test_xmonad.py::test_tall_flip[1-x11-MonadTallConfig] FAILED [ 47%] test/layouts/test_xmonad.py::test_tall_flip[1-wayland-MonadTallConfig] PASSED [ 48%] test/layouts/test_xmonad.py::test_wide_flip[1-x11-MonadWideConfig] FAILED [ 48%] test/layouts/test_xmonad.py::test_wide_flip[1-wayland-MonadWideConfig] PASSED [ 48%] test/layouts/test_xmonad.py::test_tall_set_and_reset[1-x11-MonadTallConfig] FAILED [ 48%] test/layouts/test_xmonad.py::test_tall_set_and_reset[1-wayland-MonadTallConfig] PASSED [ 48%] test/layouts/test_xmonad.py::test_wide_set_and_reset[1-x11-MonadWideConfig] FAILED [ 48%] test/layouts/test_xmonad.py::test_wide_set_and_reset[1-wayland-MonadWideConfig] PASSED [ 48%] test/layouts/test_xmonad.py::test_tall_shuffle[1-x11-MonadTallConfig] FAILED [ 48%] test/layouts/test_xmonad.py::test_tall_shuffle[1-wayland-MonadTallConfig] PASSED [ 48%] test/layouts/test_xmonad.py::test_wide_shuffle[1-x11-MonadWideConfig] FAILED [ 48%] test/layouts/test_xmonad.py::test_wide_shuffle[1-wayland-MonadWideConfig] PASSED [ 48%] test/layouts/test_xmonad.py::test_tall_swap[1-x11-MonadTallConfig] FAILED [ 48%] test/layouts/test_xmonad.py::test_tall_swap[1-wayland-MonadTallConfig] PASSED [ 48%] test/layouts/test_xmonad.py::test_wide_swap[1-x11-MonadWideConfig] FAILED [ 48%] test/layouts/test_xmonad.py::test_wide_swap[1-wayland-MonadWideConfig] PASSED [ 48%] test/layouts/test_xmonad.py::test_tall_window_focus_cycle[1-x11-MonadTallConfig] FAILED [ 49%] test/layouts/test_xmonad.py::test_tall_window_focus_cycle[1-wayland-MonadTallConfig] PASSED [ 49%] test/layouts/test_xmonad.py::test_wide_window_focus_cycle[1-x11-MonadWideConfig] FAILED [ 49%] test/layouts/test_xmonad.py::test_wide_window_focus_cycle[1-wayland-MonadWideConfig] PASSED [ 49%] test/layouts/test_xmonad.py::test_three_col_add_clients[1-x11-MonadThreeColConfig] FAILED [ 49%] test/layouts/test_xmonad.py::test_three_col_add_clients[1-wayland-MonadThreeColConfig] PASSED [ 49%] test/layouts/test_xmonad.py::test_three_col_shuffle[1-x11-MonadThreeColConfig] FAILED [ 49%] test/layouts/test_xmonad.py::test_three_col_shuffle[1-wayland-MonadThreeColConfig] PASSED [ 49%] test/layouts/test_xmonad.py::test_three_col_swap_main[1-x11-MonadThreeColConfig] FAILED [ 49%] test/layouts/test_xmonad.py::test_three_col_swap_main[1-wayland-MonadThreeColConfig] PASSED [ 49%] test/layouts/test_zoomy.py::test_zoomy_one[1-x11-ZoomyConfig] FAILED [ 49%] test/layouts/test_zoomy.py::test_zoomy_one[1-wayland-ZoomyConfig] PASSED [ 49%] test/layouts/test_zoomy.py::test_zoomy_window_focus_cycle[1-x11-ZoomyConfig] FAILED [ 49%] test/layouts/test_zoomy.py::test_zoomy_window_focus_cycle[1-wayland-ZoomyConfig] PASSED [ 49%] test/widgets/test_base.py::test_multiple_timers[1-x11] PASSED [ 49%] test/widgets/test_base.py::test_multiple_timers[1-wayland] PASSED [ 50%] test/widgets/test_base.py::test_mirrors_same_bar[1-x11] PASSED [ 50%] test/widgets/test_base.py::test_mirrors_same_bar[1-wayland] PASSED [ 50%] test/widgets/test_base.py::test_mirrors_different_bar[1-x11] PASSED [ 50%] test/widgets/test_base.py::test_mirrors_different_bar[1-wayland] PASSED [ 50%] test/widgets/test_base.py::test_threadpolltext_force_update[1-x11] PASSED [ 50%] test/widgets/test_base.py::test_threadpolltext_force_update[1-wayland] PASSED [ 50%] test/widgets/test_base.py::test_text_scroll_no_width[1-x11-ScrollingTextConfig] PASSED [ 50%] test/widgets/test_base.py::test_text_scroll_no_width[1-wayland-ScrollingTextConfig] PASSED [ 50%] test/widgets/test_base.py::test_text_scroll_short_text[1-x11-ScrollingTextConfig] PASSED [ 50%] test/widgets/test_base.py::test_text_scroll_short_text[1-wayland-ScrollingTextConfig] PASSED [ 50%] test/widgets/test_base.py::test_text_scroll_long_text[1-x11-ScrollingTextConfig] PASSED [ 50%] test/widgets/test_base.py::test_text_scroll_long_text[1-wayland-ScrollingTextConfig] PASSED [ 50%] test/widgets/test_bluetooth.py::test_bluetooth_setup[1-x11] PASSED [ 50%] test/widgets/test_bluetooth.py::test_bluetooth_setup[1-wayland] PASSED [ 50%] test/widgets/test_check_updates.py::test_update_available_with_execute[1-x11] PASSED [ 50%] test/widgets/test_check_updates.py::test_update_available_with_execute[1-wayland] PASSED [ 51%] test/widgets/test_chord.py::test_chord_persistence[1-x11-ChordConf] PASSED [ 51%] test/widgets/test_chord.py::test_chord_persistence[1-wayland-ChordConf] PASSED [ 51%] test/widgets/test_clipboard.py::test_clipboard_display[1-x11] PASSED [ 51%] test/widgets/test_clipboard.py::test_clipboard_display[1-wayland] SKIPPED (Test only available on X11.) [ 51%] test/widgets/test_clipboard.py::test_clipboard_display_full_text[1-x11-clipboard_manager0] PASSED [ 51%] test/widgets/test_clipboard.py::test_clipboard_display_full_text[1-wayland-clipboard_manager0] SKIPPED (Test only available on X11.) [ 51%] test/widgets/test_clipboard.py::test_clipboard_blacklist[1-x11-clipboard_manager0] PASSED [ 51%] test/widgets/test_clipboard.py::test_clipboard_blacklist[1-wayland-clipboard_manager0] SKIPPED (Test only available on X11.) [ 51%] test/widgets/test_clipboard.py::test_clipboard_ignore_different_selection[1-x11] PASSED [ 51%] test/widgets/test_clipboard.py::test_clipboard_ignore_different_selection[1-wayland] SKIPPED (Test only available on X11.) [ 51%] test/widgets/test_clipboard.py::test_clipboard_display_clear[1-x11-clipboard_manager0] PASSED [ 51%] test/widgets/test_clipboard.py::test_clipboard_display_clear[1-wayland-clipboard_manager0] SKIPPED (Test only available on X11.) [ 51%] test/widgets/test_clipboard.py::test_clipboard_display_multiple_changes[1-x11] PASSED [ 51%] test/widgets/test_clipboard.py::test_clipboard_display_multiple_changes[1-wayland] SKIPPED (Test only available on X11.) [ 51%] test/widgets/test_clock.py::test_clock_tick[1-x11] PASSED [ 52%] test/widgets/test_clock.py::test_clock_tick[1-wayland] PASSED [ 52%] test/widgets/test_cmus.py::test_cmus_buttons[1-x11] PASSED [ 52%] test/widgets/test_cmus.py::test_cmus_buttons[1-wayland] PASSED [ 52%] test/widgets/test_configerror.py::test_configerrorwidget[1-x11-top] PASSED [ 52%] test/widgets/test_configerror.py::test_configerrorwidget[1-x11-bottom] PASSED [ 52%] test/widgets/test_configerror.py::test_configerrorwidget[1-x11-left] PASSED [ 52%] test/widgets/test_configerror.py::test_configerrorwidget[1-x11-right] PASSED [ 52%] test/widgets/test_configerror.py::test_configerrorwidget[1-wayland-top] PASSED [ 52%] test/widgets/test_configerror.py::test_configerrorwidget[1-wayland-bottom] PASSED [ 52%] test/widgets/test_configerror.py::test_configerrorwidget[1-wayland-left] PASSED [ 52%] test/widgets/test_configerror.py::test_configerrorwidget[1-wayland-right] PASSED [ 52%] test/widgets/test_cpu.py::test_cpu[1-x11] PASSED [ 52%] test/widgets/test_cpu.py::test_cpu[1-wayland] PASSED [ 52%] test/widgets/test_crashme.py::test_crashme_init[1-x11] PASSED [ 52%] test/widgets/test_crashme.py::test_crashme_init[1-wayland] PASSED [ 52%] test/widgets/test_currentscreen.py::test_change_screen[x11-2] PASSED [ 53%] test/widgets/test_currentscreen.py::test_change_screen[wayland-2] PASSED [ 53%] test/widgets/test_image.py::test_default_settings[1-x11-screen0-top-height] PASSED [ 53%] test/widgets/test_image.py::test_default_settings[1-x11-screen1-left-width] PASSED [ 53%] test/widgets/test_image.py::test_default_settings[1-wayland-screen0-top-height] PASSED [ 53%] test/widgets/test_image.py::test_default_settings[1-wayland-screen1-left-width] PASSED [ 53%] test/widgets/test_image.py::test_no_filename[1-x11-screen0-top-width] PASSED [ 53%] test/widgets/test_image.py::test_no_filename[1-x11-screen1-left-height] PASSED [ 53%] test/widgets/test_image.py::test_no_filename[1-wayland-screen0-top-width] PASSED [ 53%] test/widgets/test_image.py::test_no_filename[1-wayland-screen1-left-height] PASSED [ 53%] test/widgets/test_image.py::test_missing_file[1-x11] PASSED [ 53%] test/widgets/test_image.py::test_missing_file[1-wayland] PASSED [ 53%] test/widgets/test_image.py::test_no_scale[1-x11] PASSED [ 53%] test/widgets/test_image.py::test_no_scale[1-wayland] PASSED [ 53%] test/widgets/test_image.py::test_no_image[1-x11] PASSED [ 53%] test/widgets/test_image.py::test_no_image[1-wayland] PASSED [ 54%] test/widgets/test_image.py::test_invalid_path[1-x11] PASSED [ 54%] test/widgets/test_image.py::test_invalid_path[1-wayland] PASSED [ 54%] test/widgets/test_import_error.py::test_importerrorwidget[1-x11-top] PASSED [ 54%] test/widgets/test_import_error.py::test_importerrorwidget[1-x11-bottom] PASSED [ 54%] test/widgets/test_import_error.py::test_importerrorwidget[1-x11-left] PASSED [ 54%] test/widgets/test_import_error.py::test_importerrorwidget[1-x11-right] PASSED [ 54%] test/widgets/test_import_error.py::test_importerrorwidget[1-wayland-top] PASSED [ 54%] test/widgets/test_import_error.py::test_importerrorwidget[1-wayland-bottom] PASSED [ 54%] test/widgets/test_import_error.py::test_importerrorwidget[1-wayland-left] PASSED [ 54%] test/widgets/test_import_error.py::test_importerrorwidget[1-wayland-right] PASSED [ 54%] test/widgets/test_load.py::test_load_times_button_click[1-x11] PASSED [ 54%] test/widgets/test_load.py::test_load_times_button_click[1-wayland] PASSED [ 54%] test/widgets/test_load.py::test_load_times_command[1-x11] PASSED [ 54%] test/widgets/test_load.py::test_load_times_command[1-wayland] PASSED [ 54%] test/widgets/test_load.py::test_load_times_formatting[1-x11-load_manager0] PASSED [ 55%] test/widgets/test_load.py::test_load_times_formatting[1-wayland-load_manager0] PASSED [ 55%] test/widgets/test_memory.py::test_memory_defaults[1-x11] PASSED [ 55%] test/widgets/test_memory.py::test_memory_defaults[1-wayland] PASSED [ 55%] test/widgets/test_memory.py::test_memory_units[1-x11-G- 2G/ 8G] PASSED [ 55%] test/widgets/test_memory.py::test_memory_units[1-x11-M- 2417M/ 7802M] PASSED [ 55%] test/widgets/test_memory.py::test_memory_units[1-x11-K- 2474864K/ 7988952K] PASSED [ 55%] test/widgets/test_memory.py::test_memory_units[1-x11-B- 2534260736B/ 8180686848B] PASSED [ 55%] test/widgets/test_memory.py::test_memory_units[1-wayland-G- 2G/ 8G] PASSED [ 55%] test/widgets/test_memory.py::test_memory_units[1-wayland-M- 2417M/ 7802M] PASSED [ 55%] test/widgets/test_memory.py::test_memory_units[1-wayland-K- 2474864K/ 7988952K] PASSED [ 55%] test/widgets/test_memory.py::test_memory_units[1-wayland-B- 2534260736B/ 8180686848B] PASSED [ 55%] test/widgets/test_misc.py::test_textbox_color_change[1-x11-WidgetTestConf] PASSED [ 55%] test/widgets/test_misc.py::test_textbox_color_change[1-wayland-WidgetTestConf] PASSED [ 55%] test/widgets/test_moc.py::test_moc_button_presses[1-x11] PASSED [ 55%] test/widgets/test_moc.py::test_moc_button_presses[1-wayland] PASSED [ 55%] test/widgets/test_mouse_callback.py::test_lazy_callback[1-x11] PASSED [ 56%] test/widgets/test_mouse_callback.py::test_lazy_callback[1-wayland] PASSED [ 56%] test/widgets/test_mpd2widget.py::test_mpd2_widget_display_and_actions[1-x11] PASSED [ 56%] test/widgets/test_mpd2widget.py::test_mpd2_widget_display_and_actions[1-wayland] PASSED [ 56%] test/widgets/test_mpd2widget.py::test_mpd2_widget_extra_info[1-x11] PASSED [ 56%] test/widgets/test_mpd2widget.py::test_mpd2_widget_extra_info[1-wayland] PASSED [ 56%] test/widgets/test_mpd2widget.py::test_mpd2_widget_idle_message[1-x11] PASSED [ 56%] test/widgets/test_mpd2widget.py::test_mpd2_widget_idle_message[1-wayland] PASSED [ 56%] test/widgets/test_notify.py::test_notifications[1-x11] PASSED [ 56%] test/widgets/test_notify.py::test_notifications[1-wayland] PASSED [ 56%] test/widgets/test_notify.py::test_invoke_and_clear[1-x11] FAILED [ 56%] test/widgets/test_notify.py::test_invoke_and_clear[1-wayland] PASSED [ 56%] test/widgets/test_notify.py::test_parse_text[1-x11] PASSED [ 56%] test/widgets/test_notify.py::test_parse_text[1-wayland] PASSED [ 56%] test/widgets/test_openweather.py::test_openweather_parse[1-x11-params0-London: 7.0 \xb0C 81% light intensity drizzle] PASSED [ 56%] test/widgets/test_openweather.py::test_openweather_parse[1-x11-params1-London: 07:40 16:47] PASSED [ 57%] test/widgets/test_openweather.py::test_openweather_parse[1-x11-params2-London: 4.1 80 E] PASSED [ 57%] test/widgets/test_openweather.py::test_openweather_parse[1-x11-params3-London: \U0001f327\ufe0f] PASSED [ 57%] test/widgets/test_openweather.py::test_openweather_parse[1-wayland-params0-London: 7.0 \xb0C 81% light intensity drizzle] PASSED [ 57%] test/widgets/test_openweather.py::test_openweather_parse[1-wayland-params1-London: 07:40 16:47] PASSED [ 57%] test/widgets/test_openweather.py::test_openweather_parse[1-wayland-params2-London: 4.1 80 E] PASSED [ 57%] test/widgets/test_openweather.py::test_openweather_parse[1-wayland-params3-London: \U0001f327\ufe0f] PASSED [ 57%] test/widgets/test_quickexit.py::test_trigger_and_cancel[1-x11] PASSED [ 57%] test/widgets/test_quickexit.py::test_trigger_and_cancel[1-wayland] PASSED [ 57%] test/widgets/test_quickexit.py::test_exit[1-x11] PASSED [ 57%] test/widgets/test_quickexit.py::test_exit[1-wayland] PASSED [ 57%] test/widgets/test_sensors.py::test_thermal_sensor_metric[1-x11] PASSED [ 57%] test/widgets/test_sensors.py::test_thermal_sensor_metric[1-wayland] PASSED [ 57%] test/widgets/test_sensors.py::test_thermal_sensor_imperial[1-x11-sensors_manager0] PASSED [ 57%] test/widgets/test_sensors.py::test_thermal_sensor_imperial[1-wayland-sensors_manager0] PASSED [ 57%] test/widgets/test_sensors.py::test_thermal_sensor_tagged_sensor[1-x11-sensors_manager0] PASSED [ 57%] test/widgets/test_sensors.py::test_thermal_sensor_tagged_sensor[1-wayland-sensors_manager0] PASSED [ 58%] test/widgets/test_sensors.py::test_thermal_sensor_unknown_sensor[1-x11-sensors_manager0] PASSED [ 58%] test/widgets/test_sensors.py::test_thermal_sensor_unknown_sensor[1-wayland-sensors_manager0] PASSED [ 58%] test/widgets/test_sensors.py::test_thermal_sensor_format[1-x11-sensors_manager0] PASSED [ 58%] test/widgets/test_sensors.py::test_thermal_sensor_format[1-wayland-sensors_manager0] PASSED [ 58%] test/widgets/test_sensors.py::test_thermal_sensor_colour_normal[1-x11] PASSED [ 58%] test/widgets/test_sensors.py::test_thermal_sensor_colour_normal[1-wayland] PASSED [ 58%] test/widgets/test_sensors.py::test_thermal_sensor_colour_alert[1-x11-sensors_manager0] PASSED [ 58%] test/widgets/test_sensors.py::test_thermal_sensor_colour_alert[1-wayland-sensors_manager0] PASSED [ 58%] test/widgets/test_sep.py::test_orientations[1-x11-screen0-top-width] PASSED [ 58%] test/widgets/test_sep.py::test_orientations[1-x11-screen1-left-height] PASSED [ 58%] test/widgets/test_sep.py::test_orientations[1-wayland-screen0-top-width] PASSED [ 58%] test/widgets/test_sep.py::test_orientations[1-wayland-screen1-left-height] PASSED [ 58%] test/widgets/test_sep.py::test_padding_and_width[1-x11] PASSED [ 58%] test/widgets/test_sep.py::test_padding_and_width[1-wayland] PASSED [ 58%] test/widgets/test_spacer.py::test_stretch[1-x11-screen0-top-width] PASSED [ 59%] test/widgets/test_spacer.py::test_stretch[1-x11-screen1-left-height] PASSED [ 59%] test/widgets/test_spacer.py::test_stretch[1-wayland-screen0-top-width] PASSED [ 59%] test/widgets/test_spacer.py::test_stretch[1-wayland-screen1-left-height] PASSED [ 59%] test/widgets/test_spacer.py::test_fixed_size[1-x11-screen0-top-width] PASSED [ 59%] test/widgets/test_spacer.py::test_fixed_size[1-x11-screen1-left-height] PASSED [ 59%] test/widgets/test_spacer.py::test_fixed_size[1-wayland-screen0-top-width] PASSED [ 59%] test/widgets/test_spacer.py::test_fixed_size[1-wayland-screen1-left-height] PASSED [ 59%] test/widgets/test_statusnotifier.py::test_statusnotifier_defaults[1-x11] PASSED [ 59%] test/widgets/test_statusnotifier.py::test_statusnotifier_defaults[1-wayland] PASSED [ 59%] test/widgets/test_statusnotifier.py::test_statusnotifier_defaults_vertical_bar[1-x11] PASSED [ 59%] test/widgets/test_statusnotifier.py::test_statusnotifier_defaults_vertical_bar[1-wayland] PASSED [ 59%] test/widgets/test_statusnotifier.py::test_statusnotifier_icon_size[1-x11-sni_config0] PASSED [ 59%] test/widgets/test_statusnotifier.py::test_statusnotifier_icon_size[1-wayland-sni_config0] PASSED [ 59%] test/widgets/test_statusnotifier.py::test_statusnotifier_left_click[1-x11] XFAIL (Unsure why test fails, but let's accept a failure for now.) [ 59%] test/widgets/test_statusnotifier.py::test_statusnotifier_left_click[1-wayland] PASSED [ 60%] test/widgets/test_statusnotifier.py::test_statusnotifier_left_click_vertical_bar[1-x11] XFAIL (Unsure why test fails, but let's accept a failure for now.) [ 60%] test/widgets/test_statusnotifier.py::test_statusnotifier_left_click_vertical_bar[1-wayland] PASSED [ 60%] test/widgets/test_systray.py::test_no_duplicates_multiple_instances[1-x11] PASSED [ 60%] test/widgets/test_systray.py::test_no_duplicates_multiple_instances[1-wayland] SKIPPED (Skipping test on Wayland.) [ 60%] test/widgets/test_systray.py::test_no_duplicates_mirror[1-x11] PASSED [ 60%] test/widgets/test_systray.py::test_no_duplicates_mirror[1-wayland] SKIPPED (Skipping test on Wayland.) [ 60%] test/widgets/test_systray.py::test_systray_reconfigure_screens[1-x11] PASSED [ 60%] test/widgets/test_systray.py::test_systray_reconfigure_screens[1-wayland] SKIPPED (Skipping test on Wayland.) [ 60%] test/widgets/test_systray.py::test_systray_icons[1-x11] SKIPPED (volumeicon must be installed. Skipping test.) [ 60%] test/widgets/test_systray.py::test_systray_icons[1-wayland] SKIPPED (Skipping test on Wayland.) [ 60%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-x11-top] PASSED [ 60%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-x11-bottom] PASSED [ 60%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-x11-left] PASSED [ 60%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-x11-right] PASSED [ 60%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-wayland-top] PASSED [ 60%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-wayland-bottom] PASSED [ 61%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-wayland-left] PASSED [ 61%] test/widgets/test_textbox.py::test_text_box_bar_orientations[1-wayland-right] PASSED [ 61%] test/widgets/test_textbox.py::test_text_box_max_chars[1-x11] PASSED [ 61%] test/widgets/test_textbox.py::test_text_box_max_chars[1-wayland] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-AGroupBox-kwargs0] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Backlight-kwargs1] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Battery-kwargs2] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-BatteryIcon-kwargs3] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Bluetooth-kwargs4] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs5] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs6] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Canto-kwargs7] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CapsNumLockIndicator-kwargs8] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CheckUpdates-kwargs9] PASSED [ 61%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Chord-kwargs10] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Clipboard-kwargs11] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Clock-kwargs12] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Cmus-kwargs13] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Countdown-kwargs14] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CryptoTicker-kwargs15] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CurrentLayout-kwargs16] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CurrentLayoutIcon-kwargs17] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-CurrentScreen-kwargs18] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-DF-kwargs19] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GenPollText-kwargs20] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GenPollUrl-kwargs21] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GmailChecker-kwargs22] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-GroupBox-kwargs23] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs24] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs25] PASSED [ 62%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-IdleRPG-kwargs26] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Image-kwargs27] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs28] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-KeyboardKbdd-kwargs29] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-KeyboardLayout-kwargs30] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs31] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-LaunchBar-kwargs32] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs33] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Maildir-kwargs34] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs35] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs36] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Moc-kwargs37] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs38] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Mpris2-kwargs39] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs40] PASSED [ 63%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs41] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Notify-kwargs42] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-NvidiaSensors-kwargs43] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-OpenWeather-kwargs44] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Pomodoro-kwargs45] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Prompt-kwargs46] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-QuickExit-kwargs47] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Sep-kwargs48] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-She-kwargs49] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Spacer-kwargs50] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-StatusNotifier-kwargs51] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-StockTicker-kwargs52] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs53] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Systray-kwargs54] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-TaskList-kwargs55] PASSED [ 64%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-TextBox-kwargs56] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs57] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-ThermalZone-kwargs58] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Volume-kwargs59] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Wallpaper-kwargs60] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WidgetBox-kwargs61] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WindowCount-kwargs62] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WindowName-kwargs63] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-WindowTabs-kwargs64] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-import_error_wrapper-kwargs65] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-Wttr-kwargs66] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-x11-_CrashMe-kwargs67] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-AGroupBox-kwargs0] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Backlight-kwargs1] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Battery-kwargs2] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-BatteryIcon-kwargs3] PASSED [ 65%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Bluetooth-kwargs4] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs5] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs6] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Canto-kwargs7] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CapsNumLockIndicator-kwargs8] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CheckUpdates-kwargs9] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Chord-kwargs10] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Clipboard-kwargs11] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Clock-kwargs12] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Cmus-kwargs13] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Countdown-kwargs14] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CryptoTicker-kwargs15] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CurrentLayout-kwargs16] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CurrentLayoutIcon-kwargs17] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-CurrentScreen-kwargs18] PASSED [ 66%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-DF-kwargs19] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GenPollText-kwargs20] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GenPollUrl-kwargs21] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GmailChecker-kwargs22] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-GroupBox-kwargs23] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs24] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs25] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-IdleRPG-kwargs26] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Image-kwargs27] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs28] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-KeyboardKbdd-kwargs29] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-KeyboardLayout-kwargs30] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs31] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-LaunchBar-kwargs32] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs33] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Maildir-kwargs34] PASSED [ 67%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs35] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs36] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Moc-kwargs37] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs38] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Mpris2-kwargs39] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs40] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs41] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Notify-kwargs42] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-NvidiaSensors-kwargs43] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-OpenWeather-kwargs44] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Pomodoro-kwargs45] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Prompt-kwargs46] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-QuickExit-kwargs47] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Sep-kwargs48] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-She-kwargs49] PASSED [ 68%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Spacer-kwargs50] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-StatusNotifier-kwargs51] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-StockTicker-kwargs52] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs53] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Systray-kwargs54] SKIPPED (Unsupported backend) [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-TaskList-kwargs55] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-TextBox-kwargs56] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs57] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-ThermalZone-kwargs58] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Volume-kwargs59] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Wallpaper-kwargs60] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WidgetBox-kwargs61] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WindowCount-kwargs62] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WindowName-kwargs63] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-WindowTabs-kwargs64] PASSED [ 69%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-import_error_wrapper-kwargs65] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-Wttr-kwargs66] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config[1-wayland-_CrashMe-kwargs67] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Backlight-kwargs0] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Battery-kwargs1] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Bluetooth-kwargs2] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs3] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs4] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Canto-kwargs5] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CapsNumLockIndicator-kwargs6] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CheckUpdates-kwargs7] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Chord-kwargs8] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Clipboard-kwargs9] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Clock-kwargs10] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Cmus-kwargs11] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Countdown-kwargs12] PASSED [ 70%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CryptoTicker-kwargs13] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CurrentLayout-kwargs14] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-CurrentScreen-kwargs15] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-DF-kwargs16] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-GenPollText-kwargs17] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-GenPollUrl-kwargs18] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-GmailChecker-kwargs19] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs20] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs21] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-IdleRPG-kwargs22] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Image-kwargs23] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs24] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-KeyboardKbdd-kwargs25] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-KeyboardLayout-kwargs26] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs27] PASSED [ 71%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs28] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Maildir-kwargs29] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs30] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs31] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Moc-kwargs32] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs33] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Mpris2-kwargs34] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs35] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs36] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Notify-kwargs37] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-NvidiaSensors-kwargs38] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-OpenWeather-kwargs39] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Pomodoro-kwargs40] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Prompt-kwargs41] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-QuickExit-kwargs42] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Sep-kwargs43] PASSED [ 72%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-She-kwargs44] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Spacer-kwargs45] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-StatusNotifier-kwargs46] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-StockTicker-kwargs47] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs48] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Systray-kwargs49] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-TextBox-kwargs50] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs51] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Wallpaper-kwargs52] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-WindowCount-kwargs53] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-WindowName-kwargs54] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-WindowTabs-kwargs55] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-import_error_wrapper-kwargs56] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-Wttr-kwargs57] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-x11-_CrashMe-kwargs58] PASSED [ 73%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Backlight-kwargs0] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Battery-kwargs1] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Bluetooth-kwargs2] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs3] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs4] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Canto-kwargs5] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CapsNumLockIndicator-kwargs6] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CheckUpdates-kwargs7] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Chord-kwargs8] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Clipboard-kwargs9] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Clock-kwargs10] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Cmus-kwargs11] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Countdown-kwargs12] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CryptoTicker-kwargs13] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CurrentLayout-kwargs14] PASSED [ 74%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-CurrentScreen-kwargs15] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-DF-kwargs16] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-GenPollText-kwargs17] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-GenPollUrl-kwargs18] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-GmailChecker-kwargs19] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs20] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs21] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-IdleRPG-kwargs22] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Image-kwargs23] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs24] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-KeyboardKbdd-kwargs25] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-KeyboardLayout-kwargs26] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs27] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs28] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Maildir-kwargs29] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs30] PASSED [ 75%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs31] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Moc-kwargs32] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs33] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Mpris2-kwargs34] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs35] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs36] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Notify-kwargs37] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-NvidiaSensors-kwargs38] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-OpenWeather-kwargs39] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Pomodoro-kwargs40] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Prompt-kwargs41] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-QuickExit-kwargs42] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Sep-kwargs43] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-She-kwargs44] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Spacer-kwargs45] PASSED [ 76%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-StatusNotifier-kwargs46] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-StockTicker-kwargs47] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs48] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Systray-kwargs49] SKIPPED (Unsupported backend) [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-TextBox-kwargs50] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs51] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Wallpaper-kwargs52] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-WindowCount-kwargs53] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-WindowName-kwargs54] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-WindowTabs-kwargs55] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-import_error_wrapper-kwargs56] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-Wttr-kwargs57] PASSED [ 77%] test/widgets/test_widget_init_configure.py::test_widget_init_config_vertical_bar[1-wayland-_CrashMe-kwargs58] PASSED [ 77%] test/widgets/test_widgetbox.py::test_widgetbox_mirror[1-x11] PASSED [ 77%] test/widgets/test_widgetbox.py::test_widgetbox_mirror[1-wayland] PASSED [ 77%] test/widgets/test_widgetbox.py::test_widgetbox_mouse_click[1-x11] PASSED [ 77%] test/widgets/test_widgetbox.py::test_widgetbox_mouse_click[1-wayland] PASSED [ 78%] test/widgets/test_widgetbox.py::test_widgetbox_with_systray_reconfigure_screens_box_open[1-x11] PASSED [ 78%] test/widgets/test_widgetbox.py::test_widgetbox_with_systray_reconfigure_screens_box_open[1-wayland] SKIPPED (Skipping test on Wayland.) [ 78%] test/widgets/test_widgetbox.py::test_widgetbox_with_systray_reconfigure_screens_box_closed[1-x11] PASSED [ 78%] test/widgets/test_widgetbox.py::test_widgetbox_with_systray_reconfigure_screens_box_closed[1-wayland] SKIPPED (Skipping test on Wayland.) [ 78%] test/widgets/test_window_count.py::test_different_screens[1-x11-DifferentScreens] FAILED [ 78%] test/widgets/test_window_count.py::test_different_screens[1-wayland-DifferentScreens] PASSED [ 78%] test/widgets/test_window_count.py::test_window_count[1-x11] FAILED [ 78%] test/widgets/test_window_count.py::test_window_count[1-wayland] PASSED [ 78%] test/widgets/test_windowname.py::test_window_names[1-x11-WindowNameConfig] FAILED [ 78%] test/widgets/test_windowname.py::test_window_names[1-wayland-WindowNameConfig] PASSED [ 78%] test/widgets/test_windowtabs.py::test_single_window_states[1-x11-WindowTabsConfig] FAILED [ 78%] test/widgets/test_windowtabs.py::test_single_window_states[1-wayland-WindowTabsConfig] PASSED [ 78%] test/widgets/test_windowtabs.py::test_multiple_windows[1-x11-WindowTabsConfig] FAILED [ 78%] test/widgets/test_windowtabs.py::test_multiple_windows[1-wayland-WindowTabsConfig] PASSED [ 78%] test/widgets/test_windowtabs.py::test_selected[1-x11-WindowTabsConfig] FAILED [ 79%] test/widgets/test_windowtabs.py::test_selected[1-wayland-WindowTabsConfig] PASSED [ 79%] test/widgets/test_wlan.py::test_wlan_display[1-x11-kwargs0-QtileNet 49/70] PASSED [ 79%] test/widgets/test_wlan.py::test_wlan_display[1-x11-kwargs1-QtileNet 70%] PASSED [ 79%] test/widgets/test_wlan.py::test_wlan_display[1-x11-kwargs2-Disconnected] PASSED [ 79%] test/widgets/test_wlan.py::test_wlan_display[1-wayland-kwargs0-QtileNet 49/70] PASSED [ 79%] test/widgets/test_wlan.py::test_wlan_display[1-wayland-kwargs1-QtileNet 70%] PASSED [ 79%] test/widgets/test_wlan.py::test_wlan_display[1-wayland-kwargs2-Disconnected] PASSED [ 79%] test/test_check.py::test_check_default_config SKIPPED (needs mypy) [ 79%] test/test_check.py::test_check_bad_syntax SKIPPED (needs mypy) [ 79%] test/test_check.py::test_check_bad_key_arg SKIPPED (needs mypy) [ 79%] test/test_check.py::test_check_good_key_arg SKIPPED (needs mypy) [ 79%] test/test_check.py::test_check_bad_config_type SKIPPED (needs mypy) [ 79%] test/test_check.py::test_extra_vars_are_ok SKIPPED (needs mypy) [ 79%] test/test_check.py::test_extra_files_are_ok SKIPPED (needs mypy) [ 79%] test/test_command.py::test_doc PASSED [ 80%] test/test_command.py::test_commands PASSED [ 80%] test/test_command.py::test_command PASSED [ 80%] test/test_command.py::test_deprecated_modules PASSED [ 80%] test/test_command_graph.py::test_root_path PASSED [ 80%] test/test_command_graph.py::test_resolve_nodes PASSED [ 80%] test/test_command_graph.py::test_resolve_selections PASSED [ 80%] test/test_command_graph.py::test_resolve_command PASSED [ 80%] test/test_config.py::test_validate PASSED [ 80%] test/test_config.py::test_basic PASSED [ 80%] test/test_config.py::test_syntaxerr PASSED [ 80%] test/test_config.py::test_falls_back PASSED [ 80%] test/test_config.py::test_ezkey PASSED [ 80%] test/test_config.py::test_ezclick_ezdrag PASSED [ 80%] test/test_configurable.py::test_use_fallback PASSED [ 80%] test/test_configurable.py::test_use_fallback_if_set_to_none PASSED [ 80%] test/test_configurable.py::test_dont_use_fallback_if_set PASSED [ 81%] test/test_hook.py::test_cannot_fire_unknown_event PASSED [ 81%] test/test_hook.py::test_hook_calls_subscriber PASSED [ 81%] test/test_hook.py::test_hook_calls_subscriber_async PASSED [ 81%] test/test_hook.py::test_hook_calls_subscriber_async_co PASSED [ 81%] test/test_hook.py::test_hook_calls_subscriber_async_in_existing_loop PASSED [ 81%] test/test_hook.py::test_subscribers_can_be_added_removed PASSED [ 81%] test/test_hook.py::test_can_unsubscribe_from_hook PASSED [ 81%] test/test_images.py::test_get_cairo_surface[/startdir/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 81%] test/test_images.py::test_get_cairo_surface[/startdir/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 81%] test/test_images.py::test_get_cairo_surface[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 81%] test/test_images.py::test_get_cairo_surface[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 81%] test/test_images.py::test_get_cairo_surface[/startdir/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 81%] test/test_images.py::test_get_cairo_surface_bad_input PASSED [ 81%] test/test_images.py::TestImg::test_init[/startdir/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 81%] test/test_images.py::TestImg::test_init[/startdir/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 82%] test/test_images.py::TestImg::test_init[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 82%] test/test_images.py::TestImg::test_init[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 82%] test/test_images.py::TestImg::test_init[/startdir/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 82%] test/test_images.py::TestImg::test_from_path[/startdir/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 82%] test/test_images.py::TestImg::test_from_path[/startdir/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 82%] test/test_images.py::TestImg::test_from_path[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 82%] test/test_images.py::TestImg::test_from_path[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 82%] test/test_images.py::TestImg::test_from_path[/startdir/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 82%] test/test_images.py::TestImg::test_setting PASSED [ 82%] test/test_images.py::TestImg::test_equality PASSED [ 82%] test/test_images.py::TestImg::test_setting_negative_size PASSED [ 82%] test/test_images.py::TestImg::test_pattern[/startdir/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 82%] test/test_images.py::TestImg::test_pattern[/startdir/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 82%] test/test_images.py::TestImg::test_pattern[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 82%] test/test_images.py::TestImg::test_pattern[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 82%] test/test_images.py::TestImg::test_pattern[/startdir/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_resize[/startdir/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_resize[/startdir/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_resize[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_resize[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_rotate[/startdir/src/qtile/test/data/png/audio-volume-muted.png] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_rotate[/startdir/src/qtile/test/data/png/battery-caution-charging.png] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_rotate[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_bad.png] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_rotate[/startdir/src/qtile/test/data/comparison_images/audio-volume-muted_good.png] PASSED [ 83%] test/test_images.py::TestImg::test_pattern_rotate[/startdir/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 83%] test/test_images.py::TestImgScale::test_scale PASSED [ 83%] test/test_images.py::TestImgScale::test_scale_rounding PASSED [ 83%] test/test_images.py::TestImgScale::test_scale_width_lock PASSED [ 83%] test/test_images.py::TestImgScale::test_scale_height_lock PASSED [ 83%] test/test_images.py::TestImgScale::test_scale_fail_lock PASSED [ 83%] test/test_images.py::TestImgScale::test_scale_fail PASSED [ 84%] test/test_images.py::TestImgResize::test_resize PASSED [ 84%] test/test_images.py::TestImgResize::test_resize_width PASSED [ 84%] test/test_images.py::TestImgResize::test_resize_height PASSED [ 84%] test/test_images.py::TestLoader::test_audio_volume_muted PASSED [ 84%] test/test_images.py::TestLoader::test_audio_volume_muted_png PASSED [ 84%] test/test_images.py::TestLoader::test_load_file_missing PASSED [ 84%] test/test_images2.py::test_svg_scaling[/startdir/src/qtile/test/data/svg/audio-volume-muted.svg] PASSED [ 84%] test/test_ipc.py::test_ipc_json_encoder_supports_sets PASSED [ 84%] test/test_ipc.py::test_ipc_json_throws_error_on_unsupported_field PASSED [ 84%] test/test_ipc.py::test_ipc_marshall_error_on_unsupported_field PASSED [ 84%] test/test_manager.py::test_too_few_groups[x11-2-TooFewGroupsConfig] PASSED [ 84%] test/test_manager.py::test_too_few_groups[wayland-2-TooFewGroupsConfig] PASSED [ 84%] test/test_manager.py::test_setgroup[x11-2-BareConfig] PASSED [ 84%] test/test_manager.py::test_setgroup[x11-2-ManagerConfig] PASSED [ 84%] test/test_manager.py::test_setgroup[wayland-2-BareConfig] PASSED [ 85%] test/test_manager.py::test_setgroup[wayland-2-ManagerConfig] PASSED [ 85%] test/test_manager.py::test_unmap_noscreen[x11-2-BareConfig] FAILED [ 85%] test/test_manager.py::test_unmap_noscreen[x11-2-ManagerConfig] FAILED [ 85%] test/test_manager.py::test_unmap_noscreen[wayland-2-BareConfig] PASSED [ 85%] test/test_manager.py::test_unmap_noscreen[wayland-2-ManagerConfig] PASSED [ 85%] test/test_manager.py::test_dx PASSED [ 85%] test/test_manager.py::test_dwidth PASSED [ 85%] test/test_manager.py::test_dy PASSED [ 85%] test/test_manager.py::test_dheight PASSED [ 85%] test/test_migrate.py::test_migrate_default_config_noop PASSED [ 85%] test/test_migrate.py::test_extra_files_are_ok PASSED [ 85%] test/test_migrate.py::test_window_name_change PASSED [ 85%] test/test_migrate.py::test_modules_renames PASSED [ 85%] test/test_migrate.py::test_tile_master_windows PASSED [ 85%] test/test_migrate.py::test_threaded_poll_text PASSED [ 85%] test/test_migrate.py::test_pacman PASSED [ 86%] test/test_migrate.py::test_crypto PASSED [ 86%] test/test_migrate.py::test_main PASSED [ 86%] test/test_migrate.py::test_new_at_current_to_new_client_position PASSED [ 86%] test/test_migrate.py::test_windowtogroup_groupName_argument PASSED [ 86%] test/test_utils.py::test_rgb_from_hex_number PASSED [ 86%] test/test_utils.py::test_rgb_from_hex_string PASSED [ 86%] test/test_utils.py::test_rgb_from_hex_number_with_alpha PASSED [ 86%] test/test_utils.py::test_rgb_from_hex_string_with_alpha PASSED [ 86%] test/test_utils.py::test_rgb_from_hex_number_with_hex_alpha PASSED [ 86%] test/test_utils.py::test_rgb_from_hex_string_with_hex_alpha PASSED [ 86%] test/test_utils.py::test_rgb_from_base10_tuple PASSED [ 86%] test/test_utils.py::test_rgb_from_base10_tuple_with_alpha PASSED [ 86%] test/test_utils.py::test_rgb_from_3_digit_hex_number PASSED [ 86%] test/test_utils.py::test_rgb_from_3_digit_hex_string PASSED [ 86%] test/test_utils.py::test_rgb_from_3_digit_hex_number_with_alpha PASSED [ 87%] test/test_utils.py::test_rgb_from_3_digit_hex_string_with_alpha PASSED [ 87%] test/test_utils.py::test_has_transparency PASSED [ 87%] test/test_utils.py::test_remove_transparency PASSED [ 87%] test/test_utils.py::test_scrub_to_utf8 PASSED [ 87%] test/test_utils.py::test_guess_terminal_accepts_a_preference PASSED [ 87%] test/test_utils.py::test_guess_terminal_accepts_a_list_of_preferences PASSED [ 87%] test/test_utils.py::test_guess_terminal_falls_back_to_defaults PASSED [ 87%] test/test_utils.py::TestScanFiles::test_audio_volume_muted PASSED [ 87%] test/test_utils.py::TestScanFiles::test_only_svg PASSED [ 87%] test/test_utils.py::TestScanFiles::test_multiple PASSED [ 87%] test/backend/test_backend.py::test_get_core_bad PASSED [ 87%] test/backend/x11/test_xcbq.py::test_masks PASSED [ 87%] test/backend/x11/test_xcbq.py::test_translate_masks PASSED [ 87%] test/backend/x11/test_xcore.py::test_get_core_x11 PASSED [ 87%] test/backend/x11/test_xcore.py::test_keys PASSED [ 87%] test/core/test_lifecycle.py::test_restart_behaviour PASSED [ 88%] test/core/test_lifecycle.py::test_terminate_behavior PASSED [ 88%] test/core/test_lifecycle.py::test_none_behavior PASSED [ 88%] test/extension/test_base.py::test_valid_colours[#000-#000] PASSED [ 88%] test/extension/test_base.py::test_valid_colours[#000000-#000000] PASSED [ 88%] test/extension/test_base.py::test_valid_colours[000-#000] PASSED [ 88%] test/extension/test_base.py::test_valid_colours[000000-#000000] PASSED [ 88%] test/extension/test_base.py::test_valid_colours[#0000-None] PASSED [ 88%] test/extension/test_base.py::test_valid_colours[0000-None] PASSED [ 88%] test/extension/test_base.py::test_valid_colours[0-None] PASSED [ 88%] test/extension/test_base.py::test_valid_colours_extension_defaults PASSED [ 88%] test/extension/test_base.py::test_base_methods PASSED [ 88%] test/extension/test_base.py::test_run_command PASSED [ 88%] test/extension/test_command_set.py::test_command_set_valid_command PASSED [ 88%] test/extension/test_command_set.py::test_command_set_invalid_command PASSED [ 88%] test/extension/test_dmenu.py::test_dmenu_configuration_options PASSED [ 89%] test/extension/test_dmenu.py::test_dmenu_run PASSED [ 89%] test/extension/test_dmenu.py::test_dmenurun_extension PASSED [ 89%] test/extension/test_dmenu.py::test_j4dmenu_configuration_options PASSED [ 89%] test/layouts/test_matrix.py::test_unknown_client PASSED [ 89%] test/layouts/test_matrix.py::test_deprecated_configuration PASSED [ 89%] test/widgets/test_battery.py::test_text_battery_charging PASSED [ 89%] test/widgets/test_battery.py::test_text_battery_discharging PASSED [ 89%] test/widgets/test_battery.py::test_text_battery_full PASSED [ 89%] test/widgets/test_battery.py::test_text_battery_empty PASSED [ 89%] test/widgets/test_battery.py::test_text_battery_unknown PASSED [ 89%] test/widgets/test_battery.py::test_text_battery_hidden PASSED [ 89%] test/widgets/test_battery.py::test_text_battery_error PASSED [ 89%] test/widgets/test_battery.py::test_images_fail PASSED [ 89%] test/widgets/test_battery.py::test_images_good PASSED [ 89%] test/widgets/test_battery.py::test_images_default PASSED [ 90%] test/widgets/test_battery.py::test_battery_background PASSED [ 90%] test/widgets/test_bluetooth.py::test_signal_handling PASSED [ 90%] test/widgets/test_caps_num_lock_indicator.py::test_cnli PASSED [ 90%] test/widgets/test_caps_num_lock_indicator.py::test_cnli_caps_on PASSED [ 90%] test/widgets/test_caps_num_lock_indicator.py::test_cnli_error_handling PASSED [ 90%] test/widgets/test_check_updates.py::test_unknown_distro PASSED [ 90%] test/widgets/test_check_updates.py::test_update_available PASSED [ 90%] test/widgets/test_check_updates.py::test_no_update_available_without_no_update_string PASSED [ 90%] test/widgets/test_check_updates.py::test_no_update_available_with_no_update_string_and_color_no_updates PASSED [ 90%] test/widgets/test_check_updates.py::test_update_available_with_restart_indicator PASSED [ 90%] test/widgets/test_check_updates.py::test_update_process_error PASSED [ 90%] test/widgets/test_check_updates.py::test_line_truncations PASSED [ 90%] test/widgets/test_chord.py::test_chord_widget PASSED [ 90%] test/widgets/test_chord.py::test_chord_mode_name_deprecation PASSED [ 90%] test/widgets/test_clock.py::test_clock PASSED [ 90%] test/widgets/test_clock.py::test_clock_invalid_timezone PASSED [ 91%] test/widgets/test_clock.py::test_clock_datetime_timezone PASSED [ 91%] test/widgets/test_clock.py::test_clock_pytz_timezone PASSED [ 91%] test/widgets/test_clock.py::test_clock_dateutil_timezone PASSED [ 91%] test/widgets/test_cmus.py::test_cmus PASSED [ 91%] test/widgets/test_cmus.py::test_cmus_play_stopped PASSED [ 91%] test/widgets/test_cmus.py::test_cmus_error_handling PASSED [ 91%] test/widgets/test_cmus.py::test_escape_text PASSED [ 91%] test/widgets/test_cmus.py::test_missing_metadata PASSED [ 91%] test/widgets/test_countdown.py::test_countdown_formatting PASSED [ 91%] test/widgets/test_crypto_ticker.py::test_set_defaults PASSED [ 91%] test/widgets/test_crypto_ticker.py::test_parse PASSED [ 91%] test/widgets/test_df.py::test_df_no_warning PASSED [ 91%] test/widgets/test_df.py::test_df_always_visible PASSED [ 91%] test/widgets/test_df.py::test_df_warn_space PASSED [ 91%] test/widgets/test_generic_poll_text.py::test_gen_poll_text PASSED [ 92%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_not_configured PASSED [ 92%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_no_json PASSED [ 92%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_headers_and_json PASSED [ 92%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_text PASSED [ 92%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_json PASSED [ 92%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_xml_no_xmltodict PASSED [ 92%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_xml_has_xmltodict PASSED [ 92%] test/widgets/test_generic_poll_text.py::test_gen_poll_url_broken_parse PASSED [ 92%] test/widgets/test_gmail_checker.py::test_gmail_checker_valid_response PASSED [ 92%] test/widgets/test_gmail_checker.py::test_gmail_checker_invalid_response PASSED [ 92%] test/widgets/test_gmail_checker.py::test_gmail_checker_only_unseen PASSED [ 92%] test/widgets/test_idlerpg.py::test_idlerpg PASSED [ 92%] test/widgets/test_imapwidget.py::test_imapwidget PASSED [ 92%] test/widgets/test_imapwidget.py::test_imapwidget_keyring_error PASSED [ 92%] test/widgets/test_imapwidget.py::test_imapwidget_password_none PASSED [ 92%] test/widgets/test_keyboardkbdd.py::test_keyboardkbdd_process_running PASSED [ 93%] test/widgets/test_keyboardkbdd.py::test_keyboardkbdd_process_not_running PASSED [ 93%] test/widgets/test_keyboardkbdd.py::test_keyboard_kbdd_colours PASSED [ 93%] test/widgets/test_launchbar.py::test_deprecated_configuration PASSED [ 93%] test/widgets/test_moc.py::test_moc_poll_string_formatting PASSED [ 93%] test/widgets/test_moc.py::test_moc_state_and_colours PASSED [ 93%] test/widgets/test_moc.py::test_moc_error_handling PASSED [ 93%] test/widgets/test_mpris2widget.py::test_mpris2_signal_handling PASSED [ 93%] test/widgets/test_mpris2widget.py::test_mpris2_custom_stop_text PASSED [ 93%] test/widgets/test_mpris2widget.py::test_mpris2_no_metadata PASSED [ 93%] test/widgets/test_mpris2widget.py::test_mpris2_no_scroll PASSED [ 93%] test/widgets/test_net.py::test_net_defaults PASSED [ 93%] test/widgets/test_net.py::test_net_single_interface PASSED [ 93%] test/widgets/test_net.py::test_net_list_interface PASSED [ 93%] test/widgets/test_net.py::test_net_invalid_interface PASSED [ 93%] test/widgets/test_net.py::test_net_use_bits PASSED [ 94%] test/widgets/test_net.py::test_net_convert_zero_b PASSED [ 94%] test/widgets/test_net.py::test_net_use_prefix PASSED [ 94%] test/widgets/test_notify.py::test_capabilities PASSED [ 94%] test/widgets/test_notify.py::test_unregister PASSED [ 94%] test/widgets/test_nvidia_sensors.py::test_nvidia_sensors_input_regex PASSED [ 94%] test/widgets/test_nvidia_sensors.py::test_nvidia_sensors_foreground_colour PASSED [ 94%] test/widgets/test_openweather.py::test_url[params0-vals0] PASSED [ 94%] test/widgets/test_openweather.py::test_url[params1-vals1] PASSED [ 94%] test/widgets/test_openweather.py::test_url[params2-vals2] PASSED [ 94%] test/widgets/test_openweather.py::test_url[params3-vals3] PASSED [ 94%] test/widgets/test_pomodoro.py::test_pomodoro PASSED [ 94%] test/widgets/test_sep.py::test_deprecated_config PASSED [ 94%] test/widgets/test_stock_ticker.py::test_stock_ticker_methods PASSED [ 94%] test/widgets/test_thermal_zone.py::test_thermal_zone_getting_value PASSED [ 94%] test/widgets/test_volume.py::test_images_fail PASSED [ 95%] test/widgets/test_volume.py::test_images_good PASSED [ 95%] test/widgets/test_volume.py::test_emoji PASSED [ 95%] test/widgets/test_volume.py::test_text PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[AGroupBox-kwargs0] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Backlight-kwargs1] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Battery-kwargs2] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[BatteryIcon-kwargs3] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Bluetooth-kwargs4] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs5] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs6] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Canto-kwargs7] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CapsNumLockIndicator-kwargs8] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CheckUpdates-kwargs9] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Chord-kwargs10] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Clipboard-kwargs11] PASSED [ 95%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Clock-kwargs12] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Cmus-kwargs13] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Countdown-kwargs14] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CryptoTicker-kwargs15] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CurrentLayout-kwargs16] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CurrentLayoutIcon-kwargs17] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[CurrentScreen-kwargs18] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[DF-kwargs19] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GenPollText-kwargs20] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GenPollUrl-kwargs21] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GmailChecker-kwargs22] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[GroupBox-kwargs23] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs24] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs25] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[IdleRPG-kwargs26] PASSED [ 96%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Image-kwargs27] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs28] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[KeyboardKbdd-kwargs29] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[KeyboardLayout-kwargs30] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs31] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[LaunchBar-kwargs32] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs33] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Maildir-kwargs34] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs35] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs36] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Moc-kwargs37] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs38] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Mpris2-kwargs39] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs40] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs41] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Notify-kwargs42] PASSED [ 97%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[NvidiaSensors-kwargs43] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[OpenWeather-kwargs44] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Pomodoro-kwargs45] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Prompt-kwargs46] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[QuickExit-kwargs47] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Sep-kwargs48] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[She-kwargs49] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Spacer-kwargs50] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[StatusNotifier-kwargs51] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[StockTicker-kwargs52] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs53] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Systray-kwargs54] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[TaskList-kwargs55] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[TextBox-kwargs56] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs57] PASSED [ 98%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[ThermalZone-kwargs58] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Volume-kwargs59] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Wallpaper-kwargs60] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WidgetBox-kwargs61] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WindowCount-kwargs62] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WindowName-kwargs63] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[WindowTabs-kwargs64] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[import_error_wrapper-kwargs65] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[Wttr-kwargs66] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_widget_init_config_set_width[_CrashMe-kwargs67] PASSED [ 99%] test/widgets/test_widget_init_configure.py::test_incompatible_orientation PASSED [ 99%] test/widgets/test_widgetbox.py::test_widgetbox_widget PASSED [ 99%] test/widgets/test_widgetbox.py::test_deprecated_configuration PASSED [ 99%] test/widgets/test_window_count.py::test_attribute_errors PASSED [ 99%] test/widgets/test_wttr.py::test_wttr_methods PASSED [ 99%] test/widgets/test_wttr.py::test_wttr_no_location PASSED [100%] ==================================== ERRORS ==================================== _________________ ERROR at setup of test_draw[1-x11-GBConfig] __________________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ________________ ERROR at setup of test_prompt[1-x11-GBConfig] _________________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ____________ ERROR at setup of test_layout_filter[1-x11-CallConfig] ____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ___________ ERROR at setup of test_cmd_commands[1-x11-ServerConfig] ____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ________ ERROR at setup of test_cmd_eval_namespace[1-x11-ServerConfig] _________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ___________ ERROR at setup of test_call_unknown[1-x11-ServerConfig] ____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError _____________ ERROR at setup of test_items_bar[1-x11-ServerConfig] _____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper E return f(*args) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 659, in wait_for_reply E self._process_error(error_p[0]) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 646, in _process_error E self.invalid() E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid E raise ConnectionException(err) E xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 117, in __init__ E "_NET_SUPPORTED", [self.conn.atoms[x] for x in xcbq.SUPPORTED_ATOMS] E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 117, in E "_NET_SUPPORTED", [self.conn.atoms[x] for x in xcbq.SUPPORTED_ATOMS] E File "/startdir/src/qtile/libqtile/backend/x11/xcbq.py", line 288, in __getitem__ E self.insert(name=key) E File "/startdir/src/qtile/libqtile/backend/x11/xcbq.py", line 274, in insert E atom = c.reply().atom E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 333, in reply E data = self.conn.wait_for_reply(self.sequence) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 574, in wrapper E self.invalid() E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid E raise ConnectionException(err) E xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. test/helpers.py:202: AssertionError ________ ERROR at setup of test_clone_dim[1-x11-ManagerConfig-xephyr0] _________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper E return f(*args) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 682, in request_check E self._process_error(err) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 646, in _process_error E self.invalid() E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid E raise ConnectionException(err) E xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/startdir/src/qtile/libqtile/core/manager.py", line 223, in async_loop E self.load_config(initial=True) E File "/startdir/src/qtile/libqtile/core/manager.py", line 116, in load_config E self.core.wmname = getattr(self.config, "wmname", "qtile") # type: ignore E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 202, in wmname E self._supporting_wm_check_window.set_property("_NET_WM_NAME", wmname) E File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 357, in set_property E ).check() E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 340, in check E self.conn.request_check(self.sequence) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 574, in wrapper E self.invalid() E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid E raise ConnectionException(err) E xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. E E During handling of the above exception, another exception occurred: E E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 186, in run_qtile E ).loop() E File "/startdir/src/qtile/libqtile/core/manager.py", line 198, in loop E asyncio.run(self.async_loop()) E File "/usr/lib/python3.10/asyncio/runners.py", line 44, in run E return loop.run_until_complete(main) E File "/usr/lib/python3.10/asyncio/base_events.py", line 649, in run_until_complete E return future.result() E File "/startdir/src/qtile/libqtile/core/manager.py", line 226, in async_loop E self.finalize() E File "/startdir/src/qtile/libqtile/core/manager.py", line 306, in finalize E self.core.finalize() E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 170, in finalize E self.conn.conn.core.DeletePropertyChecked( E File "/usr/lib/python3.10/site-packages/xcffib/xproto.py", line 2716, in DeleteProperty E return self.send_request(19, buf, is_checked=is_checked) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 392, in send_request E seq = self.conn.send_request(flags, xcb_parts + 2, xcb_req) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper E self.invalid() E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid E raise ConnectionException(err) E xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:00,200 libqtile core.py:_xpoll():L332  Shutting down due to X connection error XCB_CONN_ERROR (1) Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ___ ERROR at setup of test_focus_stays_on_layout_switch[1-x11-ManagerConfig] ___ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:48,939 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ________________ ERROR at setup of test_unmap[1-x11-BareConfig] ________________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:53,981 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ______________ ERROR at setup of test_unmap[1-x11-ManagerConfig] _______________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:54,107 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ______________ ERROR at setup of test_setgroup[x11-1-BareConfig] _______________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:56,024 libqtile core.py:__init__():L103  not starting; existing window manager LG3D _____________ ERROR at setup of test_setgroup[x11-1-ManagerConfig] _____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:56,153 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ___________ ERROR at setup of test_unmap_noscreen[x11-1-BareConfig] ____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:56,973 libqtile core.py:__init__():L103  not starting; existing window manager LG3D __________ ERROR at setup of test_unmap_noscreen[x11-1-ManagerConfig] __________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:57,088 libqtile core.py:__init__():L103  not starting; existing window manager LG3D _________ ERROR at setup of test_change_loglevel[1-x11-ManagerConfig] __________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:14:58,530 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ______ ERROR at setup of test_windows_from_commands[1-x11-CommandsConfig] ______ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:03,569 libqtile core.py:__init__():L103  not starting; existing window manager LG3D _____________ ERROR at setup of test_qtile_cmd[1-x11-ServerConfig] _____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:06,424 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ____________ ERROR at setup of test_display_kb[1-x11-ServerConfig] _____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:09,779 libqtile core.py:__init__():L103  not starting; existing window manager LG3D __ ERROR at setup of test_sratchpad_with_matcher[1-x11-ScratchPadBaseConfic] ___ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:10,663 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ______ ERROR at setup of test_toggling_single[1-x11-ScratchPadBaseConfic] ______ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:11,453 libqtile core.py:__init__():L103  not starting; existing window manager LG3D _________ ERROR at setup of test_toggling[1-x11-ScratchPadBaseConfic] __________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:12,565 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ________ ERROR at setup of test_focus_cycle[1-x11-ScratchPadBaseConfic] ________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:13,367 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ___________ ERROR at setup of test_kill[1-x11-ScratchPadBaseConfic] ____________ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 84, in __init__ E self.conn = xcbq.Connection(display_name) E File "/startdir/src/qtile/libqtile/backend/x11/xcbq.py", line 482, in __init__ E self.conn = xcffib.connect(display=display) E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 528, in __init__ E self.invalid() E File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid E raise ConnectionException(err) E xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. test/helpers.py:202: AssertionError ______ ERROR at setup of test_floating_toggle[1-x11-ScratchPadBaseConfic] ______ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:19,368 libqtile core.py:__init__():L103  not starting; existing window manager LG3D _ ERROR at setup of test_stepping_between_groups_should_skip_scratchpads[1-x11-ScratchPadBaseConfic] _ request = > manager_nospawn = @pytest.fixture(scope="function") def manager(request, manager_nospawn): config = getattr(request, "param", BareConfig) > manager_nospawn.start(config) test/conftest.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:20,753 libqtile core.py:__init__():L103  not starting; existing window manager LG3D =================================== FAILURES =================================== ________________________ test_consecutive_spacer[1-x11] ________________________ manager_nospawn = def test_consecutive_spacer(manager_nospawn): config = GeomConf config.screens = [ libqtile.config.Screen( bottom=libqtile.bar.Bar( [ ExampleWidget(), # Left libqtile.widget.Spacer(libqtile.bar.STRETCH), libqtile.widget.Spacer(libqtile.bar.STRETCH), ExampleWidget(), # Centre ExampleWidget(), libqtile.widget.Spacer(libqtile.bar.STRETCH), ExampleWidget(), # Right ], 10, ) ) ] > manager_nospawn.start(config) test/test_bar.py:417: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError _____________________ test_configure_broken_widgets[1-x11] _____________________ manager_nospawn = def test_configure_broken_widgets(manager_nospawn): config = GeomConf widget_list = [ BrokenWidget(ValueError), BrokenWidget(IndexError), BrokenWidget(IndentationError), BrokenWidget(TypeError), BrokenWidget(NameError), BrokenWidget(ImportError), libqtile.widget.Spacer(libqtile.bar.STRETCH), ] config.screens = [libqtile.config.Screen(bottom=libqtile.bar.Bar(widget_list, 10))] > manager_nospawn.start(config) test/test_bar.py:452: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ____________________ test_bar_hide_show_with_margin[1-x11] _____________________ manager_nospawn = def test_bar_hide_show_with_margin(manager_nospawn): """Check : - the height of a horizontal bar with its margins, - the ordinate of a unique window. after 3 successive actions : - creation - hidding the bar - unhidding the bar """ config = GeomConf config.screens = [libqtile.config.Screen(top=libqtile.bar.Bar([], 12, margin=[5, 5, 5, 5]))] > manager_nospawn.start(config) test/test_bar.py:478: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ______________________ test_bar_border_horizontal[1-x11] _______________________ manager_nospawn = def test_bar_border_horizontal(manager_nospawn): config = GeomConf config.screens = [ libqtile.config.Screen( top=libqtile.bar.Bar( [libqtile.widget.Spacer()], 12, margin=5, border_width=5, ), bottom=libqtile.bar.Bar( [libqtile.widget.Spacer()], 12, margin=5, border_width=0, ), ) ] > manager_nospawn.start(config) test/test_bar.py:513: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError _______________________ test_bar_border_vertical[1-x11] ________________________ manager_nospawn = def test_bar_border_vertical(manager_nospawn): config = GeomConf config.screens = [ libqtile.config.Screen( left=libqtile.bar.Bar( [libqtile.widget.Spacer()], 12, margin=5, border_width=5, ), right=libqtile.bar.Bar( [libqtile.widget.Spacer()], 12, margin=5, border_width=0, ), ) ] > manager_nospawn.start(config) test/test_bar.py:572: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ________________________ test_unsupported_widget[1-x11] ________________________ manager_nospawn = def test_unsupported_widget(manager_nospawn): """Widgets on unsupported backends should be removed silently from the bar.""" class UnsupportedWidget(libqtile.widget.TextBox): if manager_nospawn.backend.name == "x11": supported_backends = {"wayland"} elif manager_nospawn.backend.name == "wayland": supported_backends = {"x11"} else: pytest.skip("Unknown backend") class UnsupportedConfig(BareConfig): screens = [libqtile.config.Screen(top=libqtile.bar.Bar([UnsupportedWidget()], 20))] > manager_nospawn.start(UnsupportedConfig) test/test_bar.py:625: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = .UnsupportedConfig'> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError _____________________ test_items_qtile[x11-ServerConfig-2] _____________________ manager = @dualmonitor @server_config def test_items_qtile(manager): v = manager.c.items("group") assert v[0] assert sorted(v[1]) == ["a", "b", "c"] assert manager.c.items("layout") == (True, [0, 1, 2]) v = manager.c.items("widget") assert not v[0] > assert sorted(v[1]) == ["one", "two"] E AssertionError: assert ['one'] == ['one', 'two'] E Right contains one more item: 'two' E Full diff: E - ['one', 'two'] E + ['one'] test/test_command.py:201: AssertionError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ____________________ test_select_qtile[x11-ServerConfig-2] _____________________ manager = @dualmonitor @server_config def test_select_qtile(manager): assert manager.c.layout.info()["group"] == "a" assert len(manager.c.layout.info()["stacks"]) == 1 assert len(manager.c.layout[2].info()["stacks"]) == 3 with pytest.raises(libqtile.command.client.SelectError, match="Item not available in object"): manager.c.layout[99] assert manager.c.group.info()["name"] == "a" assert manager.c.group["c"].info()["name"] == "c" with pytest.raises(libqtile.command.client.SelectError, match="Item not available in object"): manager.c.group["nonexistent"] assert manager.c.widget["one"].info()["name"] == "one" with pytest.raises(CommandError, match="No object widget"): manager.c.widget.info() assert manager.c.bar["bottom"].info()["position"] == "bottom" manager.test_window("one") wid = manager.c.window.info()["id"] assert manager.c.window[wid].info()["id"] == wid assert manager.c.screen.info()["index"] == 0 > assert manager.c.screen[1].info()["index"] == 1 test/test_command.py:236: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = name = 1 def __getitem__(self, name: str | int) -> InteractiveCommandClient: """Get the selected element of the currently selected object From the current command graph object, select the instance with the given name. Parameters ---------- name: str The name, or index if it's of int type, of the item to resolve Return ------ InteractiveCommandClient The current client, navigated to the specified command graph object. """ if isinstance(self._current_node, CommandGraphRoot): raise KeyError("Root node has no available items", name, self._current_node.selectors) if not isinstance(self._current_node, CommandGraphObject): raise SelectError( "Unable to make selection on current node", str(name), self._current_node.selectors, ) if self._current_node.selector is not None: raise SelectError("Selection already made", str(name), self._current_node.selectors) # check the selection is valid in the server-side qtile manager if not self._command.has_item( self._current_node.parent, self._current_node.object_type, name ): > raise SelectError( "Item not available in object", str(name), self._current_node.selectors ) E libqtile.command.base.SelectError: Item not available in object, name: 1, selectors: [('screen', None)] libqtile/command/client.py:279: SelectError _____________________ test_items_group[1-x11-ServerConfig] _____________________ manager = @server_config def test_items_group(manager): group = manager.c.group manager.test_window("test") wid = manager.c.window.info()["id"] > assert group.items("window") == (True, [wid]) E assert (True, [4194305, 8388610]) == (True, [8388610]) E At index 1 diff: [4194305, 8388610] != [8388610] E Full diff: E - (True, [8388610]) E + (True, [4194305, 8388610]) E ? +++++++++ test/test_command.py:248: AssertionError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ____________________ test_select_group[x11-ServerConfig-2] _____________________ manager = @dualmonitor @server_config def test_select_group(manager): group = manager.c.group assert group.layout.info()["group"] == "a" assert len(group.layout.info()["stacks"]) == 1 assert len(group.layout[2].info()["stacks"]) == 3 > with pytest.raises(CommandError): E Failed: DID NOT RAISE test/test_command.py:262: Failed ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ____________________ test_items_screen[1-x11-ServerConfig] _____________________ manager = @server_config def test_items_screen(manager): s = manager.c.screen assert s.items("layout") == (True, [0, 1, 2]) manager.test_window("test") wid = manager.c.window.info()["id"] > assert s.items("window") == (True, [wid]) E assert (True, [4194305, 4194306, 10485762]) == (True, [10485762]) E At index 1 diff: [4194305, 4194306, 10485762] != [10485762] E Full diff: E - (True, [10485762]) E + (True, [4194305, 4194306, 10485762]) test/test_command.py:285: AssertionError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ____________________ test_select_screen[1-x11-ServerConfig] ____________________ manager = @server_config def test_select_screen(manager): screen = manager.c.screen assert screen.layout.info()["group"] == "a" assert len(screen.layout.info()["stacks"]) == 1 assert len(screen.layout[2].info()["stacks"]) == 3 > with pytest.raises(CommandError): E Failed: DID NOT RAISE test/test_command.py:297: Failed _____________________ test_select_bar[x11-ServerConfig-2] ______________________ manager = @dualmonitor @server_config def test_select_bar(manager): > assert manager.c.screen[1].bar["bottom"].screen.info()["index"] == 1 test/test_command.py:321: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = name = 1 def __getitem__(self, name: str | int) -> InteractiveCommandClient: """Get the selected element of the currently selected object From the current command graph object, select the instance with the given name. Parameters ---------- name: str The name, or index if it's of int type, of the item to resolve Return ------ InteractiveCommandClient The current client, navigated to the specified command graph object. """ if isinstance(self._current_node, CommandGraphRoot): raise KeyError("Root node has no available items", name, self._current_node.selectors) if not isinstance(self._current_node, CommandGraphObject): raise SelectError( "Unable to make selection on current node", str(name), self._current_node.selectors, ) if self._current_node.selector is not None: raise SelectError("Selection already made", str(name), self._current_node.selectors) # check the selection is valid in the server-side qtile manager if not self._command.has_item( self._current_node.parent, self._current_node.object_type, name ): > raise SelectError( "Item not available in object", str(name), self._current_node.selectors ) E libqtile.command.base.SelectError: Item not available in object, name: 1, selectors: [('screen', None)] libqtile/command/client.py:279: SelectError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ______________________ test_basic[1-x11-FakeScreenConfig] ______________________ manager = @fakescreen_config def test_basic(manager): manager.test_window("zero") assert manager.c.layout.info()["clients"] == ["zero"] assert manager.c.screen.info() == {"y": 0, "x": 0, "index": 0, "width": 500, "height": 340} manager.c.to_screen(1) manager.test_window("one") > assert manager.c.layout.info()["clients"] == ["one"] E AssertionError: assert ['zero', 'one'] == ['one'] E At index 0 diff: 'zero' != 'one' E Left contains one more item: 'one' E Full diff: E - ['one'] E + ['zero', 'one'] test/test_fakescreen.py:157: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:13:17,250 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: sep_1, importerrorwidget_1, importerrorwidget_2, sep_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:17,263 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_1, windowname_1, clock_1 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:17,266 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_2, windowname_2, clock_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:17,268 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_3, windowname_3, clock_3 To bind commands, rename the widget or use lazy.widget[new_name]. --------------------------- Captured stdout teardown --------------------------- 2023-01-04 13:13:18,807 libqtile core.py:_xpoll():L332  Shutting down due to X connection error XCB_CONN_ERROR (1) Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. 2023-01-04 13:13:18,807 libqtile core.py:get_interesting_pid():L815  Got an exception in getting the window pid Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 813, in get_interesting_pid return win.window.get_net_wm_pid() File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 293, in get_net_wm_pid r = self.get_property("_NET_WM_PID", unpack=int) File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 374, in get_property r = self.conn.conn.core.GetProperty( File "/usr/lib/python3.10/site-packages/xcffib/xproto.py", line 2720, in GetProperty return self.send_request(20, buf, GetPropertyCookie, is_checked=is_checked) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 392, in send_request seq = self.conn.send_request(flags, xcb_parts + 2, xcb_req) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. 2023-01-04 13:13:18,808 libqtile core.py:get_interesting_pid():L815  Got an exception in getting the window pid Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 813, in get_interesting_pid return win.window.get_net_wm_pid() File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 293, in get_net_wm_pid r = self.get_property("_NET_WM_PID", unpack=int) File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 374, in get_property r = self.conn.conn.core.GetProperty( File "/usr/lib/python3.10/site-packages/xcffib/xproto.py", line 2720, in GetProperty return self.send_request(20, buf, GetPropertyCookie, is_checked=is_checked) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 392, in send_request seq = self.conn.send_request(flags, xcb_parts + 2, xcb_req) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. 2023-01-04 13:13:18,808 libqtile core.py:get_interesting_pid():L815  Got an exception in getting the window pid Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 813, in get_interesting_pid return win.window.get_net_wm_pid() File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 293, in get_net_wm_pid r = self.get_property("_NET_WM_PID", unpack=int) File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 374, in get_property r = self.conn.conn.core.GetProperty( File "/usr/lib/python3.10/site-packages/xcffib/xproto.py", line 2720, in GetProperty return self.send_request(20, buf, GetPropertyCookie, is_checked=is_checked) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 392, in send_request seq = self.conn.send_request(flags, xcb_parts + 2, xcb_req) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. 2023-01-04 13:13:18,809 libqtile core.py:get_interesting_pid():L815  Got an exception in getting the window pid Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 813, in get_interesting_pid return win.window.get_net_wm_pid() File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 293, in get_net_wm_pid r = self.get_property("_NET_WM_PID", unpack=int) File "/startdir/src/qtile/libqtile/backend/x11/window.py", line 374, in get_property r = self.conn.conn.core.GetProperty( File "/usr/lib/python3.10/site-packages/xcffib/xproto.py", line 2720, in GetProperty return self.send_request(20, buf, GetPropertyCookie, is_checked=is_checked) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 392, in send_request seq = self.conn.send_request(flags, xcb_parts + 2, xcb_req) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 570, in wrapper self.invalid() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 560, in invalid raise ConnectionException(err) xcffib.ConnectionException: xcb connection errors because of socket, pipe and other stream errors. __________ test_maximize_with_move_to_screen[1-x11-FakeScreenConfig] ___________ manager = @fakescreen_config def test_maximize_with_move_to_screen(manager): """Ensure that maximize respects bars""" manager.test_window("one") manager.c.window.toggle_maximize() assert manager.c.window.info()["width"] == 464 assert manager.c.window.info()["height"] == 316 assert manager.c.window.info()["x"] == 16 assert manager.c.window.info()["y"] == 0 assert manager.c.window.info()["group"] == "a" # go to second screen manager.c.to_screen(1) > assert manager.c.screen.info() == {"y": 0, "x": 500, "index": 1, "width": 300, "height": 380} E AssertionError: assert {'index': 0, 'width': 500, 'height': 340, 'x': 0, 'y': 0} == {'y': 0, 'x': 500, 'index': 1, 'width': 300, 'height': 380} E Common items: E {'y': 0} E Differing items: E {'width': 500} != {'width': 300} E {'index': 0} != {'index': 1} E {'x': 0} != {'x': 500} E {'height': 340} != {'height': 380} E Full diff: E - {'height': 380, 'index': 1, 'width': 300, 'x': 500, 'y': 0} E ? ^ ^ ^ -- E + {'height': 340, 'index': 0, 'width': 500, 'x': 0, 'y': 0} E ? ^ ^ ^ test/test_fakescreen.py:206: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:13:20,326 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: sep_1, importerrorwidget_1, importerrorwidget_2, sep_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:20,388 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_1, windowname_1, clock_1 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:20,391 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_2, windowname_2, clock_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:20,393 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_3, windowname_3, clock_3 To bind commands, rename the widget or use lazy.widget[new_name]. __________ test_float_first_on_second_screen[1-x11-FakeScreenConfig] ___________ manager = @fakescreen_config def test_float_first_on_second_screen(manager): manager.c.to_screen(1) assert manager.c.screen.info() == {"y": 0, "x": 500, "index": 1, "width": 300, "height": 380} manager.test_window("one") # I don't know where y=30, x=12 comes from... assert manager.c.window.info()["float_info"] == { "y": 30, "x": 12, "width": 100, "height": 100, } manager.c.window.toggle_floating() > assert manager.c.window.info()["width"] == 100 E assert 800 == 100 test/test_fakescreen.py:232: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:13:22,532 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: sep_1, importerrorwidget_1, importerrorwidget_2, sep_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:22,639 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_1, windowname_1, clock_1 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:22,650 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_2, windowname_2, clock_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:22,655 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_3, windowname_3, clock_3 To bind commands, rename the widget or use lazy.widget[new_name]. ______________ test_float_change_screens[1-x11-FakeScreenConfig] _______________ manager = @fakescreen_config def test_float_change_screens(manager): # add one tiled and one floating window manager.test_window("tiled") manager.test_window("float") manager.c.window.toggle_floating() > assert set(manager.c.group.info()["windows"]) == set(("tiled", "float")) E AssertionError: assert {'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', 'float', 'tiled'} == {'tiled', 'float'} E Extra items in the left set: E 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)' E Full diff: E - {'tiled', 'float'} E + {'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', 'float', 'tiled'} test/test_fakescreen.py:252: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:13:24,633 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: sep_1, importerrorwidget_1, importerrorwidget_2, sep_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:24,690 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_1, windowname_1, clock_1 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:24,693 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_2, windowname_2, clock_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:24,695 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_3, windowname_3, clock_3 To bind commands, rename the widget or use lazy.widget[new_name]. ___________________ test_hammer_tile[1-x11-FakeScreenConfig] ___________________ manager = @fakescreen_config def test_hammer_tile(manager): # change to tile layout manager.c.next_layout() manager.c.next_layout() for i in range(7): manager.test_window("one") for i in range(30): manager.c.to_screen((i + 1) % 4) manager.c.group["a"].toscreen() > assert manager.c.group["a"].info()["windows"] == [ "one", "one", "one", "one", "one", "one", "one", ] E AssertionError: assert ['Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', 'one', 'one', 'one', 'one', 'one', 'one', 'one'] == ['one', 'one', 'one', 'one', 'one', 'one', 'one'] E At index 0 diff: 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)' != 'one' E Left contains one more item: 'one' E Full diff: E [ E + 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', E 'one', E 'one', E 'one', E 'one', E 'one', E 'one', E 'one', E ] test/test_fakescreen.py:394: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:13:28,883 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: sep_1, importerrorwidget_1, importerrorwidget_2, sep_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:28,937 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_1, windowname_1, clock_1 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:28,939 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_2, windowname_2, clock_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:28,954 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_3, windowname_3, clock_3 To bind commands, rename the widget or use lazy.widget[new_name]. ________________ test_hammer_ratio_tile[1-x11-FakeScreenConfig] ________________ manager = @fakescreen_config def test_hammer_ratio_tile(manager): # change to ratio tile layout manager.c.next_layout() for i in range(7): manager.test_window("one") for i in range(30): manager.c.to_screen((i + 1) % 4) manager.c.group["a"].toscreen() > assert manager.c.group["a"].info()["windows"] == [ "one", "one", "one", "one", "one", "one", "one", ] E AssertionError: assert ['Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', 'one', 'one', 'one', 'one', 'one', 'one', 'one'] == ['one', 'one', 'one', 'one', 'one', 'one', 'one'] E At index 0 diff: 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)' != 'one' E Left contains one more item: 'one' E Full diff: E [ E + 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', E 'one', E 'one', E 'one', E 'one', E 'one', E 'one', E 'one', E ] test/test_fakescreen.py:414: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:13:36,093 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: sep_1, importerrorwidget_1, importerrorwidget_2, sep_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:36,104 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_1, windowname_1, clock_1 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:36,105 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_2, windowname_2, clock_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:36,114 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_3, windowname_3, clock_3 To bind commands, rename the widget or use lazy.widget[new_name]. _____________ test_ratio_to_fourth_screen[1-x11-FakeScreenConfig] ______________ manager = @fakescreen_config def test_ratio_to_fourth_screen(manager): # change to ratio tile layout manager.c.next_layout() for i in range(7): manager.test_window("one") manager.c.to_screen(1) manager.c.group["a"].toscreen() > assert manager.c.group["a"].info()["windows"] == [ "one", "one", "one", "one", "one", "one", "one", ] E AssertionError: assert ['Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', 'one', 'one', 'one', 'one', 'one', 'one', 'one'] == ['one', 'one', 'one', 'one', 'one', 'one', 'one'] E At index 0 diff: 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)' != 'one' E Left contains one more item: 'one' E Full diff: E [ E + 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', E 'one', E 'one', E 'one', E 'one', E 'one', E 'one', E 'one', E ] test/test_fakescreen.py:433: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:13:43,387 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: sep_1, importerrorwidget_1, importerrorwidget_2, sep_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:43,442 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_1, windowname_1, clock_1 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:43,443 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_2, windowname_2, clock_2 To bind commands, rename the widget or use lazy.widget[new_name]. 2023-01-04 13:13:43,445 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: groupbox_3, windowname_3, clock_3 To bind commands, rename the widget or use lazy.widget[new_name]. _____________________ test_window_order[1-x11-GroupConfig] _____________________ manager = @group_config def test_window_order(manager): # windows to add windows_name = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten"] windows = {} # Add windows one by one for win in windows_name: windows[win] = manager.test_window(win) # Windows must be sorted in the same order as they were created > assert windows_name == manager.c.group.info()["windows"] E AssertionError: assert ['one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'] == ['Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'] E At index 0 diff: 'one' != 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)' E Right contains one more item: 'ten' E Full diff: E [ E - 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)', E 'one', E 'two', E 'three', E 'four', E 'five', E 'six', E 'seven', E 'eight', E 'nine', E 'ten', E ] test/test_group.py:60: AssertionError _____________________ test_screen_dim[x11-ManagerConfig-2] _____________________ manager = @dualmonitor @manager_config def test_screen_dim(manager): manager.test_window("one") assert manager.c.screen.info()["index"] == 0 assert manager.c.screen.info()["x"] == 0 assert manager.c.screen.info()["width"] == 800 assert manager.c.group.info()["name"] == "a" assert manager.c.group.info()["focus"] == "one" manager.c.to_screen(1) manager.test_window("one") > assert manager.c.screen.info()["index"] == 1 E assert 0 == 1 test/test_manager.py:117: AssertionError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _____________________ test_to_screen[x11-ManagerConfig-2] ______________________ manager = @dualmonitor @manager_config def test_to_screen(manager): assert manager.c.screen.info()["index"] == 0 manager.c.to_screen(1) > assert manager.c.screen.info()["index"] == 1 E assert 0 == 1 test/test_manager.py:149: AssertionError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ______________________ test_togroup[x11-ManagerConfig-2] _______________________ manager = @dualmonitor @manager_config def test_togroup(manager): manager.test_window("one") with pytest.raises(CommandError): manager.c.window.togroup("nonexistent") assert manager.c.groups()["a"]["focus"] == "one" manager.c.window.togroup("a") assert manager.c.groups()["a"]["focus"] == "one" manager.c.window.togroup("b", switch_group=True) assert manager.c.groups()["b"]["focus"] == "one" > assert manager.c.groups()["a"]["focus"] is None E AssertionError: assert 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)' is None test/test_manager.py:182: AssertionError _____________________ test_kill_other[1-x11-ManagerConfig] _____________________ manager = @manager_config def test_kill_other(manager): manager.c.group.setlayout("tile") one = manager.test_window("one") assert manager.c.window.info()["width"] == 798 window_one_info = manager.c.window.info() assert manager.c.window.info()["height"] == 578 two = manager.test_window("two") assert manager.c.window.info()["name"] == "two" assert manager.c.window.info()["width"] == 398 assert manager.c.window.info()["height"] == 578 > assert len(manager.c.windows()) == 2 E AssertionError: assert 3 == 2 E + where 3 = len([{'float_info': {'height': 600, 'width': 800, 'x': 0, 'y': 0}, 'floating': True, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 400, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}]) E + where [{'float_info': {'height': 600, 'width': 800, 'x': 0, 'y': 0}, 'floating': True, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 400, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}] = () E + where = .windows E + where = .c test/test_manager.py:449: AssertionError _______________________ test_static[1-x11-ManagerConfig] _______________________ manager = @manager_config def test_static(manager): manager.test_window("one") manager.test_window("two") manager.c.window[manager.c.window.info()["id"]].static( screen=0, x=10, y=10, width=10, height=10, ) info = manager.c.window.info() assert info["name"] == "one" manager.c.window.kill() assert_window_died(manager.c, info) > with pytest.raises(CommandError): E Failed: DID NOT RAISE test/test_manager.py:568: Failed __________________ test_last_float_size[1-x11-ManagerConfig] ___________________ manager = @manager_config def test_last_float_size(manager): """ When you re-float something it would be preferable to have it use the previous float size """ manager.test_window("one") assert manager.c.window.info()["name"] == "one" assert manager.c.window.info()["width"] == 798 assert manager.c.window.info()["height"] == 578 # float and it moves manager.c.window.toggle_floating() assert manager.c.window.info()["width"] == 100 assert manager.c.window.info()["height"] == 100 # resize manager.c.window.set_size_floating(50, 90) > assert manager.c.window.info()["width"] == 50 E assert 800 == 50 test/test_manager.py:626: AssertionError ___________________ test_floating_focus[1-x11-ManagerConfig] ___________________ manager = @manager_config def test_floating_focus(manager): # change to 2 col stack manager.c.next_layout() assert len(manager.c.layout.info()["stacks"]) == 2 manager.test_window("two") manager.test_window("one") assert manager.c.window.info()["width"] == 398 assert manager.c.window.info()["height"] == 578 manager.c.window.toggle_floating() manager.c.window.move_floating(10, 20) assert manager.c.window.info()["name"] == "one" > assert manager.c.group.info()["focus"] == "one" E AssertionError: assert 'Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard)' == 'one' E - one E + Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard) test/test_manager.py:832: AssertionError ___________________ test_move_floating[1-x11-ManagerConfig] ____________________ manager = @manager_config def test_move_floating(manager): manager.test_window("one") # manager.test_window("one") assert manager.c.window.info()["width"] == 798 assert manager.c.window.info()["height"] == 578 assert manager.c.window.info()["x"] == 0 assert manager.c.window.info()["y"] == 0 manager.c.window.toggle_floating() assert manager.c.window.info()["floating"] is True manager.c.window.move_floating(10, 20) > assert manager.c.window.info()["width"] == 100 E assert 800 == 100 test/test_manager.py:880: AssertionError ____________________ test_two_screens[x11-ManagerConfig-2] _____________________ manager = @dualmonitor @manager_config def test_two_screens(manager): > assert len(manager.c.screens()) == 2 E AssertionError: assert 1 == 2 E + where 1 = len([{'gaps': {'bottom': (0, 580, 800, 20), 'left': None, 'right': None, 'top': None}, 'group': 'a', 'height': 600, 'index': 0, ...}]) E + where [{'gaps': {'bottom': (0, 580, 800, 20), 'left': None, 'right': None, 'top': None}, 'group': 'a', 'height': 600, 'index': 0, ...}] = () E + where = .screens E + where = .c test/test_manager.py:919: AssertionError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) ________________________ test_cmd_reload_config[1-x11] _________________________ manager_nospawn = def test_cmd_reload_config(manager_nospawn): # The test config uses presence of Qtile.test_data to change config values # Here we just want to check configurables are being updated within the live Qtile > manager_nospawn.start(lambda: BareConfig(file_path=configs_dir / "reloading.py")) test/test_manager.py:1132: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = . at 0x7ff1926f1240> no_spawn = False, state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ----------------------------- Captured stdout call ----------------------------- 2023-01-04 13:15:01,745 libqtile core.py:__init__():L103  not starting; existing window manager LG3D ______________________ test_restart_hook_and_state[1-x11] ______________________ manager_nospawn = request = > backend = backend_name = 'x11' def test_restart_hook_and_state(manager_nospawn, request, backend, backend_name): if backend_name == "wayland": pytest.skip("Skipping test on Wayland.") manager = manager_nospawn # This injection allows us to capture the lifecycle state filepath before # restarting Qtile inject = textwrap.dedent( """ from libqtile.core.lifecycle import lifecycle def no_op(*args, **kwargs): pass self.lifecycle = lifecycle self._do_stop = self._stop self._stop = no_op """ ) # Set up test for restart hook. # Use a counter in manager and increment when hook is fired def inc_restart_call(): manager.restart_calls.value += 1 manager.restart_calls = Value("i", 0) hook.subscribe.restart(inc_restart_call) > manager.start(TwoScreenConfig) test/test_restart.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = config_class = , no_spawn = False state = None def start(self, config_class, no_spawn=False, state=None): rpipe, wpipe = multiprocessing.Pipe() def run_qtile(): try: os.environ.pop("DISPLAY", None) os.environ.pop("WAYLAND_DISPLAY", None) kore = self.backend.create() os.environ.update(self.backend.env) init_log(self.log_level) if hasattr(self, "log_queue"): logger.addHandler(logging.handlers.QueueHandler(self.log_queue)) Qtile( kore, config_class(), socket_path=self.sockfile, no_spawn=no_spawn, state=state, ).loop() except Exception: wpipe.send(traceback.format_exc()) self.proc = multiprocessing.Process(target=run_qtile) self.proc.start() # First, wait for socket to appear if can_connect_qtile(self.sockfile, ok=lambda: not rpipe.poll()): ipc_client = ipc.Client(self.sockfile) ipc_command = command.interface.IPCCommandInterface(ipc_client) self.c = command.client.InteractiveCommandClient(ipc_command) self.backend.configure(self) return if rpipe.poll(0.1): error = rpipe.recv() > raise AssertionError("Error launching qtile, traceback:\n%s" % error) E AssertionError: Error launching qtile, traceback: E Traceback (most recent call last): E File "/startdir/src/qtile/test/helpers.py", line 175, in run_qtile E kore = self.backend.create() E File "/startdir/src/qtile/test/helpers.py", line 108, in create E return self.core(*self.args) E File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 104, in __init__ E raise ExistingWMException(existing_wmname) E libqtile.backend.x11.core.ExistingWMException: LG3D test/helpers.py:202: AssertionError ----------------------------- Captured stdout call ----------------------------- 2023-01-04 13:15:10,540 libqtile core.py:__init__():L103  not starting; existing window manager LG3D _________________________ test_when[1-x11-WhenConfig] __________________________ manager = @when_config def test_when(manager): # Check if the test window is alive and tiled one = manager.test_window("one") assert not manager.c.window.info()["floating"] # This sets the window to floating as there is no when manager.c.simulate_keypress(["control"], "k") assert manager.c.window.info()["floating"] # This keeps the window floating as the class doesn't match manager.c.simulate_keypress(["control"], "h") assert manager.c.window.info()["floating"] # This sets the window tiled as the class does match manager.c.simulate_keypress(["control"], "j") assert not manager.c.window.info()["floating"] # Kill the window to create an empty group manager.kill_window(one) prev_layout_info = manager.c.layout.info() # This does not go to the next layout as empty is not matched manager.c.simulate_keypress(["control"], "n") > assert manager.c.layout.info() == prev_layout_info E AssertionError: assert {'name': 'monadtall', 'group': '1', 'clients': ['one'], 'current': 0, 'main': 'one', 'secondary': []} == {'name': 'monadwide', 'group': '1', 'clients': ['one'], 'current': 0, 'main': 'one', 'secondary': []} E Common items: E {'clients': ['one'], 'current': 0, 'group': '1', 'main': 'one', 'secondary': []} E Differing items: E {'name': 'monadtall'} != {'name': 'monadwide'} E Full diff: E { E 'clients': ['one'], E 'current': 0, E 'group': '1', E 'main': 'one', E - 'name': 'monadwide', E ? ^^^^ E + 'name': 'monadtall', E ? ^^^^ E 'secondary': [], E } test/test_when.py:88: AssertionError ____________________ test_togroup_toggle[1-x11-BareConfig] _____________________ manager = @bare_config def test_togroup_toggle(manager): manager.test_window("one") assert manager.c.group.info()["name"] == "a" # Start on "a" assert manager.c.groups()["a"]["focus"] == "one" assert manager.c.groups()["b"]["focus"] is None manager.c.window.togroup("b", switch_group=True) assert manager.c.group.info()["name"] == "b" # Move the window and switch to "b" > assert manager.c.groups()["a"]["focus"] is None E AssertionError: assert 'one' is None test/test_window.py:115: AssertionError ______________ test_bring_front_click[1-x11-ManagerConfig-False] _______________ manager = bring_front_click = False @pytest.mark.parametrize( "manager, bring_front_click", [ (ManagerConfig, False), (BringFrontClickConfig, True), (BringFrontClickFloatingOnlyConfig, "floating_only"), ], indirect=True, ) def test_bring_front_click(manager, bring_front_click): manager.c.group.setlayout("tile") # this is a tiled window. manager.test_window("one") manager.test_window("two") manager.c.window.set_position_floating(50, 50) manager.c.window.set_size_floating(50, 50) manager.test_window("three") manager.c.window.set_position_floating(150, 50) manager.c.window.set_size_floating(50, 50) wids = [x["id"] for x in manager.c.windows()] names = [x["name"] for x in manager.c.windows()] > assert names == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/test_window.py:178: AssertionError ___________ test_bring_front_click[1-x11-BringFrontClickConfig-True] ___________ manager = bring_front_click = True @pytest.mark.parametrize( "manager, bring_front_click", [ (ManagerConfig, False), (BringFrontClickConfig, True), (BringFrontClickFloatingOnlyConfig, "floating_only"), ], indirect=True, ) def test_bring_front_click(manager, bring_front_click): manager.c.group.setlayout("tile") # this is a tiled window. manager.test_window("one") manager.test_window("two") manager.c.window.set_position_floating(50, 50) manager.c.window.set_size_floating(50, 50) manager.test_window("three") manager.c.window.set_position_floating(150, 50) manager.c.window.set_size_floating(50, 50) wids = [x["id"] for x in manager.c.windows()] names = [x["name"] for x in manager.c.windows()] > assert names == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/test_window.py:178: AssertionError _ test_bring_front_click[1-x11-BringFrontClickFloatingOnlyConfig-floating_only] _ manager = bring_front_click = 'floating_only' @pytest.mark.parametrize( "manager, bring_front_click", [ (ManagerConfig, False), (BringFrontClickConfig, True), (BringFrontClickFloatingOnlyConfig, "floating_only"), ], indirect=True, ) def test_bring_front_click(manager, bring_front_click): manager.c.group.setlayout("tile") # this is a tiled window. manager.test_window("one") manager.test_window("two") manager.c.window.set_position_floating(50, 50) manager.c.window.set_size_floating(50, 50) manager.test_window("three") manager.c.window.set_position_floating(150, 50) manager.c.window.set_size_floating(50, 50) wids = [x["id"] for x in manager.c.windows()] names = [x["name"] for x in manager.c.windows()] > assert names == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/test_window.py:178: AssertionError _____________________ test_strut_handling[ManagerConfig-2] _____________________ xmanager = conn = @dualmonitor @manager_config def test_strut_handling(xmanager, conn): w = [] def has_struts(): nonlocal w w.append(conn.create_window(0, 0, 10, 10)) w[-1].set_property("_NET_WM_STRUT_PARTIAL", [0, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0, 800]) w[-1].map() conn.conn.flush() def with_gaps_left(): nonlocal w w.append(conn.create_window(800, 0, 10, 10)) w[-1].set_property("_NET_WM_STRUT_PARTIAL", [820, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 0]) w[-1].map() conn.conn.flush() def with_gaps_bottom(): nonlocal w w.append(conn.create_window(800, 0, 10, 10)) w[-1].set_property("_NET_WM_STRUT_PARTIAL", [0, 0, 0, 130, 0, 0, 0, 0, 0, 0, 800, 1440]) w[-1].map() conn.conn.flush() def test_initial_state(): while xmanager.c.screen.info()["index"] != 0: xmanager.c.next_screen() assert xmanager.c.window.info()["width"] == 798 assert xmanager.c.window.info()["height"] == 578 assert xmanager.c.window.info()["x"] == 0 assert xmanager.c.window.info()["y"] == 0 bar_id = xmanager.c.bar["bottom"].info()["window"] bar = xmanager.c.window[bar_id].info() assert bar["height"] == 20 assert bar["y"] == 580 xmanager.c.next_screen() assert xmanager.c.window.info()["width"] == 638 assert xmanager.c.window.info()["height"] == 478 assert xmanager.c.window.info()["x"] == 800 assert xmanager.c.window.info()["y"] == 0 xmanager.test_window("one") xmanager.c.next_screen() xmanager.test_window("two") > test_initial_state() test/backend/x11/test_window.py:396: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ def test_initial_state(): while xmanager.c.screen.info()["index"] != 0: xmanager.c.next_screen() assert xmanager.c.window.info()["width"] == 798 assert xmanager.c.window.info()["height"] == 578 assert xmanager.c.window.info()["x"] == 0 assert xmanager.c.window.info()["y"] == 0 bar_id = xmanager.c.bar["bottom"].info()["window"] bar = xmanager.c.window[bar_id].info() assert bar["height"] == 20 assert bar["y"] == 580 xmanager.c.next_screen() > assert xmanager.c.window.info()["width"] == 638 E assert 798 == 638 test/backend/x11/test_window.py:388: AssertionError ---------------------------- Captured stderr setup ----------------------------- _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _XSERVTransSocketUNIXCreateListener: ...SocketCreateListener() failed _XSERVTransMakeAllCOTSServerListeners: server already running (EE) Fatal server error: (EE) Cannot establish any listening sockets - Make sure an X server isn't already running(EE) _____________________ test_cursor_warp[CursorWarpConfig-2] _____________________ xmanager = conn = @dualmonitor @pytest.mark.parametrize( "xmanager", [CursorWarpConfig], indirect=True, ) def test_cursor_warp(xmanager, conn): root = conn.default_screen.root.wid assert xmanager.c.screen.info()["index"] == 0 xmanager.test_window("one") xmanager.c.window.set_position_floating(50, 50) xmanager.c.window.set_size_floating(50, 50) xmanager.c.to_screen(1) > assert xmanager.c.screen.info()["index"] == 1 E assert 0 == 1 test/backend/x11/test_window.py:467: AssertionError __________________________ test_click_focus_screen[2] __________________________ xmanager = @dualmonitor def test_click_focus_screen(xmanager): screen1 = (WIDTH // 2, HEIGHT // 2) screen2 = (WIDTH + SECOND_WIDTH // 2, SECOND_HEIGHT // 2) xmanager.c.eval(f"self.core.warp_pointer{screen1}") assert xmanager.c.screen.info()["index"] == 0 # Warping alone shouldn't change the current screen xmanager.c.eval(f"self.core.warp_pointer{screen2}") assert xmanager.c.screen.info()["index"] == 0 # Clicking should xmanager.backend.fake_click(*screen2) > assert xmanager.c.screen.info()["index"] == 1 E assert 0 == 1 test/backend/x11/test_window.py:499: AssertionError ____________________ test_net_client_list[1-ManagerConfig] _____________________ xmanager = conn = @pytest.mark.parametrize("xmanager", [ManagerConfig], indirect=True) def test_net_client_list(xmanager, conn): def assert_clients(number): clients = conn.default_screen.root.get_property("_NET_CLIENT_LIST", unpack=int) assert len(clients) == number # ManagerConfig has a Bar, which should not appear in _NET_CLIENT_LIST > assert_clients(0) test/backend/x11/test_xcore.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ number = 0 def assert_clients(number): clients = conn.default_screen.root.get_property("_NET_CLIENT_LIST", unpack=int) > assert len(clients) == number E assert 1 == 0 E + where 1 = len((8388610,)) test/backend/x11/test_xcore.py:31: AssertionError ___________________________ test_window_list[1-x11] ____________________________ extension_manager = def test_window_list(extension_manager): """Test WindowList extension switches group.""" # Launch a window and verify it's on the current group extension_manager.test_window("one") > assert len(extension_manager.c.group.info()["windows"]) == 1 E AssertionError: assert 2 == 1 E + where 2 = len(['one', 'one']) test/extension/test_window_list.py:69: AssertionError --------------------------- Captured stdout teardown --------------------------- 2023-01-04 13:15:57,098 libqtile manager.py:_finalize_configurables():L301  exception during finalize Traceback (most recent call last): File "/startdir/src/qtile/libqtile/core/manager.py", line 299, in _finalize_configurables gap.finalize() File "/startdir/src/qtile/libqtile/bar.py", line 379, in finalize self.future.cancel() AttributeError: 'NoneType' object has no attribute 'cancel' ________ test_base_client_position_bottom[1-x11-BaseLayoutConfigBottom] ________ manager = @baselayoutconfigbottom def test_base_client_position_bottom(manager): manager.test_window("one") manager.test_window("two") > assert manager.c.layout.info()["clients"] == ["one", "two"] E AssertionError: assert ['one', 'one', 'two'] == ['one', 'two'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'two' E Full diff: E - ['one', 'two'] E + ['one', 'one', 'two'] E ? +++++++ test/layouts/test_base.py:83: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:57,467 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ----------------------------- Captured stdout call ----------------------------- 2023-01-04 13:15:57,692 libqtile core.py:_xpoll():L340  Got an exception in poll loop Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper return f(*args) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 613, in poll_for_event return self.hoist_event(e) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 687, in hoist_event return self._process_error(ffi.cast("xcb_generic_error_t *", e)) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 650, in _process_error raise error(buf) xcffib.xproto.MatchError 2023-01-04 13:15:57,693 libqtile core.py:_xpoll():L340  Got an exception in poll loop Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper return f(*args) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 613, in poll_for_event return self.hoist_event(e) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 687, in hoist_event return self._process_error(ffi.cast("xcb_generic_error_t *", e)) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 650, in _process_error raise error(buf) xcffib.xproto.MatchError 2023-01-04 13:15:57,823 libqtile core.py:_xpoll():L340  Got an exception in poll loop Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper return f(*args) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 613, in poll_for_event return self.hoist_event(e) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 687, in hoist_event return self._process_error(ffi.cast("xcb_generic_error_t *", e)) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 650, in _process_error raise error(buf) xcffib.xproto.MatchError 2023-01-04 13:15:57,823 libqtile core.py:_xpoll():L340  Got an exception in poll loop Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper return f(*args) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 613, in poll_for_event return self.hoist_event(e) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 687, in hoist_event return self._process_error(ffi.cast("xcb_generic_error_t *", e)) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 650, in _process_error raise error(buf) xcffib.xproto.MatchError ___________ test_base_client_position_top[1-x11-BaseLayoutConfigTop] ___________ manager = @baselayoutconfigtop def test_base_client_position_top(manager): manager.test_window("one") manager.test_window("two") > assert manager.c.layout.info()["clients"] == ["two", "one"] E AssertionError: assert ['two', 'one', 'one'] == ['two', 'one'] E Left contains one more item: 'one' E Full diff: E - ['two', 'one'] E + ['two', 'one', 'one'] E ? +++++++ test/layouts/test_base.py:90: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:15:59,587 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ----------------------------- Captured stdout call ----------------------------- 2023-01-04 13:15:59,892 libqtile core.py:_xpoll():L340  Got an exception in poll loop Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper return f(*args) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 613, in poll_for_event return self.hoist_event(e) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 687, in hoist_event return self._process_error(ffi.cast("xcb_generic_error_t *", e)) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 650, in _process_error raise error(buf) xcffib.xproto.MatchError 2023-01-04 13:15:59,894 libqtile core.py:_xpoll():L340  Got an exception in poll loop Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper return f(*args) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 613, in poll_for_event return self.hoist_event(e) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 687, in hoist_event return self._process_error(ffi.cast("xcb_generic_error_t *", e)) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 650, in _process_error raise error(buf) xcffib.xproto.MatchError 2023-01-04 13:16:00,028 libqtile core.py:_xpoll():L340  Got an exception in poll loop Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper return f(*args) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 613, in poll_for_event return self.hoist_event(e) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 687, in hoist_event return self._process_error(ffi.cast("xcb_generic_error_t *", e)) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 650, in _process_error raise error(buf) xcffib.xproto.MatchError 2023-01-04 13:16:00,028 libqtile core.py:_xpoll():L340  Got an exception in poll loop Traceback (most recent call last): File "/startdir/src/qtile/libqtile/backend/x11/core.py", line 294, in _xpoll event = self.conn.conn.poll_for_event() File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 572, in wrapper return f(*args) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 613, in poll_for_event return self.hoist_event(e) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 687, in hoist_event return self._process_error(ffi.cast("xcb_generic_error_t *", e)) File "/usr/lib/python3.10/site-packages/xcffib/__init__.py", line 650, in _process_error raise error(buf) xcffib.xproto.MatchError _________________ test_bsp_window_focus_cycle[1-x11-BspConfig] _________________ manager = @bsp_config def test_bsp_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions, columns adds clients at pos of current, in two stacks > assert manager.c.layout.info()["clients"] == ["one", "three", "two"] E AssertionError: assert ['one', 'two', 'one', 'three'] == ['one', 'three', 'two'] E At index 1 diff: 'two' != 'three' E Left contains one more item: 'three' E Full diff: E - ['one', 'three', 'two'] E + ['one', 'two', 'one', 'three'] test/layouts/test_bsp.py:61: AssertionError __________________ test_bsp_margin_on_single[1-x11-BspConfig] __________________ manager = @bsp_config def test_bsp_margin_on_single(manager): manager.test_window("one") info = manager.c.window.info() assert info["x"] == 0 > assert info["y"] == 0 E assert 300 == 0 test/layouts/test_bsp.py:75: AssertionError ____________________ test_bsp_wrap_clients[1-x11-BspConfig] ____________________ manager = @bsp_config def test_bsp_wrap_clients(manager): manager.test_window("one") manager.test_window("two") # Default has no wrapping assert_focused(manager, "two") manager.c.layout.next() > assert_focused(manager, "two") test/layouts/test_bsp.py:96: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , name = 'two' def assert_focused(self, name): """Asserts that window with specified name is currently focused""" info = self.c.window.info() > assert info["name"] == name, "Got {0!r}, expected {1!r}".format(info["name"], name) E AssertionError: Got 'one', expected 'two' test/layouts/layout_utils.py:32: AssertionError _____________ test_columns_window_focus_cycle[1-x11-ColumnsConfig] _____________ manager = @columns_config def test_columns_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("four") # test preconditions, columns adds clients at pos after current, in two stacks columns = manager.c.layout.info()["columns"] assert columns[0]["clients"] == ["one"] > assert columns[1]["clients"] == ["two"] E AssertionError: assert ['one'] == ['two'] E At index 0 diff: 'one' != 'two' E Full diff: E - ['two'] E + ['one'] test/layouts/test_columns.py:69: AssertionError ______________ test_columns_swap_column_left[1-x11-ColumnsConfig] ______________ manager = @columns_config def test_columns_swap_column_left(manager): manager.test_window("1") manager.test_window("2") manager.test_window("3") manager.test_window("4") # test preconditions columns = manager.c.layout.info()["columns"] > assert columns[0]["clients"] == ["1"] E AssertionError: assert ['one'] == ['1'] E At index 0 diff: 'one' != '1' E Full diff: E - ['1'] E + ['one'] test/layouts/test_columns.py:87: AssertionError _____________ test_columns_swap_column_right[1-x11-ColumnsConfig] ______________ manager = @columns_config def test_columns_swap_column_right(manager): manager.test_window("1") manager.test_window("2") manager.test_window("3") manager.test_window("4") # test preconditions > assert manager.c.layout.info()["columns"][0]["clients"] == ["1"] E AssertionError: assert ['one'] == ['1'] E At index 0 diff: 'one' != '1' E Full diff: E - ['1'] E + ['one'] test/layouts/test_columns.py:120: AssertionError _______________ test_columns_margins_single[1-x11-ColumnsConfig] _______________ manager = @columns_config def test_columns_margins_single(manager): manager.test_window("1") # no margin info = manager.c.window.info() > assert info["x"] == 0 E assert 400 == 0 test/layouts/test_columns.py:151: AssertionError _________________________ test_focus_cycle[1-x11-Bsp] __________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three'), unordered_names = ['three'] ordered_names = ['float1', 'float2', 'one', 'two'], wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError _______________________ test_focus_cycle[1-x11-Columns] ________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three'), unordered_names = ['three'] ordered_names = ['two', 'one', 'float1', 'float2'], wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError _______________________ test_focus_cycle[1-x11-Floating] _______________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['two', 'three'], ordered_names = ['float1', 'float2', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ________________________ test_focus_cycle[1-x11-Matrix] ________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['two', 'three'], ordered_names = ['float1', 'float2', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError _________________________ test_focus_cycle[1-x11-Max] __________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['two', 'three'], ordered_names = ['float1', 'float2', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ______________________ test_focus_cycle[1-x11-MonadTall] _______________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['two', 'three'], ordered_names = ['float1', 'float2', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ____________________ test_focus_cycle[1-x11-MonadThreeCol] _____________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['float1', 'float2', 'three'], ordered_names = ['two', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ______________________ test_focus_cycle[1-x11-MonadWide] _______________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['two', 'three'], ordered_names = ['float1', 'float2', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ______________________ test_focus_cycle[1-x11-RatioTile] _______________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['float1', 'float2', 'three'], ordered_names = ['two', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ________________________ test_focus_cycle[1-x11-Spiral] ________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['float1', 'float2', 'three'], ordered_names = ['two', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ________________________ test_focus_cycle[1-x11-Stack] _________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['float1', 'float2', 'three'], ordered_names = ['one', 'two'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError _________________________ test_focus_cycle[1-x11-Tile] _________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['float1', 'float2', 'three'], ordered_names = ['two', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError _______________________ test_focus_cycle[1-x11-TreeTab] ________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['two', 'three'], ordered_names = ['float1', 'float2', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError _____________________ test_focus_cycle[1-x11-VerticalTile] _____________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['two', 'three'], ordered_names = ['float1', 'float2', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ________________________ test_focus_cycle[1-x11-Zoomy] _________________________ manager = @each_layout_config def test_focus_cycle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # Test preconditions (the order of items in 'clients' is managed by each layout) assert set(manager.c.layout.info()["clients"]) == {"one", "two", "three"} assert_focused(manager, "three") # Assert that the layout cycles the focus on all windows > assert_focus_path_unordered(manager, "float1", "float2", "one", "two", "three") test/layouts/test_common.py:208: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = names = ('float1', 'float2', 'one', 'two', 'three') unordered_names = ['float1', 'float2', 'three'], ordered_names = ['two', 'one'] wname = 'one' def assert_focus_path_unordered(self, *names): """ Wrapper of assert_focus_path that allows the actual focus path to be different from the given one, as long as: 1) the focus order is always the same at every forward cycle 2) the focus order is always the opposite at every reverse cycle 3) all the windows are selected once and only once at every cycle """ unordered_names = list(names) ordered_names = [] while unordered_names: self.c.group.next_window() wname = self.c.window.info()["name"] > assert wname in unordered_names E AssertionError test/layouts/layout_utils.py:92: AssertionError ______________________ test_focus_change_event[1-x11-Bsp] ______________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ____________________ test_focus_change_event[1-x11-Columns] ____________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ___________________ test_focus_change_event[1-x11-Floating] ____________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ____________________ test_focus_change_event[1-x11-Matrix] _____________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ______________________ test_focus_change_event[1-x11-Max] ______________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ___________________ test_focus_change_event[1-x11-MonadTall] ___________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError _________________ test_focus_change_event[1-x11-MonadThreeCol] _________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ___________________ test_focus_change_event[1-x11-MonadWide] ___________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ___________________ test_focus_change_event[1-x11-RatioTile] ___________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ____________________ test_focus_change_event[1-x11-Spiral] _____________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError _____________________ test_focus_change_event[1-x11-Stack] _____________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError _____________________ test_focus_change_event[1-x11-Tile] ______________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ____________________ test_focus_change_event[1-x11-TreeTab] ____________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError _________________ test_focus_change_event[1-x11-VerticalTile] __________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError _____________________ test_focus_change_event[1-x11-Zoomy] _____________________ manager = @each_layout_config_events def test_focus_change_event(manager): # Test that the correct number of focus_change events are fired e.g. when # opening, closing or switching windows. # If for example a layout explicitly fired a focus_change event even though # group._Group.focus() or group._Group.remove() already fire one, the other # installed layouts would wrongly react to it and cause misbehaviour. # In short, this test prevents layouts from influencing each other in # unexpected ways. # Ensure we are in fact using the right layout assert manager.c.get_test_data()["config_name"].lower() == manager.c.layout.info()["name"] # Spawning a window must fire only 1 focus_change event > assert manager.c.get_test_data()["focus_change"] == 0 E assert 1 == 0 test/layouts/test_common.py:261: AssertionError ____________________________ test_remove[1-x11-Bsp] ____________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError __________________________ test_remove[1-x11-Columns] __________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError _________________________ test_remove[1-x11-Floating] __________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError __________________________ test_remove[1-x11-Matrix] ___________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError ____________________________ test_remove[1-x11-Max] ____________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError _________________________ test_remove[1-x11-MonadTall] _________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError _______________________ test_remove[1-x11-MonadThreeCol] _______________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError _________________________ test_remove[1-x11-MonadWide] _________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError _________________________ test_remove[1-x11-RatioTile] _________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError __________________________ test_remove[1-x11-Spiral] ___________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError ___________________________ test_remove[1-x11-Stack] ___________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError ___________________________ test_remove[1-x11-Tile] ____________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError __________________________ test_remove[1-x11-TreeTab] __________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError _______________________ test_remove[1-x11-VerticalTile] ________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError ___________________________ test_remove[1-x11-Zoomy] ___________________________ manager = @each_layout_config def test_remove(manager): one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert_focused(manager, "three") > assert manager.c.group.info()["focus_history"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_common.py:316: AssertionError _______________________ test_remove_floating[1-x11-Bsp] ________________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError _____________________ test_remove_floating[1-x11-Columns] ______________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError _____________________ test_remove_floating[1-x11-Floating] _____________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ______________________ test_remove_floating[1-x11-Matrix] ______________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError _______________________ test_remove_floating[1-x11-Max] ________________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ____________________ test_remove_floating[1-x11-MonadTall] _____________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError __________________ test_remove_floating[1-x11-MonadThreeCol] ___________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ____________________ test_remove_floating[1-x11-MonadWide] _____________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ____________________ test_remove_floating[1-x11-RatioTile] _____________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ______________________ test_remove_floating[1-x11-Spiral] ______________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ______________________ test_remove_floating[1-x11-Stack] _______________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError _______________________ test_remove_floating[1-x11-Tile] _______________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError _____________________ test_remove_floating[1-x11-TreeTab] ______________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ___________________ test_remove_floating[1-x11-VerticalTile] ___________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ______________________ test_remove_floating[1-x11-Zoomy] _______________________ manager = @each_layout_config def test_remove_floating(manager): one = manager.test_window("one") manager.test_window("two") float1 = manager.test_window("float1", floating=True) assert_focused(manager, "float1") assert set(manager.c.layout.info()["clients"]) == {"one", "two"} > assert manager.c.group.info()["focus_history"] == ["one", "two", "float1"] E AssertionError: assert ['one', 'one', 'two', 'float1'] == ['one', 'two', 'float1'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'float1' E Full diff: E - ['one', 'two', 'float1'] E + ['one', 'one', 'two', 'float1'] E ? +++++++ test/layouts/test_common.py:359: AssertionError ____________________ test_desktop_notifications[1-x11-Bsp] _____________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError __________________ test_desktop_notifications[1-x11-Columns] ___________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError __________________ test_desktop_notifications[1-x11-Floating] __________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError ___________________ test_desktop_notifications[1-x11-Matrix] ___________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError ____________________ test_desktop_notifications[1-x11-Max] _____________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError _________________ test_desktop_notifications[1-x11-MonadTall] __________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError _______________ test_desktop_notifications[1-x11-MonadThreeCol] ________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError _________________ test_desktop_notifications[1-x11-MonadWide] __________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError _________________ test_desktop_notifications[1-x11-RatioTile] __________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError ___________________ test_desktop_notifications[1-x11-Spiral] ___________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError ___________________ test_desktop_notifications[1-x11-Stack] ____________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError ____________________ test_desktop_notifications[1-x11-Tile] ____________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError __________________ test_desktop_notifications[1-x11-TreeTab] ___________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError ________________ test_desktop_notifications[1-x11-VerticalTile] ________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError ___________________ test_desktop_notifications[1-x11-Zoomy] ____________________ manager = @each_layout_config def test_desktop_notifications(manager): # Unlike normal floating windows such as dialogs, notifications don't steal # focus when they spawn, so test them separately if manager.backend.name == "wayland" and not has_wayland_notifications: pytest.skip("Notification tests for Wayland need gtk-layer-shell") # A notification fired in an empty group must not take focus notif1 = manager.test_notification("notif1") > assert manager.c.group.info()["focus"] is None E AssertionError: assert 'one' is None test/layouts/test_common.py:448: AssertionError ______________ test_float_next_prev_window[1-x11-FloatingConfig] _______________ manager = @floating_config def test_float_next_prev_window(manager): # spawn three windows manager.test_window("one") manager.test_window("two") manager.test_window("three") # focus previous windows assert_focused(manager, "three") manager.c.group.prev_window() assert_focused(manager, "two") manager.c.group.prev_window() assert_focused(manager, "one") # checking that it loops around properly manager.c.group.prev_window() > assert_focused(manager, "three") test/layouts/test_floating.py:63: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , name = 'three' def assert_focused(self, name): """Asserts that window with specified name is currently focused""" info = self.c.window.info() > assert info["name"] == name, "Got {0!r}, expected {1!r}".format(info["name"], name) E AssertionError: Got 'one', expected 'three' test/layouts/layout_utils.py:32: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:22:32,611 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________________ test_matrix_simple[1-x11-MatrixConfig] ____________________ manager = @matrix_config def test_matrix_simple(manager): manager.test_window("one") > assert manager.c.layout.info()["rows"] == [["one"]] E AssertionError: assert [['one', 'one']] == [['one']] E At index 0 diff: ['one', 'one'] != ['one'] E Full diff: E - [['one']] E + [['one', 'one']] test/layouts/test_matrix.py:57: AssertionError ______________ test_matrix_add_remove_columns[1-x11-MatrixConfig] ______________ manager = @matrix_config def test_matrix_add_remove_columns(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.test_window("four") manager.test_window("five") manager.c.layout.add() > assert manager.c.layout.info()["rows"] == [["one", "two", "three"], ["four", "five"]] E AssertionError: assert [['one', 'one', 'two'], ['three', 'four', 'five']] == [['one', 'two', 'three'], ['four', 'five']] E At index 0 diff: ['one', 'one', 'two'] != ['one', 'two', 'three'] E Full diff: E - [['one', 'two', 'three'], ['four', 'five']] E ? - - E + [['one', 'one', 'two'], ['three', 'four', 'five']] E ? +++++++ + + test/layouts/test_matrix.py:99: AssertionError ______________ test_matrix_window_focus_cycle[1-x11-MatrixConfig] ______________ manager = @matrix_config def test_matrix_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions > assert manager.c.layout.info()["clients"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_matrix.py:116: AssertionError _______________________ test_max_simple[1-x11-MaxConfig] _______________________ manager = @max_config def test_max_simple(manager): manager.test_window("one") > assert manager.c.layout.info()["clients"] == ["one"] E AssertionError: assert ['one', 'one'] == ['one'] E Left contains one more item: 'one' E Full diff: E - ['one'] E + ['one', 'one'] test/layouts/test_max.py:62: AssertionError _______________________ test_max_updown[1-x11-MaxConfig] _______________________ manager = @max_config def test_max_updown(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") > assert manager.c.layout.info()["clients"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_max.py:72: AssertionError _______________________ test_max_remove[1-x11-MaxConfig] _______________________ manager = @max_config def test_max_remove(manager): manager.test_window("one") two = manager.test_window("two") > assert manager.c.layout.info()["clients"] == ["one", "two"] E AssertionError: assert ['one', 'one', 'two'] == ['one', 'two'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'two' E Full diff: E - ['one', 'two'] E + ['one', 'one', 'two'] E ? +++++++ test/layouts/test_max.py:83: AssertionError _________________ test_max_window_focus_cycle[1-x11-MaxConfig] _________________ manager = @max_config def test_max_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions > assert manager.c.layout.info()["clients"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_max.py:100: AssertionError ______________ test_ratiotile_add_windows[1-x11-RatioTileConfig] _______________ manager = @ratiotile_config def test_ratiotile_add_windows(manager): for i in range(12): manager.test_window(str(i)) if i == 0: > assert manager.c.layout.info()["layout_info"] == [(0, 0, 800, 600)] E assert [(0, 0, 400, 600), (400, 0, 400, 600)] == [(0, 0, 800, 600)] E At index 0 diff: (0, 0, 400, 600) != (0, 0, 800, 600) E Left contains one more item: (400, 0, 400, 600) E Full diff: E - [(0, 0, 800, 600)] E + [(0, 0, 400, 600), (400, 0, 400, 600)] test/layouts/test_ratiotile.py:62: AssertionError ________ test_ratiotile_add_windows_golden_ratio[1-x11-RatioTileConfig] ________ manager = @ratiotile_config def test_ratiotile_add_windows_golden_ratio(manager): manager.c.next_layout() for i in range(12): manager.test_window(str(i)) if i == 0: > assert manager.c.layout.info()["layout_info"] == [(0, 0, 800, 600)] E assert [(0, 0, 400, 600), (400, 0, 400, 600)] == [(0, 0, 800, 600)] E At index 0 diff: (0, 0, 400, 600) != (0, 0, 800, 600) E Left contains one more item: (400, 0, 400, 600) E Full diff: E - [(0, 0, 800, 600)] E + [(0, 0, 400, 600), (400, 0, 400, 600)] test/layouts/test_ratiotile.py:183: AssertionError _________________ test_ratiotile_basic[1-x11-RatioTileConfig] __________________ manager = @ratiotile_config def test_ratiotile_basic(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") sleep(0.1) > assert manager.c.window.info()["width"] == 264 E assert 198 == 264 test/layouts/test_ratiotile.py:253: AssertionError ___________ test_ratiotile_window_focus_cycle[1-x11-RatioTileConfig] ___________ manager = @ratiotile_config def test_ratiotile_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions, RatioTile adds clients to head > assert manager.c.layout.info()["clients"] == ["three", "two", "one"] E AssertionError: assert ['three', 'two', 'one', 'one'] == ['three', 'two', 'one'] E Left contains one more item: 'one' E Full diff: E - ['three', 'two', 'one'] E + ['three', 'two', 'one', 'one'] E ? +++++++ test/layouts/test_ratiotile.py:286: AssertionError ________ test_ratiotile_alternative_calculation[1-x11-RatioTileConfig] _________ manager = @ratiotile_config def test_ratiotile_alternative_calculation(manager): manager.c.next_layout() manager.c.next_layout() for i in range(12): manager.test_window(str(i)) print(manager.c.layout.info()["layout_info"]) if i == 0: > assert manager.c.layout.info()["layout_info"] == [(0, 0, 800, 600)] E assert [(0, 0, 400, 600), (400, 0, 400, 600)] == [(0, 0, 800, 600)] E At index 0 diff: (0, 0, 400, 600) != (0, 0, 800, 600) E Left contains one more item: (400, 0, 400, 600) E Full diff: E - [(0, 0, 800, 600)] E + [(0, 0, 400, 600), (400, 0, 400, 600)] test/layouts/test_ratiotile.py:303: AssertionError ----------------------------- Captured stdout call ----------------------------- [(0, 0, 400, 600), (400, 0, 400, 600)] ____________________ test_shuffling[1-x11-RatioTileConfig] _____________________ manager = @ratiotile_config def test_shuffling(manager): def clients(): return manager.c.layout.info()["clients"] for i in range(3): manager.test_window(str(i)) > assert clients() == ["2", "1", "0"] E AssertionError: assert ['2', '1', '0', 'one'] == ['2', '1', '0'] E Left contains one more item: 'one' E Full diff: E - ['2', '1', '0'] E + ['2', '1', '0', 'one'] E ? +++++++ test/layouts/test_ratiotile.py:373: AssertionError _____________________ test_resizing[1-x11-RatioTileConfig] _____________________ manager = @ratiotile_config def test_resizing(manager): def sizes(): return manager.c.layout.info()["layout_info"] for i in range(5): manager.test_window(str(i)) > assert sizes() == [ (0, 0, 160, 600), (160, 0, 160, 600), (320, 0, 160, 600), (480, 0, 160, 600), (640, 0, 160, 600), ] E assert [(0, 0, 133, 600), (133, 0, 133, 600), (266, 0, 133, 600), (399, 0, 133, 600), (532, 0, 133, 600), (665, 0, 135, 600)] == [(0, 0, 160, 600), (160, 0, 160, 600), (320, 0, 160, 600), (480, 0, 160, 600), (640, 0, 160, 600)] E At index 0 diff: (0, 0, 133, 600) != (0, 0, 160, 600) E Left contains one more item: (665, 0, 135, 600) E Full diff: E [ E (0, E 0, E - 160, E + 133, E 600), E - (160, E + (133, E 0, E - 160, E + 133, E 600), E - (320, E + (266, E 0, E - 160, E + 133, E 600), E - (480, E + (399, E 0, E - 160, E + 133, E 600), E - (640, E + (532, E 0, E + 133, E + 600), E + (665, E - 160, E ? -- E + 0, E + 135, E 600), E ] test/layouts/test_ratiotile.py:392: AssertionError _____________________ test_slice_focus[1-x11-SliceConfig] ______________________ manager = @slice_config def test_slice_focus(manager): manager.test_window("one") assert_focused(manager, "one") two = manager.test_window("two") assert_focused(manager, "two") slice = manager.test_window("slice") assert_focused(manager, "slice") assert_focus_path(manager, "slice") manager.test_window("three") > assert_focus_path(manager, "two", "one", "slice", "three") test/layouts/test_slice.py:113: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/layouts/layout_utils.py:64: in assert_focus_path assert_focused(self, i) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , name = 'slice' def assert_focused(self, name): """Asserts that window with specified name is currently focused""" info = self.c.window.info() > assert info["name"] == name, "Got {0!r}, expected {1!r}".format(info["name"], name) E AssertionError: Got 'one', expected 'slice' test/layouts/layout_utils.py:32: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:24:19,678 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _____________________ test_spiral_left[1-x11-SpiralConfig] _____________________ manager = @spiral_config def test_spiral_left(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:68: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 398, 'height': 598, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:24:35,081 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _____________________ test_spiral_top[1-x11-SpiralConfig] ______________________ manager = @spiral_config def test_spiral_top(manager): manager.c.next_layout() manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:84: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 798, 'height': 298, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:24:39,581 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________________ test_spiral_right[1-x11-SpiralConfig] _____________________ manager = @spiral_config def test_spiral_right(manager): manager.c.next_layout() manager.c.next_layout() manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:101: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info assert info["y"] == y, info > assert info["width"] == w, info E AssertionError: {'name': 'one', 'x': 0, 'y': 0, 'width': 398, 'height': 598, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:42: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:24:44,518 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________________ test_spiral_bottom[1-x11-SpiralConfig] ____________________ manager = @spiral_config def test_spiral_bottom(manager): manager.c.next_layout() manager.c.next_layout() manager.c.next_layout() manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:119: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info assert info["y"] == y, info assert info["width"] == w, info > assert info["height"] == h, info E AssertionError: {'name': 'one', 'x': 0, 'y': 0, 'width': 798, 'height': 298, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:43: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:24:48,934 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 __________ test_spiral_left_anticlockwise[1-x11-AnticlockwiseConfig] ___________ manager = @anticlockwise_config def test_spiral_left_anticlockwise(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:133: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 398, 'height': 598, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:24:54,311 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ___________ test_spiral_top_anticlockwise[1-x11-AnticlockwiseConfig] ___________ manager = @anticlockwise_config def test_spiral_top_anticlockwise(manager): manager.c.next_layout() manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:149: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 798, 'height': 298, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:24:58,053 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 __________ test_spiral_right_anticlockwise[1-x11-AnticlockwiseConfig] __________ manager = @anticlockwise_config def test_spiral_right_anticlockwise(manager): manager.c.next_layout() manager.c.next_layout() manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info assert info["y"] == y, info > assert info["width"] == w, info E AssertionError: {'name': 'one', 'x': 0, 'y': 0, 'width': 398, 'height': 598, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:42: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:25:03,978 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _________ test_spiral_bottom_anticlockwise[1-x11-AnticlockwiseConfig] __________ manager = @anticlockwise_config def test_spiral_bottom_anticlockwise(manager): manager.c.next_layout() manager.c.next_layout() manager.c.next_layout() manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:184: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info assert info["y"] == y, info assert info["width"] == w, info > assert info["height"] == h, info E AssertionError: {'name': 'one', 'x': 0, 'y': 0, 'width': 798, 'height': 298, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:43: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:25:09,561 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _____________ test_spiral_adjust_master_ratios[1-x11-SpiralConfig] _____________ manager = @spiral_config def test_spiral_adjust_master_ratios(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:198: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 398, 'height': 598, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:25:15,002 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ________________ test_spiral_adjust_ratios[1-x11-SpiralConfig] _________________ manager = @spiral_config def test_spiral_adjust_ratios(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 798, 598) test/layouts/test_spiral.py:216: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 798, h = 598 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 398, 'height': 598, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:25:18,131 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________________ test_stack_commands[1-x11-StackConfig] ____________________ manager = @stack_config def test_stack_commands(manager): assert manager.c.layout.info()["current_stack"] == 0 manager.test_window("one") > assert _stacks(manager) == [["one"], []] E AssertionError: assert [['one'], ['one']] == [['one'], []] E At index 1 diff: ['one'] != [] E Full diff: E - [['one'], []] E + [['one'], ['one']] E ? +++++ test/layouts/test_stack.py:71: AssertionError ___________________ test_stack_addremove[1-x11-StackConfig] ____________________ manager = @stack_config def test_stack_addremove(manager): one = manager.test_window("one") manager.c.layout.next() two = manager.test_window("two") three = manager.test_window("three") > assert _stacks(manager) == [["one"], ["three", "two"]] E AssertionError: assert [['three', 'two', 'one'], ['one']] == [['one'], ['three', 'two']] E At index 0 diff: ['three', 'two', 'one'] != ['one'] E Full diff: E - [['one'], ['three', 'two']] E + [['three', 'two', 'one'], ['one']] test/layouts/test_stack.py:105: AssertionError ____________________ test_stack_rotation[1-x11-StackConfig] ____________________ manager = @stack_config def test_stack_rotation(manager): manager.c.layout.delete() manager.test_window("one") manager.test_window("two") manager.test_window("three") > assert _stacks(manager) == [["three", "two", "one"]] E AssertionError: assert [['three', 'two', 'one', 'one']] == [['three', 'two', 'one']] E At index 0 diff: ['three', 'two', 'one', 'one'] != ['three', 'two', 'one'] E Full diff: E - [['three', 'two', 'one']] E + [['three', 'two', 'one', 'one']] E ? +++++++ test/layouts/test_stack.py:125: AssertionError ____________________ test_stack_nextprev[1-x11-StackConfig] ____________________ manager = @stack_config def test_stack_nextprev(manager): manager.c.layout.add() one = manager.test_window("one") two = manager.test_window("two") three = manager.test_window("three") assert manager.c.groups()["a"]["focus"] == "three" manager.c.layout.next() assert manager.c.groups()["a"]["focus"] == "one" manager.c.layout.previous() assert manager.c.groups()["a"]["focus"] == "three" manager.c.layout.previous() > assert manager.c.groups()["a"]["focus"] == "two" E AssertionError: assert 'one' == 'two' E - two E + one test/layouts/test_stack.py:149: AssertionError ___________________ test_stack_client_to[1-x11-StackConfig] ____________________ manager = @stack_config def test_stack_client_to(manager): manager.test_window("one") manager.test_window("two") assert manager.c.layout.info()["stacks"][0]["clients"] == ["one"] manager.c.layout.client_to_previous() assert manager.c.layout.info()["stacks"][0]["clients"] == ["two", "one"] manager.c.layout.client_to_previous() assert manager.c.layout.info()["stacks"][0]["clients"] == ["one"] > assert manager.c.layout.info()["stacks"][1]["clients"] == ["two"] E AssertionError: assert ['two', 'one'] == ['two'] E Left contains one more item: 'one' E Full diff: E - ['two'] E + ['two', 'one'] test/layouts/test_stack.py:222: AssertionError _______________ test_stack_window_focus_cycle[1-x11-StackConfig] _______________ manager = @stack_config def test_stack_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions, stack adds clients at pos of current > assert manager.c.layout.info()["clients"] == ["three", "one", "two"] E AssertionError: assert ['three', 'one', 'two', 'one'] == ['three', 'one', 'two'] E Left contains one more item: 'one' E Full diff: E - ['three', 'one', 'two'] E + ['three', 'one', 'two', 'one'] E ? +++++++ test/layouts/test_stack.py:245: AssertionError ______________________ test_tile_updown[1-x11-TileConfig] ______________________ manager = @tile_config def test_tile_updown(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") > assert manager.c.layout.info()["clients"] == ["three", "two", "one"] E AssertionError: assert ['three', 'two', 'one', 'one'] == ['three', 'two', 'one'] E Left contains one more item: 'one' E Full diff: E - ['three', 'two', 'one'] E + ['three', 'two', 'one', 'one'] E ? +++++++ test/layouts/test_tile.py:64: AssertionError _____________________ test_tile_nextprev[1-x11-TileConfig] _____________________ manager = @tile_config def test_tile_nextprev(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") > assert manager.c.layout.info()["clients"] == ["three", "two", "one"] E AssertionError: assert ['three', 'two', 'one', 'one'] == ['three', 'two', 'one'] E Left contains one more item: 'one' E Full diff: E - ['three', 'two', 'one'] E + ['three', 'two', 'one', 'one'] E ? +++++++ test/layouts/test_tile.py:77: AssertionError _________________ test_tile_master_and_slave[1-x11-TileConfig] _________________ manager = @tile_config def test_tile_master_and_slave(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") assert manager.c.layout.info()["master"] == ["three"] > assert manager.c.layout.info()["slave"] == ["two", "one"] E AssertionError: assert ['two', 'one', 'one'] == ['two', 'one'] E Left contains one more item: 'one' E Full diff: E - ['two', 'one'] E + ['two', 'one', 'one'] E ? +++++++ test/layouts/test_tile.py:102: AssertionError ________________ test_tile_window_focus_cycle[1-x11-TileConfig] ________________ manager = @tile_config def test_tile_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions, Tile adds (by default) clients at pos of current > assert manager.c.layout.info()["clients"] == ["three", "two", "one"] E AssertionError: assert ['three', 'two', 'one', 'one'] == ['three', 'two', 'one'] E Left contains one more item: 'one' E Full diff: E - ['three', 'two', 'one'] E + ['three', 'two', 'one', 'one'] E ? +++++++ test/layouts/test_tile.py:134: AssertionError ____________________ test_tile_add_on_top[1-x11-TileConfig] ____________________ manager = @tile_config def test_tile_add_on_top(manager): manager.c.next_layout() manager.c.next_layout() manager.test_window("one") manager.test_window("two") manager.test_window("three") # test first example assert manager.c.layout.info()["master"] == ["one"] > assert manager.c.layout.info()["slave"] == ["two", "three"] E AssertionError: assert ['one', 'two', 'three'] == ['two', 'three'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['two', 'three'] E + ['one', 'two', 'three'] E ? +++++++ test/layouts/test_tile.py:152: AssertionError __________________ test_tile_min_max_ratios[1-x11-TileConfig] __________________ manager = @tile_config def test_tile_min_max_ratios(manager): manager.test_window("one") manager.test_window("two") orig_windows = manager.c.windows() # Defaul increment is 5% so 20 steps would move by 100% # i.e. past the edge for _ in range(20): manager.c.layout.decrease_ratio() # Window should now be 15% of screen width less it's border > assert manager.c.windows()[1]["width"] == (800 * 0.15) - 2 E assert 678 == ((800 * 0.15) - 2) test/layouts/test_tile.py:177: AssertionError _______________________ test_window[1-x11-TreeTabConfig] _______________________ manager = @treetab_config def test_window(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1", floating=True) manager.test_window("float2", floating=True) manager.test_window("three") # test preconditions, columns adds clients at pos of current, in two stacks > assert manager.c.layout.info()["clients"] == ["one", "three", "two"] E AssertionError: assert ['one', 'one', 'three', 'two'] == ['one', 'three', 'two'] E At index 1 diff: 'one' != 'three' E Left contains one more item: 'two' E Full diff: E - ['one', 'three', 'two'] E + ['one', 'one', 'three', 'two'] E ? +++++++ test/layouts/test_treetab.py:60: AssertionError ____________________ test_sort_windows[1-x11-TreeTabConfig] ____________________ manager = @treetab_config def test_sort_windows(manager): manager.test_window("one") manager.test_window("two") manager.test_window("101") manager.test_window("102") manager.test_window("103") > assert manager.c.layout.info()["client_trees"] == { "Foo": [["one"], ["two"], ["101"], ["102"], ["103"]], "Bar": [], } E AssertionError: assert {'Foo': [['one'], ['one'], ['two'], ['101'], ['102'], ['103']], 'Bar': []} == {'Foo': [['one'], ['two'], ['101'], ['102'], ['103']], 'Bar': []} E Common items: E {'Bar': []} E Differing items: E {'Foo': [['one'], ['one'], ['two'], ['101'], ['102'], ['103']]} != {'Foo': [['one'], ['two'], ['101'], ['102'], ['103']]} E Full diff: E - {'Bar': [], 'Foo': [['one'], ['two'], ['101'], ['102'], ['103']]} E + {'Bar': [], 'Foo': [['one'], ['one'], ['two'], ['101'], ['102'], ['103']]} E ? +++++++++ test/layouts/test_treetab.py:151: AssertionError ______________ test_verticaltile_simple[1-x11-VerticalTileConfig] ______________ manager = @verticaltile_config def test_verticaltile_simple(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 800, 600) test/layouts/test_verticaltile.py:57: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 800, h = 600 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 798, 'height': 298, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError _____________ test_verticaltile_maximize[1-x11-VerticalTileConfig] _____________ manager = @verticaltile_config def test_verticaltile_maximize(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 800, 600) test/layouts/test_verticaltile.py:67: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 800, h = 600 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 798, 'height': 298, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ________ test_verticaltile_window_focus_cycle[1-x11-VerticalTileConfig] ________ manager = @verticaltile_config def test_verticaltile_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions > assert manager.c.layout.info()["clients"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_verticaltile.py:87: AssertionError _________________ test_tall_add_clients[1-x11-MonadTallConfig] _________________ manager = @monadtall_config def test_tall_add_clients(manager): manager.test_window("one") manager.test_window("two") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == ["two"] E AssertionError: assert ['one', 'two'] == ['two'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'two' E Full diff: E - ['two'] E + ['one', 'two'] test/layouts/test_xmonad.py:143: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:23,299 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _ test_tall_add_clients_before_current[1-x11-MonadTallNCPBeforeCurrentConfig] __ manager = @monadtallncpbeforecurrent_config def test_tall_add_clients_before_current(manager): """Test add client with new_client_position = before_current.""" manager.test_window("one") manager.test_window("two") manager.test_window("three") assert manager.c.layout.info()["main"] == "three" > assert manager.c.layout.info()["secondary"] == ["two", "one"] E AssertionError: assert ['two', 'one', 'one'] == ['two', 'one'] E Left contains one more item: 'one' E Full diff: E - ['two', 'one'] E + ['two', 'one', 'one'] E ? +++++++ test/layouts/test_xmonad.py:167: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:27,496 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 __ test_tall_add_clients_after_current[1-x11-MonadTallNCPAfterCurrentConfig] ___ manager = @monadtallncpaftercurrent_config def test_tall_add_clients_after_current(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.c.layout.previous() assert_focused(manager, "two") manager.test_window("four") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == ["two", "four", "three"] E AssertionError: assert ['one', 'two', 'four', 'three'] == ['two', 'four', 'three'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['two', 'four', 'three'] E + ['one', 'two', 'four', 'three'] E ? +++++++ test/layouts/test_xmonad.py:185: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:32,349 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _ test_tall_add_clients_at_bottom[1-x11-MonadTallNewCLientPositionBottomConfig] _ manager = @pytest.mark.parametrize("manager", [MonadTallNewCLientPositionBottomConfig], indirect=True) def test_tall_add_clients_at_bottom(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.c.layout.previous() assert_focused(manager, "two") manager.test_window("four") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == ["two", "three", "four"] E AssertionError: assert ['one', 'two', 'three', 'four'] == ['two', 'three', 'four'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'four' E Full diff: E - ['two', 'three', 'four'] E + ['one', 'two', 'three', 'four'] E ? +++++++ test/layouts/test_xmonad.py:198: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:37,969 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _________________ test_wide_add_clients[1-x11-MonadWideConfig] _________________ manager = @monadwide_config def test_wide_add_clients(manager): manager.test_window("one") manager.test_window("two") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == ["two"] E AssertionError: assert ['one', 'two'] == ['two'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'two' E Full diff: E - ['two'] E + ['one', 'two'] test/layouts/test_xmonad.py:206: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:43,506 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _ test_wide_add_clients_new_client_postion_top[1-x11-MonadWideNewClientPositionTopConfig] _ manager = @pytest.mark.parametrize("manager", [MonadWideNewClientPositionTopConfig], indirect=True) def test_wide_add_clients_new_client_postion_top(manager): manager.test_window("one") manager.test_window("two") assert manager.c.layout.info()["main"] == "two" > assert manager.c.layout.info()["secondary"] == ["one"] E AssertionError: assert ['one', 'one'] == ['one'] E Left contains one more item: 'one' E Full diff: E - ['one'] E + ['one', 'one'] test/layouts/test_xmonad.py:228: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:47,186 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _______________ test_tall_margins[1-x11-MonadTallMarginsConfig] ________________ manager = @monadtallmargins_config def test_tall_margins(manager): manager.test_window("one") > assert_dimensions(manager, 4, 4, 788, 588) test/layouts/test_xmonad.py:248: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 4, y = 4 w = 788, h = 588 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 404, 'y': 4, 'width': 388, 'height': 588, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 404, 'y': 4, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:52,583 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _______________ test_wide_margins[1-x11-MonadWideMarginsConfig] ________________ manager = @pytest.mark.parametrize("manager", [MonadWideMarginsConfig], indirect=True) def test_wide_margins(manager): manager.test_window("one") > assert_dimensions(manager, 4, 4, 788, 588) test/layouts/test_xmonad.py:262: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 4, y = 4 w = 788, h = 588 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 4, 'y': 304, 'width': 788, 'height': 288, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 4, 'y': 304, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:55,407 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ___________ test_tall_growmain_solosecondary[1-x11-MonadTallConfig] ____________ manager = @monadtall_config def test_tall_growmain_solosecondary(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:276: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 396, 'height': 596, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:27:58,415 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ___________ test_wide_growmain_solosecondary[1-x11-MonadWideConfig] ____________ manager = @monadwide_config def test_wide_growmain_solosecondary(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:303: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 796, 'height': 296, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:01,378 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _________ test_tall_growmain_multiplesecondary[1-x11-MonadTallConfig] __________ manager = @monadtall_config def test_tall_growmain_multiplesecondary(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:330: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 396, 'height': 596, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:04,622 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _________ test_wide_growmain_multiplesecondary[1-x11-MonadWideConfig] __________ manager = @monadwide_config def test_wide_growmain_multiplesecondary(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:359: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 796, 'height': 296, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:08,022 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _________ test_tall_growsecondary_solosecondary[1-x11-MonadTallConfig] _________ manager = @monadtall_config def test_tall_growsecondary_solosecondary(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:388: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 396, 'height': 596, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:11,836 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _________ test_wide_growsecondary_solosecondary[1-x11-MonadWideConfig] _________ manager = @monadwide_config def test_wide_growsecondary_solosecondary(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:414: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 796, 'height': 296, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:14,671 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _______ test_tall_growsecondary_multiplesecondary[1-x11-MonadTallConfig] _______ manager = @monadtall_config def test_tall_growsecondary_multiplesecondary(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:440: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 396, 'height': 596, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:17,888 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _______ test_wide_growsecondary_multiplesecondary[1-x11-MonadWideConfig] _______ manager = @monadwide_config def test_wide_growsecondary_multiplesecondary(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:468: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 796, 'height': 296, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:21,192 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________________ test_tall_flip[1-x11-MonadTallConfig] _____________________ manager = @monadtall_config def test_tall_flip(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") # Check all the dimensions manager.c.layout.next() assert_focused(manager, "one") assert_dimensions(manager, 0, 0, 396, 596) manager.c.layout.next() > assert_focused(manager, "two") test/layouts/test_xmonad.py:505: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , name = 'two' def assert_focused(self, name): """Asserts that window with specified name is currently focused""" info = self.c.window.info() > assert info["name"] == name, "Got {0!r}, expected {1!r}".format(info["name"], name) E AssertionError: Got 'one', expected 'two' test/layouts/layout_utils.py:32: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:24,478 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________________ test_wide_flip[1-x11-MonadWideConfig] _____________________ manager = @monadwide_config def test_wide_flip(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") # Check all the dimensions manager.c.layout.next() assert_focused(manager, "one") assert_dimensions(manager, 0, 0, 796, 296) manager.c.layout.next() > assert_focused(manager, "two") test/layouts/test_xmonad.py:540: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , name = 'two' def assert_focused(self, name): """Asserts that window with specified name is currently focused""" info = self.c.window.info() > assert info["name"] == name, "Got {0!r}, expected {1!r}".format(info["name"], name) E AssertionError: Got 'one', expected 'two' test/layouts/layout_utils.py:32: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:28,686 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ________________ test_tall_set_and_reset[1-x11-MonadTallConfig] ________________ manager = @monadtall_config def test_tall_set_and_reset(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:566: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() > assert info["x"] == x, info E AssertionError: {'name': 'one', 'x': 400, 'y': 0, 'width': 396, 'height': 596, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 400, 'y': 0, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:40: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:33,432 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ________________ test_wide_set_and_reset[1-x11-MonadWideConfig] ________________ manager = @monadwide_config def test_wide_set_and_reset(manager): manager.test_window("one") > assert_dimensions(manager, 0, 0, 796, 596) test/layouts/test_xmonad.py:588: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , x = 0, y = 0 w = 796, h = 596 win = def assert_dimensions(self, x, y, w, h, win=None): """Asserts dimensions of window""" if win is None: win = self.c.window info = win.info() assert info["x"] == x, info > assert info["y"] == y, info E AssertionError: {'name': 'one', 'x': 0, 'y': 300, 'width': 796, 'height': 296, 'group': 'a', 'id': 12582914, 'wm_class': ['TestWindow', 'TestWindow'], 'floating': False, 'float_info': {'x': 0, 'y': 300, 'width': 100, 'height': 100}, 'maximized': False, 'minimized': False, 'fullscreen': False} test/layouts/layout_utils.py:41: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:36,728 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ___________________ test_tall_shuffle[1-x11-MonadTallConfig] ___________________ manager = @monadtall_config def test_tall_shuffle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.test_window("four") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == ["two", "three", "four"] E AssertionError: assert ['one', 'two', 'three', 'four'] == ['two', 'three', 'four'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'four' E Full diff: E - ['two', 'three', 'four'] E + ['one', 'two', 'three', 'four'] E ? +++++++ test/layouts/test_xmonad.py:615: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:39,637 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ___________________ test_wide_shuffle[1-x11-MonadWideConfig] ___________________ manager = @monadwide_config def test_wide_shuffle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.test_window("four") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == ["two", "three", "four"] E AssertionError: assert ['one', 'two', 'three', 'four'] == ['two', 'three', 'four'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'four' E Full diff: E - ['two', 'three', 'four'] E + ['one', 'two', 'three', 'four'] E ? +++++++ test/layouts/test_xmonad.py:638: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:45,637 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________________ test_tall_swap[1-x11-MonadTallConfig] _____________________ manager = @monadtall_config def test_tall_swap(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.test_window("focused") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == ["two", "three", "focused"] E AssertionError: assert ['one', 'two', 'three', 'focused'] == ['two', 'three', 'focused'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'focused' E Full diff: E - ['two', 'three', 'focused'] E + ['one', 'two', 'three', 'focused'] E ? +++++++ test/layouts/test_xmonad.py:661: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:52,141 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________________ test_wide_swap[1-x11-MonadWideConfig] _____________________ manager = @monadwide_config def test_wide_swap(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.test_window("focused") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == ["two", "three", "focused"] E AssertionError: assert ['one', 'two', 'three', 'focused'] == ['two', 'three', 'focused'] E At index 0 diff: 'one' != 'two' E Left contains one more item: 'focused' E Full diff: E - ['two', 'three', 'focused'] E + ['one', 'two', 'three', 'focused'] E ? +++++++ test/layouts/test_xmonad.py:722: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:28:58,007 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _____________ test_tall_window_focus_cycle[1-x11-MonadTallConfig] ______________ manager = @monadtall_config def test_tall_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions > assert manager.c.layout.info()["clients"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_xmonad.py:787: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:29:03,147 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _____________ test_wide_window_focus_cycle[1-x11-MonadWideConfig] ______________ manager = @monadwide_config def test_wide_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions > assert manager.c.layout.info()["clients"] == ["one", "two", "three"] E AssertionError: assert ['one', 'one', 'two', 'three'] == ['one', 'two', 'three'] E At index 1 diff: 'one' != 'two' E Left contains one more item: 'three' E Full diff: E - ['one', 'two', 'three'] E + ['one', 'one', 'two', 'three'] E ? +++++++ test/layouts/test_xmonad.py:808: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:29:10,620 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ____________ test_three_col_add_clients[1-x11-MonadThreeColConfig] _____________ manager = @monadthreecol_config def test_three_col_add_clients(manager): manager.test_window("one") assert manager.c.layout.info()["main"] == "one" > assert manager.c.layout.info()["secondary"] == dict(left=[], right=[]) E AssertionError: assert {'left': ['one'], 'right': []} == {'left': [], 'right': []} E Common items: E {'right': []} E Differing items: E {'left': ['one']} != {'left': []} E Full diff: E - {'left': [], 'right': []} E + {'left': ['one'], 'right': []} E ? +++++ test/layouts/test_xmonad.py:835: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:29:17,988 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ______________ test_three_col_shuffle[1-x11-MonadThreeColConfig] _______________ manager = @monadthreecol_config def test_three_col_shuffle(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.test_window("four") manager.test_window("five") manager.c.layout.shuffle_right() > assert manager.c.layout.info()["main"] == "two" E AssertionError: assert 'one' == 'two' E - two E + one test/layouts/test_xmonad.py:878: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:29:22,688 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _____________ test_three_col_swap_main[1-x11-MonadThreeColConfig] ______________ manager = @monadthreecol_config def test_three_col_swap_main(manager): manager.test_window("one") manager.test_window("two") manager.test_window("three") manager.test_window("four") manager.test_window("five") manager.c.layout.next() manager.c.layout.swap_main() assert manager.c.layout.info()["main"] == "four" > assert manager.c.layout.info()["secondary"] == dict( left=["five", "three"], right=["two", "one"] ) E AssertionError: assert {'left': ['five', 'three', 'two'], 'right': ['one', 'one']} == {'left': ['five', 'three'], 'right': ['two', 'one']} E Differing items: E {'left': ['five', 'three', 'two']} != {'left': ['five', 'three']} E {'right': ['one', 'one']} != {'right': ['two', 'one']} E Full diff: E - {'left': ['five', 'three'], 'right': ['two', 'one']} E ? -- E + {'left': ['five', 'three', 'two'], 'right': ['one', 'one']} E ? +++++++ ++ test/layouts/test_xmonad.py:938: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:29:28,742 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 ______________________ test_zoomy_one[1-x11-ZoomyConfig] _______________________ manager = @zoomy_config def test_zoomy_one(manager): manager.test_window("one") assert_dimensions(manager, 0, 0, 600, 600) manager.test_window("two") assert_dimensions(manager, 0, 0, 600, 600) manager.test_window("three") assert_dimensions(manager, 0, 0, 600, 600) > assert_focus_path(manager, "two", "one", "three") test/layouts/test_zoomy.py:61: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test/layouts/layout_utils.py:64: in assert_focus_path assert_focused(self, i) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , name = 'three' def assert_focused(self, name): """Asserts that window with specified name is currently focused""" info = self.c.window.info() > assert info["name"] == name, "Got {0!r}, expected {1!r}".format(info["name"], name) E AssertionError: Got 'one', expected 'three' test/layouts/layout_utils.py:32: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:29:36,298 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _______________ test_zoomy_window_focus_cycle[1-x11-ZoomyConfig] _______________ manager = @zoomy_config def test_zoomy_window_focus_cycle(manager): # setup 3 tiled and two floating clients manager.test_window("one") manager.test_window("two") manager.test_window("float1") manager.c.window.toggle_floating() manager.test_window("float2") manager.c.window.toggle_floating() manager.test_window("three") # test preconditions, Zoomy adds clients at head > assert manager.c.layout.info()["clients"] == ["three", "two", "one"] E AssertionError: assert ['three', 'two', 'one', 'one'] == ['three', 'two', 'one'] E Left contains one more item: 'one' E Full diff: E - ['three', 'two', 'one'] E + ['three', 'two', 'one', 'one'] E ? +++++++ test/layouts/test_zoomy.py:77: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:29:40,828 libqtile manager.py:_process_screens():L339  Too few groups in config. Added group: autogen_2 _________________________ test_invoke_and_clear[1-x11] _________________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> @pytest.mark.skipif(shutil.which("notify-send") is None, reason="notify-send not installed.") @pytest.mark.usefixtures("dbus") def test_invoke_and_clear(manager_nospawn, minimal_conf_noscreen): # We need to create an object to listen for signals from the qtile # notification server. This needs to be created within the manager # object so we rely on "eval" applying "exec". handler = textwrap.dedent( """ import asyncio from libqtile.utils import add_signal_receiver class SignalListener: def __init__(self): self.action_invoked = None self.notification_closed = None global add_signal_receiver global asyncio asyncio.create_task( add_signal_receiver( self.on_notification_closed, session_bus=True, signal_name="NotificationClosed" ) ) asyncio.create_task( add_signal_receiver( self.on_action_invoked, session_bus=True, signal_name="ActionInvoked" ) ) def on_action_invoked(self, msg): self.action_invoked = msg.body def on_notification_closed(self, msg): self.notification_closed = msg.body self.signal_listener = SignalListener() """ ) # Create and send a custom notification with a list of actions. # `utils.send_notfication` is not an option here as it does not # expose actions so we need a lower-level call notification_with_actions = textwrap.dedent( """ import asyncio from dbus_next import Variant from dbus_next.constants import MessageType from libqtile.utils import _send_dbus_message notification = [ "qtile", 2, "", "Test", "Test with actions", ["default", "ok"], {"urgency": Variant("y", 1)}, 5000 ] asyncio.create_task( _send_dbus_message( True, MessageType.METHOD_CALL, "org.freedesktop.Notifications", "org.freedesktop.Notifications", "/org/freedesktop/Notifications", "Notify", "susssasa{sv}i", notification ) ) """ ) notify.Notify.timeout_add = log_timeout widget = notify.Notify() config = minimal_conf_noscreen config.screens = [libqtile.config.Screen(top=Bar([widget], 10))] # Start the manager manager_nospawn.start(config) # Create our signal listener manager_nospawn.c.eval(handler) # Send first notification and check time and display time notif_1 = [NS] notif_1.extend(NOTIFICATION_1) subprocess.run(notif_1) # Check that listener hasn't received any signals yet _, result = manager_nospawn.c.eval("self.signal_listener.action_invoked") assert result == "None" _, result = manager_nospawn.c.eval("self.signal_listener.notification_closed") assert result == "None" # Clicking on notification dismisses it manager_nospawn.c.bar["top"].fake_button_press(0, "top", 0, 0, button=1) # Signal listener should get the id and close reason # id is 1 and dismiss reason is ClosedReason.dismissed which is 2 _, result = manager_nospawn.c.eval("self.signal_listener.notification_closed") > assert result == "[1, 2]" E AssertionError: assert 'None' == '[1, 2]' E - [1, 2] E + None test/widgets/test_notify.py:287: AssertionError ________________ test_different_screens[1-x11-DifferentScreens] ________________ manager = @different_screens def test_different_screens(manager): # Put one window on screen 0 manager.c.to_screen(0) manager.test_window("one") # Put two windows on screen 1 manager.c.to_screen(1) manager.test_window("two") manager.test_window("three") > assert manager.c.screen[0].widget["windowcount"].get() == "1" E AssertionError: assert '5' == '1' E - 1 E + 5 test/widgets/test_window_count.py:60: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:31:34,660 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: windowcount_1 To bind commands, rename the widget or use lazy.widget[new_name]. ___________________________ test_window_count[1-x11] ___________________________ manager_nospawn = minimal_conf_noscreen = .MinimalConf'> def test_window_count(manager_nospawn, minimal_conf_noscreen): config = minimal_conf_noscreen config.screens = [libqtile.config.Screen(top=libqtile.bar.Bar([WindowCount()], 10))] manager_nospawn.start(config) # No windows opened > assert int(manager_nospawn.c.widget["windowcount"].get()) == 0 E AssertionError: assert 2 == 0 E + where 2 = int('2') E + where '2' = () E + where = .get test/widgets/test_window_count.py:71: AssertionError __________________ test_window_names[1-x11-WindowNameConfig] ___________________ manager = @windowname_config def test_window_names(manager): def widget_text_on_screen(index): return manager.c.screen[index].bar["top"].info()["widgets"][0]["text"] # Screen 1's widget is set up with for_current_screen=True # This means that when screen 0 is active, screen 1's widget should show the same text > assert widget_text_on_screen(0) == " " E AssertionError: assert 'V Xephyr on :11.1 (ctrl+shift grabs mouse and keyboard)' == ' ' E Strings contain only whitespace, escaping them using repr() E - ' ' E + 'V Xephyr on :11.1 (ctrl+shift grabs mouse and keyboard)' test/widgets/test_windowname.py:78: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:31:40,589 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: windowname_1 To bind commands, rename the widget or use lazy.widget[new_name]. ______________ test_single_window_states[1-x11-WindowTabsConfig] _______________ manager = @windowtabs_config def test_single_window_states(manager): def widget_text(): return manager.c.bar["top"].info()["widgets"][0]["text"] # Default _TextBox text is " " and no hooks fired yet. > assert widget_text() == " " E AssertionError: assert 'V Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard) | V Xephyr on :11.1 (ctrl+shift grabs mouse and keyboard)' == ' ' E Strings contain only whitespace, escaping them using repr() E - ' ' E + 'V Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard) | V Xephyr on :11.1 (ctrl+shift grabs mouse and keyboard)' test/widgets/test_windowtabs.py:70: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:31:42,092 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: windowtabs_1 To bind commands, rename the widget or use lazy.widget[new_name]. ________________ test_multiple_windows[1-x11-WindowTabsConfig] _________________ manager = @windowtabs_config def test_multiple_windows(manager): def widget_text(): return manager.c.bar["top"].info()["widgets"][0]["text"] window_one = manager.test_window("one") > assert widget_text() == "one" E AssertionError: assert 'V Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard) | V Xephyr on :11.1 (ctrl+shift grabs mouse and keyboard) | one' == 'one' E - one E + V Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard) | V Xephyr on :11.1 (ctrl+shift grabs mouse and keyboard) | one test/widgets/test_windowtabs.py:101: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:31:43,291 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: windowtabs_1 To bind commands, rename the widget or use lazy.widget[new_name]. ____________________ test_selected[1-x11-WindowTabsConfig] _____________________ manager = @windowtabs_config def test_selected(manager): # Bottom bar widget has custom "selected" indicator def widget_text(): return manager.c.bar["bottom"].info()["widgets"][0]["text"] window_one = manager.test_window("one") > assert widget_text() == "!!one!!" E AssertionError: assert 'V Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard) | V Xephyr on :11.1 (ctrl+shift grabs mouse and keyboard) | !!one!!' == '!!one!!' E - !!one!! E + V Xephyr on :11.0 (ctrl+shift grabs mouse and keyboard) | V Xephyr on :11.1 (ctrl+shift grabs mouse and keyboard) | !!one!! test/widgets/test_windowtabs.py:124: AssertionError ---------------------------- Captured stdout setup ----------------------------- 2023-01-04 13:31:46,408 libqtile bar.py:_configure():L298  The following widgets were renamed in qtile.widgets_map: windowtabs_1 To bind commands, rename the widget or use lazy.widget[new_name]. ____________________ test_unmap_noscreen[x11-2-BareConfig] _____________________ manager = @pytest.mark.parametrize("manager", [BareConfig, ManagerConfig], indirect=True) @multimonitor def test_unmap_noscreen(manager): manager.test_window("one") pid = manager.test_window("two") > assert len(manager.c.windows()) == 2 E AssertionError: assert 3 == 2 E + where 3 = len([{'float_info': {'height': 578, 'width': 798, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}]) E + where [{'float_info': {'height': 578, 'width': 798, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}] = () E + where = .windows E + where = .c test/test_manager.py:1006: AssertionError ___________________ test_unmap_noscreen[x11-2-ManagerConfig] ___________________ manager = @pytest.mark.parametrize("manager", [BareConfig, ManagerConfig], indirect=True) @multimonitor def test_unmap_noscreen(manager): manager.test_window("one") pid = manager.test_window("two") > assert len(manager.c.windows()) == 2 E AssertionError: assert 3 == 2 E + where 3 = len([{'float_info': {'height': 598, 'width': 798, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}]) E + where [{'float_info': {'height': 598, 'width': 798, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}, {'float_info': {'height': 100, 'width': 100, 'x': 0, 'y': 0}, 'floating': False, 'fullscreen': False, 'group': 'a', ...}] = () E + where = .windows E + where = .c test/test_manager.py:1006: AssertionError =========================== short test summary info ============================ FAILED test/test_bar.py::test_consecutive_spacer[1-x11] - AssertionError: Err... FAILED test/test_bar.py::test_configure_broken_widgets[1-x11] - AssertionErro... FAILED test/test_bar.py::test_bar_hide_show_with_margin[1-x11] - AssertionErr... FAILED test/test_bar.py::test_bar_border_horizontal[1-x11] - AssertionError: ... FAILED test/test_bar.py::test_bar_border_vertical[1-x11] - AssertionError: Er... FAILED test/test_bar.py::test_unsupported_widget[1-x11] - AssertionError: Err... FAILED test/test_command.py::test_items_qtile[x11-ServerConfig-2] - Assertion... FAILED test/test_command.py::test_select_qtile[x11-ServerConfig-2] - libqtile... FAILED test/test_command.py::test_items_group[1-x11-ServerConfig] - assert (T... FAILED test/test_command.py::test_select_group[x11-ServerConfig-2] - Failed: ... FAILED test/test_command.py::test_items_screen[1-x11-ServerConfig] - assert (... FAILED test/test_command.py::test_select_screen[1-x11-ServerConfig] - Failed:... FAILED test/test_command.py::test_select_bar[x11-ServerConfig-2] - libqtile.c... FAILED test/test_fakescreen.py::test_basic[1-x11-FakeScreenConfig] - Assertio... FAILED test/test_fakescreen.py::test_maximize_with_move_to_screen[1-x11-FakeScreenConfig] FAILED test/test_fakescreen.py::test_float_first_on_second_screen[1-x11-FakeScreenConfig] FAILED test/test_fakescreen.py::test_float_change_screens[1-x11-FakeScreenConfig] FAILED test/test_fakescreen.py::test_hammer_tile[1-x11-FakeScreenConfig] - As... FAILED test/test_fakescreen.py::test_hammer_ratio_tile[1-x11-FakeScreenConfig] FAILED test/test_fakescreen.py::test_ratio_to_fourth_screen[1-x11-FakeScreenConfig] FAILED test/test_group.py::test_window_order[1-x11-GroupConfig] - AssertionEr... FAILED test/test_manager.py::test_screen_dim[x11-ManagerConfig-2] - assert 0 ... FAILED test/test_manager.py::test_to_screen[x11-ManagerConfig-2] - assert 0 == 1 FAILED test/test_manager.py::test_togroup[x11-ManagerConfig-2] - AssertionErr... FAILED test/test_manager.py::test_kill_other[1-x11-ManagerConfig] - Assertion... FAILED test/test_manager.py::test_static[1-x11-ManagerConfig] - Failed: DID N... FAILED test/test_manager.py::test_last_float_size[1-x11-ManagerConfig] - asse... FAILED test/test_manager.py::test_floating_focus[1-x11-ManagerConfig] - Asser... FAILED test/test_manager.py::test_move_floating[1-x11-ManagerConfig] - assert... FAILED test/test_manager.py::test_two_screens[x11-ManagerConfig-2] - Assertio... FAILED test/test_manager.py::test_cmd_reload_config[1-x11] - AssertionError: ... FAILED test/test_restart.py::test_restart_hook_and_state[1-x11] - AssertionEr... FAILED test/test_when.py::test_when[1-x11-WhenConfig] - AssertionError: asser... FAILED test/test_window.py::test_togroup_toggle[1-x11-BareConfig] - Assertion... FAILED test/test_window.py::test_bring_front_click[1-x11-ManagerConfig-False] FAILED test/test_window.py::test_bring_front_click[1-x11-BringFrontClickConfig-True] FAILED test/test_window.py::test_bring_front_click[1-x11-BringFrontClickFloatingOnlyConfig-floating_only] FAILED test/backend/x11/test_window.py::test_strut_handling[ManagerConfig-2] FAILED test/backend/x11/test_window.py::test_cursor_warp[CursorWarpConfig-2] FAILED test/backend/x11/test_window.py::test_click_focus_screen[2] - assert 0... FAILED test/backend/x11/test_xcore.py::test_net_client_list[1-ManagerConfig] FAILED test/extension/test_window_list.py::test_window_list[1-x11] - Assertio... FAILED test/layouts/test_base.py::test_base_client_position_bottom[1-x11-BaseLayoutConfigBottom] FAILED test/layouts/test_base.py::test_base_client_position_top[1-x11-BaseLayoutConfigTop] FAILED test/layouts/test_bsp.py::test_bsp_window_focus_cycle[1-x11-BspConfig] FAILED test/layouts/test_bsp.py::test_bsp_margin_on_single[1-x11-BspConfig] FAILED test/layouts/test_bsp.py::test_bsp_wrap_clients[1-x11-BspConfig] - Ass... FAILED test/layouts/test_columns.py::test_columns_window_focus_cycle[1-x11-ColumnsConfig] FAILED test/layouts/test_columns.py::test_columns_swap_column_left[1-x11-ColumnsConfig] FAILED test/layouts/test_columns.py::test_columns_swap_column_right[1-x11-ColumnsConfig] FAILED test/layouts/test_columns.py::test_columns_margins_single[1-x11-ColumnsConfig] FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Bsp] - AssertionError FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Columns] - Asserti... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Floating] - Assert... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Matrix] - Assertio... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Max] - AssertionError FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-MonadTall] - Asser... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-MonadThreeCol] - A... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-MonadWide] - Asser... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-RatioTile] - Asser... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Spiral] - Assertio... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Stack] - Assertion... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Tile] - AssertionE... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-TreeTab] - Asserti... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-VerticalTile] - As... FAILED test/layouts/test_common.py::test_focus_cycle[1-x11-Zoomy] - Assertion... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Bsp] - asse... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Columns] - ... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Floating] FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Matrix] - a... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Max] - asse... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-MonadTall] FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-MonadThreeCol] FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-MonadWide] FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-RatioTile] FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Spiral] - a... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Stack] - as... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Tile] - ass... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-TreeTab] - ... FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-VerticalTile] FAILED test/layouts/test_common.py::test_focus_change_event[1-x11-Zoomy] - as... FAILED test/layouts/test_common.py::test_remove[1-x11-Bsp] - AssertionError: ... FAILED test/layouts/test_common.py::test_remove[1-x11-Columns] - AssertionErr... FAILED test/layouts/test_common.py::test_remove[1-x11-Floating] - AssertionEr... FAILED test/layouts/test_common.py::test_remove[1-x11-Matrix] - AssertionErro... FAILED test/layouts/test_common.py::test_remove[1-x11-Max] - AssertionError: ... FAILED test/layouts/test_common.py::test_remove[1-x11-MonadTall] - AssertionE... FAILED test/layouts/test_common.py::test_remove[1-x11-MonadThreeCol] - Assert... FAILED test/layouts/test_common.py::test_remove[1-x11-MonadWide] - AssertionE... FAILED test/layouts/test_common.py::test_remove[1-x11-RatioTile] - AssertionE... FAILED test/layouts/test_common.py::test_remove[1-x11-Spiral] - AssertionErro... FAILED test/layouts/test_common.py::test_remove[1-x11-Stack] - AssertionError... FAILED test/layouts/test_common.py::test_remove[1-x11-Tile] - AssertionError:... FAILED test/layouts/test_common.py::test_remove[1-x11-TreeTab] - AssertionErr... FAILED test/layouts/test_common.py::test_remove[1-x11-VerticalTile] - Asserti... FAILED test/layouts/test_common.py::test_remove[1-x11-Zoomy] - AssertionError... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Bsp] - Asserti... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Columns] - Ass... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Floating] - As... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Matrix] - Asse... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Max] - Asserti... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-MonadTall] - A... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-MonadThreeCol] FAILED test/layouts/test_common.py::test_remove_floating[1-x11-MonadWide] - A... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-RatioTile] - A... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Spiral] - Asse... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Stack] - Asser... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Tile] - Assert... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-TreeTab] - Ass... FAILED test/layouts/test_common.py::test_remove_floating[1-x11-VerticalTile] FAILED test/layouts/test_common.py::test_remove_floating[1-x11-Zoomy] - Asser... FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Bsp] - A... FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Columns] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Floating] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Matrix] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Max] - A... FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadTall] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadThreeCol] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-MonadWide] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-RatioTile] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Spiral] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Stack] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Tile] - ... FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-TreeTab] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-VerticalTile] FAILED test/layouts/test_common.py::test_desktop_notifications[1-x11-Zoomy] FAILED test/layouts/test_floating.py::test_float_next_prev_window[1-x11-FloatingConfig] FAILED test/layouts/test_matrix.py::test_matrix_simple[1-x11-MatrixConfig] - ... FAILED test/layouts/test_matrix.py::test_matrix_add_remove_columns[1-x11-MatrixConfig] FAILED test/layouts/test_matrix.py::test_matrix_window_focus_cycle[1-x11-MatrixConfig] FAILED test/layouts/test_max.py::test_max_simple[1-x11-MaxConfig] - Assertion... FAILED test/layouts/test_max.py::test_max_updown[1-x11-MaxConfig] - Assertion... FAILED test/layouts/test_max.py::test_max_remove[1-x11-MaxConfig] - Assertion... FAILED test/layouts/test_max.py::test_max_window_focus_cycle[1-x11-MaxConfig] FAILED test/layouts/test_ratiotile.py::test_ratiotile_add_windows[1-x11-RatioTileConfig] FAILED test/layouts/test_ratiotile.py::test_ratiotile_add_windows_golden_ratio[1-x11-RatioTileConfig] FAILED test/layouts/test_ratiotile.py::test_ratiotile_basic[1-x11-RatioTileConfig] FAILED test/layouts/test_ratiotile.py::test_ratiotile_window_focus_cycle[1-x11-RatioTileConfig] FAILED test/layouts/test_ratiotile.py::test_ratiotile_alternative_calculation[1-x11-RatioTileConfig] FAILED test/layouts/test_ratiotile.py::test_shuffling[1-x11-RatioTileConfig] FAILED test/layouts/test_ratiotile.py::test_resizing[1-x11-RatioTileConfig] FAILED test/layouts/test_slice.py::test_slice_focus[1-x11-SliceConfig] - Asse... FAILED test/layouts/test_spiral.py::test_spiral_left[1-x11-SpiralConfig] - As... FAILED test/layouts/test_spiral.py::test_spiral_top[1-x11-SpiralConfig] - Ass... FAILED test/layouts/test_spiral.py::test_spiral_right[1-x11-SpiralConfig] - A... FAILED test/layouts/test_spiral.py::test_spiral_bottom[1-x11-SpiralConfig] - ... FAILED test/layouts/test_spiral.py::test_spiral_left_anticlockwise[1-x11-AnticlockwiseConfig] FAILED test/layouts/test_spiral.py::test_spiral_top_anticlockwise[1-x11-AnticlockwiseConfig] FAILED test/layouts/test_spiral.py::test_spiral_right_anticlockwise[1-x11-AnticlockwiseConfig] FAILED test/layouts/test_spiral.py::test_spiral_bottom_anticlockwise[1-x11-AnticlockwiseConfig] FAILED test/layouts/test_spiral.py::test_spiral_adjust_master_ratios[1-x11-SpiralConfig] FAILED test/layouts/test_spiral.py::test_spiral_adjust_ratios[1-x11-SpiralConfig] FAILED test/layouts/test_stack.py::test_stack_commands[1-x11-StackConfig] - A... FAILED test/layouts/test_stack.py::test_stack_addremove[1-x11-StackConfig] - ... FAILED test/layouts/test_stack.py::test_stack_rotation[1-x11-StackConfig] - A... FAILED test/layouts/test_stack.py::test_stack_nextprev[1-x11-StackConfig] - A... FAILED test/layouts/test_stack.py::test_stack_client_to[1-x11-StackConfig] - ... FAILED test/layouts/test_stack.py::test_stack_window_focus_cycle[1-x11-StackConfig] FAILED test/layouts/test_tile.py::test_tile_updown[1-x11-TileConfig] - Assert... FAILED test/layouts/test_tile.py::test_tile_nextprev[1-x11-TileConfig] - Asse... FAILED test/layouts/test_tile.py::test_tile_master_and_slave[1-x11-TileConfig] FAILED test/layouts/test_tile.py::test_tile_window_focus_cycle[1-x11-TileConfig] FAILED test/layouts/test_tile.py::test_tile_add_on_top[1-x11-TileConfig] - As... FAILED test/layouts/test_tile.py::test_tile_min_max_ratios[1-x11-TileConfig] FAILED test/layouts/test_treetab.py::test_window[1-x11-TreeTabConfig] - Asser... FAILED test/layouts/test_treetab.py::test_sort_windows[1-x11-TreeTabConfig] FAILED test/layouts/test_verticaltile.py::test_verticaltile_simple[1-x11-VerticalTileConfig] FAILED test/layouts/test_verticaltile.py::test_verticaltile_maximize[1-x11-VerticalTileConfig] FAILED test/layouts/test_verticaltile.py::test_verticaltile_window_focus_cycle[1-x11-VerticalTileConfig] FAILED test/layouts/test_xmonad.py::test_tall_add_clients[1-x11-MonadTallConfig] FAILED test/layouts/test_xmonad.py::test_tall_add_clients_before_current[1-x11-MonadTallNCPBeforeCurrentConfig] FAILED test/layouts/test_xmonad.py::test_tall_add_clients_after_current[1-x11-MonadTallNCPAfterCurrentConfig] FAILED test/layouts/test_xmonad.py::test_tall_add_clients_at_bottom[1-x11-MonadTallNewCLientPositionBottomConfig] FAILED test/layouts/test_xmonad.py::test_wide_add_clients[1-x11-MonadWideConfig] FAILED test/layouts/test_xmonad.py::test_wide_add_clients_new_client_postion_top[1-x11-MonadWideNewClientPositionTopConfig] FAILED test/layouts/test_xmonad.py::test_tall_margins[1-x11-MonadTallMarginsConfig] FAILED test/layouts/test_xmonad.py::test_wide_margins[1-x11-MonadWideMarginsConfig] FAILED test/layouts/test_xmonad.py::test_tall_growmain_solosecondary[1-x11-MonadTallConfig] FAILED test/layouts/test_xmonad.py::test_wide_growmain_solosecondary[1-x11-MonadWideConfig] FAILED test/layouts/test_xmonad.py::test_tall_growmain_multiplesecondary[1-x11-MonadTallConfig] FAILED test/layouts/test_xmonad.py::test_wide_growmain_multiplesecondary[1-x11-MonadWideConfig] FAILED test/layouts/test_xmonad.py::test_tall_growsecondary_solosecondary[1-x11-MonadTallConfig] FAILED test/layouts/test_xmonad.py::test_wide_growsecondary_solosecondary[1-x11-MonadWideConfig] FAILED test/layouts/test_xmonad.py::test_tall_growsecondary_multiplesecondary[1-x11-MonadTallConfig] FAILED test/layouts/test_xmonad.py::test_wide_growsecondary_multiplesecondary[1-x11-MonadWideConfig] FAILED test/layouts/test_xmonad.py::test_tall_flip[1-x11-MonadTallConfig] - A... FAILED test/layouts/test_xmonad.py::test_wide_flip[1-x11-MonadWideConfig] - A... FAILED test/layouts/test_xmonad.py::test_tall_set_and_reset[1-x11-MonadTallConfig] FAILED test/layouts/test_xmonad.py::test_wide_set_and_reset[1-x11-MonadWideConfig] FAILED test/layouts/test_xmonad.py::test_tall_shuffle[1-x11-MonadTallConfig] FAILED test/layouts/test_xmonad.py::test_wide_shuffle[1-x11-MonadWideConfig] FAILED test/layouts/test_xmonad.py::test_tall_swap[1-x11-MonadTallConfig] - A... FAILED test/layouts/test_xmonad.py::test_wide_swap[1-x11-MonadWideConfig] - A... FAILED test/layouts/test_xmonad.py::test_tall_window_focus_cycle[1-x11-MonadTallConfig] FAILED test/layouts/test_xmonad.py::test_wide_window_focus_cycle[1-x11-MonadWideConfig] FAILED test/layouts/test_xmonad.py::test_three_col_add_clients[1-x11-MonadThreeColConfig] FAILED test/layouts/test_xmonad.py::test_three_col_shuffle[1-x11-MonadThreeColConfig] FAILED test/layouts/test_xmonad.py::test_three_col_swap_main[1-x11-MonadThreeColConfig] FAILED test/layouts/test_zoomy.py::test_zoomy_one[1-x11-ZoomyConfig] - Assert... FAILED test/layouts/test_zoomy.py::test_zoomy_window_focus_cycle[1-x11-ZoomyConfig] FAILED test/widgets/test_notify.py::test_invoke_and_clear[1-x11] - AssertionE... FAILED test/widgets/test_window_count.py::test_different_screens[1-x11-DifferentScreens] FAILED test/widgets/test_window_count.py::test_window_count[1-x11] - Assertio... FAILED test/widgets/test_windowname.py::test_window_names[1-x11-WindowNameConfig] FAILED test/widgets/test_windowtabs.py::test_single_window_states[1-x11-WindowTabsConfig] FAILED test/widgets/test_windowtabs.py::test_multiple_windows[1-x11-WindowTabsConfig] FAILED test/widgets/test_windowtabs.py::test_selected[1-x11-WindowTabsConfig] FAILED test/test_manager.py::test_unmap_noscreen[x11-2-BareConfig] - Assertio... FAILED test/test_manager.py::test_unmap_noscreen[x11-2-ManagerConfig] - Asser... ERROR test/test_bar.py::test_draw[1-x11-GBConfig] - AssertionError: Error lau... ERROR test/test_bar.py::test_prompt[1-x11-GBConfig] - AssertionError: Error l... ERROR test/test_command.py::test_layout_filter[1-x11-CallConfig] - AssertionE... ERROR test/test_command.py::test_cmd_commands[1-x11-ServerConfig] - Assertion... ERROR test/test_command.py::test_cmd_eval_namespace[1-x11-ServerConfig] - Ass... ERROR test/test_command.py::test_call_unknown[1-x11-ServerConfig] - Assertion... ERROR test/test_command.py::test_items_bar[1-x11-ServerConfig] - AssertionErr... ERROR test/test_manager.py::test_clone_dim[1-x11-ManagerConfig-xephyr0] - Ass... ERROR test/test_manager.py::test_focus_stays_on_layout_switch[1-x11-ManagerConfig] ERROR test/test_manager.py::test_unmap[1-x11-BareConfig] - AssertionError: Er... ERROR test/test_manager.py::test_unmap[1-x11-ManagerConfig] - AssertionError:... ERROR test/test_manager.py::test_setgroup[x11-1-BareConfig] - AssertionError:... ERROR test/test_manager.py::test_setgroup[x11-1-ManagerConfig] - AssertionErr... ERROR test/test_manager.py::test_unmap_noscreen[x11-1-BareConfig] - Assertion... ERROR test/test_manager.py::test_unmap_noscreen[x11-1-ManagerConfig] - Assert... ERROR test/test_manager.py::test_change_loglevel[1-x11-ManagerConfig] - Asser... ERROR test/test_manager.py::test_windows_from_commands[1-x11-CommandsConfig] ERROR test/test_qtile_cmd.py::test_qtile_cmd[1-x11-ServerConfig] - AssertionE... ERROR test/test_qtile_cmd.py::test_display_kb[1-x11-ServerConfig] - Assertion... ERROR test/test_scratchpad.py::test_sratchpad_with_matcher[1-x11-ScratchPadBaseConfic] ERROR test/test_scratchpad.py::test_toggling_single[1-x11-ScratchPadBaseConfic] ERROR test/test_scratchpad.py::test_toggling[1-x11-ScratchPadBaseConfic] - As... ERROR test/test_scratchpad.py::test_focus_cycle[1-x11-ScratchPadBaseConfic] ERROR test/test_scratchpad.py::test_kill[1-x11-ScratchPadBaseConfic] - Assert... ERROR test/test_scratchpad.py::test_floating_toggle[1-x11-ScratchPadBaseConfic] ERROR test/test_scratchpad.py::test_stepping_between_groups_should_skip_scratchpads[1-x11-ScratchPadBaseConfic] = 209 failed, 1250 passed, 53 skipped, 2 xfailed, 26 errors in 1166.60s (0:19:26) = ==> ERROR: A failure occurred in check(). Aborting... ==> ERROR: Build failed, check /data/alhp-workspace/chroot/build_30da7f5b-6c8e-4094-857e-b59170ca7201/build