Wed May 8 13:38:09 UTC 2024 I: starting to build textual/trixie/armhf on jenkins on '2024-05-08 13:38' Wed May 8 13:38:09 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/armhf_28/4798/console.log Wed May 8 13:38:09 UTC 2024 I: Downloading source for trixie/textual=0.52.1-1 --2024-05-08 13:38:10-- http://deb.debian.org/debian/pool/main/t/textual/textual_0.52.1-1.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2189 (2.1K) [text/prs.lines.tag] Saving to: ‘textual_0.52.1-1.dsc’ 0K .. 100% 349M=0s 2024-05-08 13:38:10 (349 MB/s) - ‘textual_0.52.1-1.dsc’ saved [2189/2189] Wed May 8 13:38:10 UTC 2024 I: textual_0.52.1-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: textual Binary: python3-textual Architecture: all Version: 0.52.1-1 Maintainer: Sandro Tosi Homepage: https://github.com/willmcgugan/textual Standards-Version: 4.6.2 Vcs-Browser: https://salsa.debian.org/morph/textual Vcs-Git: https://salsa.debian.org/morph/textual.git Testsuite: autopkgtest-pkg-pybuild Build-Depends: debhelper-compat (= 13), pybuild-plugin-pyproject, python3-all, python3-click , python3-jinja2 , python3-linkify-it , python3-poetry, python3-pytest (>= 6.2.3) , python3-pytest-asyncio , python3-rich (>= 10.7.0) , python3-syrupy , python3-typing-extensions Package-List: python3-textual deb python optional arch=all Checksums-Sha1: 97f1af6d53fb03f4cc87236f10f2472ed531af23 24987696 textual_0.52.1.orig.tar.xz da330efcd2d189fbcfbd711ef04654a75bedea4a 3060 textual_0.52.1-1.debian.tar.xz Checksums-Sha256: 58421f75a37fcd8b7fe22c702429e69a5bda212e533c6901672265b1bc0b3cc7 24987696 textual_0.52.1.orig.tar.xz 30265beda4c53bbe0860ce174a88d4a278c5f8d20be1cad5cd488764df678ba0 3060 textual_0.52.1-1.debian.tar.xz Files: d99858b6c68a0973c8332e2833c96fda 24987696 textual_0.52.1.orig.tar.xz 710a2d8cc0a30ece4a77c92d6c33a046 3060 textual_0.52.1-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEufrTGSrz5KUwnZ05h588mTgBqU8FAmXr3LkACgkQh588mTgB qU95HxAAzpucVDje8bn+UBsnOU3rWhmBm2yrS0FC6oiAact02WA4fEEa+/MfB8rc 9AcrHdw2W+fl2vgtQll4LSr45jRa1PpWHpro7mqHAkwBHVCBDvhxQghN5FM17CnZ AF/9KjoWJt6/5WThof3LGxNT1O+U7dNiH7j0eC0+tv24JGwJ9RLsKQUU/pejb3Kb 7satXxPvfV2fkPRhgVfCZV27Vcz3MzduGHB5NRl9bIvq/9NlzmelF9aYqnPBwLBO Qg4vAA9+DPaLfp4hFzQh3m3cx2k8xT3cKNvSqDX/VQ+MUPVK9PIIOsAIn9ZmGsLF AWxywSG+7dK23wlJ7BbhHQzgGTo/pi/Hr8g0BifPOAw6pO1IoMU4nrDBsKJ+ZHrQ c2aZy80801CbErsfYSIV/sZgeOxiyNIvbv5SdLm1Lmm5SvzopoQEHPm3Mf+alag2 U5/6OVmsYPTMQw2F4soNW//nTDN15TJEstFNRNmCHgeG+EdbsOR2bo71mZt+tH+u 6mHRxFyRNRoAYfbIett9g7OK9VzaY2QhzTnsZDJQaHUlX9ndYcsd6168W7TRW9Uo rGLOPBvPaUCkAHy9G++HbuiqjvoKsBIdFdGryuL8jG0+irbEzuoKQyJIYxVMl98w HV4DhhqfSxrnvw9oDSBXE56uyZ68tGlGlLIjcxea6D55SrHGbQI= =Zz39 -----END PGP SIGNATURE----- Wed May 8 13:38:10 UTC 2024 I: Checking whether the package is not for us Wed May 8 13:38:10 UTC 2024 I: Starting 1st build on remote node virt64a-armhf-rb.debian.net. Wed May 8 13:38:10 UTC 2024 I: Preparing to do remote build '1' on virt64a-armhf-rb.debian.net. Wed May 8 13:49:56 UTC 2024 I: Deleting $TMPDIR on virt64a-armhf-rb.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Wed May 8 01:38:21 -12 2024 I: pbuilder-time-stamp: 1715175501 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/trixie-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [textual_0.52.1-1.dsc] I: copying [./textual_0.52.1.orig.tar.xz] I: copying [./textual_0.52.1-1.debian.tar.xz] I: Extracting source gpgv: Signature made Sat Mar 9 03:51:21 2024 gpgv: using RSA key B9FAD3192AF3E4A5309D9D39879F3C993801A94F gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./textual_0.52.1-1.dsc: no acceptable signature found dpkg-source: info: extracting textual in textual-0.52.1 dpkg-source: info: unpacking textual_0.52.1.orig.tar.xz dpkg-source: info: unpacking textual_0.52.1-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/2629/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='armhf' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' DISTRIBUTION='trixie' HOME='/root' HOST_ARCH='armhf' IFS=' ' INVOCATION_ID='2cd2d7f59e2c42418169bdb60131f684' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='2629' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.eu5U0Ku4/pbuilderrc_Ko5e --distribution trixie --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.eu5U0Ku4/b1 --logfile b1/build.log textual_0.52.1-1.dsc' SUDO_GID='114' SUDO_UID='108' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://10.0.0.15:3142/' I: uname -a Linux virt64a 6.1.0-21-arm64 #1 SMP Debian 6.1.90-1 (2024-05-03) aarch64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 May 8 11:25 /bin -> usr/bin I: user script /srv/workspace/pbuilder/2629/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: armhf Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), pybuild-plugin-pyproject, python3-all, python3-click, python3-jinja2, python3-linkify-it, python3-poetry, python3-pytest (>= 6.2.3), python3-pytest-asyncio, python3-rich (>= 10.7.0), python3-syrupy, python3-typing-extensions dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19444 files and directories currently installed.) Preparing to unpack .../pbuilder-satisfydepends-dummy.deb ... Unpacking pbuilder-satisfydepends-dummy (0.invalid.0) ... dpkg: pbuilder-satisfydepends-dummy: dependency problems, but configuring anyway as you requested: pbuilder-satisfydepends-dummy depends on debhelper-compat (= 13); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on pybuild-plugin-pyproject; however: Package pybuild-plugin-pyproject is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-click; however: Package python3-click is not installed. pbuilder-satisfydepends-dummy depends on python3-jinja2; however: Package python3-jinja2 is not installed. pbuilder-satisfydepends-dummy depends on python3-linkify-it; however: Package python3-linkify-it is not installed. pbuilder-satisfydepends-dummy depends on python3-poetry; however: Package python3-poetry is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest (>= 6.2.3); however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-asyncio; however: Package python3-pytest-asyncio is not installed. pbuilder-satisfydepends-dummy depends on python3-rich (>= 10.7.0); however: Package python3-rich is not installed. pbuilder-satisfydepends-dummy depends on python3-syrupy; however: Package python3-syrupy is not installed. pbuilder-satisfydepends-dummy depends on python3-typing-extensions; however: Package python3-typing-extensions is not installed. Setting up pbuilder-satisfydepends-dummy (0.invalid.0) ... Reading package lists... Building dependency tree... Reading state information... Initializing package states... Writing extended state information... Building tag database... pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) pbuilder-satisfydepends-dummy is already installed at the requested version (0.invalid.0) The following NEW packages will be installed: autoconf{a} automake{a} autopoint{a} autotools-dev{a} bsdextrautils{a} ca-certificates{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libicu72{a} libmagic-mgc{a} libmagic1t64{a} libpipeline1{a} libpython3-stdlib{a} libpython3.11-minimal{a} libpython3.11-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libreadline8t64{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} po-debconf{a} pybuild-plugin-pyproject{a} python3{a} python3-all{a} python3-async-generator{a} python3-build{a} python3-cachecontrol{a} python3-certifi{a} python3-cffi-backend{a} python3-chardet{a} python3-charset-normalizer{a} python3-cleo{a} python3-click{a} python3-colorama{a} python3-crashtest{a} python3-cryptography{a} python3-distlib{a} python3-distutils{a} python3-dulwich{a} python3-fastjsonschema{a} python3-filelock{a} python3-idna{a} python3-importlib-metadata{a} python3-iniconfig{a} python3-installer{a} python3-jaraco.classes{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jeepney{a} python3-jinja2{a} python3-keyring{a} python3-lib2to3{a} python3-linkify-it{a} python3-lockfile{a} python3-markdown-it{a} python3-markupsafe{a} python3-mdurl{a} python3-minimal{a} python3-more-itertools{a} python3-msgpack{a} python3-packaging{a} python3-pexpect{a} python3-pip-whl{a} python3-pkg-resources{a} python3-pkginfo{a} python3-platformdirs{a} python3-pluggy{a} python3-poetry{a} python3-poetry-core{a} python3-poetry-plugin-export{a} python3-ptyprocess{a} python3-pygments{a} python3-pylev{a} python3-pyproject-hooks{a} python3-pytest{a} python3-pytest-asyncio{a} python3-requests{a} python3-requests-toolbelt{a} python3-rich{a} python3-secretstorage{a} python3-setuptools{a} python3-setuptools-whl{a} python3-shellingham{a} python3-six{a} python3-syrupy{a} python3-toml{a} python3-tomlkit{a} python3-trove-classifiers{a} python3-typing-extensions{a} python3-uc-micro{a} python3-urllib3{a} python3-virtualenv{a} python3-wheel{a} python3-wheel-whl{a} python3-zipp{a} python3.11{a} python3.11-minimal{a} python3.12{a} python3.12-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} The following packages are RECOMMENDED but will NOT be installed: curl libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx python-pkginfo-doc python3-babel python3-dev python3-fastimport wget 0 packages upgraded, 122 newly installed, 0 to remove and 0 not upgraded. Need to get 39.3 MB of archives. After unpacking 146 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main armhf libpython3.11-minimal armhf 3.11.9-1 [805 kB] Get: 2 http://deb.debian.org/debian trixie/main armhf libexpat1 armhf 2.6.2-1 [83.5 kB] Get: 3 http://deb.debian.org/debian trixie/main armhf python3.11-minimal armhf 3.11.9-1 [1600 kB] Get: 4 http://deb.debian.org/debian trixie/main armhf python3-minimal armhf 3.11.8-1 [26.3 kB] Get: 5 http://deb.debian.org/debian trixie/main armhf media-types all 10.1.0 [26.9 kB] Get: 6 http://deb.debian.org/debian trixie/main armhf netbase all 6.4 [12.8 kB] Get: 7 http://deb.debian.org/debian trixie/main armhf tzdata all 2024a-3 [255 kB] Get: 8 http://deb.debian.org/debian trixie/main armhf readline-common all 8.2-4 [69.3 kB] Get: 9 http://deb.debian.org/debian trixie/main armhf libreadline8t64 armhf 8.2-4 [145 kB] Get: 10 http://deb.debian.org/debian trixie/main armhf libpython3.11-stdlib armhf 3.11.9-1 [1704 kB] Get: 11 http://deb.debian.org/debian trixie/main armhf python3.11 armhf 3.11.9-1 [602 kB] Get: 12 http://deb.debian.org/debian trixie/main armhf libpython3-stdlib armhf 3.11.8-1 [9332 B] Get: 13 http://deb.debian.org/debian trixie/main armhf python3 armhf 3.11.8-1 [27.4 kB] Get: 14 http://deb.debian.org/debian trixie/main armhf libpython3.12-minimal armhf 3.12.3-1 [795 kB] Get: 15 http://deb.debian.org/debian trixie/main armhf python3.12-minimal armhf 3.12.3-1 [1783 kB] Get: 16 http://deb.debian.org/debian trixie/main armhf sensible-utils all 0.0.22 [22.4 kB] Get: 17 http://deb.debian.org/debian trixie/main armhf openssl armhf 3.2.1-3 [1326 kB] Get: 18 http://deb.debian.org/debian trixie/main armhf ca-certificates all 20240203 [158 kB] Get: 19 http://deb.debian.org/debian trixie/main armhf libmagic-mgc armhf 1:5.45-3 [314 kB] Get: 20 http://deb.debian.org/debian trixie/main armhf libmagic1t64 armhf 1:5.45-3 [98.1 kB] Get: 21 http://deb.debian.org/debian trixie/main armhf file armhf 1:5.45-3 [42.0 kB] Get: 22 http://deb.debian.org/debian trixie/main armhf gettext-base armhf 0.21-14+b1 [157 kB] Get: 23 http://deb.debian.org/debian trixie/main armhf libuchardet0 armhf 0.0.8-1+b1 [65.7 kB] Get: 24 http://deb.debian.org/debian trixie/main armhf groff-base armhf 1.23.0-4 [1090 kB] Get: 25 http://deb.debian.org/debian trixie/main armhf bsdextrautils armhf 2.40-8 [85.6 kB] Get: 26 http://deb.debian.org/debian trixie/main armhf libpipeline1 armhf 1.5.7-2 [33.3 kB] Get: 27 http://deb.debian.org/debian trixie/main armhf man-db armhf 2.12.1-1 [1375 kB] Get: 28 http://deb.debian.org/debian trixie/main armhf m4 armhf 1.4.19-4 [264 kB] Get: 29 http://deb.debian.org/debian trixie/main armhf autoconf all 2.71-3 [332 kB] Get: 30 http://deb.debian.org/debian trixie/main armhf autotools-dev all 20220109.1 [51.6 kB] Get: 31 http://deb.debian.org/debian trixie/main armhf automake all 1:1.16.5-1.3 [823 kB] Get: 32 http://deb.debian.org/debian trixie/main armhf autopoint all 0.21-14 [496 kB] Get: 33 http://deb.debian.org/debian trixie/main armhf libdebhelper-perl all 13.15.3 [88.0 kB] Get: 34 http://deb.debian.org/debian trixie/main armhf libtool all 2.4.7-7 [517 kB] Get: 35 http://deb.debian.org/debian trixie/main armhf dh-autoreconf all 20 [17.1 kB] Get: 36 http://deb.debian.org/debian trixie/main armhf libarchive-zip-perl all 1.68-1 [104 kB] Get: 37 http://deb.debian.org/debian trixie/main armhf libsub-override-perl all 0.10-1 [10.6 kB] Get: 38 http://deb.debian.org/debian trixie/main armhf libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 39 http://deb.debian.org/debian trixie/main armhf dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 40 http://deb.debian.org/debian trixie/main armhf libelf1t64 armhf 0.191-1+b1 [183 kB] Get: 41 http://deb.debian.org/debian trixie/main armhf dwz armhf 0.15-1+b2 [106 kB] Get: 42 http://deb.debian.org/debian trixie/main armhf libicu72 armhf 72.1-4+b1 [9070 kB] Get: 43 http://deb.debian.org/debian trixie/main armhf libxml2 armhf 2.9.14+dfsg-1.3+b3 [598 kB] Get: 44 http://deb.debian.org/debian trixie/main armhf gettext armhf 0.21-14+b1 [1230 kB] Get: 45 http://deb.debian.org/debian trixie/main armhf intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 46 http://deb.debian.org/debian trixie/main armhf po-debconf all 1.0.21+nmu1 [248 kB] Get: 47 http://deb.debian.org/debian trixie/main armhf debhelper all 13.15.3 [901 kB] Get: 48 http://deb.debian.org/debian trixie/main armhf python3-pkg-resources all 68.1.2-2 [241 kB] Get: 49 http://deb.debian.org/debian trixie/main armhf python3-lib2to3 all 3.12.3-1 [77.6 kB] Get: 50 http://deb.debian.org/debian trixie/main armhf python3-distutils all 3.12.3-1 [131 kB] Get: 51 http://deb.debian.org/debian trixie/main armhf python3-setuptools all 68.1.2-2 [468 kB] Get: 52 http://deb.debian.org/debian trixie/main armhf dh-python all 6.20240422 [107 kB] Get: 53 http://deb.debian.org/debian trixie/main armhf libpython3.12-stdlib armhf 3.12.3-1 [1808 kB] Get: 54 http://deb.debian.org/debian trixie/main armhf python3-typing-extensions all 4.10.0-1 [66.2 kB] Get: 55 http://deb.debian.org/debian trixie/main armhf python3-more-itertools all 10.2.0-1 [59.9 kB] Get: 56 http://deb.debian.org/debian trixie/main armhf python3-zipp all 1.0.0-6 [6696 B] Get: 57 http://deb.debian.org/debian trixie/main armhf python3-importlib-metadata all 4.12.0-1 [24.9 kB] Get: 58 http://deb.debian.org/debian trixie/main armhf python3-packaging all 24.0-1 [45.5 kB] Get: 59 http://deb.debian.org/debian trixie/main armhf python3-pyproject-hooks all 1.0.0-2 [10.6 kB] Get: 60 http://deb.debian.org/debian trixie/main armhf python3-toml all 0.10.2-1 [16.2 kB] Get: 61 http://deb.debian.org/debian trixie/main armhf python3-wheel all 0.43.0-1 [52.5 kB] Get: 62 http://deb.debian.org/debian trixie/main armhf python3-build all 1.1.1-1 [32.5 kB] Get: 63 http://deb.debian.org/debian trixie/main armhf python3-installer all 0.7.0+dfsg1-3 [18.6 kB] Get: 64 http://deb.debian.org/debian trixie/main armhf pybuild-plugin-pyproject all 6.20240422 [11.1 kB] Get: 65 http://deb.debian.org/debian trixie/main armhf python3.12 armhf 3.12.3-1 [659 kB] Get: 66 http://deb.debian.org/debian trixie/main armhf python3-all armhf 3.11.8-1 [1056 B] Get: 67 http://deb.debian.org/debian trixie/main armhf python3-async-generator all 1.10-4 [17.4 kB] Get: 68 http://deb.debian.org/debian trixie/main armhf python3-certifi all 2023.11.17-1 [155 kB] Get: 69 http://deb.debian.org/debian trixie/main armhf python3-charset-normalizer all 3.3.2-1 [51.6 kB] Get: 70 http://deb.debian.org/debian trixie/main armhf python3-idna all 3.6-2 [37.0 kB] Get: 71 http://deb.debian.org/debian trixie/main armhf python3-six all 1.16.0-6 [16.3 kB] Get: 72 http://deb.debian.org/debian trixie/main armhf python3-urllib3 all 1.26.18-2 [116 kB] Get: 73 http://deb.debian.org/debian trixie/main armhf python3-chardet all 5.2.0+dfsg-1 [107 kB] Get: 74 http://deb.debian.org/debian trixie/main armhf python3-requests all 2.31.0+dfsg-1 [68.6 kB] Get: 75 http://deb.debian.org/debian trixie/main armhf python3-msgpack armhf 1.0.3-3+b1 [89.1 kB] Get: 76 http://deb.debian.org/debian trixie/main armhf python3-cachecontrol all 0.14.0-1 [18.6 kB] Get: 77 http://deb.debian.org/debian trixie/main armhf python3-cffi-backend armhf 1.16.0-2+b2 [99.1 kB] Get: 78 http://deb.debian.org/debian trixie/main armhf python3-crashtest all 0.4.1-1 [6740 B] Get: 79 http://deb.debian.org/debian trixie/main armhf python3-pylev all 1.4.0-1 [6496 B] Get: 80 http://deb.debian.org/debian trixie/main armhf python3-cleo all 2.1.0-2 [54.4 kB] Get: 81 http://deb.debian.org/debian trixie/main armhf python3-colorama all 0.4.6-4 [36.2 kB] Get: 82 http://deb.debian.org/debian trixie/main armhf python3-click all 8.1.7-1 [94.0 kB] Get: 83 http://deb.debian.org/debian trixie/main armhf python3-cryptography armhf 42.0.5-2 [1002 kB] Get: 84 http://deb.debian.org/debian trixie/main armhf python3-distlib all 0.3.8-1 [257 kB] Get: 85 http://deb.debian.org/debian trixie/main armhf python3-dulwich armhf 0.21.6-1+b1 [326 kB] Get: 86 http://deb.debian.org/debian trixie/main armhf python3-fastjsonschema all 2.19.1-1 [21.3 kB] Get: 87 http://deb.debian.org/debian trixie/main armhf python3-filelock all 3.14.0-1 [10.9 kB] Get: 88 http://deb.debian.org/debian trixie/main armhf python3-iniconfig all 1.1.1-2 [6396 B] Get: 89 http://deb.debian.org/debian trixie/main armhf python3-jaraco.classes all 3.2.1-4 [7232 B] Get: 90 http://deb.debian.org/debian trixie/main armhf python3-jaraco.context all 4.3.0-1 [7616 B] Get: 91 http://deb.debian.org/debian trixie/main armhf python3-jaraco.functools all 4.0.0-1 [10.6 kB] Get: 92 http://deb.debian.org/debian trixie/main armhf python3-jeepney all 0.8.0-3 [34.0 kB] Get: 93 http://deb.debian.org/debian trixie/main armhf python3-markupsafe armhf 2.1.5-1 [13.9 kB] Get: 94 http://deb.debian.org/debian trixie/main armhf python3-jinja2 all 3.1.3-1 [119 kB] Get: 95 http://deb.debian.org/debian trixie/main armhf python3-secretstorage all 3.3.3-3 [16.1 kB] Get: 96 http://deb.debian.org/debian trixie/main armhf python3-keyring all 25.2.0-1 [53.6 kB] Get: 97 http://deb.debian.org/debian trixie/main armhf python3-uc-micro all 1.0.3-1 [5744 B] Get: 98 http://deb.debian.org/debian trixie/main armhf python3-linkify-it all 2.0.3-1 [18.7 kB] Get: 99 http://deb.debian.org/debian trixie/main armhf python3-lockfile all 1:0.12.2-3 [15.7 kB] Get: 100 http://deb.debian.org/debian trixie/main armhf python3-mdurl all 0.1.2-1 [9444 B] Get: 101 http://deb.debian.org/debian trixie/main armhf python3-markdown-it all 3.0.0-2 [62.5 kB] Get: 102 http://deb.debian.org/debian trixie/main armhf python3-ptyprocess all 0.7.0-5 [14.7 kB] Get: 103 http://deb.debian.org/debian trixie/main armhf python3-pexpect all 4.9-2 [55.5 kB] Get: 104 http://deb.debian.org/debian trixie/main armhf python3-pip-whl all 24.0+dfsg-2 [1774 kB] Get: 105 http://deb.debian.org/debian trixie/main armhf python3-pkginfo all 1.10.0-1 [19.1 kB] Get: 106 http://deb.debian.org/debian trixie/main armhf python3-platformdirs all 4.2.1-1 [16.0 kB] Get: 107 http://deb.debian.org/debian trixie/main armhf python3-pluggy all 1.5.0-1 [26.9 kB] Get: 108 http://deb.debian.org/debian trixie/main armhf python3-poetry-core all 1.9.0-1 [209 kB] Get: 109 http://deb.debian.org/debian trixie/main armhf python3-poetry-plugin-export all 1.6.0-2 [11.6 kB] Get: 110 http://deb.debian.org/debian trixie/main armhf python3-requests-toolbelt all 1.0.0-2 [40.0 kB] Get: 111 http://deb.debian.org/debian trixie/main armhf python3-shellingham all 1.5.4-1 [11.0 kB] Get: 112 http://deb.debian.org/debian trixie/main armhf python3-tomlkit all 0.12.4-1 [41.7 kB] Get: 113 http://deb.debian.org/debian trixie/main armhf python3-trove-classifiers all 2024.1.31-1 [9968 B] Get: 114 http://deb.debian.org/debian trixie/main armhf python3-setuptools-whl all 68.1.2-2 [797 kB] Get: 115 http://deb.debian.org/debian trixie/main armhf python3-wheel-whl all 0.43.0-1 [68.8 kB] Get: 116 http://deb.debian.org/debian trixie/main armhf python3-virtualenv all 20.26.1+ds-1 [70.7 kB] Get: 117 http://deb.debian.org/debian trixie/main armhf python3-poetry all 1.8.2+dfsg-1 [179 kB] Get: 118 http://deb.debian.org/debian trixie/main armhf python3-pygments all 2.17.2+dfsg-1 [818 kB] Get: 119 http://deb.debian.org/debian trixie/main armhf python3-pytest all 7.4.4-3 [239 kB] Get: 120 http://deb.debian.org/debian trixie/main armhf python3-pytest-asyncio all 0.20.3-1.2 [13.3 kB] Get: 121 http://deb.debian.org/debian trixie/main armhf python3-rich all 13.7.1-1 [201 kB] Get: 122 http://deb.debian.org/debian trixie/main armhf python3-syrupy all 4.6.1-1 [51.1 kB] Fetched 39.3 MB in 1s (27.5 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libpython3.11-minimal:armhf. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19444 files and directories currently installed.) Preparing to unpack .../libpython3.11-minimal_3.11.9-1_armhf.deb ... Unpacking libpython3.11-minimal:armhf (3.11.9-1) ... Selecting previously unselected package libexpat1:armhf. Preparing to unpack .../libexpat1_2.6.2-1_armhf.deb ... Unpacking libexpat1:armhf (2.6.2-1) ... Selecting previously unselected package python3.11-minimal. Preparing to unpack .../python3.11-minimal_3.11.9-1_armhf.deb ... Unpacking python3.11-minimal (3.11.9-1) ... Setting up libpython3.11-minimal:armhf (3.11.9-1) ... Setting up libexpat1:armhf (2.6.2-1) ... Setting up python3.11-minimal (3.11.9-1) ... Selecting previously unselected package python3-minimal. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19760 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.11.8-1_armhf.deb ... Unpacking python3-minimal (3.11.8-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2024a-3_all.deb ... Unpacking tzdata (2024a-3) ... Selecting previously unselected package readline-common. Preparing to unpack .../4-readline-common_8.2-4_all.deb ... Unpacking readline-common (8.2-4) ... Selecting previously unselected package libreadline8t64:armhf. Preparing to unpack .../5-libreadline8t64_8.2-4_armhf.deb ... Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8 to /lib/arm-linux-gnueabihf/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8.2 to /lib/arm-linux-gnueabihf/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8 to /lib/arm-linux-gnueabihf/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8.2 to /lib/arm-linux-gnueabihf/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:armhf (8.2-4) ... Selecting previously unselected package libpython3.11-stdlib:armhf. Preparing to unpack .../6-libpython3.11-stdlib_3.11.9-1_armhf.deb ... Unpacking libpython3.11-stdlib:armhf (3.11.9-1) ... Selecting previously unselected package python3.11. Preparing to unpack .../7-python3.11_3.11.9-1_armhf.deb ... Unpacking python3.11 (3.11.9-1) ... Selecting previously unselected package libpython3-stdlib:armhf. Preparing to unpack .../8-libpython3-stdlib_3.11.8-1_armhf.deb ... Unpacking libpython3-stdlib:armhf (3.11.8-1) ... Setting up python3-minimal (3.11.8-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20752 files and directories currently installed.) Preparing to unpack .../000-python3_3.11.8-1_armhf.deb ... Unpacking python3 (3.11.8-1) ... Selecting previously unselected package libpython3.12-minimal:armhf. Preparing to unpack .../001-libpython3.12-minimal_3.12.3-1_armhf.deb ... Unpacking libpython3.12-minimal:armhf (3.12.3-1) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../002-python3.12-minimal_3.12.3-1_armhf.deb ... Unpacking python3.12-minimal (3.12.3-1) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../003-sensible-utils_0.0.22_all.deb ... Unpacking sensible-utils (0.0.22) ... Selecting previously unselected package openssl. Preparing to unpack .../004-openssl_3.2.1-3_armhf.deb ... Unpacking openssl (3.2.1-3) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../005-ca-certificates_20240203_all.deb ... Unpacking ca-certificates (20240203) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../006-libmagic-mgc_1%3a5.45-3_armhf.deb ... Unpacking libmagic-mgc (1:5.45-3) ... Selecting previously unselected package libmagic1t64:armhf. Preparing to unpack .../007-libmagic1t64_1%3a5.45-3_armhf.deb ... Unpacking libmagic1t64:armhf (1:5.45-3) ... Selecting previously unselected package file. Preparing to unpack .../008-file_1%3a5.45-3_armhf.deb ... Unpacking file (1:5.45-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../009-gettext-base_0.21-14+b1_armhf.deb ... Unpacking gettext-base (0.21-14+b1) ... Selecting previously unselected package libuchardet0:armhf. Preparing to unpack .../010-libuchardet0_0.0.8-1+b1_armhf.deb ... Unpacking libuchardet0:armhf (0.0.8-1+b1) ... Selecting previously unselected package groff-base. Preparing to unpack .../011-groff-base_1.23.0-4_armhf.deb ... Unpacking groff-base (1.23.0-4) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../012-bsdextrautils_2.40-8_armhf.deb ... Unpacking bsdextrautils (2.40-8) ... Selecting previously unselected package libpipeline1:armhf. Preparing to unpack .../013-libpipeline1_1.5.7-2_armhf.deb ... Unpacking libpipeline1:armhf (1.5.7-2) ... Selecting previously unselected package man-db. Preparing to unpack .../014-man-db_2.12.1-1_armhf.deb ... Unpacking man-db (2.12.1-1) ... Selecting previously unselected package m4. Preparing to unpack .../015-m4_1.4.19-4_armhf.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../016-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../017-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../018-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../019-autopoint_0.21-14_all.deb ... Unpacking autopoint (0.21-14) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../020-libdebhelper-perl_13.15.3_all.deb ... Unpacking libdebhelper-perl (13.15.3) ... Selecting previously unselected package libtool. Preparing to unpack .../021-libtool_2.4.7-7_all.deb ... Unpacking libtool (2.4.7-7) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../022-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../023-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../024-libsub-override-perl_0.10-1_all.deb ... Unpacking libsub-override-perl (0.10-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../025-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../026-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1t64:armhf. Preparing to unpack .../027-libelf1t64_0.191-1+b1_armhf.deb ... Unpacking libelf1t64:armhf (0.191-1+b1) ... Selecting previously unselected package dwz. Preparing to unpack .../028-dwz_0.15-1+b2_armhf.deb ... Unpacking dwz (0.15-1+b2) ... Selecting previously unselected package libicu72:armhf. Preparing to unpack .../029-libicu72_72.1-4+b1_armhf.deb ... Unpacking libicu72:armhf (72.1-4+b1) ... Selecting previously unselected package libxml2:armhf. Preparing to unpack .../030-libxml2_2.9.14+dfsg-1.3+b3_armhf.deb ... Unpacking libxml2:armhf (2.9.14+dfsg-1.3+b3) ... Selecting previously unselected package gettext. Preparing to unpack .../031-gettext_0.21-14+b1_armhf.deb ... Unpacking gettext (0.21-14+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../032-intltool-debian_0.35.0+20060710.6_all.deb ... Unpacking intltool-debian (0.35.0+20060710.6) ... Selecting previously unselected package po-debconf. Preparing to unpack .../033-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../034-debhelper_13.15.3_all.deb ... Unpacking debhelper (13.15.3) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../035-python3-pkg-resources_68.1.2-2_all.deb ... Unpacking python3-pkg-resources (68.1.2-2) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../036-python3-lib2to3_3.12.3-1_all.deb ... Unpacking python3-lib2to3 (3.12.3-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../037-python3-distutils_3.12.3-1_all.deb ... Unpacking python3-distutils (3.12.3-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../038-python3-setuptools_68.1.2-2_all.deb ... Unpacking python3-setuptools (68.1.2-2) ... Selecting previously unselected package dh-python. Preparing to unpack .../039-dh-python_6.20240422_all.deb ... Unpacking dh-python (6.20240422) ... Selecting previously unselected package libpython3.12-stdlib:armhf. Preparing to unpack .../040-libpython3.12-stdlib_3.12.3-1_armhf.deb ... Unpacking libpython3.12-stdlib:armhf (3.12.3-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../041-python3-typing-extensions_4.10.0-1_all.deb ... Unpacking python3-typing-extensions (4.10.0-1) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../042-python3-more-itertools_10.2.0-1_all.deb ... Unpacking python3-more-itertools (10.2.0-1) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../043-python3-zipp_1.0.0-6_all.deb ... Unpacking python3-zipp (1.0.0-6) ... Selecting previously unselected package python3-importlib-metadata. Preparing to unpack .../044-python3-importlib-metadata_4.12.0-1_all.deb ... Unpacking python3-importlib-metadata (4.12.0-1) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../045-python3-packaging_24.0-1_all.deb ... Unpacking python3-packaging (24.0-1) ... Selecting previously unselected package python3-pyproject-hooks. Preparing to unpack .../046-python3-pyproject-hooks_1.0.0-2_all.deb ... Unpacking python3-pyproject-hooks (1.0.0-2) ... Selecting previously unselected package python3-toml. Preparing to unpack .../047-python3-toml_0.10.2-1_all.deb ... Unpacking python3-toml (0.10.2-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../048-python3-wheel_0.43.0-1_all.deb ... Unpacking python3-wheel (0.43.0-1) ... Selecting previously unselected package python3-build. Preparing to unpack .../049-python3-build_1.1.1-1_all.deb ... Unpacking python3-build (1.1.1-1) ... Selecting previously unselected package python3-installer. Preparing to unpack .../050-python3-installer_0.7.0+dfsg1-3_all.deb ... Unpacking python3-installer (0.7.0+dfsg1-3) ... Selecting previously unselected package pybuild-plugin-pyproject. Preparing to unpack .../051-pybuild-plugin-pyproject_6.20240422_all.deb ... Unpacking pybuild-plugin-pyproject (6.20240422) ... Selecting previously unselected package python3.12. Preparing to unpack .../052-python3.12_3.12.3-1_armhf.deb ... Unpacking python3.12 (3.12.3-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../053-python3-all_3.11.8-1_armhf.deb ... Unpacking python3-all (3.11.8-1) ... Selecting previously unselected package python3-async-generator. Preparing to unpack .../054-python3-async-generator_1.10-4_all.deb ... Unpacking python3-async-generator (1.10-4) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../055-python3-certifi_2023.11.17-1_all.deb ... Unpacking python3-certifi (2023.11.17-1) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../056-python3-charset-normalizer_3.3.2-1_all.deb ... Unpacking python3-charset-normalizer (3.3.2-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../057-python3-idna_3.6-2_all.deb ... Unpacking python3-idna (3.6-2) ... Selecting previously unselected package python3-six. Preparing to unpack .../058-python3-six_1.16.0-6_all.deb ... Unpacking python3-six (1.16.0-6) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../059-python3-urllib3_1.26.18-2_all.deb ... Unpacking python3-urllib3 (1.26.18-2) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../060-python3-chardet_5.2.0+dfsg-1_all.deb ... Unpacking python3-chardet (5.2.0+dfsg-1) ... Selecting previously unselected package python3-requests. Preparing to unpack .../061-python3-requests_2.31.0+dfsg-1_all.deb ... Unpacking python3-requests (2.31.0+dfsg-1) ... Selecting previously unselected package python3-msgpack. Preparing to unpack .../062-python3-msgpack_1.0.3-3+b1_armhf.deb ... Unpacking python3-msgpack (1.0.3-3+b1) ... Selecting previously unselected package python3-cachecontrol. Preparing to unpack .../063-python3-cachecontrol_0.14.0-1_all.deb ... Unpacking python3-cachecontrol (0.14.0-1) ... Selecting previously unselected package python3-cffi-backend:armhf. Preparing to unpack .../064-python3-cffi-backend_1.16.0-2+b2_armhf.deb ... Unpacking python3-cffi-backend:armhf (1.16.0-2+b2) ... Selecting previously unselected package python3-crashtest. Preparing to unpack .../065-python3-crashtest_0.4.1-1_all.deb ... Unpacking python3-crashtest (0.4.1-1) ... Selecting previously unselected package python3-pylev. Preparing to unpack .../066-python3-pylev_1.4.0-1_all.deb ... Unpacking python3-pylev (1.4.0-1) ... Selecting previously unselected package python3-cleo. Preparing to unpack .../067-python3-cleo_2.1.0-2_all.deb ... Unpacking python3-cleo (2.1.0-2) ... Selecting previously unselected package python3-colorama. Preparing to unpack .../068-python3-colorama_0.4.6-4_all.deb ... Unpacking python3-colorama (0.4.6-4) ... Selecting previously unselected package python3-click. Preparing to unpack .../069-python3-click_8.1.7-1_all.deb ... Unpacking python3-click (8.1.7-1) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../070-python3-cryptography_42.0.5-2_armhf.deb ... Unpacking python3-cryptography (42.0.5-2) ... Selecting previously unselected package python3-distlib. Preparing to unpack .../071-python3-distlib_0.3.8-1_all.deb ... Unpacking python3-distlib (0.3.8-1) ... Selecting previously unselected package python3-dulwich. Preparing to unpack .../072-python3-dulwich_0.21.6-1+b1_armhf.deb ... Unpacking python3-dulwich (0.21.6-1+b1) ... Selecting previously unselected package python3-fastjsonschema. Preparing to unpack .../073-python3-fastjsonschema_2.19.1-1_all.deb ... Unpacking python3-fastjsonschema (2.19.1-1) ... Selecting previously unselected package python3-filelock. Preparing to unpack .../074-python3-filelock_3.14.0-1_all.deb ... Unpacking python3-filelock (3.14.0-1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../075-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-jaraco.classes. Preparing to unpack .../076-python3-jaraco.classes_3.2.1-4_all.deb ... Unpacking python3-jaraco.classes (3.2.1-4) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../077-python3-jaraco.context_4.3.0-1_all.deb ... Unpacking python3-jaraco.context (4.3.0-1) ... Selecting previously unselected package python3-jaraco.functools. Preparing to unpack .../078-python3-jaraco.functools_4.0.0-1_all.deb ... Unpacking python3-jaraco.functools (4.0.0-1) ... Selecting previously unselected package python3-jeepney. Preparing to unpack .../079-python3-jeepney_0.8.0-3_all.deb ... Unpacking python3-jeepney (0.8.0-3) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../080-python3-markupsafe_2.1.5-1_armhf.deb ... Unpacking python3-markupsafe (2.1.5-1) ... Selecting previously unselected package python3-jinja2. Preparing to unpack .../081-python3-jinja2_3.1.3-1_all.deb ... Unpacking python3-jinja2 (3.1.3-1) ... Selecting previously unselected package python3-secretstorage. Preparing to unpack .../082-python3-secretstorage_3.3.3-3_all.deb ... Unpacking python3-secretstorage (3.3.3-3) ... Selecting previously unselected package python3-keyring. Preparing to unpack .../083-python3-keyring_25.2.0-1_all.deb ... Unpacking python3-keyring (25.2.0-1) ... Selecting previously unselected package python3-uc-micro. Preparing to unpack .../084-python3-uc-micro_1.0.3-1_all.deb ... Unpacking python3-uc-micro (1.0.3-1) ... Selecting previously unselected package python3-linkify-it. Preparing to unpack .../085-python3-linkify-it_2.0.3-1_all.deb ... Unpacking python3-linkify-it (2.0.3-1) ... Selecting previously unselected package python3-lockfile. Preparing to unpack .../086-python3-lockfile_1%3a0.12.2-3_all.deb ... Unpacking python3-lockfile (1:0.12.2-3) ... Selecting previously unselected package python3-mdurl. Preparing to unpack .../087-python3-mdurl_0.1.2-1_all.deb ... Unpacking python3-mdurl (0.1.2-1) ... Selecting previously unselected package python3-markdown-it. Preparing to unpack .../088-python3-markdown-it_3.0.0-2_all.deb ... Unpacking python3-markdown-it (3.0.0-2) ... Selecting previously unselected package python3-ptyprocess. Preparing to unpack .../089-python3-ptyprocess_0.7.0-5_all.deb ... Unpacking python3-ptyprocess (0.7.0-5) ... Selecting previously unselected package python3-pexpect. Preparing to unpack .../090-python3-pexpect_4.9-2_all.deb ... Unpacking python3-pexpect (4.9-2) ... Selecting previously unselected package python3-pip-whl. Preparing to unpack .../091-python3-pip-whl_24.0+dfsg-2_all.deb ... Unpacking python3-pip-whl (24.0+dfsg-2) ... Selecting previously unselected package python3-pkginfo. Preparing to unpack .../092-python3-pkginfo_1.10.0-1_all.deb ... Unpacking python3-pkginfo (1.10.0-1) ... Selecting previously unselected package python3-platformdirs. Preparing to unpack .../093-python3-platformdirs_4.2.1-1_all.deb ... Unpacking python3-platformdirs (4.2.1-1) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../094-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-poetry-core. Preparing to unpack .../095-python3-poetry-core_1.9.0-1_all.deb ... Unpacking python3-poetry-core (1.9.0-1) ... Selecting previously unselected package python3-poetry-plugin-export. Preparing to unpack .../096-python3-poetry-plugin-export_1.6.0-2_all.deb ... Unpacking python3-poetry-plugin-export (1.6.0-2) ... Selecting previously unselected package python3-requests-toolbelt. Preparing to unpack .../097-python3-requests-toolbelt_1.0.0-2_all.deb ... Unpacking python3-requests-toolbelt (1.0.0-2) ... Selecting previously unselected package python3-shellingham. Preparing to unpack .../098-python3-shellingham_1.5.4-1_all.deb ... Unpacking python3-shellingham (1.5.4-1) ... Selecting previously unselected package python3-tomlkit. Preparing to unpack .../099-python3-tomlkit_0.12.4-1_all.deb ... Unpacking python3-tomlkit (0.12.4-1) ... Selecting previously unselected package python3-trove-classifiers. Preparing to unpack .../100-python3-trove-classifiers_2024.1.31-1_all.deb ... Unpacking python3-trove-classifiers (2024.1.31-1) ... Selecting previously unselected package python3-setuptools-whl. Preparing to unpack .../101-python3-setuptools-whl_68.1.2-2_all.deb ... Unpacking python3-setuptools-whl (68.1.2-2) ... Selecting previously unselected package python3-wheel-whl. Preparing to unpack .../102-python3-wheel-whl_0.43.0-1_all.deb ... Unpacking python3-wheel-whl (0.43.0-1) ... Selecting previously unselected package python3-virtualenv. Preparing to unpack .../103-python3-virtualenv_20.26.1+ds-1_all.deb ... Unpacking python3-virtualenv (20.26.1+ds-1) ... Selecting previously unselected package python3-poetry. Preparing to unpack .../104-python3-poetry_1.8.2+dfsg-1_all.deb ... Unpacking python3-poetry (1.8.2+dfsg-1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../105-python3-pygments_2.17.2+dfsg-1_all.deb ... Unpacking python3-pygments (2.17.2+dfsg-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../106-python3-pytest_7.4.4-3_all.deb ... Unpacking python3-pytest (7.4.4-3) ... Selecting previously unselected package python3-pytest-asyncio. Preparing to unpack .../107-python3-pytest-asyncio_0.20.3-1.2_all.deb ... Unpacking python3-pytest-asyncio (0.20.3-1.2) ... Selecting previously unselected package python3-rich. Preparing to unpack .../108-python3-rich_13.7.1-1_all.deb ... Unpacking python3-rich (13.7.1-1) ... Selecting previously unselected package python3-syrupy. Preparing to unpack .../109-python3-syrupy_4.6.1-1_all.deb ... Unpacking python3-syrupy (4.6.1-1) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:armhf (1.5.7-2) ... Setting up python3-setuptools-whl (68.1.2-2) ... Setting up libicu72:armhf (72.1-4+b1) ... Setting up bsdextrautils (2.40-8) ... Setting up libmagic-mgc (1:5.45-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.15.3) ... Setting up libmagic1t64:armhf (1:5.45-3) ... Setting up libpython3.12-minimal:armhf (3.12.3-1) ... Setting up gettext-base (0.21-14+b1) ... Setting up m4 (1.4.19-4) ... Setting up file (1:5.45-3) ... Setting up libelf1t64:armhf (0.191-1+b1) ... Setting up tzdata (2024a-3) ... Current default time zone: 'Etc/UTC' Local time is now: Wed May 8 13:41:01 UTC 2024. Universal Time is now: Wed May 8 13:41:01 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.21-14) ... Setting up autoconf (2.71-3) ... Setting up dwz (0.15-1+b2) ... Setting up sensible-utils (0.0.22) ... Setting up libuchardet0:armhf (0.0.8-1+b1) ... Setting up libsub-override-perl (0.10-1) ... Setting up netbase (6.4) ... Setting up openssl (3.2.1-3) ... Setting up python3-wheel-whl (0.43.0-1) ... Setting up readline-common (8.2-4) ... Setting up libxml2:armhf (2.9.14+dfsg-1.3+b3) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up python3.12-minimal (3.12.3-1) ... Setting up gettext (0.21-14+b1) ... Setting up libtool (2.4.7-7) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 146 added, 0 removed; done. Setting up libreadline8t64:armhf (8.2-4) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up groff-base (1.23.0-4) ... Setting up libpython3.12-stdlib:armhf (3.12.3-1) ... Setting up python3-pip-whl (24.0+dfsg-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpython3.11-stdlib:armhf (3.11.9-1) ... Setting up python3.12 (3.12.3-1) ... Setting up man-db (2.12.1-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libpython3-stdlib:armhf (3.11.8-1) ... Setting up python3.11 (3.11.9-1) ... Setting up debhelper (13.15.3) ... Setting up python3 (3.11.8-1) ... Setting up python3-distlib (0.3.8-1) ... Setting up python3-markupsafe (2.1.5-1) ... Setting up python3-wheel (0.43.0-1) ... Setting up python3-uc-micro (1.0.3-1) ... Setting up python3-platformdirs (4.2.1-1) ... Setting up python3-six (1.16.0-6) ... Setting up python3-jinja2 (3.1.3-1) ... Setting up python3-packaging (24.0-1) ... Setting up python3-pyproject-hooks (1.0.0-2) ... Setting up python3-certifi (2023.11.17-1) ... Setting up python3-poetry-core (1.9.0-1) ... Setting up python3-mdurl (0.1.2-1) ... Setting up python3-crashtest (0.4.1-1) ... Setting up python3-idna (3.6-2) ... Setting up python3-typing-extensions (4.10.0-1) ... Setting up python3-toml (0.10.2-1) ... Setting up python3-jeepney (0.8.0-3) ... Setting up python3-installer (0.7.0+dfsg1-3) ... Setting up python3-urllib3 (1.26.18-2) ... Setting up python3-pluggy (1.5.0-1) ... Setting up python3-markdown-it (3.0.0-2) ... Setting up python3-fastjsonschema (2.19.1-1) ... Setting up python3-trove-classifiers (2024.1.31-1) ... Setting up python3-dulwich (0.21.6-1+b1) ... Setting up python3-linkify-it (2.0.3-1) ... Setting up python3-msgpack (1.0.3-3+b1) ... Setting up python3-build (1.1.1-1) ... Setting up python3-shellingham (1.5.4-1) ... Setting up python3-tomlkit (0.12.4-1) ... Setting up python3-lib2to3 (3.12.3-1) ... Setting up python3-cffi-backend:armhf (1.16.0-2+b2) ... Setting up python3-ptyprocess (0.7.0-5) ... Setting up python3-pkg-resources (68.1.2-2) ... Setting up python3-distutils (3.12.3-1) ... python3.12: can't get files for byte-compilation Setting up python3-more-itertools (10.2.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-lockfile (1:0.12.2-3) ... Setting up python3-filelock (3.14.0-1) ... Setting up python3-jaraco.classes (3.2.1-4) ... Setting up python3-jaraco.functools (4.0.0-1) ... Setting up python3-setuptools (68.1.2-2) ... Setting up python3-async-generator (1.10-4) ... Setting up python3-jaraco.context (4.3.0-1) ... Setting up python3-pkginfo (1.10.0-1) ... Setting up python3-colorama (0.4.6-4) ... Setting up python3-charset-normalizer (3.3.2-1) ... Setting up python3-pytest (7.4.4-3) ... Setting up python3-syrupy (4.6.1-1) ... Setting up python3-pylev (1.4.0-1) ... Setting up python3-virtualenv (20.26.1+ds-1) ... Setting up python3-all (3.11.8-1) ... Setting up python3-zipp (1.0.0-6) ... Setting up python3-click (8.1.7-1) ... Setting up python3-pygments (2.17.2+dfsg-1) ... Setting up python3-chardet (5.2.0+dfsg-1) ... Setting up python3-pexpect (4.9-2) ... Setting up python3-cryptography (42.0.5-2) ... Setting up python3-requests (2.31.0+dfsg-1) ... Setting up python3-pytest-asyncio (0.20.3-1.2) ... Setting up python3-cleo (2.1.0-2) ... Setting up python3-cachecontrol (0.14.0-1) ... Setting up dh-python (6.20240422) ... Setting up python3-requests-toolbelt (1.0.0-2) ... Setting up python3-importlib-metadata (4.12.0-1) ... Setting up python3-rich (13.7.1-1) ... Setting up pybuild-plugin-pyproject (6.20240422) ... Setting up python3-secretstorage (3.3.3-3) ... Setting up python3-keyring (25.2.0-1) ... Setting up python3-poetry (1.8.2+dfsg-1) ... Setting up python3-poetry-plugin-export (1.6.0-2) ... Processing triggers for libc-bin (2.38-7) ... Processing triggers for ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... fakeroot is already the newest version (1.33-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package I: Running cd /build/reproducible-path/textual-0.52.1/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../textual_0.52.1-1_source.changes dpkg-buildpackage: info: source package textual dpkg-buildpackage: info: source version 0.52.1-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Sandro Tosi dpkg-source --before-build . dpkg-buildpackage: info: host architecture armhf dpkg-source: info: using options from textual-0.52.1/debian/source/options: --extend-diff-ignore=^[^/]+.egg-info/ fakeroot debian/rules clean dh clean --with python3 --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules build dh build --with python3 --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" module I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.12_textual * Building wheel... Successfully built textual-0.52.1-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with "installer" module I: pybuild plugin_pyproject:129: Building wheel for python3.11 with "build" module I: pybuild base:311: python3.11 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.11_textual * Building wheel... Successfully built textual-0.52.1-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.11 with "installer" module dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.12_textual/build; python3.12 -m pytest -x -vvv -m "not syntax" --ignore=tests/test_features.py --ignore=tests/command_palette --ignore=tests/snapshot_tests -k "not test_footer_highlight_when_pushing_modal and not test_softbreak_split_links_rendered_correctly and not test_headings_that_look_like_they_contain_markup and not test_screen_stack_preserved and not test_clicking_outside_command_palette_closes_it and not test_command_source_environment and not test_escape_closes_when_no_list_visible and not test_register_language" ============================= test session starts ============================== platform linux -- Python 3.12.3, pytest-7.4.4, pluggy-1.5.0 -- /usr/bin/python3.12 cachedir: .pytest_cache rootdir: /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.12_textual/build configfile: pyproject.toml testpaths: tests plugins: syrupy-4.6.1, asyncio-0.20.3 asyncio: mode=Mode.AUTO collecting ... collected 2402 items / 8 deselected / 2394 selected tests/test_actions.py::test_parse_action[spam-spam-expected_arguments0] PASSED [ 0%] tests/test_actions.py::test_parse_action[hypothetical_action()-hypothetical_action-expected_arguments1] PASSED [ 0%] tests/test_actions.py::test_parse_action[another_action(1)-another_action-expected_arguments2] PASSED [ 0%] tests/test_actions.py::test_parse_action[foo(True, False)-foo-expected_arguments3] PASSED [ 0%] tests/test_actions.py::test_parse_action[foo.bar.baz(3, 3.15, 'Python')-foo.bar.baz-expected_arguments4] PASSED [ 0%] tests/test_actions.py::test_parse_action[m1234.n5678(None, [1, 2])-m1234.n5678-expected_arguments5] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f()-expected_arguments0] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(())-expected_arguments1] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2, 3))-expected_arguments2] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2, 3), (1, 2, 3))-expected_arguments3] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(((1, 2), (), None), 0)-expected_arguments4] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((((((1))))))-expected_arguments5] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(((((((((1, 2)))))))))-expected_arguments6] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2), (3, 4))-expected_arguments7] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((((((1, 2), (3, 4))))))-expected_arguments8] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('')-expected_arguments0] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f("")-expected_arguments1] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('''''')-expected_arguments2] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f("""""")-expected_arguments3] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('(')-expected_arguments4] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f(')')-expected_arguments5] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('f()')-expected_arguments6] PASSED [ 0%] tests/test_actions.py::test_parse_action_raises_error[foo(,,,,,)] PASSED [ 0%] tests/test_actions.py::test_parse_action_raises_error[bar(1 2 3 4 5)] PASSED [ 1%] tests/test_actions.py::test_parse_action_raises_error[baz.spam(Tru, Fals, in)] PASSED [ 1%] tests/test_actions.py::test_parse_action_raises_error[ham(not)] PASSED [ 1%] tests/test_actions.py::test_parse_action_raises_error[cheese((((()] PASSED [ 1%] tests/test_animation.py::test_animate_height PASSED [ 1%] tests/test_animation.py::test_scheduling_animation PASSED [ 1%] tests/test_animation.py::test_wait_for_current_animations PASSED [ 1%] tests/test_animation.py::test_wait_for_current_and_scheduled_animations PASSED [ 1%] tests/test_animation.py::test_reverse_animations PASSED [ 1%] tests/test_animation.py::test_schedule_reverse_animations PASSED [ 1%] tests/test_animation.py::test_cancel_app_animation PASSED [ 1%] tests/test_animation.py::test_cancel_app_non_animation PASSED [ 1%] tests/test_animation.py::test_cancel_widget_animation PASSED [ 1%] tests/test_animation.py::test_cancel_widget_non_animation PASSED [ 1%] tests/test_animator.py::test_simple_animation PASSED [ 1%] tests/test_animator.py::test_simple_animation_duration_zero PASSED [ 1%] tests/test_animator.py::test_simple_animation_reverse PASSED [ 1%] tests/test_animator.py::test_animatable PASSED [ 1%] tests/test_animator.py::test_animator PASSED [ 1%] tests/test_animator.py::test_bound_animator PASSED [ 1%] tests/test_animator.py::test_animator_on_complete_callback_not_fired_before_duration_ends PASSED [ 1%] tests/test_animator.py::test_animator_on_complete_callback_fired_at_duration PASSED [ 1%] tests/test_animator.py::test_force_stop_animation PASSED [ 1%] tests/test_app.py::test_batch_update PASSED [ 1%] tests/test_app.py::test_hover_update_styles PASSED [ 2%] tests/test_app.py::test_setting_title PASSED [ 2%] tests/test_app.py::test_setting_sub_title PASSED [ 2%] tests/test_app.py::test_default_return_code_is_zero PASSED [ 2%] tests/test_app.py::test_return_code_is_one_after_crash PASSED [ 2%] tests/test_app.py::test_set_return_code PASSED [ 2%] tests/test_app.py::test_no_return_code_before_running PASSED [ 2%] tests/test_app.py::test_no_return_code_while_running PASSED [ 2%] tests/test_arrange.py::test_arrange_empty PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_top PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_left PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_right PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_bottom PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_badly PASSED [ 2%] tests/test_auto_refresh.py::test_auto_refresh PASSED [ 2%] tests/test_await_remove.py::test_multiple_simultaneous_removals PASSED [ 2%] tests/test_binding.py::test_bindings_get_key PASSED [ 2%] tests/test_binding.py::test_bindings_get_key_spaced_list PASSED [ 2%] tests/test_binding.py::test_bindings_merge_simple PASSED [ 2%] tests/test_binding.py::test_bindings_merge_overlap PASSED [ 2%] tests/test_binding.py::test_bad_binding_tuple PASSED [ 2%] tests/test_binding.py::test_binding_from_tuples PASSED [ 2%] tests/test_binding.py::test_shown PASSED [ 2%] tests/test_binding.py::test_invalid_binding PASSED [ 2%] tests/test_binding_inheritance.py::test_just_app_no_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_just_app_alpha_binding PASSED [ 3%] tests/test_binding_inheritance.py::test_just_app_low_priority_alpha_binding PASSED [ 3%] tests/test_binding_inheritance.py::test_app_screen_with_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_app_screen_with_low_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_pressing_alpha_on_app PASSED [ 3%] tests/test_binding_inheritance.py::test_pressing_movement_keys_app PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings_on_screen PASSED [ 3%] tests/test_binding_inheritance.py::test_contained_focused_child_widget_with_movement_bindings_on_screen PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings_no_inherit PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_no_inherit_with_movement_bindings_on_screen PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_no_inherit_empty_bindings_with_movement_bindings_on_screen PASSED [ 3%] tests/test_binding_inheritance.py::test_overlapping_priority_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_skip_action PASSED [ 3%] tests/test_border.py::test_border_render_row PASSED [ 3%] tests/test_border.py::test_border_title_single_line PASSED [ 3%] tests/test_border.py::test_border_subtitle_single_line PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[10-True-True] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[10-True-False] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[10-False-False] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[10-False-True] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[1-True-True] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[1-True-False] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[1-False-False] PASSED [ 4%] tests/test_border.py::test_render_border_label_empty_label_skipped[1-False-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-True-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-True-False] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-False-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-3-True-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-4-True-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_wide_plain[Why did the scarecrow] PASSED [ 4%] tests/test_border.py::test_render_border_label_wide_plain[win a Nobel prize?] PASSED [ 4%] tests/test_border.py::test_render_border_label_wide_plain[because it was outstanding] PASSED [ 4%] tests/test_border.py::test_render_border_label_wide_plain[in its field.] PASSED [ 4%] tests/test_border.py::test_render_border_empty_text_with_markup[[b][/]] PASSED [ 4%] tests/test_border.py::test_render_border_empty_text_with_markup[[i b][/]] PASSED [ 4%] tests/test_border.py::test_render_border_empty_text_with_markup[[white on red][/]] PASSED [ 4%] tests/test_border.py::test_render_border_empty_text_with_markup[[blue]] PASSED [ 4%] tests/test_border.py::test_render_border_label PASSED [ 4%] tests/test_border_subtitle.py::test_border_subtitle PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad10-quad20-expected0] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad11-quad21-expected1] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad12-quad22-expected2] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad13-quad23-expected3] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad14-quad24-expected4] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad15-quad25-expected5] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad16-quad26-expected6] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad17-quad27-expected7] PASSED [ 5%] tests/test_box_drawing.py::test_box_combine_quads[quad18-quad28-expected8] PASSED [ 5%] tests/test_box_drawing.py::test_box_combine_quads[quad19-quad29-expected9] PASSED [ 5%] tests/test_box_drawing.py::test_box_combine_quads[quad110-quad210-expected10] PASSED [ 5%] tests/test_box_drawing.py::test_box_combine_quads[quad111-quad211-expected11] PASSED [ 5%] tests/test_box_model.py::test_content_box PASSED [ 5%] tests/test_box_model.py::test_width PASSED [ 5%] tests/test_box_model.py::test_height PASSED [ 5%] tests/test_box_model.py::test_max PASSED [ 5%] tests/test_box_model.py::test_min PASSED [ 5%] tests/test_cache.py::test_lru_cache PASSED [ 5%] tests/test_cache.py::test_lru_cache_hits PASSED [ 5%] tests/test_cache.py::test_lru_cache_get PASSED [ 5%] tests/test_cache.py::test_lru_cache_maxsize PASSED [ 5%] tests/test_cache.py::test_lru_cache_mapping PASSED [ 5%] tests/test_cache.py::test_lru_cache_clear PASSED [ 5%] tests/test_cache.py::test_lru_cache_bool PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys0-expected0] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys1-expected1] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys2-expected2] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys3-expected3] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys4-expected4] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys5-expected5] PASSED [ 5%] tests/test_cache.py::test_lru_cache_len[keys0-0] PASSED [ 5%] tests/test_cache.py::test_lru_cache_len[keys1-1] PASSED [ 6%] tests/test_cache.py::test_lru_cache_len[keys2-2] PASSED [ 6%] tests/test_cache.py::test_lru_cache_len[keys3-3] PASSED [ 6%] tests/test_cache.py::test_lru_cache_len[keys4-3] PASSED [ 6%] tests/test_cache.py::test_lru_cache_len[keys5-3] PASSED [ 6%] tests/test_cache.py::test_fifo_cache PASSED [ 6%] tests/test_cache.py::test_fifo_cache_hits PASSED [ 6%] tests/test_cache.py::test_discard PASSED [ 6%] tests/test_cache.py::test_discard_regression PASSED [ 6%] tests/test_call_x_schedulers.py::test_call_later PASSED [ 6%] tests/test_call_x_schedulers.py::test_call_after_refresh PASSED [ 6%] tests/test_case.py::test_camel_to_snake PASSED [ 6%] tests/test_collapsible.py::test_collapsible PASSED [ 6%] tests/test_collapsible.py::test_compose_default_collapsible PASSED [ 6%] tests/test_collapsible.py::test_compose_empty_collapsible PASSED [ 6%] tests/test_collapsible.py::test_compose_nested_collapsible PASSED [ 6%] tests/test_collapsible.py::test_compose_expanded_collapsible PASSED [ 6%] tests/test_collapsible.py::test_collapsible_collapsed_contents_display_false PASSED [ 6%] tests/test_collapsible.py::test_collapsible_expanded_contents_display_true PASSED [ 6%] tests/test_collapsible.py::test_toggle_title PASSED [ 6%] tests/test_collapsible.py::test_toggle_message PASSED [ 6%] tests/test_collapsible.py::test_expand_message PASSED [ 6%] tests/test_collapsible.py::test_collapse_message PASSED [ 6%] tests/test_collapsible.py::test_collapsible_title_reactive_change PASSED [ 6%] tests/test_color.py::test_rich_color PASSED [ 7%] tests/test_color.py::test_normalized PASSED [ 7%] tests/test_color.py::test_clamped PASSED [ 7%] tests/test_color.py::test_css PASSED [ 7%] tests/test_color.py::test_monochrome PASSED [ 7%] tests/test_color.py::test_rgb PASSED [ 7%] tests/test_color.py::test_hsl PASSED [ 7%] tests/test_color.py::test_color_brightness PASSED [ 7%] tests/test_color.py::test_color_hex PASSED [ 7%] tests/test_color.py::test_color_hex6 PASSED [ 7%] tests/test_color.py::test_color_css PASSED [ 7%] tests/test_color.py::test_color_with_alpha PASSED [ 7%] tests/test_color.py::test_multiply_alpha PASSED [ 7%] tests/test_color.py::test_color_blend PASSED [ 7%] tests/test_color.py::test_color_parse[#000000-expected0] PASSED [ 7%] tests/test_color.py::test_color_parse[#ffffff-expected1] PASSED [ 7%] tests/test_color.py::test_color_parse[#FFFFFF-expected2] PASSED [ 7%] tests/test_color.py::test_color_parse[#fab-expected3] PASSED [ 7%] tests/test_color.py::test_color_parse[#fab0-expected4] PASSED [ 7%] tests/test_color.py::test_color_parse[#020304ff-expected5] PASSED [ 7%] tests/test_color.py::test_color_parse[#02030400-expected6] PASSED [ 7%] tests/test_color.py::test_color_parse[#0203040f-expected7] PASSED [ 7%] tests/test_color.py::test_color_parse[rgb(0,0,0)-expected8] PASSED [ 7%] tests/test_color.py::test_color_parse[rgb(255,255,255)-expected9] PASSED [ 7%] tests/test_color.py::test_color_parse[rgba(255,255,255,1)-expected10] PASSED [ 8%] tests/test_color.py::test_color_parse[rgb(2,3,4)-expected11] PASSED [ 8%] tests/test_color.py::test_color_parse[rgba(2,3,4,1.0)-expected12] PASSED [ 8%] tests/test_color.py::test_color_parse[rgba(2,3,4,0.058823529411764705)-expected13] PASSED [ 8%] tests/test_color.py::test_color_parse[hsl(45,25%,25%)-expected14] PASSED [ 8%] tests/test_color.py::test_color_parse[hsla(45,25%,25%,0.35)-expected15] PASSED [ 8%] tests/test_color.py::test_color_parse_input_has_spaces[rgb( 300, 300 , 300 )-output0] PASSED [ 8%] tests/test_color.py::test_color_parse_input_has_spaces[rgba( 2 , 3 , 4, 1.0 )-output1] PASSED [ 8%] tests/test_color.py::test_color_parse_input_has_spaces[hsl( 45, 25% , 25% )-output2] PASSED [ 8%] tests/test_color.py::test_color_parse_input_has_spaces[hsla( 45, 25% , 25%, 0.35 )-output3] PASSED [ 8%] tests/test_color.py::test_color_parse_clamp[rgb(300, 300, 300)-output0] PASSED [ 8%] tests/test_color.py::test_color_parse_clamp[rgba(300, 300, 300, 300)-output1] PASSED [ 8%] tests/test_color.py::test_color_parse_clamp[hsl(400, 200%, 250%)-output2] PASSED [ 8%] tests/test_color.py::test_color_parse_clamp[hsla(400, 200%, 250%, 1.9)-output3] PASSED [ 8%] tests/test_color.py::test_color_parse_hsl_negative_degrees PASSED [ 8%] tests/test_color.py::test_color_parse_hsla_negative_degrees PASSED [ 8%] tests/test_color.py::test_color_parse_color PASSED [ 8%] tests/test_color.py::test_color_add PASSED [ 8%] tests/test_color.py::test_color_darken PASSED [ 8%] tests/test_color.py::test_color_lighten PASSED [ 8%] tests/test_color.py::test_rgb_to_lab[10-23-73-10.245-15.913--32.672] PASSED [ 8%] tests/test_color.py::test_rgb_to_lab[200-34-123-45.438-67.75--8.008] PASSED [ 8%] tests/test_color.py::test_rgb_to_lab[0-0-0-0-0-0] PASSED [ 8%] tests/test_color.py::test_rgb_to_lab[255-255-255-100-0-0] PASSED [ 8%] tests/test_color.py::test_lab_to_rgb[10-23-73-10.245-15.913--32.672] PASSED [ 9%] tests/test_color.py::test_lab_to_rgb[200-34-123-45.438-67.75--8.008] PASSED [ 9%] tests/test_color.py::test_lab_to_rgb[0-0-0-0-0-0] PASSED [ 9%] tests/test_color.py::test_lab_to_rgb[255-255-255-100-0-0] PASSED [ 9%] tests/test_color.py::test_rgb_lab_rgb_roundtrip PASSED [ 9%] tests/test_color.py::test_inverse PASSED [ 9%] tests/test_color.py::test_gradient_errors PASSED [ 9%] tests/test_color.py::test_gradient PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_no_regions PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_single_region PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_partially_overlapping_regions PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_fully_overlapping_regions PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_disjoint_regions_different_lines PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_disjoint_regions_same_line PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_directly_adjacent_ranges_merged PASSED [ 9%] tests/test_concurrency.py::test_call_from_thread_app_not_running PASSED [ 9%] tests/test_concurrency.py::test_call_from_thread PASSED [ 9%] tests/test_containers.py::test_horizontal_vs_horizontalscroll_scrolling PASSED [ 9%] tests/test_containers.py::test_vertical_vs_verticalscroll_scrolling PASSED [ 9%] tests/test_containers.py::test_center_container PASSED [ 9%] tests/test_containers.py::test_middle_container PASSED [ 9%] tests/test_containers.py::test_scrollbar_zero_thickness PASSED [ 9%] tests/test_content_switcher.py::test_no_initial_display PASSED [ 9%] tests/test_content_switcher.py::test_initial_display PASSED [ 9%] tests/test_content_switcher.py::test_no_initial_display_then_set PASSED [ 10%] tests/test_content_switcher.py::test_initial_display_then_change PASSED [ 10%] tests/test_content_switcher.py::test_initial_display_then_hide PASSED [ 10%] tests/test_content_switcher.py::test_initial_display_unknown_id XFAILs related to https://github.com/Textualize/textual/issues/1972) [ 10%] tests/test_content_switcher.py::test_set_current_to_unknown_id PASSED [ 10%] tests/test_dark_toggle.py::test_toggle_dark_on_load PASSED [ 10%] tests/test_dark_toggle.py::test_toggle_dark_on_mount PASSED [ 10%] tests/test_dark_toggle.py::test_toggle_dark_in_action PASSED [ 10%] tests/test_data_bind.py::test_data_binding PASSED [ 10%] tests/test_data_bind.py::test_data_binding_missing_reactive PASSED [ 10%] tests/test_data_table.py::test_datatable_message_emission PASSED [ 10%] tests/test_data_table.py::test_empty_table_interactions PASSED [ 10%] tests/test_data_table.py::test_cursor_movement_with_home_pagedown_etc[True] PASSED [ 10%] tests/test_data_table.py::test_cursor_movement_with_home_pagedown_etc[False] PASSED [ 10%] tests/test_data_table.py::test_add_rows PASSED [ 10%] tests/test_data_table.py::test_add_rows_user_defined_keys PASSED [ 10%] tests/test_data_table.py::test_add_row_duplicate_key PASSED [ 10%] tests/test_data_table.py::test_add_column_duplicate_key PASSED [ 10%] tests/test_data_table.py::test_add_column_with_width PASSED [ 10%] tests/test_data_table.py::test_add_columns PASSED [ 10%] tests/test_data_table.py::test_add_columns_user_defined_keys PASSED [ 10%] tests/test_data_table.py::test_remove_row PASSED [ 10%] tests/test_data_table.py::test_remove_row_and_update PASSED [ 10%] tests/test_data_table.py::test_remove_column PASSED [ 10%] tests/test_data_table.py::test_remove_column_and_update PASSED [ 11%] tests/test_data_table.py::test_clear PASSED [ 11%] tests/test_data_table.py::test_column_labels PASSED [ 11%] tests/test_data_table.py::test_initial_column_widths PASSED [ 11%] tests/test_data_table.py::test_get_cell_returns_value_at_cell PASSED [ 11%] tests/test_data_table.py::test_get_cell_invalid_row_key PASSED [ 11%] tests/test_data_table.py::test_get_cell_invalid_column_key PASSED [ 11%] tests/test_data_table.py::test_get_cell_coordinate_returns_coordinate PASSED [ 11%] tests/test_data_table.py::test_get_cell_coordinate_invalid_row_key PASSED [ 11%] tests/test_data_table.py::test_get_cell_coordinate_invalid_column_key PASSED [ 11%] tests/test_data_table.py::test_get_cell_at_returns_value_at_cell PASSED [ 11%] tests/test_data_table.py::test_get_cell_at_exception PASSED [ 11%] tests/test_data_table.py::test_get_row PASSED [ 11%] tests/test_data_table.py::test_get_row_invalid_row_key PASSED [ 11%] tests/test_data_table.py::test_get_row_at PASSED [ 11%] tests/test_data_table.py::test_get_row_at_invalid_index[-1] PASSED [ 11%] tests/test_data_table.py::test_get_row_at_invalid_index[2] PASSED [ 11%] tests/test_data_table.py::test_get_row_index_returns_index PASSED [ 11%] tests/test_data_table.py::test_get_row_index_invalid_row_key PASSED [ 11%] tests/test_data_table.py::test_get_column PASSED [ 11%] tests/test_data_table.py::test_get_column_invalid_key PASSED [ 11%] tests/test_data_table.py::test_get_column_at PASSED [ 11%] tests/test_data_table.py::test_get_column_at_invalid_index[-1] PASSED [ 11%] tests/test_data_table.py::test_get_column_at_invalid_index[5] PASSED [ 11%] tests/test_data_table.py::test_get_column_index_returns_index PASSED [ 12%] tests/test_data_table.py::test_get_column_index_invalid_column_key PASSED [ 12%] tests/test_data_table.py::test_update_cell_cell_exists PASSED [ 12%] tests/test_data_table.py::test_update_cell_cell_doesnt_exist PASSED [ 12%] tests/test_data_table.py::test_update_cell_invalid_column_key PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_coordinate_exists PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_coordinate_doesnt_exist PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_column_width[A-BB-3] PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_column_width[1234567-1234-7] PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_column_width[12345-123-5] PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_column_width[12345-123456789-9] PASSED [ 12%] tests/test_data_table.py::test_coordinate_to_cell_key PASSED [ 12%] tests/test_data_table.py::test_coordinate_to_cell_key_invalid_coordinate PASSED [ 12%] tests/test_data_table.py::test_datatable_click_cell_cursor PASSED [ 12%] tests/test_data_table.py::test_click_row_cursor PASSED [ 12%] tests/test_data_table.py::test_click_column_cursor PASSED [ 12%] tests/test_data_table.py::test_hover_coordinate PASSED [ 12%] tests/test_data_table.py::test_hover_mouse_leave PASSED [ 12%] tests/test_data_table.py::test_header_selected PASSED [ 12%] tests/test_data_table.py::test_row_label_selected PASSED [ 12%] tests/test_data_table.py::test_sort_coordinate_and_key_access PASSED [ 12%] tests/test_data_table.py::test_sort_reverse_coordinate_and_key_access PASSED [ 12%] tests/test_data_table.py::test_cell_cursor_highlight_events PASSED [ 12%] tests/test_data_table.py::test_row_cursor_highlight_events PASSED [ 12%] tests/test_data_table.py::test_column_cursor_highlight_events PASSED [ 13%] tests/test_data_table.py::test_reuse_row_key_after_clear PASSED [ 13%] tests/test_data_table.py::test_reuse_column_key_after_clear PASSED [ 13%] tests/test_data_table.py::test_key_equals_equivalent_string PASSED [ 13%] tests/test_data_table.py::test_key_doesnt_match_non_equal_string PASSED [ 13%] tests/test_data_table.py::test_key_equals_self PASSED [ 13%] tests/test_data_table.py::test_key_string_lookup PASSED [ 13%] tests/test_data_table.py::test_scrolling_cursor_into_view PASSED [ 13%] tests/test_data_table.py::test_move_cursor PASSED [ 13%] tests/test_data_table.py::test_unset_hover_highlight_when_no_table_cell_under_mouse PASSED [ 13%] tests/test_data_table.py::test_sort_by_all_columns_no_key PASSED [ 13%] tests/test_data_table.py::test_sort_by_multiple_columns_no_key PASSED [ 13%] tests/test_data_table.py::test_sort_by_function_sum PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[hey there-1] PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[cell1-1] PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[cell2-2] PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[cell3-4] PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[1\n2\n3\n4\n5\n6\n7-7] PASSED [ 13%] tests/test_data_table.py::test_add_row_expands_column_widths PASSED [ 13%] tests/test_data_table.py::test_cell_padding_updates_virtual_size PASSED [ 13%] tests/test_data_table.py::test_cell_padding_cannot_be_negative PASSED [ 13%] tests/test_data_table.py::test_move_cursor_respects_animate_parameter PASSED [ 13%] tests/test_disabled.py::test_all_initially_enabled PASSED [ 13%] tests/test_disabled.py::test_enabled_widgets_have_enabled_pseudo_class PASSED [ 13%] tests/test_disabled.py::test_all_individually_disabled PASSED [ 14%] tests/test_disabled.py::test_disabled_widgets_have_disabled_pseudo_class PASSED [ 14%] tests/test_disabled.py::test_disable_via_container PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Button] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Checkbox] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[DataTable] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[DirectoryTree] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Input] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[ListView] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[OptionList] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[RadioSet] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Select] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Switch] PASSED [ 14%] tests/test_dom.py::test_display_default PASSED [ 14%] tests/test_dom.py::test_display_set_bool[True-block] PASSED [ 14%] tests/test_dom.py::test_display_set_bool[False-none] PASSED [ 14%] tests/test_dom.py::test_display_set_bool[block-block] PASSED [ 14%] tests/test_dom.py::test_display_set_bool[none-none] PASSED [ 14%] tests/test_dom.py::test_display_set_invalid_value PASSED [ 14%] tests/test_dom.py::test_validate PASSED [ 14%] tests/test_dom.py::test_classes_setter PASSED [ 14%] tests/test_dom.py::test_classes_setter_iterable PASSED [ 14%] tests/test_dom.py::test_classes_set_classes PASSED [ 14%] tests/test_dom.py::test_inherited_bindings PASSED [ 14%] tests/test_dom.py::test__get_default_css PASSED [ 15%] tests/test_dom.py::test_component_classes_inheritance PASSED [ 15%] tests/test_dom.py::test_walk_children_depth PASSED [ 15%] tests/test_dom.py::test_walk_children_with_self_depth PASSED [ 15%] tests/test_dom.py::test_walk_children_breadth PASSED [ 15%] tests/test_dom.py::test_walk_children_with_self_breadth PASSED [ 15%] tests/test_dom.py::test_id_validation[ bad] PASSED [ 15%] tests/test_dom.py::test_id_validation[ terrible ] PASSED [ 15%] tests/test_dom.py::test_id_validation[worse! ] PASSED [ 15%] tests/test_dom.py::test_id_validation[&ersand] PASSED [ 15%] tests/test_dom.py::test_id_validation[amper&sand] PASSED [ 15%] tests/test_dom.py::test_id_validation[ampersand&] PASSED [ 15%] tests/test_dom.py::test_id_validation[2_leading_digits] PASSED [ 15%] tests/test_dom.py::test_id_validation[\xe1gua] PASSED [ 15%] tests/test_dom.py::test_id_validation[c\xe3o] PASSED [ 15%] tests/test_dom.py::test_id_validation[@'/.23] PASSED [ 15%] tests/test_driver.py::test_driver_mouse_down_up_click PASSED [ 15%] tests/test_driver.py::test_driver_mouse_down_up_click_widget PASSED [ 15%] tests/test_driver.py::test_driver_mouse_down_drag_inside_widget_up_click PASSED [ 15%] tests/test_driver.py::test_driver_mouse_down_drag_outside_widget_up_click PASSED [ 15%] tests/test_easing.py::test_coverage PASSED [ 15%] tests/test_easing.py::test_easings PASSED [ 15%] tests/test_expand_tabs.py::test_expand_tabs_inline[ b ar - b ar ] PASSED [ 15%] tests/test_expand_tabs.py::test_expand_tabs_inline[\tbar- bar] PASSED [ 15%] tests/test_expand_tabs.py::test_expand_tabs_inline[\tbar\t- bar ] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[\tr\t- r ] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[1\tbar-1 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[12\tbar-12 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[123\tbar-123 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[1234\tbar-1234 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\tbar-\U0001f4a9 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\U0001f4a9\tbar-\U0001f4a9\U0001f4a9 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\U0001f4a9\U0001f4a9\tbar-\U0001f4a9\U0001f4a9\U0001f4a9 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[F\U0001f4a9\tbar-F\U0001f4a9 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[F\U0001f4a9O\tbar-F\U0001f4a9O bar] PASSED [ 16%] tests/test_expand_tabs.py::test_get_tab_widths PASSED [ 16%] tests/test_file_monitor.py::test_repr PASSED [ 16%] tests/test_file_monitor.py::test_file_never_found PASSED [ 16%] tests/test_file_monitor.py::test_file_deletion PASSED [ 16%] tests/test_focus.py::test_focus_chain PASSED [ 16%] tests/test_focus.py::test_allow_focus PASSED [ 16%] tests/test_focus.py::test_focus_next_and_previous PASSED [ 16%] tests/test_focus.py::test_focus_next_wrap_around PASSED [ 16%] tests/test_focus.py::test_focus_previous_wrap_around PASSED [ 16%] tests/test_focus.py::test_wrap_around_selector PASSED [ 16%] tests/test_focus.py::test_no_focus_empty_selector PASSED [ 16%] tests/test_focus.py::test_focus_next_and_previous_with_type_selector PASSED [ 16%] tests/test_focus.py::test_focus_next_and_previous_with_str_selector PASSED [ 17%] tests/test_focus.py::test_focus_next_and_previous_with_type_selector_without_self PASSED [ 17%] tests/test_focus.py::test_focus_next_and_previous_with_str_selector_without_self PASSED [ 17%] tests/test_focus.py::test_focus_does_not_move_to_invisible_widgets PASSED [ 17%] tests/test_focus.py::test_focus_moves_to_visible_widgets_inside_invisible_containers PASSED [ 17%] tests/test_focus.py::test_focus_chain_handles_inherited_visibility PASSED [ 17%] tests/test_focus.py::test_mouse_down_gives_focus PASSED [ 17%] tests/test_focus.py::test_mouse_up_does_not_give_focus PASSED [ 17%] tests/test_focus.py::test_focus_pseudo_class PASSED [ 17%] tests/test_freeze.py::test_freeze PASSED [ 17%] tests/test_fuzzy.py::test_match PASSED [ 17%] tests/test_fuzzy.py::test_highlight PASSED [ 17%] tests/test_geometry.py::test_dimensions_region PASSED [ 17%] tests/test_geometry.py::test_dimensions_contains PASSED [ 17%] tests/test_geometry.py::test_dimensions_contains_point PASSED [ 17%] tests/test_geometry.py::test_dimensions_contains_special PASSED [ 17%] tests/test_geometry.py::test_dimensions_bool PASSED [ 17%] tests/test_geometry.py::test_dimensions_area PASSED [ 17%] tests/test_geometry.py::test_clamp PASSED [ 17%] tests/test_geometry.py::test_offset_bool PASSED [ 17%] tests/test_geometry.py::test_offset_is_origin PASSED [ 17%] tests/test_geometry.py::test_clamped PASSED [ 17%] tests/test_geometry.py::test_offset_add PASSED [ 17%] tests/test_geometry.py::test_offset_sub PASSED [ 17%] tests/test_geometry.py::test_offset_neg PASSED [ 18%] tests/test_geometry.py::test_offset_mul PASSED [ 18%] tests/test_geometry.py::test_offset_blend PASSED [ 18%] tests/test_geometry.py::test_offset_get_distance_to PASSED [ 18%] tests/test_geometry.py::test_region_null PASSED [ 18%] tests/test_geometry.py::test_region_from_union PASSED [ 18%] tests/test_geometry.py::test_region_from_offset PASSED [ 18%] tests/test_geometry.py::test_get_scroll_to_visible[window0-region0-scroll0] PASSED [ 18%] tests/test_geometry.py::test_get_scroll_to_visible[window1-region1-scroll1] PASSED [ 18%] tests/test_geometry.py::test_get_scroll_to_visible[window2-region2-scroll2] PASSED [ 18%] tests/test_geometry.py::test_region_area PASSED [ 18%] tests/test_geometry.py::test_region_size PASSED [ 18%] tests/test_geometry.py::test_region_origin PASSED [ 18%] tests/test_geometry.py::test_region_bottom_left PASSED [ 18%] tests/test_geometry.py::test_region_top_right PASSED [ 18%] tests/test_geometry.py::test_region_bottom_right PASSED [ 18%] tests/test_geometry.py::test_region_add PASSED [ 18%] tests/test_geometry.py::test_region_sub PASSED [ 18%] tests/test_geometry.py::test_region_at_offset PASSED [ 18%] tests/test_geometry.py::test_crop_size PASSED [ 18%] tests/test_geometry.py::test_clip_size PASSED [ 18%] tests/test_geometry.py::test_region_overlaps PASSED [ 18%] tests/test_geometry.py::test_region_contains PASSED [ 18%] tests/test_geometry.py::test_region_contains_point PASSED [ 18%] tests/test_geometry.py::test_region_contains_region PASSED [ 19%] tests/test_geometry.py::test_region_translate PASSED [ 19%] tests/test_geometry.py::test_region_contains_special PASSED [ 19%] tests/test_geometry.py::test_clip PASSED [ 19%] tests/test_geometry.py::test_region_shrink PASSED [ 19%] tests/test_geometry.py::test_region_grow PASSED [ 19%] tests/test_geometry.py::test_region_intersection PASSED [ 19%] tests/test_geometry.py::test_region_union PASSED [ 19%] tests/test_geometry.py::test_size_add PASSED [ 19%] tests/test_geometry.py::test_size_sub PASSED [ 19%] tests/test_geometry.py::test_size_line_range PASSED [ 19%] tests/test_geometry.py::test_region_x_extents PASSED [ 19%] tests/test_geometry.py::test_region_y_extents PASSED [ 19%] tests/test_geometry.py::test_region_x_max PASSED [ 19%] tests/test_geometry.py::test_region_y_max PASSED [ 19%] tests/test_geometry.py::test_region_columns_range PASSED [ 19%] tests/test_geometry.py::test_region_lines_range PASSED [ 19%] tests/test_geometry.py::test_region_reset_offset PASSED [ 19%] tests/test_geometry.py::test_region_expand PASSED [ 19%] tests/test_geometry.py::test_spacing_bool PASSED [ 19%] tests/test_geometry.py::test_spacing_width PASSED [ 19%] tests/test_geometry.py::test_spacing_height PASSED [ 19%] tests/test_geometry.py::test_spacing_top_left PASSED [ 19%] tests/test_geometry.py::test_spacing_bottom_right PASSED [ 19%] tests/test_geometry.py::test_spacing_totals PASSED [ 20%] tests/test_geometry.py::test_spacing_css PASSED [ 20%] tests/test_geometry.py::test_spacing_unpack PASSED [ 20%] tests/test_geometry.py::test_spacing_add PASSED [ 20%] tests/test_geometry.py::test_spacing_sub PASSED [ 20%] tests/test_geometry.py::test_spacing_convenience_constructors PASSED [ 20%] tests/test_geometry.py::test_split PASSED [ 20%] tests/test_geometry.py::test_split_negative PASSED [ 20%] tests/test_geometry.py::test_split_vertical PASSED [ 20%] tests/test_geometry.py::test_split_vertical_negative PASSED [ 20%] tests/test_geometry.py::test_split_horizontal PASSED [ 20%] tests/test_geometry.py::test_split_horizontal_negative PASSED [ 20%] tests/test_geometry.py::test_translate_inside PASSED [ 20%] tests/test_geometry.py::test_inflect PASSED [ 20%] tests/test_header.py::test_screen_title_none_is_ignored PASSED [ 20%] tests/test_header.py::test_screen_title_overrides_app_title PASSED [ 20%] tests/test_header.py::test_screen_title_reactive_updates_title PASSED [ 20%] tests/test_header.py::test_app_title_reactive_does_not_update_title_when_screen_title_is_set PASSED [ 20%] tests/test_header.py::test_screen_sub_title_none_is_ignored PASSED [ 20%] tests/test_header.py::test_screen_sub_title_overrides_app_sub_title PASSED [ 20%] tests/test_header.py::test_screen_sub_title_reactive_updates_sub_title PASSED [ 20%] tests/test_header.py::test_app_sub_title_reactive_does_not_update_sub_title_when_screen_sub_title_is_set PASSED [ 20%] tests/test_immutable_sequence_view.py::test_empty_immutable_sequence PASSED [ 20%] tests/test_immutable_sequence_view.py::test_non_empty_immutable_sequence PASSED [ 20%] tests/test_immutable_sequence_view.py::test_no_assign_to_immutable_sequence PASSED [ 21%] tests/test_immutable_sequence_view.py::test_no_del_from_iummutable_sequence PASSED [ 21%] tests/test_immutable_sequence_view.py::test_get_item_from_immutable_sequence PASSED [ 21%] tests/test_immutable_sequence_view.py::test_get_slice_from_immutable_sequence PASSED [ 21%] tests/test_immutable_sequence_view.py::test_immutable_sequence_contains PASSED [ 21%] tests/test_immutable_sequence_view.py::test_immutable_sequence_index PASSED [ 21%] tests/test_immutable_sequence_view.py::test_reverse_immutable_sequence PASSED [ 21%] tests/test_keys.py::test_character_to_key[1-1] PASSED [ 21%] tests/test_keys.py::test_character_to_key[2-2] PASSED [ 21%] tests/test_keys.py::test_character_to_key[a-a] PASSED [ 21%] tests/test_keys.py::test_character_to_key[z-z] PASSED [ 21%] tests/test_keys.py::test_character_to_key[_-underscore] PASSED [ 21%] tests/test_keys.py::test_character_to_key[ -space] PASSED [ 21%] tests/test_keys.py::test_character_to_key[~-tilde] PASSED [ 21%] tests/test_keys.py::test_character_to_key[?-question_mark] PASSED [ 21%] tests/test_keys.py::test_character_to_key[\xa3-pound_sign] PASSED [ 21%] tests/test_keys.py::test_character_to_key[,-comma] PASSED [ 21%] tests/test_keys.py::test_character_bindings PASSED [ 21%] tests/test_keys.py::test_get_key_display PASSED [ 21%] tests/test_keys.py::test_get_key_display_when_used_in_conjunction PASSED [ 21%] tests/test_layout_resolve.py::test_empty PASSED [ 21%] tests/test_layout_resolve.py::test_total_zero PASSED [ 21%] tests/test_layout_resolve.py::test_single PASSED [ 21%] tests/test_layout_resolve.py::test_two PASSED [ 21%] tests/test_layout_resolve.py::test_multiple[10-edges0-result0] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges1-result1] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges2-result2] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges3-result3] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges4-result4] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges5-result5] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges6-result6] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[2-edges7-result7] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[2-edges8-result8] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[18-edges9-result9] PASSED [ 22%] tests/test_lazy.py::test_lazy PASSED [ 22%] tests/test_line_filter.py::test_dim_apply PASSED [ 22%] tests/test_line_split.py::test_split_string_to_lines_and_endings PASSED [ 22%] tests/test_loading.py::test_loading_disables_and_remove_scrollbars PASSED [ 22%] tests/test_log.py::test_process_line PASSED [ 22%] tests/test_loop.py::test_loop_first PASSED [ 22%] tests/test_loop.py::test_loop_last PASSED [ 22%] tests/test_loop.py::test_loop_first_last PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[-expected_nodes0] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[# Hello-expected_nodes1] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[## Hello-expected_nodes2] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[### Hello-expected_nodes3] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[#### Hello-expected_nodes4] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[##### Hello-expected_nodes5] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[###### Hello-expected_nodes6] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[----expected_nodes7] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[Hello-expected_nodes8] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[Hello\nWorld-expected_nodes9] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[> Hello-expected_nodes10] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[- One\n-Two-expected_nodes11] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[1. One\n2. Two-expected_nodes12] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[ 1-expected_nodes13] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[```\n1\n```-expected_nodes14] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[```python\n1\n```-expected_nodes15] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[| One | Two |\n| :- | :- |\n| 1 | 2 |-expected_nodes16] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[- One\n```\nTwo\n```\n- Three\n-expected_nodes17] PASSED [ 23%] tests/test_markdown.py::test_load_non_existing_file PASSED [ 23%] tests/test_markdown.py::test_goto_anchor[hello-world-False] PASSED [ 23%] tests/test_markdown.py::test_goto_anchor[hello-there-True] PASSED [ 23%] tests/test_markdownviewer.py::test_markdown_file_viewer_anchor_link[0] PASSED [ 23%] tests/test_markdownviewer.py::test_markdown_file_viewer_anchor_link[1] PASSED [ 23%] tests/test_markdownviewer.py::test_markdown_string_viewer_anchor_link[0] PASSED [ 23%] tests/test_markdownviewer.py::test_markdown_string_viewer_anchor_link[1] PASSED [ 23%] tests/test_message_handling.py::test_message_inheritance_namespace PASSED [ 23%] tests/test_message_pump.py::test_dispatch_key_valid_key PASSED [ 23%] tests/test_message_pump.py::test_dispatch_key_valid_key_alias PASSED [ 23%] tests/test_message_pump.py::test_dispatch_key_raises_when_conflicting_handler_aliases PASSED [ 23%] tests/test_message_pump.py::test_message_queue_size PASSED [ 23%] tests/test_message_pump.py::test_prevent PASSED [ 24%] tests/test_message_pump.py::test_prevent_with_call_next PASSED [ 24%] tests/test_mount.py::test_render_only_after_mount PASSED [ 24%] tests/test_node_list.py::test_empty_list PASSED [ 24%] tests/test_node_list.py::test_add_one PASSED [ 24%] tests/test_node_list.py::test_repeat_add_one PASSED [ 24%] tests/test_node_list.py::test_insert PASSED [ 24%] tests/test_node_list.py::test_truthy PASSED [ 24%] tests/test_node_list.py::test_contains PASSED [ 24%] tests/test_node_list.py::test_index PASSED [ 24%] tests/test_node_list.py::test_remove PASSED [ 24%] tests/test_node_list.py::test_clear PASSED [ 24%] tests/test_node_list.py::test_listy PASSED [ 24%] tests/test_on.py::test_on_button_pressed PASSED [ 24%] tests/test_on.py::test_on_inheritance PASSED [ 24%] tests/test_on.py::test_on_bad_selector PASSED [ 24%] tests/test_on.py::test_on_no_control PASSED [ 24%] tests/test_on.py::test_on_attribute_not_listed PASSED [ 24%] tests/test_on.py::test_on_arbitrary_attributes PASSED [ 24%] tests/test_on.py::test_fire_on_inherited_message PASSED [ 24%] tests/test_on.py::test_fire_inherited_on_single_handler PASSED [ 24%] tests/test_on.py::test_fire_inherited_on_single_handler_multi_selector PASSED [ 24%] tests/test_on.py::test_fire_inherited_and_on_methods PASSED [ 24%] tests/test_on.py::test_fire_on_inherited_message_plus_mixins PASSED [ 24%] tests/test_overflow_change.py::test_overflow_change_updates_virtual_size_appropriately PASSED [ 25%] tests/test_parser.py::test_read1 PASSED [ 25%] tests/test_parser.py::test_read PASSED [ 25%] tests/test_partition.py::test_partition PASSED [ 25%] tests/test_paste.py::test_paste_app PASSED [ 25%] tests/test_paste.py::test_empty_paste PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app0-expected_css_path_attribute0] PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app1-expected_css_path_attribute1] PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app2-expected_css_path_attribute2] PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app3-expected_css_path_attribute3] PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app4-expected_css_path_attribute4] PASSED [ 25%] tests/test_pilot.py::test_pilot_press_ascii_chars PASSED [ 25%] tests/test_pilot.py::test_pilot_exception_catching_compose PASSED [ 25%] tests/test_pilot.py::test_pilot_exception_catching_action PASSED [ 25%] tests/test_pilot.py::test_pilot_click_screen PASSED [ 25%] tests/test_pilot.py::test_pilot_hover_screen PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size0-offset0] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size1-offset1] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size2-offset2] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size3-offset3] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size4-offset4] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size5-offset5] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size6-offset6] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size7-offset7] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size8-offset8] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size9-offset9] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size10-offset10] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size11-offset11] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size12-offset12] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size13-offset13] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size14-offset14] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size15-offset15] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size16-offset16] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size17-offset17] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size18-offset18] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size19-offset19] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size20-offset20] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size21-offset21] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size22-offset22] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size23-offset23] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size24-offset24] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size25-offset25] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size26-offset26] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size27-offset27] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size28-offset28] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size29-offset29] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size30-offset30] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size31-offset31] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size32-offset32] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size33-offset33] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size34-offset34] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size35-offset35] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size36-offset36] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size37-offset37] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size38-offset38] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size39-offset39] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size40-offset40] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size41-offset41] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size42-offset42] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size43-offset43] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size44-offset44] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size45-offset45] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size46-offset46] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size47-offset47] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size48-offset48] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size49-offset49] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size50-offset50] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size51-offset51] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size52-offset52] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size53-offset53] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size54-offset54] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size55-offset55] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size56-offset56] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size57-offset57] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size58-offset58] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size59-offset59] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size60-offset60] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size61-offset61] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size62-offset62] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size63-offset63] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset0] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset1] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset2] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset3] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset4] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset5] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset6] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset7] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset8] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset9] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset10] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset11] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset12] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset13] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset14] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset15] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset16] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset17] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset18] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset19] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset20] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset21] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset22] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset23] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset24] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset25] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset26] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset27] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset28] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset29] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset30] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset31] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset32] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset33] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset34] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset35] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-#label0] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-#label90] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-Button] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-#label0] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-#label90] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-Button] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-#label0] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-#label90] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-Button] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-#label0] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-#label90] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-Button] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_widget_under_another_widget[click] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_widget_under_another_widget[hover] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_widget_under_another_widget[mouse_down] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_widget_under_another_widget[mouse_up] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_visible_widget[click] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_visible_widget[hover] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_visible_widget[mouse_down] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_visible_widget[mouse_up] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset0] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset1] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset2] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset3] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset4] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset5] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset6] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset7] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset8] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset9] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset10] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset11] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset12] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset13] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset14] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset15] PASSED [ 31%] tests/test_placeholder.py::test_invalid_placeholder_variant PASSED [ 31%] tests/test_placeholder.py::test_invalid_reactive_variant_change PASSED [ 31%] tests/test_progress_bar.py::test_initial_status PASSED [ 31%] tests/test_progress_bar.py::test_advance PASSED [ 31%] tests/test_progress_bar.py::test_advance_backwards PASSED [ 31%] tests/test_progress_bar.py::test_progress_overflow PASSED [ 31%] tests/test_progress_bar.py::test_progress_underflow PASSED [ 31%] tests/test_progress_bar.py::test_non_negative_total PASSED [ 31%] tests/test_progress_bar.py::test_update_total PASSED [ 31%] tests/test_progress_bar.py::test_update_progress PASSED [ 31%] tests/test_progress_bar.py::test_update_advance PASSED [ 31%] tests/test_progress_bar.py::test_update PASSED [ 31%] tests/test_progress_bar.py::test_go_back_to_indeterminate PASSED [ 31%] tests/test_progress_bar.py::test_show_sub_widgets[True-True-True] PASSED [ 31%] tests/test_progress_bar.py::test_show_sub_widgets[True-True-False] PASSED [ 31%] tests/test_progress_bar.py::test_show_sub_widgets[True-False-True] PASSED [ 31%] tests/test_progress_bar.py::test_show_sub_widgets[True-False-False] PASSED [ 32%] tests/test_progress_bar.py::test_show_sub_widgets[False-True-True] PASSED [ 32%] tests/test_progress_bar.py::test_show_sub_widgets[False-True-False] PASSED [ 32%] tests/test_progress_bar.py::test_show_sub_widgets[False-False-True] PASSED [ 32%] tests/test_progress_bar.py::test_show_sub_widgets[False-False-False] PASSED [ 32%] tests/test_query.py::test_query PASSED [ 32%] tests/test_query.py::test_query_classes PASSED [ 32%] tests/test_query.py::test_invalid_query PASSED [ 32%] tests/test_query.py::test_universal_selector_doesnt_select_self PASSED [ 32%] tests/test_query.py::test_query_set_styles_invalid_css_raises_error PASSED [ 32%] tests/test_query.py::test_query_set_styles_kwds PASSED [ 32%] tests/test_query.py::test_query_set_styles_css_and_kwds PASSED [ 32%] tests/test_query.py::test_query_set_styles_css PASSED [ 32%] tests/test_query.py::test_query_refresh[args0] PASSED [ 32%] tests/test_query.py::test_query_refresh[args1] PASSED [ 32%] tests/test_query.py::test_query_refresh[args2] PASSED [ 32%] tests/test_query.py::test_query_refresh[args3] PASSED [ 32%] tests/test_query.py::test_query_focus_blur PASSED [ 32%] tests/test_reactive.py::test_watch PASSED [ 32%] tests/test_reactive.py::test_watch_async_init_false PASSED [ 32%] tests/test_reactive.py::test_watch_async_init_true PASSED [ 32%] tests/test_reactive.py::test_watch_init_false_always_update_false PASSED [ 32%] tests/test_reactive.py::test_watch_init_true PASSED [ 32%] tests/test_reactive.py::test_reactive_always_update PASSED [ 32%] tests/test_reactive.py::test_reactive_with_callable_default PASSED [ 33%] tests/test_reactive.py::test_validate_init_true PASSED [ 33%] tests/test_reactive.py::test_validate_init_true_set_before_dom_ready PASSED [ 33%] tests/test_reactive.py::test_reactive_compute_first_time_set PASSED [ 33%] tests/test_reactive.py::test_reactive_method_call_order PASSED [ 33%] tests/test_reactive.py::test_premature_reactive_call PASSED [ 33%] tests/test_reactive.py::test_reactive_inheritance PASSED [ 33%] tests/test_reactive.py::test_compute PASSED [ 33%] tests/test_reactive.py::test_watch_compute PASSED [ 33%] tests/test_reactive.py::test_public_and_private_watch PASSED [ 33%] tests/test_reactive.py::test_private_validate PASSED [ 33%] tests/test_reactive.py::test_public_and_private_validate PASSED [ 33%] tests/test_reactive.py::test_public_and_private_validate_order PASSED [ 33%] tests/test_reactive.py::test_public_and_private_compute PASSED [ 33%] tests/test_reactive.py::test_private_compute PASSED [ 33%] tests/test_reactive.py::test_async_reactive_watch_callbacks_go_on_the_watcher PASSED [ 33%] tests/test_reactive.py::test_sync_reactive_watch_callbacks_go_on_the_watcher PASSED [ 33%] tests/test_reactive.py::test_set_reactive PASSED [ 33%] tests/test_reactive.py::test_no_duplicate_external_watchers PASSED [ 33%] tests/test_reactive.py::test_external_watch_init_does_not_propagate PASSED [ 33%] tests/test_reactive.py::test_external_watch_init_does_not_propagate_to_externals PASSED [ 33%] tests/test_resolve.py::test_resolve_empty PASSED [ 33%] tests/test_resolve.py::test_resolve[scalars0-100-0-result0] PASSED [ 33%] tests/test_resolve.py::test_resolve[scalars1-100-0-result1] PASSED [ 34%] tests/test_resolve.py::test_resolve[scalars2-100-1-result2] PASSED [ 34%] tests/test_resolve.py::test_resolve[scalars3-100-1-result3] PASSED [ 34%] tests/test_resolve.py::test_resolve[scalars4-100-0-result4] PASSED [ 34%] tests/test_resolve.py::test_resolve[scalars5-100-1-result5] PASSED [ 34%] tests/test_resolve.py::test_resolve_fraction_unit PASSED [ 34%] tests/test_resolve.py::test_resolve_fraction_unit_stress_test PASSED [ 34%] tests/test_resolve.py::test_resolve_issue_2502 PASSED [ 34%] tests/test_rule.py::test_invalid_rule_orientation PASSED [ 34%] tests/test_rule.py::test_invalid_rule_line_style PASSED [ 34%] tests/test_rule.py::test_invalid_reactive_rule_orientation_change PASSED [ 34%] tests/test_rule.py::test_invalid_reactive_rule_line_style_change PASSED [ 34%] tests/test_screen_modes.py::test_mode_setup PASSED [ 34%] tests/test_screen_modes.py::test_switch_mode PASSED [ 34%] tests/test_screen_modes.py::test_switch_same_mode PASSED [ 34%] tests/test_screen_modes.py::test_switch_unknown_mode PASSED [ 34%] tests/test_screen_modes.py::test_remove_mode PASSED [ 34%] tests/test_screen_modes.py::test_remove_active_mode PASSED [ 34%] tests/test_screen_modes.py::test_add_mode PASSED [ 34%] tests/test_screen_modes.py::test_add_mode_duplicated PASSED [ 34%] tests/test_screen_modes.py::test_multiple_mode_callbacks PASSED [ 34%] tests/test_screens.py::test_screen_walk_children PASSED [ 34%] tests/test_screens.py::test_installed_screens PASSED [ 34%] tests/test_screens.py::test_screens PASSED [ 34%] tests/test_screens.py::test_auto_focus_on_screen_if_app_auto_focus_is_none PASSED [ 35%] tests/test_screens.py::test_auto_focus_on_screen_if_app_auto_focus_is_disabled PASSED [ 35%] tests/test_screens.py::test_auto_focus_inheritance PASSED [ 35%] tests/test_screens.py::test_auto_focus_skips_non_focusable_widgets PASSED [ 35%] tests/test_screens.py::test_dismiss_non_top_screen PASSED [ 35%] tests/test_screens.py::test_dismiss_action PASSED [ 35%] tests/test_screens.py::test_switch_screen_no_op PASSED [ 35%] tests/test_screens.py::test_switch_screen_updates_results_callback_stack PASSED [ 35%] tests/test_screens.py::test_screen_receives_mouse_move_events PASSED [ 35%] tests/test_screens.py::test_mouse_move_event_bubbles_to_screen_from_widget PASSED [ 35%] tests/test_screens.py::test_push_screen_wait_for_dismiss PASSED [ 35%] tests/test_screens.py::test_push_screen_wait_for_dismiss_no_worker PASSED [ 35%] tests/test_segment_tools.py::test_line_crop PASSED [ 35%] tests/test_segment_tools.py::test_line_crop_emoji PASSED [ 35%] tests/test_segment_tools.py::test_line_crop_edge PASSED [ 35%] tests/test_segment_tools.py::test_line_crop_edge_2 PASSED [ 35%] tests/test_segment_tools.py::test_line_trim_ascii PASSED [ 35%] tests/test_segment_tools.py::test_line_pad PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_vertical_middle PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_top_left PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_top_right PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_left PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_center PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_right PASSED [ 35%] tests/test_signal.py::test_signal PASSED [ 36%] tests/test_signal.py::test_signal_errors PASSED [ 36%] tests/test_signal.py::test_repr PASSED [ 36%] tests/test_slug.py::test_simple_slug[test-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[Test-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[ Test -test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[-test---test-] PASSED [ 36%] tests/test_slug.py::test_simple_slug[!test!-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test!!test-testtest] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test! !test-test-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test test-test-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test test-test--test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test test-test----------test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[--test---test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test---test--] PASSED [ 36%] tests/test_slug.py::test_simple_slug[--test--test-----test--test--] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[t\xebst-t%C3%ABst] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test\U0001f642test-testtest] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test\U0001f937test-testtest] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test\U0001f937\U0001f3fb\u200d\u2640\ufe0ftest-testtest] PASSED [ 36%] tests/test_slug.py::test_tracked_slugs[test-test] PASSED [ 36%] tests/test_slug.py::test_tracked_slugs[test-test-1] PASSED [ 36%] tests/test_slug.py::test_tracked_slugs[test-test-2] PASSED [ 36%] tests/test_slug.py::test_tracked_slugs[-test---test-] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[-test---test--1] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test-1] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst-1] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst-2] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test\U0001f642test-testtest] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test\U0001f937test-testtest-1] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test\U0001f937\U0001f3fb\u200d\u2640\ufe0ftest-testtest-2] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test-test-3] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test-test-4] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[ test -test-5] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region0-grid0] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region1-grid1] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region2-grid2] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region3-grid3] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region4-grid4] PASSED [ 37%] tests/test_spatial_map.py::test_get_values_in_region PASSED [ 37%] tests/test_strip.py::test_cell_length PASSED [ 37%] tests/test_strip.py::test_repr PASSED [ 37%] tests/test_strip.py::test_join PASSED [ 37%] tests/test_strip.py::test_bool PASSED [ 37%] tests/test_strip.py::test_iter PASSED [ 37%] tests/test_strip.py::test_len PASSED [ 38%] tests/test_strip.py::test_reversed PASSED [ 38%] tests/test_strip.py::test_eq PASSED [ 38%] tests/test_strip.py::test_adjust_cell_length PASSED [ 38%] tests/test_strip.py::test_extend_cell_length PASSED [ 38%] tests/test_strip.py::test_simplify PASSED [ 38%] tests/test_strip.py::test_apply_filter PASSED [ 38%] tests/test_strip.py::test_style_links PASSED [ 38%] tests/test_strip.py::test_crop PASSED [ 38%] tests/test_strip.py::test_crop_out_of_bounds[foo-crop0-output0] PASSED [ 38%] tests/test_strip.py::test_crop_out_of_bounds[foo-crop1-output1] PASSED [ 38%] tests/test_strip.py::test_crop_out_of_bounds[foo-crop2-output2] PASSED [ 38%] tests/test_strip.py::test_crop_out_of_bounds[foo-crop3-output3] PASSED [ 38%] tests/test_strip.py::test_divide PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[0-0] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[1-1] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[2-2] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[3-3] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[4-4] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[5-6] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[6-8] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[7-10] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[8-11] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[9-12] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[10-13] PASSED [ 39%] tests/test_strip.py::test_index_to_cell_position[11-14] PASSED [ 39%] tests/test_strip.py::test_index_cell_position_no_segments PASSED [ 39%] tests/test_strip.py::test_index_cell_position_index_too_large PASSED [ 39%] tests/test_strip.py::test_text PASSED [ 39%] tests/test_style_importance.py::test_border_importance PASSED [ 39%] tests/test_style_importance.py::test_outline_importance PASSED [ 39%] tests/test_style_importance.py::test_align_importance PASSED [ 39%] tests/test_style_importance.py::test_content_align_importance PASSED [ 39%] tests/test_style_importance.py::test_offset_importance PASSED [ 39%] tests/test_style_importance.py::test_overflow_importance PASSED [ 39%] tests/test_style_importance.py::test_padding_importance PASSED [ 39%] tests/test_style_importance.py::test_scrollbar_size_importance PASSED [ 39%] tests/test_style_inheritance.py::test_text_style_inheritance PASSED [ 39%] tests/test_style_properties.py::test_box_normalization PASSED [ 39%] tests/test_style_properties.py::test_text_style_none_with_others[text_style] PASSED [ 39%] tests/test_style_properties.py::test_text_style_none_with_others[link_style] PASSED [ 39%] tests/test_style_properties.py::test_text_style_set_to_none[text_style] PASSED [ 39%] tests/test_style_properties.py::test_text_style_set_to_none[link_style] PASSED [ 39%] tests/test_styles_cache.py::test_set_dirty PASSED [ 39%] tests/test_styles_cache.py::test_no_styles PASSED [ 39%] tests/test_styles_cache.py::test_border PASSED [ 39%] tests/test_styles_cache.py::test_padding PASSED [ 39%] tests/test_styles_cache.py::test_padding_border PASSED [ 39%] tests/test_styles_cache.py::test_outline PASSED [ 40%] tests/test_styles_cache.py::test_crop PASSED [ 40%] tests/test_styles_cache.py::test_dirty_cache PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[background-possible_words0-background] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[backgroundu-possible_words1-background] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[bkgrund-possible_words2-background] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[llow-possible_words3-None] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[llow-possible_words4-yellow] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[yllow-possible_words5-yellow] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[background-possible_words0-1-expected_result0] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[backgroundu-possible_words1-1-expected_result1] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[bkgrund-possible_words2-1-expected_result2] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[llow-possible_words3-1-expected_result3] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[llow-possible_words4-1-expected_result4] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[yllow-possible_words5-1-expected_result5] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[yllow-possible_words6-2-expected_result6] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[yllow-possible_words7-2-expected_result7] PASSED [ 40%] tests/test_suspend.py::test_suspend_not_supported PASSED [ 40%] tests/test_suspend.py::test_suspend_supported PASSED [ 40%] tests/test_switch.py::test_switch_click_doesnt_bubble_up PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_switch_via_ui PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_switch_via_code PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_initial PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_messages PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_add_later_from_empty PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_later_from_composed PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_before_id PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_before_pane PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_before_badly PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_after PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_after_pane PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_after_badly PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_before_and_after PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_removal PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_reversed_removal PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_clear PASSED [ 41%] tests/test_tabbed_content.py::test_disabling_does_not_deactivate_tab PASSED [ 41%] tests/test_tabbed_content.py::test_disabled_tab_cannot_be_clicked PASSED [ 41%] tests/test_tabbed_content.py::test_disabling_via_tabbed_content PASSED [ 41%] tests/test_tabbed_content.py::test_disabling_via_tab_pane PASSED [ 41%] tests/test_tabbed_content.py::test_creating_disabled_tab PASSED [ 41%] tests/test_tabbed_content.py::test_navigation_around_disabled_tabs PASSED [ 41%] tests/test_tabbed_content.py::test_reenabling_tab PASSED [ 41%] tests/test_tabbed_content.py::test_reenabling_via_tabbed_content PASSED [ 41%] tests/test_tabbed_content.py::test_reenabling_via_tab_pane PASSED [ 41%] tests/test_tabbed_content.py::test_disabling_unknown_tab PASSED [ 41%] tests/test_tabbed_content.py::test_enabling_unknown_tab PASSED [ 41%] tests/test_tabbed_content.py::test_hide_unknown_tab PASSED [ 41%] tests/test_tabbed_content.py::test_show_unknown_tab PASSED [ 42%] tests/test_tabbed_content.py::test_hide_show_messages PASSED [ 42%] tests/test_tabbed_content.py::test_hide_last_tab_means_no_tab_active PASSED [ 42%] tests/test_tabbed_content.py::test_hiding_tabs_moves_active_to_next_tab PASSED [ 42%] tests/test_tabbed_content.py::test_showing_tabs_does_not_change_active_tab PASSED [ 42%] tests/test_tabbed_content.py::test_showing_first_tab_activates_tab[tab-1] PASSED [ 42%] tests/test_tabbed_content.py::test_showing_first_tab_activates_tab[tab-2] PASSED [ 42%] tests/test_tabbed_content.py::test_disabling_nested_tabs PASSED [ 42%] tests/test_tabbed_content.py::test_hiding_nested_tabs PASSED [ 42%] tests/test_tabbed_content.py::test_tabs_nested_in_tabbed_content_doesnt_crash PASSED [ 42%] tests/test_tabbed_content.py::test_tabs_nested_doesnt_interfere_with_ancestor_tabbed_content PASSED [ 42%] tests/test_tabs.py::test_tab_label PASSED [ 42%] tests/test_tabs.py::test_tab_relabel PASSED [ 42%] tests/test_tabs.py::test_compose_empty_tabs PASSED [ 42%] tests/test_tabs.py::test_compose_tabs_from_strings PASSED [ 42%] tests/test_tabs.py::test_compose_tabs_from_tabs PASSED [ 42%] tests/test_tabs.py::test_add_tabs_later PASSED [ 42%] tests/test_tabs.py::test_add_tab_before PASSED [ 42%] tests/test_tabs.py::test_add_tab_before_badly PASSED [ 42%] tests/test_tabs.py::test_add_tab_after PASSED [ 42%] tests/test_tabs.py::test_add_tab_after_badly PASSED [ 42%] tests/test_tabs.py::test_add_tab_before_and_after PASSED [ 42%] tests/test_tabs.py::test_remove_tabs PASSED [ 42%] tests/test_tabs.py::test_remove_tabs_reversed PASSED [ 42%] tests/test_tabs.py::test_clear_tabs PASSED [ 43%] tests/test_tabs.py::test_change_active_from_code PASSED [ 43%] tests/test_tabs.py::test_navigate_tabs_with_keyboard PASSED [ 43%] tests/test_tabs.py::test_navigate_empty_tabs_with_keyboard PASSED [ 43%] tests/test_tabs.py::test_navigate_tabs_with_mouse PASSED [ 43%] tests/test_tabs.py::test_startup_messages PASSED [ 43%] tests/test_tabs.py::test_change_tab_with_code_messages PASSED [ 43%] tests/test_tabs.py::test_remove_tabs_messages PASSED [ 43%] tests/test_tabs.py::test_reverse_remove_tabs_messages PASSED [ 43%] tests/test_tabs.py::test_keyboard_navigation_messages PASSED [ 43%] tests/test_tabs.py::test_mouse_navigation_messages PASSED [ 43%] tests/test_test_runner.py::test_run_test PASSED [ 43%] tests/test_textlog.py::test_make_renderable_expand_tabs PASSED [ 43%] tests/test_two_way_dict.py::test_get PASSED [ 43%] tests/test_two_way_dict.py::test_get_key PASSED [ 43%] tests/test_two_way_dict.py::test_set_item PASSED [ 43%] tests/test_two_way_dict.py::test_len PASSED [ 43%] tests/test_two_way_dict.py::test_delitem PASSED [ 43%] tests/test_two_way_dict.py::test_contains PASSED [ 43%] tests/test_unmount.py::test_unmount PASSED [ 43%] tests/test_validation.py::test_ValidationResult_merge_successes PASSED [ 43%] tests/test_validation.py::test_ValidationResult_merge_failures PASSED [ 43%] tests/test_validation.py::test_ValidationResult_failure_descriptions PASSED [ 43%] tests/test_validation.py::test_Failure_description_priorities_parameter_only PASSED [ 43%] tests/test_validation.py::test_Failure_description_priorities_parameter_and_describe_failure PASSED [ 44%] tests/test_validation.py::test_Failure_description_priorities_describe_failure_only PASSED [ 44%] tests/test_validation.py::test_Failure_description_parameter_and_description_inside_validate PASSED [ 44%] tests/test_validation.py::test_Failure_description_describe_and_description_inside_validate PASSED [ 44%] tests/test_validation.py::test_Number_validate[123-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[-123-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[123.45-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[1.23e-4-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[abc-None-None-False] PASSED [ 44%] tests/test_validation.py::test_Number_validate[123-100-200-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[99-100-200-False] PASSED [ 44%] tests/test_validation.py::test_Number_validate[201-100-200-False] PASSED [ 44%] tests/test_validation.py::test_Number_validate[1.23e4-0-50000-True] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[\\d+-123-True] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[\\d+-abc-False] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[[a-z]+-abc-True] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[[a-z]+-ABC-False] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[\\w+-abc123-True] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[\\w+-!@#-False] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[123-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[-123-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[123.45-None-None-False] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[1.23e-4-None-None-False] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[abc-None-None-False] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[123-100-200-True] PASSED [ 45%] tests/test_validation.py::test_Integer_validate[99-100-200-False] PASSED [ 45%] tests/test_validation.py::test_Integer_validate[201-100-200-False] PASSED [ 45%] tests/test_validation.py::test_Integer_validate[1.23e4-None-None-True] PASSED [ 45%] tests/test_validation.py::test_Length_validate[-None-None-True] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-None-None-True] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-5-None-False] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-None-3-False] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-4-4-True] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-2-6-True] PASSED [ 45%] tests/test_validation.py::test_URL_validate[http://example.com-True] PASSED [ 45%] tests/test_validation.py::test_URL_validate[https://example.com-True] PASSED [ 45%] tests/test_validation.py::test_URL_validate[www.example.com-False] PASSED [ 45%] tests/test_validation.py::test_URL_validate[://example.com-False] PASSED [ 45%] tests/test_validation.py::test_URL_validate[https:///path-False] PASSED [ 45%] tests/test_validation.py::test_URL_validate[redis://username:pass[word@localhost:6379/0-False] PASSED [ 45%] tests/test_validation.py::test_URL_validate[-False] PASSED [ 45%] tests/test_validation.py::test_Function_validate[-None-True] PASSED [ 45%] tests/test_validation.py::test_Function_validate[-failure!-False] PASSED [ 45%] tests/test_version.py::test_version PASSED [ 45%] tests/test_visible.py::test_visibility_changes PASSED [ 45%] tests/test_visible.py::test_visible_is_inherited PASSED [ 45%] tests/test_widget.py::test_widget_set_visible_true[True-True-visible] PASSED [ 45%] tests/test_widget.py::test_widget_set_visible_true[False-False-hidden] PASSED [ 45%] tests/test_widget.py::test_widget_set_visible_true[hidden-False-hidden] PASSED [ 46%] tests/test_widget.py::test_widget_set_visible_true[visible-True-visible] PASSED [ 46%] tests/test_widget.py::test_widget_set_visible_invalid_string PASSED [ 46%] tests/test_widget.py::test_widget_content_width PASSED [ 46%] tests/test_widget.py::test_get_child_by_id_gets_first_child PASSED [ 46%] tests/test_widget.py::test_get_child_by_id_no_matching_child PASSED [ 46%] tests/test_widget.py::test_get_child_by_id_only_immediate_descendents PASSED [ 46%] tests/test_widget.py::test_get_child_by_type PASSED [ 46%] tests/test_widget.py::test_get_widget_by_id_no_matching_child PASSED [ 46%] tests/test_widget.py::test_get_widget_by_id_non_immediate_descendants PASSED [ 46%] tests/test_widget.py::test_get_widget_by_id_immediate_descendants PASSED [ 46%] tests/test_widget.py::test_get_widget_by_id_doesnt_return_self PASSED [ 46%] tests/test_widget.py::test_get_widgets_app_delegated PASSED [ 46%] tests/test_widget.py::test_widget_mount_ids_must_be_unique_mounting_all_in_one_go PASSED [ 46%] tests/test_widget.py::test_widget_mount_ids_must_be_unique_mounting_multiple_calls PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state_disabled PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state_parent_disabled PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state_hover PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state_focus PASSED [ 46%] tests/test_widget.py::test_remove PASSED [ 46%] tests/test_widget.py::test_remove_unmounted PASSED [ 46%] tests/test_widget.py::test_render_str PASSED [ 46%] tests/test_widget.py::test_compose_order PASSED [ 46%] tests/test_widget.py::test_children_must_be_widgets PASSED [ 47%] tests/test_widget.py::test_orphan_widget_has_no_siblings PASSED [ 47%] tests/test_widget.py::test__allow_scroll_default PASSED [ 47%] tests/test_widget.py::test__allow_scroll PASSED [ 47%] tests/test_widget.py::test_offset_getter_setter PASSED [ 47%] tests/test_widget.py::test_get_set_tooltip PASSED [ 47%] tests/test_widget.py::test_loading PASSED [ 47%] tests/test_widget.py::test_is_mounted_property PASSED [ 47%] tests/test_widget.py::test_mount_error_not_widget PASSED [ 47%] tests/test_widget.py::test_mount_error_bad_widget PASSED [ 47%] tests/test_widget.py::test_render_returns_text PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_no_direction PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_both_directions PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_not_our_child PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_to_outside PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_index[before] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_index[after] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[before] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[after] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_index[before] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_index[after] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_widget[before] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_widget[after] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_past_end_of_child_list PASSED [ 47%] tests/test_widget_child_moving.py::test_move_before_end_of_child_list PASSED [ 48%] tests/test_widget_child_moving.py::test_move_before_permutations PASSED [ 48%] tests/test_widget_child_moving.py::test_move_after_permutations PASSED [ 48%] tests/test_widget_child_moving.py::test_move_child_after_last_child PASSED [ 48%] tests/test_widget_child_moving.py::test_move_child_after_last_numeric_location PASSED [ 48%] tests/test_widget_mount_point.py::test_find_dom_spot PASSED [ 48%] tests/test_widget_mounting.py::test_mount_via_app PASSED [ 48%] tests/test_widget_navigation.py::test_distance[2-8-1-10-4] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[2-8--1-10-6] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[8-2--1-10-4] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[8-2-1-10-6] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[8-2-1-1234123512-6] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[2-8-1-11-5] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[2-8-1-12-6] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[5-5-1-10-0] PASSED [ 48%] tests/test_widget_navigation.py::test_find_enabled_returns_none_on_empty[find_first_enabled] PASSED [ 48%] tests/test_widget_navigation.py::test_find_enabled_returns_none_on_empty[find_last_enabled] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates0-None-1-None] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates1-None--1-None] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates2-None-1-0] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates3-None-1-0] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates4-None-1-0] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates5-None-1-1] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates6-None-1-2] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates7-None--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates8-None--1-1] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates9-None--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates10-None--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates11-0-1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates12-1-1-1] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates13-1--1-1] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates14-None--1-None] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates15-0-1-3] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates16-0--1-4] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates17-1-1-3] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates18-1--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates19-2-1-3] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates20-2--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates21-3-1-4] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates22-3--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates23-4-1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates24-4--1-3] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates25-5-1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates26-5--1-4] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates0-None-1-None] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates1-None--1-None] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates2-None-1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates3-None-1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates4-None-1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates5-None-1-1] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates6-None-1-2] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates7-None--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates8-None--1-1] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates9-None--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates10-None--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates11-0-1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates12-1-1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates13-1--1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates14-None--1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates15-0-1-3] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates16-0--1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates17-1-1-3] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates18-1--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates19-2-1-3] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates20-2--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates21-3-1-4] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates22-3--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates23-4-1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates24-4--1-3] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates25-5-1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates26-5--1-4] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-0-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-0--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-0-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-0--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-1-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-1--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-1-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-1--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-2-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-2--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-2-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-2--1] PASSED [ 51%] tests/test_widget_removing.py::test_remove_single_widget PASSED [ 51%] tests/test_widget_removing.py::test_many_remove_all_widgets PASSED [ 51%] tests/test_widget_removing.py::test_many_remove_some_widgets PASSED [ 51%] tests/test_widget_removing.py::test_remove_branch PASSED [ 51%] tests/test_widget_removing.py::test_remove_overlap PASSED [ 51%] tests/test_widget_removing.py::test_remove_move_focus PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_order PASSED [ 51%] tests/test_widget_removing.py::test_query_remove_order PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_container PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_with_star_selector PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_with_string_selector PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_with_type_selector PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_with_selector_does_not_leak PASSED [ 52%] tests/test_widget_removing.py::test_widget_remove_children_no_children PASSED [ 52%] tests/test_widget_removing.py::test_widget_remove_children_no_children_match_selector PASSED [ 52%] tests/test_win_sleep.py::test_win_sleep_timer_is_cancellable SKIPPED (We only need to test this on Windows.) [ 52%] tests/test_wrap.py::test_chunks[-expected_output0] PASSED [ 52%] tests/test_wrap.py::test_chunks[ -expected_output1] PASSED [ 52%] tests/test_wrap.py::test_chunks[\t-expected_output2] PASSED [ 52%] tests/test_wrap.py::test_chunks[foo-expected_output3] PASSED [ 52%] tests/test_wrap.py::test_chunks[ foo -expected_output4] PASSED [ 52%] tests/test_wrap.py::test_chunks[foo bar-expected_output5] PASSED [ 52%] tests/test_wrap.py::test_chunks[\tfoo bar-expected_output6] PASSED [ 52%] tests/test_wrap.py::test_chunks[ foo bar-expected_output7] PASSED [ 52%] tests/test_wrap.py::test_chunks[foo bar -expected_output8] PASSED [ 52%] tests/test_wrap.py::test_chunks[foo\t bar -expected_output9] PASSED [ 52%] tests/test_wrap.py::test_chunks[\u6728\t \u5ddd -expected_output10] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[-6-4-expected_output0] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\t-6-4-expected_output1] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[ -6-4-expected_output2] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[foo bar baz-6-4-expected_output3] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\tfoo bar baz-6-4-expected_output4] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz-6-4-expected_output5] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz-6-8-expected_output6] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz\t-6-8-expected_output7] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\t\t\tfo bar baz\t-20-4-expected_output8] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\t\t\t\t\t\t\t\tfo bar bar-19-4-expected_output9] PASSED [ 53%] tests/test_wrap.py::test_compute_wrap_offsets[\t\t\t\t\t-19-4-expected_output10] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[2] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[3] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[4] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[5] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[6] PASSED [ 53%] tests/test_xterm_parser.py::test_bracketed_paste PASSED [ 53%] tests/test_xterm_parser.py::test_bracketed_paste_content_contains_escape_codes PASSED [ 53%] tests/test_xterm_parser.py::test_bracketed_paste_amongst_other_codes PASSED [ 53%] tests/test_xterm_parser.py::test_cant_match_escape_sequence_too_long PASSED [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[2] XFAIL [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[3] PASSED [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[4] XFAIL [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[5] PASSED [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[6] PASSED [ 53%] tests/test_xterm_parser.py::test_simple_key_presses_all_delivered_correct_order PASSED [ 53%] tests/test_xterm_parser.py::test_simple_keypress_non_character_key PASSED [ 53%] tests/test_xterm_parser.py::test_key_presses_and_escape_sequence_mixed PASSED [ 53%] tests/test_xterm_parser.py::test_single_escape PASSED [ 53%] tests/test_xterm_parser.py::test_double_escape PASSED [ 53%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<0;50;25M-MouseDown-False-False] PASSED [ 53%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<4;50;25M-MouseDown-True-False] PASSED [ 53%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<8;50;25M-MouseDown-False-True] PASSED [ 53%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<12;50;25M-MouseDown-True-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<0;50;25m-MouseUp-False-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<4;50;25m-MouseUp-True-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<8;50;25m-MouseUp-False-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<12;50;25m-MouseUp-True-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_move[\x1b[<32;15;38M-False-False-1] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_move[\x1b[<35;15;38M-False-False-0] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_move[\x1b[<39;15;38M-True-False-0] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_move[\x1b[<43;15;38M-False-True-0] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<64;18;25M-False-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<68;18;25M-True-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<72;18;25M-False-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<65;18;25M-False-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<69;18;25M-True-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<73;18;25M-False-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_event_detected_but_info_not_parsed PASSED [ 54%] tests/test_xterm_parser.py::test_escape_sequence_resulting_in_multiple_keypresses PASSED [ 54%] tests/test_xterm_parser.py::test_terminal_mode_reporting_synchronized_output_supported PASSED [ 54%] tests/test_xterm_parser.py::test_terminal_mode_reporting_synchronized_output_not_supported PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_animate_work_on_full PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_animate_are_disabled_on_basic PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_animate_are_disabled_on_none PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_transition_work_on_full PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_transition_are_disabled_on_basic PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_transition_are_disabled_on_none PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[-full] PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[FULL-full] PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[BASIC-basic] PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[NONE-none] PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[garbanzo beans-full] PASSED [ 55%] tests/animations/test_environment_variable.py::test_app_show_animations[full] PASSED [ 55%] tests/animations/test_environment_variable.py::test_app_show_animations[basic] PASSED [ 55%] tests/animations/test_environment_variable.py::test_app_show_animations[none] PASSED [ 55%] tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_not_static_on_full PASSED [ 55%] tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_not_static_on_basic PASSED [ 55%] tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_static_on_none PASSED [ 55%] tests/animations/test_progress_bar_animation.py::test_progress_bar_animates_on_full PASSED [ 55%] tests/animations/test_progress_bar_animation.py::test_progress_bar_animates_on_basic PASSED [ 55%] tests/animations/test_progress_bar_animation.py::test_progress_bar_does_not_animate_on_none PASSED [ 55%] tests/animations/test_scrolling_animation.py::test_scrolling_animates_on_full PASSED [ 55%] tests/animations/test_scrolling_animation.py::test_scrolling_animates_on_basic PASSED [ 55%] tests/animations/test_scrolling_animation.py::test_scrolling_does_not_animate_on_none PASSED [ 55%] tests/animations/test_switch_animation.py::test_switch_animates_on_full PASSED [ 55%] tests/animations/test_switch_animation.py::test_switch_animates_on_basic PASSED [ 55%] tests/animations/test_switch_animation.py::test_switch_does_not_animate_on_none PASSED [ 55%] tests/animations/test_tabs_underline_animation.py::test_tabs_underline_animates_on_full PASSED [ 55%] tests/animations/test_tabs_underline_animation.py::test_tabs_underline_animates_on_basic PASSED [ 55%] tests/animations/test_tabs_underline_animation.py::test_tabs_underline_does_not_animate_on_none PASSED [ 55%] tests/css/test_css_reloading.py::test_css_reloading_applies_to_non_top_screen PASSED [ 56%] tests/css/test_css_reloading.py::test_css_reloading_file_not_found PASSED [ 56%] tests/css/test_grid_rows_columns_relative_units.py::test_grid_rows_columns_relative_units_are_correct PASSED [ 56%] tests/css/test_grid_rows_columns_relative_units.py::test_styles_builder_uses_correct_relative_units_grid_rows_columns PASSED [ 56%] tests/css/test_help_text.py::test_help_text_examples_are_contextualized PASSED [ 56%] tests/css/test_help_text.py::test_spacing_wrong_number_of_values[css] PASSED [ 56%] tests/css/test_help_text.py::test_spacing_wrong_number_of_values[inline] PASSED [ 56%] tests/css/test_help_text.py::test_spacing_invalid_value[css] PASSED [ 56%] tests/css/test_help_text.py::test_spacing_invalid_value[inline] PASSED [ 56%] tests/css/test_help_text.py::test_scalar_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_scalar_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_string_enum_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_string_enum_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_color_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_color_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_border_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_border_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_layout_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_layout_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_fractional_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_fractional_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_offset_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_offset_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_align_help_text PASSED [ 56%] tests/css/test_help_text.py::test_offset_single_axis_help_text PASSED [ 57%] tests/css/test_help_text.py::test_style_flags_property_help_text[css] PASSED [ 57%] tests/css/test_help_text.py::test_style_flags_property_help_text[inline] PASSED [ 57%] tests/css/test_inheritance.py::test_inheritance XFAIL (Overlapping styles should prioritize the most recent widget in the inheritance chain) [ 57%] tests/css/test_initial.py::test_initial_default PASSED [ 57%] tests/css/test_initial.py::test_initial PASSED [ 57%] tests/css/test_mega_stylesheet.py::test_mega_stylesheet PASSED [ 57%] tests/css/test_nested_css.py::test_nest_app PASSED [ 57%] tests/css/test_nested_css.py::test_lists_of_selectors_in_nested_css PASSED [ 57%] tests/css/test_nested_css.py::test_rule_declaration_after_nested PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[Selector {-EOFError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[Selector{ Foo {-EOFError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[Selector{ Foo {}-EOFError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[> {}-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[&-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[&&-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[&.foo-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[& .foo-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[{-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[*{-EOFError] PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_simple_reference PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_simple_reference_no_whitespace PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_undefined_variable PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_empty_variable PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_transitive_reference PASSED [ 58%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_multi_value_variable PASSED [ 58%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_used_inside_property_value PASSED [ 58%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_definition_eof PASSED [ 58%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_reference_whitespace_trimming PASSED [ 58%] tests/css/test_parse.py::TestParseLayout::test_valid_layout_name PASSED [ 58%] tests/css/test_parse.py::TestParseLayout::test_invalid_layout_name PASSED [ 58%] tests/css/test_parse.py::TestParseText::test_foreground PASSED [ 58%] tests/css/test_parse.py::TestParseText::test_background PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgb(1,255,50)-result0] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgb( 1, 255,50 )-result1] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgba( 1, 255,50,0.3 )-result2] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgba( 1, 255,50, 1.3 )-result3] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsl( 180, 50%, 50% )-result4] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsl(180,50%,50%)-result5] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla(180,50%,50%,0.25)-result6] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla( 180, 50% ,50%,0.25 )-result7] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla( 180, 50% , 50% , 1.5 )-result8] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_composite_rule[-5.5%-parsed_x0--30%-parsed_y0] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_composite_rule[5%-parsed_x1-40%-parsed_y1] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_composite_rule[10-parsed_x2-40-parsed_y2] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_separate_rules[-5.5%-parsed_x0--30%-parsed_y0] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_separate_rules[5%-parsed_x1-40%-parsed_y1] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_separate_rules[-10-parsed_x2-40-parsed_y2] PASSED [ 58%] tests/css/test_parse.py::TestParseOverflow::test_multiple_enum PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[5.57s-5.57] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.5s-0.5] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[1200ms-1.2] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.5ms-0.0005] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[20-20.0] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.1-0.1] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_no_delay_specified PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_unknown_easing_function PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[-0.2-0.0] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[0.4-0.4] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[1.3-1.0] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[-20%-0.0] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[25%-0.25] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[128%-1.0] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_invalid_value PASSED [ 59%] tests/css/test_parse.py::TestParseMargin::test_margin_partial PASSED [ 59%] tests/css/test_parse.py::TestParsePadding::test_padding_partial PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[left] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[start] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[center] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[right] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[end] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[justify] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align_invalid PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_type_no_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_type_with_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_type_starts_with_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_combined_type_no_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_combined_type_with_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_combined_type_starts_with_number PASSED [ 60%] tests/css/test_parse.py::test_parse_bad_pseudo_selector PASSED [ 60%] tests/css/test_parse.py::test_parse_bad_pseudo_selector_with_suggestion PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_size_rows-3] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_size_columns-3] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_gutter_vertical-4] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_gutter_horizontal-4] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_rows-1fr 3fr] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_columns-1fr 3fr] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align_horizontal-right] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align_vertical-bottom] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align-value2] PASSED [ 60%] tests/css/test_scalar.py::test_copy_with_value PASSED [ 60%] tests/css/test_scalar.py::test_copy_with_unit PASSED [ 60%] tests/css/test_scalar.py::test_copy_with_percent_unit PASSED [ 60%] tests/css/test_screen_css.py::test_screen_pushing_and_popping_does_not_reparse_css PASSED [ 60%] tests/css/test_screen_css.py::test_screen_css_push_screen_instance PASSED [ 60%] tests/css/test_screen_css.py::test_screen_css_push_screen_instance_by_name PASSED [ 60%] tests/css/test_screen_css.py::test_screen_css_push_screen_type_by_name PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_screen_instance PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_screen_instance_by_name PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_screen_type_by_name PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_instance PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_instance_by_name PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_type_by_name PASSED [ 61%] tests/css/test_styles.py::test_styles_reset PASSED [ 61%] tests/css/test_styles.py::test_has_rule PASSED [ 61%] tests/css/test_styles.py::test_clear_rule PASSED [ 61%] tests/css/test_styles.py::test_get_rules PASSED [ 61%] tests/css/test_styles.py::test_set_rule PASSED [ 61%] tests/css/test_styles.py::test_reset PASSED [ 61%] tests/css/test_styles.py::test_merge PASSED [ 61%] tests/css/test_styles.py::test_merge_rules PASSED [ 61%] tests/css/test_styles.py::test_render_styles_border PASSED [ 61%] tests/css/test_styles.py::test_get_opacity_default PASSED [ 61%] tests/css/test_styles.py::test_styles_css_property PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[0.2-0.2] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[-0.4-0.0] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[5.8-1.0] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[25%-0.25] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[-10%-0.0] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[120%-1.0] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_invalid_type_error PASSED [ 62%] tests/css/test_styles.py::test_opacity_set_allows_integer_value PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[None-None] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1-size_dimension_expected_output1] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.0-size_dimension_expected_output2] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.2-size_dimension_expected_output3] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1200.0-size_dimension_expected_output4] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[20-size_dimension_expected_output5] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.4-size_dimension_expected_output6] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input7-size_dimension_expected_output7] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input8-size_dimension_expected_output8] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input9-size_dimension_expected_output9] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input10-size_dimension_expected_output10] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input11-size_dimension_expected_output11] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input12-size_dimension_expected_output12] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input13-size_dimension_expected_output13] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[a] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[1.4e3] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[3.14j] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input3] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input4] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input5] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input6] PASSED [ 62%] tests/css/test_stylesheet.py::test_stylesheet_apply_highest_specificity_wins PASSED [ 62%] tests/css/test_stylesheet.py::test_stylesheet_apply_doesnt_override_defaults PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_apply_highest_specificity_wins_multiple_classes PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_many_classes_dont_overrule_id PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_last_rule_wins_when_same_rule_twice_in_one_ruleset PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_rulesets_merged_for_duplicate_selectors PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_apply_takes_final_rule_in_specificity_clash PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_apply_empty_rulesets PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_apply_user_css_over_widget_css PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[transparent-expectation0-expected_color0] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[ansi_red-expectation1-expected_color1] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[ansi_bright_magenta-expectation2-expected_color2] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[red-expectation3-expected_color3] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[lime-expectation4-expected_color4] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[coral-expectation5-expected_color5] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[aqua-expectation6-expected_color6] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[deepskyblue-expectation7-expected_color7] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[rebeccapurple-expectation8-expected_color8] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[#ffcc00-expectation9-expected_color9] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[#ffcc0033-expectation10-expected_color10] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[rgb(200,90,30)-expectation11-expected_color11] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[rgba(200,90,30,0.3)-expectation12-expected_color12] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[coffee-expectation13-None] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[ansi_dark_cyan-expectation14-None] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[red 4-expectation15-None] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[1-expectation16-None] PASSED [ 64%] tests/css/test_stylesheet.py::test_color_property_parsing[()-expectation17-None] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[backgroundu-background] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[bckgroundu-background] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[ofset-x-offset-x] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[ofst_y-offset-y] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[colr-color] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[colour-color] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wdth-width] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wth-width] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wh-None] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[xkcd-None] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[color-blu-blue] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[background-chartruse-chartreuse] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[tint-ansi_whi-ansi_white] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[scrollbar-color-transprnt-transparent] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[color-xkcd-None] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warning-text] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warning_text] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext1] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[1warningtext] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[WarningText1] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext_] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext-] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[_warningtext] PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[-warningtext] PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_multiple_values PASSED [ 65%] tests/css/test_tokenize.py::test_single_line_comment PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_comment_ignored PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_comment_interspersed_ignored PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_no_semicolon PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_invalid_value PASSED [ 65%] tests/css/test_tokenize.py::test_variables_declarations_amongst_rulesets PASSED [ 65%] tests/css/test_tokenize.py::test_variables_reference_in_rule_declaration_value PASSED [ 65%] tests/css/test_tokenize.py::test_variables_reference_in_rule_declaration_value_multiple PASSED [ 65%] tests/css/test_tokenize.py::test_variables_reference_in_variable_declaration PASSED [ 65%] tests/css/test_tokenize.py::test_variable_references_in_variable_declaration_multiple PASSED [ 65%] tests/css/test_tokenize.py::test_allow_new_lines PASSED [ 65%] tests/directory_tree/test_early_show_root.py::test_managed_to_set_show_root_before_mounted PASSED [ 65%] tests/document/test_document.py::test_text[I must not fear.\nFear is the mind-killer.] PASSED [ 65%] tests/document/test_document.py::test_text[I must not fear.\nFear is the mind-killer.\n] PASSED [ 65%] tests/document/test_document.py::test_text[I must not fear.\r\nFear is the mind-killer.] PASSED [ 65%] tests/document/test_document.py::test_text[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 65%] tests/document/test_document.py::test_lines_newline_eof PASSED [ 65%] tests/document/test_document.py::test_lines_no_newline_eof PASSED [ 65%] tests/document/test_document.py::test_lines_windows PASSED [ 65%] tests/document/test_document.py::test_lines_windows_newline PASSED [ 65%] tests/document/test_document.py::test_newline_unix PASSED [ 65%] tests/document/test_document.py::test_newline_windows PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_no_selection PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_single_line PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_multiple_lines_unix PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_multiple_lines_windows PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_including_final_newline_unix PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_including_final_newline_windows PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_no_newline_at_end_of_file PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_no_newline_at_end_of_file_windows PASSED [ 66%] tests/document/test_document.py::test_index_from_location[I must not fear.\nFear is the mind-killer.] PASSED [ 66%] tests/document/test_document.py::test_index_from_location[I must not fear.\nFear is the mind-killer.\n] PASSED [ 66%] tests/document/test_document.py::test_index_from_location[I must not fear.\r\nFear is the mind-killer.] PASSED [ 66%] tests/document/test_document.py::test_index_from_location[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 66%] tests/document/test_document.py::test_location_from_index[I must not fear.\nFear is the mind-killer.] PASSED [ 66%] tests/document/test_document.py::test_location_from_index[I must not fear.\nFear is the mind-killer.\n] PASSED [ 66%] tests/document/test_document.py::test_location_from_index[I must not fear.\r\nFear is the mind-killer.] PASSED [ 66%] tests/document/test_document.py::test_location_from_index[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 66%] tests/document/test_document_delete.py::test_delete_single_character PASSED [ 66%] tests/document/test_document_delete.py::test_delete_single_newline PASSED [ 66%] tests/document/test_document_delete.py::test_delete_near_end_of_document PASSED [ 66%] tests/document/test_document_delete.py::test_delete_clearing_the_document PASSED [ 66%] tests/document/test_document_delete.py::test_delete_multiple_characters_on_one_line PASSED [ 66%] tests/document/test_document_delete.py::test_delete_multiple_lines_partially_spanned PASSED [ 66%] tests/document/test_document_delete.py::test_delete_end_of_line PASSED [ 67%] tests/document/test_document_delete.py::test_delete_single_line_excluding_newline PASSED [ 67%] tests/document/test_document_delete.py::test_delete_single_line_including_newline PASSED [ 67%] tests/document/test_document_delete.py::test_delete_end_of_file_newline PASSED [ 67%] tests/document/test_document_insert.py::test_insert_no_newlines PASSED [ 67%] tests/document/test_document_insert.py::test_insert_empty_string PASSED [ 67%] tests/document/test_document_insert.py::test_insert_invalid_column PASSED [ 67%] tests/document/test_document_insert.py::test_insert_invalid_row_and_column PASSED [ 67%] tests/document/test_document_insert.py::test_insert_range_newline_file_start PASSED [ 67%] tests/document/test_document_insert.py::test_insert_newline_splits_line PASSED [ 67%] tests/document/test_document_insert.py::test_insert_newline_splits_line_selection PASSED [ 67%] tests/document/test_document_insert.py::test_insert_multiple_lines_ends_with_newline PASSED [ 67%] tests/document/test_document_insert.py::test_insert_multiple_lines_ends_with_no_newline PASSED [ 67%] tests/document/test_document_insert.py::test_insert_multiple_lines_starts_with_newline PASSED [ 67%] tests/document/test_document_insert.py::test_insert_range_text_no_newlines PASSED [ 67%] tests/document/test_document_insert.py::test_newline_eof PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start0-end0] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start1-end1] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start2-end2] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start3-end3] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start4-end4] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start5-end5] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start6-end6] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start7-end7] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start8-end8] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_above[start9-end9] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_above[start10-end10] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start0-end0] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start1-end1] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start2-end2] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start3-end3] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start4-end4] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start5-end5] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start6-end6] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start7-end7] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start8-end8] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start0-end0] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start1-end1] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start2-end2] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start3-end3] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start4-end4] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start5-end5] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start6-end6] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start7-end7] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start8-end8] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_end[start0-end0] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_end[start1-end1] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_end[start2-end2] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_end[start3-end3] PASSED [ 69%] tests/document/test_document_navigator.py::test_get_location_end[start4-end4] PASSED [ 69%] tests/document/test_wrapped_document.py::test_wrap PASSED [ 69%] tests/document/test_wrapped_document.py::test_wrap_empty_document PASSED [ 69%] tests/document/test_wrapped_document.py::test_wrap_width_zero_no_wrapping PASSED [ 69%] tests/document/test_wrapped_document.py::test_refresh_range PASSED [ 69%] tests/document/test_wrapped_document.py::test_refresh_range_new_text_wrapped PASSED [ 69%] tests/document/test_wrapped_document.py::test_refresh_range_wrapping_at_previously_unavailable_range PASSED [ 69%] tests/document/test_wrapped_document.py::test_refresh_range_wrapping_disabled_previously_unavailable_range PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset0-location0] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset1-location1] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset2-location2] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset3-location3] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset4-location4] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset5-location5] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset6-location6] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset7-location7] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset8-location8] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset0-location0] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset1-location1] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset2-location2] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset3-location3] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset4-location4] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset5-location5] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset6-location6] PASSED [ 70%] tests/document/test_wrapped_document.py::test_offset_to_location_invalid_offset_clamps_to_valid_offset[offset0-location0] PASSED [ 70%] tests/document/test_wrapped_document.py::test_offset_to_location_invalid_offset_clamps_to_valid_offset[offset1-location1] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets[0-offsets0] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets[1-offsets1] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets[2-offsets2] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets_no_wrapping PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets_invalid_line_index[-4] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets_invalid_line_index[10000] PASSED [ 70%] tests/input/test_input_clear.py::test_input_clear PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_inside_first_word PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_password_delete_left_word_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_all_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_all_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_word_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_password_delete_right_word_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_word_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_all_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_all_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_word_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_word_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_password_input_left_word_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_word_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_password_input_right_word_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_word_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_word_to_the_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_word_from_the_end PASSED [ 71%] tests/input/test_input_messages.py::test_no_startup_messages PASSED [ 71%] tests/input/test_input_messages.py::test_startup_messages_with_initial_value PASSED [ 71%] tests/input/test_input_messages.py::test_typing_from_empty_causes_changed PASSED [ 71%] tests/input/test_input_messages.py::test_typing_from_pre_populated_causes_changed PASSED [ 71%] tests/input/test_input_messages.py::test_submit_empty_input PASSED [ 71%] tests/input/test_input_messages.py::test_submit_pre_populated_input PASSED [ 71%] tests/input/test_input_messages.py::test_paste_event_impact PASSED [ 71%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-0-0] PASSED [ 71%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-1-1] PASSED [ 71%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-10-10] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-47-47] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-48-48] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-58-48] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-0-0] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-1-0] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-2-1] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-3-1] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-4-2] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-5-2] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-9-4] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-10-5] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-50-5] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-0-0] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-1-1] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-2-1] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-3-2] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-4-2] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-5-3] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-13-9] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-14-9] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-15-10] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-60-10] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_click_outwith PASSED [ 72%] tests/input/test_input_properties.py::test_internal_value_no_password PASSED [ 73%] tests/input/test_input_properties.py::test_internal_value_password PASSED [ 73%] tests/input/test_input_properties.py::test_internal_value_highlighted PASSED [ 73%] tests/input/test_input_properties.py::test_cursor_toggle PASSED [ 73%] tests/input/test_input_properties.py::test_input_height PASSED [ 73%] tests/input/test_input_restrict.py::test_input_number_type PASSED [ 73%] tests/input/test_input_restrict.py::test_input_integer_type PASSED [ 73%] tests/input/test_input_restrict.py::test_bad_type PASSED [ 73%] tests/input/test_input_restrict.py::test_max_length PASSED [ 73%] tests/input/test_input_restrict.py::test_restrict PASSED [ 73%] tests/input/test_input_restrict.py::test_restrict_type PASSED [ 73%] tests/input/test_input_terminal_cursor.py::test_initial_terminal_cursor_position PASSED [ 73%] tests/input/test_input_terminal_cursor.py::test_terminal_cursor_position_update_on_cursor_move PASSED [ 73%] tests/input/test_input_validation.py::test_input_changed_message_validation_failure PASSED [ 73%] tests/input/test_input_validation.py::test_input_changed_message_validation_success PASSED [ 73%] tests/input/test_input_validation.py::test_input_submitted_message_validation_failure PASSED [ 73%] tests/input/test_input_validation.py::test_input_submitted_message_validation_success PASSED [ 73%] tests/input/test_input_validation.py::test_on_blur_triggers_validation PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on0] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on1] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on2] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on3] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on4] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on0] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on1] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on2] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on3] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on4] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on0] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on1] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on2] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on3] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on4] PASSED [ 74%] tests/input/test_input_validation.py::test_none_validate_on_means_all_validations_happen PASSED [ 74%] tests/input/test_input_validation.py::test_valid_empty PASSED [ 74%] tests/input/test_input_value_visibility.py::test_input_value_visible_on_instantiation FAILED [ 74%] =================================== FAILURES =================================== __________________ test_input_value_visible_on_instantiation ___________________ async def test_input_value_visible_on_instantiation(): """Check if the full input value is rendered if the input is instantiated with it.""" class MyApp(App): def compose(self): yield Input(value="value") app = MyApp() async with app.run_test(): console = Console(width=5) with console.capture() as capture: console.print(app.query_one(Input).render()) > assert capture.get() == "value" E AssertionError: assert 'value ' == 'value' E - value E + value tests/input/test_input_value_visibility.py:19: AssertionError =============================== warnings summary =============================== tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[before] /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.12_textual/build/textual/css/stylesheet.py:517: RuntimeWarning: coroutine 'test_async_reactive_watch_callbacks_go_on_the_watcher..MyApp.callback' was never awaited rule_attributes[key].append((rule_specificity, value)) Enable tracemalloc to get traceback where the object was allocated. See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/input/test_input_value_visibility.py::test_input_value_visible_on_instantiation !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! = 1 failed, 1777 passed, 1 skipped, 8 deselected, 4 xfailed, 1 warning in 183.75s (0:03:03) = E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.12_textual/build; python3.12 -m pytest -x -vvv -m "not syntax" --ignore=tests/test_features.py --ignore=tests/command_palette --ignore=tests/snapshot_tests -k "not test_footer_highlight_when_pushing_modal and not test_softbreak_split_links_rendered_correctly and not test_headings_that_look_like_they_contain_markup and not test_screen_stack_preserved and not test_clicking_outside_command_palette_closes_it and not test_command_source_environment and not test_escape_closes_when_no_list_visible and not test_register_language" I: pybuild base:311: cd /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.11_textual/build; python3.11 -m pytest -x -vvv -m "not syntax" --ignore=tests/test_features.py --ignore=tests/command_palette --ignore=tests/snapshot_tests -k "not test_footer_highlight_when_pushing_modal and not test_softbreak_split_links_rendered_correctly and not test_headings_that_look_like_they_contain_markup and not test_screen_stack_preserved and not test_clicking_outside_command_palette_closes_it and not test_command_source_environment and not test_escape_closes_when_no_list_visible and not test_register_language" ============================= test session starts ============================== platform linux -- Python 3.11.9, pytest-7.4.4, pluggy-1.5.0 -- /usr/bin/python3.11 cachedir: .pytest_cache rootdir: /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.11_textual/build configfile: pyproject.toml testpaths: tests plugins: syrupy-4.6.1, asyncio-0.20.3 asyncio: mode=Mode.AUTO collecting ... collected 2402 items / 8 deselected / 2394 selected tests/test_actions.py::test_parse_action[spam-spam-expected_arguments0] PASSED [ 0%] tests/test_actions.py::test_parse_action[hypothetical_action()-hypothetical_action-expected_arguments1] PASSED [ 0%] tests/test_actions.py::test_parse_action[another_action(1)-another_action-expected_arguments2] PASSED [ 0%] tests/test_actions.py::test_parse_action[foo(True, False)-foo-expected_arguments3] PASSED [ 0%] tests/test_actions.py::test_parse_action[foo.bar.baz(3, 3.15, 'Python')-foo.bar.baz-expected_arguments4] PASSED [ 0%] tests/test_actions.py::test_parse_action[m1234.n5678(None, [1, 2])-m1234.n5678-expected_arguments5] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f()-expected_arguments0] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(())-expected_arguments1] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2, 3))-expected_arguments2] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2, 3), (1, 2, 3))-expected_arguments3] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(((1, 2), (), None), 0)-expected_arguments4] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((((((1))))))-expected_arguments5] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(((((((((1, 2)))))))))-expected_arguments6] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2), (3, 4))-expected_arguments7] PASSED [ 0%] tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((((((1, 2), (3, 4))))))-expected_arguments8] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('')-expected_arguments0] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f("")-expected_arguments1] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('''''')-expected_arguments2] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f("""""")-expected_arguments3] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('(')-expected_arguments4] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f(')')-expected_arguments5] PASSED [ 0%] tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('f()')-expected_arguments6] PASSED [ 0%] tests/test_actions.py::test_parse_action_raises_error[foo(,,,,,)] PASSED [ 0%] tests/test_actions.py::test_parse_action_raises_error[bar(1 2 3 4 5)] PASSED [ 1%] tests/test_actions.py::test_parse_action_raises_error[baz.spam(Tru, Fals, in)] PASSED [ 1%] tests/test_actions.py::test_parse_action_raises_error[ham(not)] PASSED [ 1%] tests/test_actions.py::test_parse_action_raises_error[cheese((((()] PASSED [ 1%] tests/test_animation.py::test_animate_height PASSED [ 1%] tests/test_animation.py::test_scheduling_animation PASSED [ 1%] tests/test_animation.py::test_wait_for_current_animations PASSED [ 1%] tests/test_animation.py::test_wait_for_current_and_scheduled_animations PASSED [ 1%] tests/test_animation.py::test_reverse_animations PASSED [ 1%] tests/test_animation.py::test_schedule_reverse_animations PASSED [ 1%] tests/test_animation.py::test_cancel_app_animation PASSED [ 1%] tests/test_animation.py::test_cancel_app_non_animation PASSED [ 1%] tests/test_animation.py::test_cancel_widget_animation PASSED [ 1%] tests/test_animation.py::test_cancel_widget_non_animation PASSED [ 1%] tests/test_animator.py::test_simple_animation PASSED [ 1%] tests/test_animator.py::test_simple_animation_duration_zero PASSED [ 1%] tests/test_animator.py::test_simple_animation_reverse PASSED [ 1%] tests/test_animator.py::test_animatable PASSED [ 1%] tests/test_animator.py::test_animator PASSED [ 1%] tests/test_animator.py::test_bound_animator PASSED [ 1%] tests/test_animator.py::test_animator_on_complete_callback_not_fired_before_duration_ends PASSED [ 1%] tests/test_animator.py::test_animator_on_complete_callback_fired_at_duration PASSED [ 1%] tests/test_animator.py::test_force_stop_animation PASSED [ 1%] tests/test_app.py::test_batch_update PASSED [ 1%] tests/test_app.py::test_hover_update_styles PASSED [ 2%] tests/test_app.py::test_setting_title PASSED [ 2%] tests/test_app.py::test_setting_sub_title PASSED [ 2%] tests/test_app.py::test_default_return_code_is_zero PASSED [ 2%] tests/test_app.py::test_return_code_is_one_after_crash PASSED [ 2%] tests/test_app.py::test_set_return_code PASSED [ 2%] tests/test_app.py::test_no_return_code_before_running PASSED [ 2%] tests/test_app.py::test_no_return_code_while_running PASSED [ 2%] tests/test_arrange.py::test_arrange_empty PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_top PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_left PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_right PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_bottom PASSED [ 2%] tests/test_arrange.py::test_arrange_dock_badly PASSED [ 2%] tests/test_auto_refresh.py::test_auto_refresh PASSED [ 2%] tests/test_await_remove.py::test_multiple_simultaneous_removals PASSED [ 2%] tests/test_binding.py::test_bindings_get_key PASSED [ 2%] tests/test_binding.py::test_bindings_get_key_spaced_list PASSED [ 2%] tests/test_binding.py::test_bindings_merge_simple PASSED [ 2%] tests/test_binding.py::test_bindings_merge_overlap PASSED [ 2%] tests/test_binding.py::test_bad_binding_tuple PASSED [ 2%] tests/test_binding.py::test_binding_from_tuples PASSED [ 2%] tests/test_binding.py::test_shown PASSED [ 2%] tests/test_binding.py::test_invalid_binding PASSED [ 2%] tests/test_binding_inheritance.py::test_just_app_no_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_just_app_alpha_binding PASSED [ 3%] tests/test_binding_inheritance.py::test_just_app_low_priority_alpha_binding PASSED [ 3%] tests/test_binding_inheritance.py::test_app_screen_with_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_app_screen_with_low_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_pressing_alpha_on_app PASSED [ 3%] tests/test_binding_inheritance.py::test_pressing_movement_keys_app PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings_on_screen PASSED [ 3%] tests/test_binding_inheritance.py::test_contained_focused_child_widget_with_movement_bindings_on_screen PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings_no_inherit PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_no_inherit_with_movement_bindings_on_screen PASSED [ 3%] tests/test_binding_inheritance.py::test_focused_child_widget_no_inherit_empty_bindings_with_movement_bindings_on_screen PASSED [ 3%] tests/test_binding_inheritance.py::test_overlapping_priority_bindings PASSED [ 3%] tests/test_binding_inheritance.py::test_skip_action PASSED [ 3%] tests/test_border.py::test_border_render_row PASSED [ 3%] tests/test_border.py::test_border_title_single_line PASSED [ 3%] tests/test_border.py::test_border_subtitle_single_line PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[10-True-True] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[10-True-False] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[10-False-False] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[10-False-True] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[1-True-True] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[1-True-False] PASSED [ 3%] tests/test_border.py::test_render_border_label_empty_label_skipped[1-False-False] PASSED [ 4%] tests/test_border.py::test_render_border_label_empty_label_skipped[1-False-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-True-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-True-False] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-False-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-3-True-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-4-True-True] PASSED [ 4%] tests/test_border.py::test_render_border_label_wide_plain[Why did the scarecrow] PASSED [ 4%] tests/test_border.py::test_render_border_label_wide_plain[win a Nobel prize?] PASSED [ 4%] tests/test_border.py::test_render_border_label_wide_plain[because it was outstanding] PASSED [ 4%] tests/test_border.py::test_render_border_label_wide_plain[in its field.] PASSED [ 4%] tests/test_border.py::test_render_border_empty_text_with_markup[[b][/]] PASSED [ 4%] tests/test_border.py::test_render_border_empty_text_with_markup[[i b][/]] PASSED [ 4%] tests/test_border.py::test_render_border_empty_text_with_markup[[white on red][/]] PASSED [ 4%] tests/test_border.py::test_render_border_empty_text_with_markup[[blue]] PASSED [ 4%] tests/test_border.py::test_render_border_label PASSED [ 4%] tests/test_border_subtitle.py::test_border_subtitle PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad10-quad20-expected0] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad11-quad21-expected1] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad12-quad22-expected2] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad13-quad23-expected3] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad14-quad24-expected4] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad15-quad25-expected5] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad16-quad26-expected6] PASSED [ 4%] tests/test_box_drawing.py::test_box_combine_quads[quad17-quad27-expected7] PASSED [ 5%] tests/test_box_drawing.py::test_box_combine_quads[quad18-quad28-expected8] PASSED [ 5%] tests/test_box_drawing.py::test_box_combine_quads[quad19-quad29-expected9] PASSED [ 5%] tests/test_box_drawing.py::test_box_combine_quads[quad110-quad210-expected10] PASSED [ 5%] tests/test_box_drawing.py::test_box_combine_quads[quad111-quad211-expected11] PASSED [ 5%] tests/test_box_model.py::test_content_box PASSED [ 5%] tests/test_box_model.py::test_width PASSED [ 5%] tests/test_box_model.py::test_height PASSED [ 5%] tests/test_box_model.py::test_max PASSED [ 5%] tests/test_box_model.py::test_min PASSED [ 5%] tests/test_cache.py::test_lru_cache PASSED [ 5%] tests/test_cache.py::test_lru_cache_hits PASSED [ 5%] tests/test_cache.py::test_lru_cache_get PASSED [ 5%] tests/test_cache.py::test_lru_cache_maxsize PASSED [ 5%] tests/test_cache.py::test_lru_cache_mapping PASSED [ 5%] tests/test_cache.py::test_lru_cache_clear PASSED [ 5%] tests/test_cache.py::test_lru_cache_bool PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys0-expected0] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys1-expected1] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys2-expected2] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys3-expected3] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys4-expected4] PASSED [ 5%] tests/test_cache.py::test_lru_cache_evicts[keys5-expected5] PASSED [ 5%] tests/test_cache.py::test_lru_cache_len[keys0-0] PASSED [ 5%] tests/test_cache.py::test_lru_cache_len[keys1-1] PASSED [ 6%] tests/test_cache.py::test_lru_cache_len[keys2-2] PASSED [ 6%] tests/test_cache.py::test_lru_cache_len[keys3-3] PASSED [ 6%] tests/test_cache.py::test_lru_cache_len[keys4-3] PASSED [ 6%] tests/test_cache.py::test_lru_cache_len[keys5-3] PASSED [ 6%] tests/test_cache.py::test_fifo_cache PASSED [ 6%] tests/test_cache.py::test_fifo_cache_hits PASSED [ 6%] tests/test_cache.py::test_discard PASSED [ 6%] tests/test_cache.py::test_discard_regression PASSED [ 6%] tests/test_call_x_schedulers.py::test_call_later PASSED [ 6%] tests/test_call_x_schedulers.py::test_call_after_refresh PASSED [ 6%] tests/test_case.py::test_camel_to_snake PASSED [ 6%] tests/test_collapsible.py::test_collapsible PASSED [ 6%] tests/test_collapsible.py::test_compose_default_collapsible PASSED [ 6%] tests/test_collapsible.py::test_compose_empty_collapsible PASSED [ 6%] tests/test_collapsible.py::test_compose_nested_collapsible PASSED [ 6%] tests/test_collapsible.py::test_compose_expanded_collapsible PASSED [ 6%] tests/test_collapsible.py::test_collapsible_collapsed_contents_display_false PASSED [ 6%] tests/test_collapsible.py::test_collapsible_expanded_contents_display_true PASSED [ 6%] tests/test_collapsible.py::test_toggle_title PASSED [ 6%] tests/test_collapsible.py::test_toggle_message PASSED [ 6%] tests/test_collapsible.py::test_expand_message PASSED [ 6%] tests/test_collapsible.py::test_collapse_message PASSED [ 6%] tests/test_collapsible.py::test_collapsible_title_reactive_change PASSED [ 6%] tests/test_color.py::test_rich_color PASSED [ 7%] tests/test_color.py::test_normalized PASSED [ 7%] tests/test_color.py::test_clamped PASSED [ 7%] tests/test_color.py::test_css PASSED [ 7%] tests/test_color.py::test_monochrome PASSED [ 7%] tests/test_color.py::test_rgb PASSED [ 7%] tests/test_color.py::test_hsl PASSED [ 7%] tests/test_color.py::test_color_brightness PASSED [ 7%] tests/test_color.py::test_color_hex PASSED [ 7%] tests/test_color.py::test_color_hex6 PASSED [ 7%] tests/test_color.py::test_color_css PASSED [ 7%] tests/test_color.py::test_color_with_alpha PASSED [ 7%] tests/test_color.py::test_multiply_alpha PASSED [ 7%] tests/test_color.py::test_color_blend PASSED [ 7%] tests/test_color.py::test_color_parse[#000000-expected0] PASSED [ 7%] tests/test_color.py::test_color_parse[#ffffff-expected1] PASSED [ 7%] tests/test_color.py::test_color_parse[#FFFFFF-expected2] PASSED [ 7%] tests/test_color.py::test_color_parse[#fab-expected3] PASSED [ 7%] tests/test_color.py::test_color_parse[#fab0-expected4] PASSED [ 7%] tests/test_color.py::test_color_parse[#020304ff-expected5] PASSED [ 7%] tests/test_color.py::test_color_parse[#02030400-expected6] PASSED [ 7%] tests/test_color.py::test_color_parse[#0203040f-expected7] PASSED [ 7%] tests/test_color.py::test_color_parse[rgb(0,0,0)-expected8] PASSED [ 7%] tests/test_color.py::test_color_parse[rgb(255,255,255)-expected9] PASSED [ 7%] tests/test_color.py::test_color_parse[rgba(255,255,255,1)-expected10] PASSED [ 8%] tests/test_color.py::test_color_parse[rgb(2,3,4)-expected11] PASSED [ 8%] tests/test_color.py::test_color_parse[rgba(2,3,4,1.0)-expected12] PASSED [ 8%] tests/test_color.py::test_color_parse[rgba(2,3,4,0.058823529411764705)-expected13] PASSED [ 8%] tests/test_color.py::test_color_parse[hsl(45,25%,25%)-expected14] PASSED [ 8%] tests/test_color.py::test_color_parse[hsla(45,25%,25%,0.35)-expected15] PASSED [ 8%] tests/test_color.py::test_color_parse_input_has_spaces[rgb( 300, 300 , 300 )-output0] PASSED [ 8%] tests/test_color.py::test_color_parse_input_has_spaces[rgba( 2 , 3 , 4, 1.0 )-output1] PASSED [ 8%] tests/test_color.py::test_color_parse_input_has_spaces[hsl( 45, 25% , 25% )-output2] PASSED [ 8%] tests/test_color.py::test_color_parse_input_has_spaces[hsla( 45, 25% , 25%, 0.35 )-output3] PASSED [ 8%] tests/test_color.py::test_color_parse_clamp[rgb(300, 300, 300)-output0] PASSED [ 8%] tests/test_color.py::test_color_parse_clamp[rgba(300, 300, 300, 300)-output1] PASSED [ 8%] tests/test_color.py::test_color_parse_clamp[hsl(400, 200%, 250%)-output2] PASSED [ 8%] tests/test_color.py::test_color_parse_clamp[hsla(400, 200%, 250%, 1.9)-output3] PASSED [ 8%] tests/test_color.py::test_color_parse_hsl_negative_degrees PASSED [ 8%] tests/test_color.py::test_color_parse_hsla_negative_degrees PASSED [ 8%] tests/test_color.py::test_color_parse_color PASSED [ 8%] tests/test_color.py::test_color_add PASSED [ 8%] tests/test_color.py::test_color_darken PASSED [ 8%] tests/test_color.py::test_color_lighten PASSED [ 8%] tests/test_color.py::test_rgb_to_lab[10-23-73-10.245-15.913--32.672] PASSED [ 8%] tests/test_color.py::test_rgb_to_lab[200-34-123-45.438-67.75--8.008] PASSED [ 8%] tests/test_color.py::test_rgb_to_lab[0-0-0-0-0-0] PASSED [ 8%] tests/test_color.py::test_rgb_to_lab[255-255-255-100-0-0] PASSED [ 8%] tests/test_color.py::test_lab_to_rgb[10-23-73-10.245-15.913--32.672] PASSED [ 9%] tests/test_color.py::test_lab_to_rgb[200-34-123-45.438-67.75--8.008] PASSED [ 9%] tests/test_color.py::test_lab_to_rgb[0-0-0-0-0-0] PASSED [ 9%] tests/test_color.py::test_lab_to_rgb[255-255-255-100-0-0] PASSED [ 9%] tests/test_color.py::test_rgb_lab_rgb_roundtrip PASSED [ 9%] tests/test_color.py::test_inverse PASSED [ 9%] tests/test_color.py::test_gradient_errors PASSED [ 9%] tests/test_color.py::test_gradient PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_no_regions PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_single_region PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_partially_overlapping_regions PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_fully_overlapping_regions PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_disjoint_regions_different_lines PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_disjoint_regions_same_line PASSED [ 9%] tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_directly_adjacent_ranges_merged PASSED [ 9%] tests/test_concurrency.py::test_call_from_thread_app_not_running PASSED [ 9%] tests/test_concurrency.py::test_call_from_thread PASSED [ 9%] tests/test_containers.py::test_horizontal_vs_horizontalscroll_scrolling PASSED [ 9%] tests/test_containers.py::test_vertical_vs_verticalscroll_scrolling PASSED [ 9%] tests/test_containers.py::test_center_container PASSED [ 9%] tests/test_containers.py::test_middle_container PASSED [ 9%] tests/test_containers.py::test_scrollbar_zero_thickness PASSED [ 9%] tests/test_content_switcher.py::test_no_initial_display PASSED [ 9%] tests/test_content_switcher.py::test_initial_display PASSED [ 9%] tests/test_content_switcher.py::test_no_initial_display_then_set PASSED [ 10%] tests/test_content_switcher.py::test_initial_display_then_change PASSED [ 10%] tests/test_content_switcher.py::test_initial_display_then_hide PASSED [ 10%] tests/test_content_switcher.py::test_initial_display_unknown_id XFAILs related to https://github.com/Textualize/textual/issues/1972) [ 10%] tests/test_content_switcher.py::test_set_current_to_unknown_id PASSED [ 10%] tests/test_dark_toggle.py::test_toggle_dark_on_load PASSED [ 10%] tests/test_dark_toggle.py::test_toggle_dark_on_mount PASSED [ 10%] tests/test_dark_toggle.py::test_toggle_dark_in_action PASSED [ 10%] tests/test_data_bind.py::test_data_binding PASSED [ 10%] tests/test_data_bind.py::test_data_binding_missing_reactive PASSED [ 10%] tests/test_data_table.py::test_datatable_message_emission PASSED [ 10%] tests/test_data_table.py::test_empty_table_interactions PASSED [ 10%] tests/test_data_table.py::test_cursor_movement_with_home_pagedown_etc[True] PASSED [ 10%] tests/test_data_table.py::test_cursor_movement_with_home_pagedown_etc[False] PASSED [ 10%] tests/test_data_table.py::test_add_rows PASSED [ 10%] tests/test_data_table.py::test_add_rows_user_defined_keys PASSED [ 10%] tests/test_data_table.py::test_add_row_duplicate_key PASSED [ 10%] tests/test_data_table.py::test_add_column_duplicate_key PASSED [ 10%] tests/test_data_table.py::test_add_column_with_width PASSED [ 10%] tests/test_data_table.py::test_add_columns PASSED [ 10%] tests/test_data_table.py::test_add_columns_user_defined_keys PASSED [ 10%] tests/test_data_table.py::test_remove_row PASSED [ 10%] tests/test_data_table.py::test_remove_row_and_update PASSED [ 10%] tests/test_data_table.py::test_remove_column PASSED [ 10%] tests/test_data_table.py::test_remove_column_and_update PASSED [ 11%] tests/test_data_table.py::test_clear PASSED [ 11%] tests/test_data_table.py::test_column_labels PASSED [ 11%] tests/test_data_table.py::test_initial_column_widths PASSED [ 11%] tests/test_data_table.py::test_get_cell_returns_value_at_cell PASSED [ 11%] tests/test_data_table.py::test_get_cell_invalid_row_key PASSED [ 11%] tests/test_data_table.py::test_get_cell_invalid_column_key PASSED [ 11%] tests/test_data_table.py::test_get_cell_coordinate_returns_coordinate PASSED [ 11%] tests/test_data_table.py::test_get_cell_coordinate_invalid_row_key PASSED [ 11%] tests/test_data_table.py::test_get_cell_coordinate_invalid_column_key PASSED [ 11%] tests/test_data_table.py::test_get_cell_at_returns_value_at_cell PASSED [ 11%] tests/test_data_table.py::test_get_cell_at_exception PASSED [ 11%] tests/test_data_table.py::test_get_row PASSED [ 11%] tests/test_data_table.py::test_get_row_invalid_row_key PASSED [ 11%] tests/test_data_table.py::test_get_row_at PASSED [ 11%] tests/test_data_table.py::test_get_row_at_invalid_index[-1] PASSED [ 11%] tests/test_data_table.py::test_get_row_at_invalid_index[2] PASSED [ 11%] tests/test_data_table.py::test_get_row_index_returns_index PASSED [ 11%] tests/test_data_table.py::test_get_row_index_invalid_row_key PASSED [ 11%] tests/test_data_table.py::test_get_column PASSED [ 11%] tests/test_data_table.py::test_get_column_invalid_key PASSED [ 11%] tests/test_data_table.py::test_get_column_at PASSED [ 11%] tests/test_data_table.py::test_get_column_at_invalid_index[-1] PASSED [ 11%] tests/test_data_table.py::test_get_column_at_invalid_index[5] PASSED [ 11%] tests/test_data_table.py::test_get_column_index_returns_index PASSED [ 12%] tests/test_data_table.py::test_get_column_index_invalid_column_key PASSED [ 12%] tests/test_data_table.py::test_update_cell_cell_exists PASSED [ 12%] tests/test_data_table.py::test_update_cell_cell_doesnt_exist PASSED [ 12%] tests/test_data_table.py::test_update_cell_invalid_column_key PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_coordinate_exists PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_coordinate_doesnt_exist PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_column_width[A-BB-3] PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_column_width[1234567-1234-7] PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_column_width[12345-123-5] PASSED [ 12%] tests/test_data_table.py::test_update_cell_at_column_width[12345-123456789-9] PASSED [ 12%] tests/test_data_table.py::test_coordinate_to_cell_key PASSED [ 12%] tests/test_data_table.py::test_coordinate_to_cell_key_invalid_coordinate PASSED [ 12%] tests/test_data_table.py::test_datatable_click_cell_cursor PASSED [ 12%] tests/test_data_table.py::test_click_row_cursor PASSED [ 12%] tests/test_data_table.py::test_click_column_cursor PASSED [ 12%] tests/test_data_table.py::test_hover_coordinate PASSED [ 12%] tests/test_data_table.py::test_hover_mouse_leave PASSED [ 12%] tests/test_data_table.py::test_header_selected PASSED [ 12%] tests/test_data_table.py::test_row_label_selected PASSED [ 12%] tests/test_data_table.py::test_sort_coordinate_and_key_access PASSED [ 12%] tests/test_data_table.py::test_sort_reverse_coordinate_and_key_access PASSED [ 12%] tests/test_data_table.py::test_cell_cursor_highlight_events PASSED [ 12%] tests/test_data_table.py::test_row_cursor_highlight_events PASSED [ 12%] tests/test_data_table.py::test_column_cursor_highlight_events PASSED [ 13%] tests/test_data_table.py::test_reuse_row_key_after_clear PASSED [ 13%] tests/test_data_table.py::test_reuse_column_key_after_clear PASSED [ 13%] tests/test_data_table.py::test_key_equals_equivalent_string PASSED [ 13%] tests/test_data_table.py::test_key_doesnt_match_non_equal_string PASSED [ 13%] tests/test_data_table.py::test_key_equals_self PASSED [ 13%] tests/test_data_table.py::test_key_string_lookup PASSED [ 13%] tests/test_data_table.py::test_scrolling_cursor_into_view PASSED [ 13%] tests/test_data_table.py::test_move_cursor PASSED [ 13%] tests/test_data_table.py::test_unset_hover_highlight_when_no_table_cell_under_mouse PASSED [ 13%] tests/test_data_table.py::test_sort_by_all_columns_no_key PASSED [ 13%] tests/test_data_table.py::test_sort_by_multiple_columns_no_key PASSED [ 13%] tests/test_data_table.py::test_sort_by_function_sum PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[hey there-1] PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[cell1-1] PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[cell2-2] PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[cell3-4] PASSED [ 13%] tests/test_data_table.py::test_add_row_auto_height[1\n2\n3\n4\n5\n6\n7-7] PASSED [ 13%] tests/test_data_table.py::test_add_row_expands_column_widths PASSED [ 13%] tests/test_data_table.py::test_cell_padding_updates_virtual_size PASSED [ 13%] tests/test_data_table.py::test_cell_padding_cannot_be_negative PASSED [ 13%] tests/test_data_table.py::test_move_cursor_respects_animate_parameter PASSED [ 13%] tests/test_disabled.py::test_all_initially_enabled PASSED [ 13%] tests/test_disabled.py::test_enabled_widgets_have_enabled_pseudo_class PASSED [ 13%] tests/test_disabled.py::test_all_individually_disabled PASSED [ 14%] tests/test_disabled.py::test_disabled_widgets_have_disabled_pseudo_class PASSED [ 14%] tests/test_disabled.py::test_disable_via_container PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Button] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Checkbox] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[DataTable] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[DirectoryTree] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Input] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[ListView] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[OptionList] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[RadioSet] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Select] PASSED [ 14%] tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Switch] PASSED [ 14%] tests/test_dom.py::test_display_default PASSED [ 14%] tests/test_dom.py::test_display_set_bool[True-block] PASSED [ 14%] tests/test_dom.py::test_display_set_bool[False-none] PASSED [ 14%] tests/test_dom.py::test_display_set_bool[block-block] PASSED [ 14%] tests/test_dom.py::test_display_set_bool[none-none] PASSED [ 14%] tests/test_dom.py::test_display_set_invalid_value PASSED [ 14%] tests/test_dom.py::test_validate PASSED [ 14%] tests/test_dom.py::test_classes_setter PASSED [ 14%] tests/test_dom.py::test_classes_setter_iterable PASSED [ 14%] tests/test_dom.py::test_classes_set_classes PASSED [ 14%] tests/test_dom.py::test_inherited_bindings PASSED [ 14%] tests/test_dom.py::test__get_default_css PASSED [ 15%] tests/test_dom.py::test_component_classes_inheritance PASSED [ 15%] tests/test_dom.py::test_walk_children_depth PASSED [ 15%] tests/test_dom.py::test_walk_children_with_self_depth PASSED [ 15%] tests/test_dom.py::test_walk_children_breadth PASSED [ 15%] tests/test_dom.py::test_walk_children_with_self_breadth PASSED [ 15%] tests/test_dom.py::test_id_validation[ bad] PASSED [ 15%] tests/test_dom.py::test_id_validation[ terrible ] PASSED [ 15%] tests/test_dom.py::test_id_validation[worse! ] PASSED [ 15%] tests/test_dom.py::test_id_validation[&ersand] PASSED [ 15%] tests/test_dom.py::test_id_validation[amper&sand] PASSED [ 15%] tests/test_dom.py::test_id_validation[ampersand&] PASSED [ 15%] tests/test_dom.py::test_id_validation[2_leading_digits] PASSED [ 15%] tests/test_dom.py::test_id_validation[\xe1gua] PASSED [ 15%] tests/test_dom.py::test_id_validation[c\xe3o] PASSED [ 15%] tests/test_dom.py::test_id_validation[@'/.23] PASSED [ 15%] tests/test_driver.py::test_driver_mouse_down_up_click PASSED [ 15%] tests/test_driver.py::test_driver_mouse_down_up_click_widget PASSED [ 15%] tests/test_driver.py::test_driver_mouse_down_drag_inside_widget_up_click PASSED [ 15%] tests/test_driver.py::test_driver_mouse_down_drag_outside_widget_up_click PASSED [ 15%] tests/test_easing.py::test_coverage PASSED [ 15%] tests/test_easing.py::test_easings PASSED [ 15%] tests/test_expand_tabs.py::test_expand_tabs_inline[ b ar - b ar ] PASSED [ 15%] tests/test_expand_tabs.py::test_expand_tabs_inline[\tbar- bar] PASSED [ 15%] tests/test_expand_tabs.py::test_expand_tabs_inline[\tbar\t- bar ] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[\tr\t- r ] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[1\tbar-1 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[12\tbar-12 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[123\tbar-123 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[1234\tbar-1234 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\tbar-\U0001f4a9 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\U0001f4a9\tbar-\U0001f4a9\U0001f4a9 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\U0001f4a9\U0001f4a9\tbar-\U0001f4a9\U0001f4a9\U0001f4a9 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[F\U0001f4a9\tbar-F\U0001f4a9 bar] PASSED [ 16%] tests/test_expand_tabs.py::test_expand_tabs_inline[F\U0001f4a9O\tbar-F\U0001f4a9O bar] PASSED [ 16%] tests/test_expand_tabs.py::test_get_tab_widths PASSED [ 16%] tests/test_file_monitor.py::test_repr PASSED [ 16%] tests/test_file_monitor.py::test_file_never_found PASSED [ 16%] tests/test_file_monitor.py::test_file_deletion PASSED [ 16%] tests/test_focus.py::test_focus_chain PASSED [ 16%] tests/test_focus.py::test_allow_focus PASSED [ 16%] tests/test_focus.py::test_focus_next_and_previous PASSED [ 16%] tests/test_focus.py::test_focus_next_wrap_around PASSED [ 16%] tests/test_focus.py::test_focus_previous_wrap_around PASSED [ 16%] tests/test_focus.py::test_wrap_around_selector PASSED [ 16%] tests/test_focus.py::test_no_focus_empty_selector PASSED [ 16%] tests/test_focus.py::test_focus_next_and_previous_with_type_selector PASSED [ 16%] tests/test_focus.py::test_focus_next_and_previous_with_str_selector PASSED [ 17%] tests/test_focus.py::test_focus_next_and_previous_with_type_selector_without_self PASSED [ 17%] tests/test_focus.py::test_focus_next_and_previous_with_str_selector_without_self PASSED [ 17%] tests/test_focus.py::test_focus_does_not_move_to_invisible_widgets PASSED [ 17%] tests/test_focus.py::test_focus_moves_to_visible_widgets_inside_invisible_containers PASSED [ 17%] tests/test_focus.py::test_focus_chain_handles_inherited_visibility PASSED [ 17%] tests/test_focus.py::test_mouse_down_gives_focus PASSED [ 17%] tests/test_focus.py::test_mouse_up_does_not_give_focus PASSED [ 17%] tests/test_focus.py::test_focus_pseudo_class PASSED [ 17%] tests/test_freeze.py::test_freeze PASSED [ 17%] tests/test_fuzzy.py::test_match PASSED [ 17%] tests/test_fuzzy.py::test_highlight PASSED [ 17%] tests/test_geometry.py::test_dimensions_region PASSED [ 17%] tests/test_geometry.py::test_dimensions_contains PASSED [ 17%] tests/test_geometry.py::test_dimensions_contains_point PASSED [ 17%] tests/test_geometry.py::test_dimensions_contains_special PASSED [ 17%] tests/test_geometry.py::test_dimensions_bool PASSED [ 17%] tests/test_geometry.py::test_dimensions_area PASSED [ 17%] tests/test_geometry.py::test_clamp PASSED [ 17%] tests/test_geometry.py::test_offset_bool PASSED [ 17%] tests/test_geometry.py::test_offset_is_origin PASSED [ 17%] tests/test_geometry.py::test_clamped PASSED [ 17%] tests/test_geometry.py::test_offset_add PASSED [ 17%] tests/test_geometry.py::test_offset_sub PASSED [ 17%] tests/test_geometry.py::test_offset_neg PASSED [ 18%] tests/test_geometry.py::test_offset_mul PASSED [ 18%] tests/test_geometry.py::test_offset_blend PASSED [ 18%] tests/test_geometry.py::test_offset_get_distance_to PASSED [ 18%] tests/test_geometry.py::test_region_null PASSED [ 18%] tests/test_geometry.py::test_region_from_union PASSED [ 18%] tests/test_geometry.py::test_region_from_offset PASSED [ 18%] tests/test_geometry.py::test_get_scroll_to_visible[window0-region0-scroll0] PASSED [ 18%] tests/test_geometry.py::test_get_scroll_to_visible[window1-region1-scroll1] PASSED [ 18%] tests/test_geometry.py::test_get_scroll_to_visible[window2-region2-scroll2] PASSED [ 18%] tests/test_geometry.py::test_region_area PASSED [ 18%] tests/test_geometry.py::test_region_size PASSED [ 18%] tests/test_geometry.py::test_region_origin PASSED [ 18%] tests/test_geometry.py::test_region_bottom_left PASSED [ 18%] tests/test_geometry.py::test_region_top_right PASSED [ 18%] tests/test_geometry.py::test_region_bottom_right PASSED [ 18%] tests/test_geometry.py::test_region_add PASSED [ 18%] tests/test_geometry.py::test_region_sub PASSED [ 18%] tests/test_geometry.py::test_region_at_offset PASSED [ 18%] tests/test_geometry.py::test_crop_size PASSED [ 18%] tests/test_geometry.py::test_clip_size PASSED [ 18%] tests/test_geometry.py::test_region_overlaps PASSED [ 18%] tests/test_geometry.py::test_region_contains PASSED [ 18%] tests/test_geometry.py::test_region_contains_point PASSED [ 18%] tests/test_geometry.py::test_region_contains_region PASSED [ 19%] tests/test_geometry.py::test_region_translate PASSED [ 19%] tests/test_geometry.py::test_region_contains_special PASSED [ 19%] tests/test_geometry.py::test_clip PASSED [ 19%] tests/test_geometry.py::test_region_shrink PASSED [ 19%] tests/test_geometry.py::test_region_grow PASSED [ 19%] tests/test_geometry.py::test_region_intersection PASSED [ 19%] tests/test_geometry.py::test_region_union PASSED [ 19%] tests/test_geometry.py::test_size_add PASSED [ 19%] tests/test_geometry.py::test_size_sub PASSED [ 19%] tests/test_geometry.py::test_size_line_range PASSED [ 19%] tests/test_geometry.py::test_region_x_extents PASSED [ 19%] tests/test_geometry.py::test_region_y_extents PASSED [ 19%] tests/test_geometry.py::test_region_x_max PASSED [ 19%] tests/test_geometry.py::test_region_y_max PASSED [ 19%] tests/test_geometry.py::test_region_columns_range PASSED [ 19%] tests/test_geometry.py::test_region_lines_range PASSED [ 19%] tests/test_geometry.py::test_region_reset_offset PASSED [ 19%] tests/test_geometry.py::test_region_expand PASSED [ 19%] tests/test_geometry.py::test_spacing_bool PASSED [ 19%] tests/test_geometry.py::test_spacing_width PASSED [ 19%] tests/test_geometry.py::test_spacing_height PASSED [ 19%] tests/test_geometry.py::test_spacing_top_left PASSED [ 19%] tests/test_geometry.py::test_spacing_bottom_right PASSED [ 19%] tests/test_geometry.py::test_spacing_totals PASSED [ 20%] tests/test_geometry.py::test_spacing_css PASSED [ 20%] tests/test_geometry.py::test_spacing_unpack PASSED [ 20%] tests/test_geometry.py::test_spacing_add PASSED [ 20%] tests/test_geometry.py::test_spacing_sub PASSED [ 20%] tests/test_geometry.py::test_spacing_convenience_constructors PASSED [ 20%] tests/test_geometry.py::test_split PASSED [ 20%] tests/test_geometry.py::test_split_negative PASSED [ 20%] tests/test_geometry.py::test_split_vertical PASSED [ 20%] tests/test_geometry.py::test_split_vertical_negative PASSED [ 20%] tests/test_geometry.py::test_split_horizontal PASSED [ 20%] tests/test_geometry.py::test_split_horizontal_negative PASSED [ 20%] tests/test_geometry.py::test_translate_inside PASSED [ 20%] tests/test_geometry.py::test_inflect PASSED [ 20%] tests/test_header.py::test_screen_title_none_is_ignored PASSED [ 20%] tests/test_header.py::test_screen_title_overrides_app_title PASSED [ 20%] tests/test_header.py::test_screen_title_reactive_updates_title PASSED [ 20%] tests/test_header.py::test_app_title_reactive_does_not_update_title_when_screen_title_is_set PASSED [ 20%] tests/test_header.py::test_screen_sub_title_none_is_ignored PASSED [ 20%] tests/test_header.py::test_screen_sub_title_overrides_app_sub_title PASSED [ 20%] tests/test_header.py::test_screen_sub_title_reactive_updates_sub_title PASSED [ 20%] tests/test_header.py::test_app_sub_title_reactive_does_not_update_sub_title_when_screen_sub_title_is_set PASSED [ 20%] tests/test_immutable_sequence_view.py::test_empty_immutable_sequence PASSED [ 20%] tests/test_immutable_sequence_view.py::test_non_empty_immutable_sequence PASSED [ 20%] tests/test_immutable_sequence_view.py::test_no_assign_to_immutable_sequence PASSED [ 21%] tests/test_immutable_sequence_view.py::test_no_del_from_iummutable_sequence PASSED [ 21%] tests/test_immutable_sequence_view.py::test_get_item_from_immutable_sequence PASSED [ 21%] tests/test_immutable_sequence_view.py::test_get_slice_from_immutable_sequence PASSED [ 21%] tests/test_immutable_sequence_view.py::test_immutable_sequence_contains PASSED [ 21%] tests/test_immutable_sequence_view.py::test_immutable_sequence_index PASSED [ 21%] tests/test_immutable_sequence_view.py::test_reverse_immutable_sequence PASSED [ 21%] tests/test_keys.py::test_character_to_key[1-1] PASSED [ 21%] tests/test_keys.py::test_character_to_key[2-2] PASSED [ 21%] tests/test_keys.py::test_character_to_key[a-a] PASSED [ 21%] tests/test_keys.py::test_character_to_key[z-z] PASSED [ 21%] tests/test_keys.py::test_character_to_key[_-underscore] PASSED [ 21%] tests/test_keys.py::test_character_to_key[ -space] PASSED [ 21%] tests/test_keys.py::test_character_to_key[~-tilde] PASSED [ 21%] tests/test_keys.py::test_character_to_key[?-question_mark] PASSED [ 21%] tests/test_keys.py::test_character_to_key[\xa3-pound_sign] PASSED [ 21%] tests/test_keys.py::test_character_to_key[,-comma] PASSED [ 21%] tests/test_keys.py::test_character_bindings PASSED [ 21%] tests/test_keys.py::test_get_key_display PASSED [ 21%] tests/test_keys.py::test_get_key_display_when_used_in_conjunction PASSED [ 21%] tests/test_layout_resolve.py::test_empty PASSED [ 21%] tests/test_layout_resolve.py::test_total_zero PASSED [ 21%] tests/test_layout_resolve.py::test_single PASSED [ 21%] tests/test_layout_resolve.py::test_two PASSED [ 21%] tests/test_layout_resolve.py::test_multiple[10-edges0-result0] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges1-result1] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges2-result2] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges3-result3] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges4-result4] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges5-result5] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[10-edges6-result6] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[2-edges7-result7] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[2-edges8-result8] PASSED [ 22%] tests/test_layout_resolve.py::test_multiple[18-edges9-result9] PASSED [ 22%] tests/test_lazy.py::test_lazy PASSED [ 22%] tests/test_line_filter.py::test_dim_apply PASSED [ 22%] tests/test_line_split.py::test_split_string_to_lines_and_endings PASSED [ 22%] tests/test_loading.py::test_loading_disables_and_remove_scrollbars PASSED [ 22%] tests/test_log.py::test_process_line PASSED [ 22%] tests/test_loop.py::test_loop_first PASSED [ 22%] tests/test_loop.py::test_loop_last PASSED [ 22%] tests/test_loop.py::test_loop_first_last PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[-expected_nodes0] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[# Hello-expected_nodes1] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[## Hello-expected_nodes2] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[### Hello-expected_nodes3] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[#### Hello-expected_nodes4] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[##### Hello-expected_nodes5] PASSED [ 22%] tests/test_markdown.py::test_markdown_nodes[###### Hello-expected_nodes6] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[----expected_nodes7] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[Hello-expected_nodes8] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[Hello\nWorld-expected_nodes9] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[> Hello-expected_nodes10] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[- One\n-Two-expected_nodes11] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[1. One\n2. Two-expected_nodes12] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[ 1-expected_nodes13] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[```\n1\n```-expected_nodes14] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[```python\n1\n```-expected_nodes15] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[| One | Two |\n| :- | :- |\n| 1 | 2 |-expected_nodes16] PASSED [ 23%] tests/test_markdown.py::test_markdown_nodes[- One\n```\nTwo\n```\n- Three\n-expected_nodes17] PASSED [ 23%] tests/test_markdown.py::test_load_non_existing_file PASSED [ 23%] tests/test_markdown.py::test_goto_anchor[hello-world-False] PASSED [ 23%] tests/test_markdown.py::test_goto_anchor[hello-there-True] PASSED [ 23%] tests/test_markdownviewer.py::test_markdown_file_viewer_anchor_link[0] PASSED [ 23%] tests/test_markdownviewer.py::test_markdown_file_viewer_anchor_link[1] PASSED [ 23%] tests/test_markdownviewer.py::test_markdown_string_viewer_anchor_link[0] PASSED [ 23%] tests/test_markdownviewer.py::test_markdown_string_viewer_anchor_link[1] PASSED [ 23%] tests/test_message_handling.py::test_message_inheritance_namespace PASSED [ 23%] tests/test_message_pump.py::test_dispatch_key_valid_key PASSED [ 23%] tests/test_message_pump.py::test_dispatch_key_valid_key_alias PASSED [ 23%] tests/test_message_pump.py::test_dispatch_key_raises_when_conflicting_handler_aliases PASSED [ 23%] tests/test_message_pump.py::test_message_queue_size PASSED [ 23%] tests/test_message_pump.py::test_prevent PASSED [ 24%] tests/test_message_pump.py::test_prevent_with_call_next PASSED [ 24%] tests/test_mount.py::test_render_only_after_mount PASSED [ 24%] tests/test_node_list.py::test_empty_list PASSED [ 24%] tests/test_node_list.py::test_add_one PASSED [ 24%] tests/test_node_list.py::test_repeat_add_one PASSED [ 24%] tests/test_node_list.py::test_insert PASSED [ 24%] tests/test_node_list.py::test_truthy PASSED [ 24%] tests/test_node_list.py::test_contains PASSED [ 24%] tests/test_node_list.py::test_index PASSED [ 24%] tests/test_node_list.py::test_remove PASSED [ 24%] tests/test_node_list.py::test_clear PASSED [ 24%] tests/test_node_list.py::test_listy PASSED [ 24%] tests/test_on.py::test_on_button_pressed PASSED [ 24%] tests/test_on.py::test_on_inheritance PASSED [ 24%] tests/test_on.py::test_on_bad_selector PASSED [ 24%] tests/test_on.py::test_on_no_control PASSED [ 24%] tests/test_on.py::test_on_attribute_not_listed PASSED [ 24%] tests/test_on.py::test_on_arbitrary_attributes PASSED [ 24%] tests/test_on.py::test_fire_on_inherited_message PASSED [ 24%] tests/test_on.py::test_fire_inherited_on_single_handler PASSED [ 24%] tests/test_on.py::test_fire_inherited_on_single_handler_multi_selector PASSED [ 24%] tests/test_on.py::test_fire_inherited_and_on_methods PASSED [ 24%] tests/test_on.py::test_fire_on_inherited_message_plus_mixins PASSED [ 24%] tests/test_overflow_change.py::test_overflow_change_updates_virtual_size_appropriately PASSED [ 25%] tests/test_parser.py::test_read1 PASSED [ 25%] tests/test_parser.py::test_read PASSED [ 25%] tests/test_partition.py::test_partition PASSED [ 25%] tests/test_paste.py::test_paste_app PASSED [ 25%] tests/test_paste.py::test_empty_paste PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app0-expected_css_path_attribute0] PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app1-expected_css_path_attribute1] PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app2-expected_css_path_attribute2] PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app3-expected_css_path_attribute3] PASSED [ 25%] tests/test_path.py::test_css_paths_of_various_types[app4-expected_css_path_attribute4] PASSED [ 25%] tests/test_pilot.py::test_pilot_press_ascii_chars PASSED [ 25%] tests/test_pilot.py::test_pilot_exception_catching_compose PASSED [ 25%] tests/test_pilot.py::test_pilot_exception_catching_action PASSED [ 25%] tests/test_pilot.py::test_pilot_click_screen PASSED [ 25%] tests/test_pilot.py::test_pilot_hover_screen PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size0-offset0] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size1-offset1] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size2-offset2] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size3-offset3] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size4-offset4] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size5-offset5] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size6-offset6] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size7-offset7] PASSED [ 25%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size8-offset8] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size9-offset9] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size10-offset10] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size11-offset11] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size12-offset12] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size13-offset13] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size14-offset14] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size15-offset15] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size16-offset16] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size17-offset17] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size18-offset18] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size19-offset19] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size20-offset20] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size21-offset21] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size22-offset22] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size23-offset23] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size24-offset24] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size25-offset25] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size26-offset26] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size27-offset27] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size28-offset28] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size29-offset29] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size30-offset30] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size31-offset31] PASSED [ 26%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size32-offset32] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size33-offset33] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size34-offset34] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size35-offset35] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size36-offset36] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size37-offset37] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size38-offset38] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size39-offset39] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size40-offset40] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size41-offset41] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size42-offset42] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size43-offset43] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size44-offset44] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size45-offset45] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size46-offset46] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size47-offset47] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size48-offset48] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size49-offset49] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size50-offset50] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size51-offset51] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size52-offset52] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size53-offset53] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size54-offset54] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size55-offset55] PASSED [ 27%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size56-offset56] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size57-offset57] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size58-offset58] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size59-offset59] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size60-offset60] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size61-offset61] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size62-offset62] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size63-offset63] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset0] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset1] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset2] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset3] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset4] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset5] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset6] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset7] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset8] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset9] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset10] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset11] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset12] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset13] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset14] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset15] PASSED [ 28%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset16] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset17] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset18] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset19] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset20] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset21] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset22] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset23] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset24] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset25] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset26] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset27] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset28] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset29] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset30] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset31] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset32] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset33] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset34] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset35] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-#label0] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-#label90] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-Button] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-#label0] PASSED [ 29%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-#label90] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-Button] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-#label0] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-#label90] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-Button] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-#label0] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-#label90] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-Button] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_widget_under_another_widget[click] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_widget_under_another_widget[hover] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_widget_under_another_widget[mouse_down] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_widget_under_another_widget[mouse_up] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_visible_widget[click] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_visible_widget[hover] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_visible_widget[mouse_down] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_visible_widget[mouse_up] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset0] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset1] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset2] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset3] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset4] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset5] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset6] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset7] PASSED [ 30%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset8] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset9] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset10] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset11] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset12] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset13] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset14] PASSED [ 31%] tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset15] PASSED [ 31%] tests/test_placeholder.py::test_invalid_placeholder_variant PASSED [ 31%] tests/test_placeholder.py::test_invalid_reactive_variant_change PASSED [ 31%] tests/test_progress_bar.py::test_initial_status PASSED [ 31%] tests/test_progress_bar.py::test_advance PASSED [ 31%] tests/test_progress_bar.py::test_advance_backwards PASSED [ 31%] tests/test_progress_bar.py::test_progress_overflow PASSED [ 31%] tests/test_progress_bar.py::test_progress_underflow PASSED [ 31%] tests/test_progress_bar.py::test_non_negative_total PASSED [ 31%] tests/test_progress_bar.py::test_update_total PASSED [ 31%] tests/test_progress_bar.py::test_update_progress PASSED [ 31%] tests/test_progress_bar.py::test_update_advance PASSED [ 31%] tests/test_progress_bar.py::test_update PASSED [ 31%] tests/test_progress_bar.py::test_go_back_to_indeterminate PASSED [ 31%] tests/test_progress_bar.py::test_show_sub_widgets[True-True-True] PASSED [ 31%] tests/test_progress_bar.py::test_show_sub_widgets[True-True-False] PASSED [ 31%] tests/test_progress_bar.py::test_show_sub_widgets[True-False-True] PASSED [ 31%] tests/test_progress_bar.py::test_show_sub_widgets[True-False-False] PASSED [ 32%] tests/test_progress_bar.py::test_show_sub_widgets[False-True-True] PASSED [ 32%] tests/test_progress_bar.py::test_show_sub_widgets[False-True-False] PASSED [ 32%] tests/test_progress_bar.py::test_show_sub_widgets[False-False-True] PASSED [ 32%] tests/test_progress_bar.py::test_show_sub_widgets[False-False-False] PASSED [ 32%] tests/test_query.py::test_query PASSED [ 32%] tests/test_query.py::test_query_classes PASSED [ 32%] tests/test_query.py::test_invalid_query PASSED [ 32%] tests/test_query.py::test_universal_selector_doesnt_select_self PASSED [ 32%] tests/test_query.py::test_query_set_styles_invalid_css_raises_error PASSED [ 32%] tests/test_query.py::test_query_set_styles_kwds PASSED [ 32%] tests/test_query.py::test_query_set_styles_css_and_kwds PASSED [ 32%] tests/test_query.py::test_query_set_styles_css PASSED [ 32%] tests/test_query.py::test_query_refresh[args0] PASSED [ 32%] tests/test_query.py::test_query_refresh[args1] PASSED [ 32%] tests/test_query.py::test_query_refresh[args2] PASSED [ 32%] tests/test_query.py::test_query_refresh[args3] PASSED [ 32%] tests/test_query.py::test_query_focus_blur PASSED [ 32%] tests/test_reactive.py::test_watch PASSED [ 32%] tests/test_reactive.py::test_watch_async_init_false PASSED [ 32%] tests/test_reactive.py::test_watch_async_init_true PASSED [ 32%] tests/test_reactive.py::test_watch_init_false_always_update_false PASSED [ 32%] tests/test_reactive.py::test_watch_init_true PASSED [ 32%] tests/test_reactive.py::test_reactive_always_update PASSED [ 32%] tests/test_reactive.py::test_reactive_with_callable_default PASSED [ 33%] tests/test_reactive.py::test_validate_init_true PASSED [ 33%] tests/test_reactive.py::test_validate_init_true_set_before_dom_ready PASSED [ 33%] tests/test_reactive.py::test_reactive_compute_first_time_set PASSED [ 33%] tests/test_reactive.py::test_reactive_method_call_order PASSED [ 33%] tests/test_reactive.py::test_premature_reactive_call PASSED [ 33%] tests/test_reactive.py::test_reactive_inheritance PASSED [ 33%] tests/test_reactive.py::test_compute PASSED [ 33%] tests/test_reactive.py::test_watch_compute PASSED [ 33%] tests/test_reactive.py::test_public_and_private_watch PASSED [ 33%] tests/test_reactive.py::test_private_validate PASSED [ 33%] tests/test_reactive.py::test_public_and_private_validate PASSED [ 33%] tests/test_reactive.py::test_public_and_private_validate_order PASSED [ 33%] tests/test_reactive.py::test_public_and_private_compute PASSED [ 33%] tests/test_reactive.py::test_private_compute PASSED [ 33%] tests/test_reactive.py::test_async_reactive_watch_callbacks_go_on_the_watcher PASSED [ 33%] tests/test_reactive.py::test_sync_reactive_watch_callbacks_go_on_the_watcher PASSED [ 33%] tests/test_reactive.py::test_set_reactive PASSED [ 33%] tests/test_reactive.py::test_no_duplicate_external_watchers PASSED [ 33%] tests/test_reactive.py::test_external_watch_init_does_not_propagate PASSED [ 33%] tests/test_reactive.py::test_external_watch_init_does_not_propagate_to_externals PASSED [ 33%] tests/test_resolve.py::test_resolve_empty PASSED [ 33%] tests/test_resolve.py::test_resolve[scalars0-100-0-result0] PASSED [ 33%] tests/test_resolve.py::test_resolve[scalars1-100-0-result1] PASSED [ 34%] tests/test_resolve.py::test_resolve[scalars2-100-1-result2] PASSED [ 34%] tests/test_resolve.py::test_resolve[scalars3-100-1-result3] PASSED [ 34%] tests/test_resolve.py::test_resolve[scalars4-100-0-result4] PASSED [ 34%] tests/test_resolve.py::test_resolve[scalars5-100-1-result5] PASSED [ 34%] tests/test_resolve.py::test_resolve_fraction_unit PASSED [ 34%] tests/test_resolve.py::test_resolve_fraction_unit_stress_test PASSED [ 34%] tests/test_resolve.py::test_resolve_issue_2502 PASSED [ 34%] tests/test_rule.py::test_invalid_rule_orientation PASSED [ 34%] tests/test_rule.py::test_invalid_rule_line_style PASSED [ 34%] tests/test_rule.py::test_invalid_reactive_rule_orientation_change PASSED [ 34%] tests/test_rule.py::test_invalid_reactive_rule_line_style_change PASSED [ 34%] tests/test_screen_modes.py::test_mode_setup PASSED [ 34%] tests/test_screen_modes.py::test_switch_mode PASSED [ 34%] tests/test_screen_modes.py::test_switch_same_mode PASSED [ 34%] tests/test_screen_modes.py::test_switch_unknown_mode PASSED [ 34%] tests/test_screen_modes.py::test_remove_mode PASSED [ 34%] tests/test_screen_modes.py::test_remove_active_mode PASSED [ 34%] tests/test_screen_modes.py::test_add_mode PASSED [ 34%] tests/test_screen_modes.py::test_add_mode_duplicated PASSED [ 34%] tests/test_screen_modes.py::test_multiple_mode_callbacks PASSED [ 34%] tests/test_screens.py::test_screen_walk_children PASSED [ 34%] tests/test_screens.py::test_installed_screens PASSED [ 34%] tests/test_screens.py::test_screens PASSED [ 34%] tests/test_screens.py::test_auto_focus_on_screen_if_app_auto_focus_is_none PASSED [ 35%] tests/test_screens.py::test_auto_focus_on_screen_if_app_auto_focus_is_disabled PASSED [ 35%] tests/test_screens.py::test_auto_focus_inheritance PASSED [ 35%] tests/test_screens.py::test_auto_focus_skips_non_focusable_widgets PASSED [ 35%] tests/test_screens.py::test_dismiss_non_top_screen PASSED [ 35%] tests/test_screens.py::test_dismiss_action PASSED [ 35%] tests/test_screens.py::test_switch_screen_no_op PASSED [ 35%] tests/test_screens.py::test_switch_screen_updates_results_callback_stack PASSED [ 35%] tests/test_screens.py::test_screen_receives_mouse_move_events PASSED [ 35%] tests/test_screens.py::test_mouse_move_event_bubbles_to_screen_from_widget PASSED [ 35%] tests/test_screens.py::test_push_screen_wait_for_dismiss PASSED [ 35%] tests/test_screens.py::test_push_screen_wait_for_dismiss_no_worker PASSED [ 35%] tests/test_segment_tools.py::test_line_crop PASSED [ 35%] tests/test_segment_tools.py::test_line_crop_emoji PASSED [ 35%] tests/test_segment_tools.py::test_line_crop_edge PASSED [ 35%] tests/test_segment_tools.py::test_line_crop_edge_2 PASSED [ 35%] tests/test_segment_tools.py::test_line_trim_ascii PASSED [ 35%] tests/test_segment_tools.py::test_line_pad PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_vertical_middle PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_top_left PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_top_right PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_left PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_center PASSED [ 35%] tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_right PASSED [ 35%] tests/test_signal.py::test_signal PASSED [ 36%] tests/test_signal.py::test_signal_errors PASSED [ 36%] tests/test_signal.py::test_repr PASSED [ 36%] tests/test_slug.py::test_simple_slug[test-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[Test-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[ Test -test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[-test---test-] PASSED [ 36%] tests/test_slug.py::test_simple_slug[!test!-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test!!test-testtest] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test! !test-test-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test test-test-test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test test-test--test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test test-test----------test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[--test---test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test---test--] PASSED [ 36%] tests/test_slug.py::test_simple_slug[--test--test-----test--test--] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test] PASSED [ 36%] tests/test_slug.py::test_simple_slug[t\xebst-t%C3%ABst] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test\U0001f642test-testtest] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test\U0001f937test-testtest] PASSED [ 36%] tests/test_slug.py::test_simple_slug[test\U0001f937\U0001f3fb\u200d\u2640\ufe0ftest-testtest] PASSED [ 36%] tests/test_slug.py::test_tracked_slugs[test-test] PASSED [ 36%] tests/test_slug.py::test_tracked_slugs[test-test-1] PASSED [ 36%] tests/test_slug.py::test_tracked_slugs[test-test-2] PASSED [ 36%] tests/test_slug.py::test_tracked_slugs[-test---test-] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[-test---test--1] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test-1] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst-1] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst-2] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test\U0001f642test-testtest] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test\U0001f937test-testtest-1] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test\U0001f937\U0001f3fb\u200d\u2640\ufe0ftest-testtest-2] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test-test-3] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[test-test-4] PASSED [ 37%] tests/test_slug.py::test_tracked_slugs[ test -test-5] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region0-grid0] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region1-grid1] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region2-grid2] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region3-grid3] PASSED [ 37%] tests/test_spatial_map.py::test_region_to_grid[region4-grid4] PASSED [ 37%] tests/test_spatial_map.py::test_get_values_in_region PASSED [ 37%] tests/test_strip.py::test_cell_length PASSED [ 37%] tests/test_strip.py::test_repr PASSED [ 37%] tests/test_strip.py::test_join PASSED [ 37%] tests/test_strip.py::test_bool PASSED [ 37%] tests/test_strip.py::test_iter PASSED [ 37%] tests/test_strip.py::test_len PASSED [ 38%] tests/test_strip.py::test_reversed PASSED [ 38%] tests/test_strip.py::test_eq PASSED [ 38%] tests/test_strip.py::test_adjust_cell_length PASSED [ 38%] tests/test_strip.py::test_extend_cell_length PASSED [ 38%] tests/test_strip.py::test_simplify PASSED [ 38%] tests/test_strip.py::test_apply_filter PASSED [ 38%] tests/test_strip.py::test_style_links PASSED [ 38%] tests/test_strip.py::test_crop PASSED [ 38%] tests/test_strip.py::test_crop_out_of_bounds[foo-crop0-output0] PASSED [ 38%] tests/test_strip.py::test_crop_out_of_bounds[foo-crop1-output1] PASSED [ 38%] tests/test_strip.py::test_crop_out_of_bounds[foo-crop2-output2] PASSED [ 38%] tests/test_strip.py::test_crop_out_of_bounds[foo-crop3-output3] PASSED [ 38%] tests/test_strip.py::test_divide PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[0-0] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[1-1] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[2-2] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[3-3] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[4-4] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[5-6] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[6-8] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[7-10] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[8-11] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[9-12] PASSED [ 38%] tests/test_strip.py::test_index_to_cell_position[10-13] PASSED [ 39%] tests/test_strip.py::test_index_to_cell_position[11-14] PASSED [ 39%] tests/test_strip.py::test_index_cell_position_no_segments PASSED [ 39%] tests/test_strip.py::test_index_cell_position_index_too_large PASSED [ 39%] tests/test_strip.py::test_text PASSED [ 39%] tests/test_style_importance.py::test_border_importance PASSED [ 39%] tests/test_style_importance.py::test_outline_importance PASSED [ 39%] tests/test_style_importance.py::test_align_importance PASSED [ 39%] tests/test_style_importance.py::test_content_align_importance PASSED [ 39%] tests/test_style_importance.py::test_offset_importance PASSED [ 39%] tests/test_style_importance.py::test_overflow_importance PASSED [ 39%] tests/test_style_importance.py::test_padding_importance PASSED [ 39%] tests/test_style_importance.py::test_scrollbar_size_importance PASSED [ 39%] tests/test_style_inheritance.py::test_text_style_inheritance PASSED [ 39%] tests/test_style_properties.py::test_box_normalization PASSED [ 39%] tests/test_style_properties.py::test_text_style_none_with_others[text_style] PASSED [ 39%] tests/test_style_properties.py::test_text_style_none_with_others[link_style] PASSED [ 39%] tests/test_style_properties.py::test_text_style_set_to_none[text_style] PASSED [ 39%] tests/test_style_properties.py::test_text_style_set_to_none[link_style] PASSED [ 39%] tests/test_styles_cache.py::test_set_dirty PASSED [ 39%] tests/test_styles_cache.py::test_no_styles PASSED [ 39%] tests/test_styles_cache.py::test_border PASSED [ 39%] tests/test_styles_cache.py::test_padding PASSED [ 39%] tests/test_styles_cache.py::test_padding_border PASSED [ 39%] tests/test_styles_cache.py::test_outline PASSED [ 40%] tests/test_styles_cache.py::test_crop PASSED [ 40%] tests/test_styles_cache.py::test_dirty_cache PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[background-possible_words0-background] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[backgroundu-possible_words1-background] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[bkgrund-possible_words2-background] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[llow-possible_words3-None] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[llow-possible_words4-yellow] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestion[yllow-possible_words5-yellow] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[background-possible_words0-1-expected_result0] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[backgroundu-possible_words1-1-expected_result1] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[bkgrund-possible_words2-1-expected_result2] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[llow-possible_words3-1-expected_result3] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[llow-possible_words4-1-expected_result4] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[yllow-possible_words5-1-expected_result5] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[yllow-possible_words6-2-expected_result6] PASSED [ 40%] tests/test_suggestions.py::test_get_suggestions[yllow-possible_words7-2-expected_result7] PASSED [ 40%] tests/test_suspend.py::test_suspend_not_supported PASSED [ 40%] tests/test_suspend.py::test_suspend_supported PASSED [ 40%] tests/test_switch.py::test_switch_click_doesnt_bubble_up PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_switch_via_ui PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_switch_via_code PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_initial PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_messages PASSED [ 40%] tests/test_tabbed_content.py::test_tabbed_content_add_later_from_empty PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_later_from_composed PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_before_id PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_before_pane PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_before_badly PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_after PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_after_pane PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_after_badly PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_add_before_and_after PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_removal PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_reversed_removal PASSED [ 41%] tests/test_tabbed_content.py::test_tabbed_content_clear PASSED [ 41%] tests/test_tabbed_content.py::test_disabling_does_not_deactivate_tab PASSED [ 41%] tests/test_tabbed_content.py::test_disabled_tab_cannot_be_clicked PASSED [ 41%] tests/test_tabbed_content.py::test_disabling_via_tabbed_content PASSED [ 41%] tests/test_tabbed_content.py::test_disabling_via_tab_pane PASSED [ 41%] tests/test_tabbed_content.py::test_creating_disabled_tab PASSED [ 41%] tests/test_tabbed_content.py::test_navigation_around_disabled_tabs PASSED [ 41%] tests/test_tabbed_content.py::test_reenabling_tab PASSED [ 41%] tests/test_tabbed_content.py::test_reenabling_via_tabbed_content PASSED [ 41%] tests/test_tabbed_content.py::test_reenabling_via_tab_pane PASSED [ 41%] tests/test_tabbed_content.py::test_disabling_unknown_tab PASSED [ 41%] tests/test_tabbed_content.py::test_enabling_unknown_tab PASSED [ 41%] tests/test_tabbed_content.py::test_hide_unknown_tab PASSED [ 41%] tests/test_tabbed_content.py::test_show_unknown_tab PASSED [ 42%] tests/test_tabbed_content.py::test_hide_show_messages PASSED [ 42%] tests/test_tabbed_content.py::test_hide_last_tab_means_no_tab_active PASSED [ 42%] tests/test_tabbed_content.py::test_hiding_tabs_moves_active_to_next_tab PASSED [ 42%] tests/test_tabbed_content.py::test_showing_tabs_does_not_change_active_tab PASSED [ 42%] tests/test_tabbed_content.py::test_showing_first_tab_activates_tab[tab-1] PASSED [ 42%] tests/test_tabbed_content.py::test_showing_first_tab_activates_tab[tab-2] PASSED [ 42%] tests/test_tabbed_content.py::test_disabling_nested_tabs PASSED [ 42%] tests/test_tabbed_content.py::test_hiding_nested_tabs PASSED [ 42%] tests/test_tabbed_content.py::test_tabs_nested_in_tabbed_content_doesnt_crash PASSED [ 42%] tests/test_tabbed_content.py::test_tabs_nested_doesnt_interfere_with_ancestor_tabbed_content PASSED [ 42%] tests/test_tabs.py::test_tab_label PASSED [ 42%] tests/test_tabs.py::test_tab_relabel PASSED [ 42%] tests/test_tabs.py::test_compose_empty_tabs PASSED [ 42%] tests/test_tabs.py::test_compose_tabs_from_strings PASSED [ 42%] tests/test_tabs.py::test_compose_tabs_from_tabs PASSED [ 42%] tests/test_tabs.py::test_add_tabs_later PASSED [ 42%] tests/test_tabs.py::test_add_tab_before PASSED [ 42%] tests/test_tabs.py::test_add_tab_before_badly PASSED [ 42%] tests/test_tabs.py::test_add_tab_after PASSED [ 42%] tests/test_tabs.py::test_add_tab_after_badly PASSED [ 42%] tests/test_tabs.py::test_add_tab_before_and_after PASSED [ 42%] tests/test_tabs.py::test_remove_tabs PASSED [ 42%] tests/test_tabs.py::test_remove_tabs_reversed PASSED [ 42%] tests/test_tabs.py::test_clear_tabs PASSED [ 43%] tests/test_tabs.py::test_change_active_from_code PASSED [ 43%] tests/test_tabs.py::test_navigate_tabs_with_keyboard PASSED [ 43%] tests/test_tabs.py::test_navigate_empty_tabs_with_keyboard PASSED [ 43%] tests/test_tabs.py::test_navigate_tabs_with_mouse PASSED [ 43%] tests/test_tabs.py::test_startup_messages PASSED [ 43%] tests/test_tabs.py::test_change_tab_with_code_messages PASSED [ 43%] tests/test_tabs.py::test_remove_tabs_messages PASSED [ 43%] tests/test_tabs.py::test_reverse_remove_tabs_messages PASSED [ 43%] tests/test_tabs.py::test_keyboard_navigation_messages PASSED [ 43%] tests/test_tabs.py::test_mouse_navigation_messages PASSED [ 43%] tests/test_test_runner.py::test_run_test PASSED [ 43%] tests/test_textlog.py::test_make_renderable_expand_tabs PASSED [ 43%] tests/test_two_way_dict.py::test_get PASSED [ 43%] tests/test_two_way_dict.py::test_get_key PASSED [ 43%] tests/test_two_way_dict.py::test_set_item PASSED [ 43%] tests/test_two_way_dict.py::test_len PASSED [ 43%] tests/test_two_way_dict.py::test_delitem PASSED [ 43%] tests/test_two_way_dict.py::test_contains PASSED [ 43%] tests/test_unmount.py::test_unmount PASSED [ 43%] tests/test_validation.py::test_ValidationResult_merge_successes PASSED [ 43%] tests/test_validation.py::test_ValidationResult_merge_failures PASSED [ 43%] tests/test_validation.py::test_ValidationResult_failure_descriptions PASSED [ 43%] tests/test_validation.py::test_Failure_description_priorities_parameter_only PASSED [ 43%] tests/test_validation.py::test_Failure_description_priorities_parameter_and_describe_failure PASSED [ 44%] tests/test_validation.py::test_Failure_description_priorities_describe_failure_only PASSED [ 44%] tests/test_validation.py::test_Failure_description_parameter_and_description_inside_validate PASSED [ 44%] tests/test_validation.py::test_Failure_description_describe_and_description_inside_validate PASSED [ 44%] tests/test_validation.py::test_Number_validate[123-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[-123-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[123.45-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[1.23e-4-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[abc-None-None-False] PASSED [ 44%] tests/test_validation.py::test_Number_validate[123-100-200-True] PASSED [ 44%] tests/test_validation.py::test_Number_validate[99-100-200-False] PASSED [ 44%] tests/test_validation.py::test_Number_validate[201-100-200-False] PASSED [ 44%] tests/test_validation.py::test_Number_validate[1.23e4-0-50000-True] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[\\d+-123-True] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[\\d+-abc-False] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[[a-z]+-abc-True] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[[a-z]+-ABC-False] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[\\w+-abc123-True] PASSED [ 44%] tests/test_validation.py::test_Regex_validate[\\w+-!@#-False] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[123-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[-123-None-None-True] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[123.45-None-None-False] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[1.23e-4-None-None-False] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[abc-None-None-False] PASSED [ 44%] tests/test_validation.py::test_Integer_validate[123-100-200-True] PASSED [ 45%] tests/test_validation.py::test_Integer_validate[99-100-200-False] PASSED [ 45%] tests/test_validation.py::test_Integer_validate[201-100-200-False] PASSED [ 45%] tests/test_validation.py::test_Integer_validate[1.23e4-None-None-True] PASSED [ 45%] tests/test_validation.py::test_Length_validate[-None-None-True] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-None-None-True] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-5-None-False] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-None-3-False] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-4-4-True] PASSED [ 45%] tests/test_validation.py::test_Length_validate[test-2-6-True] PASSED [ 45%] tests/test_validation.py::test_URL_validate[http://example.com-True] PASSED [ 45%] tests/test_validation.py::test_URL_validate[https://example.com-True] PASSED [ 45%] tests/test_validation.py::test_URL_validate[www.example.com-False] PASSED [ 45%] tests/test_validation.py::test_URL_validate[://example.com-False] PASSED [ 45%] tests/test_validation.py::test_URL_validate[https:///path-False] PASSED [ 45%] tests/test_validation.py::test_URL_validate[redis://username:pass[word@localhost:6379/0-False] PASSED [ 45%] tests/test_validation.py::test_URL_validate[-False] PASSED [ 45%] tests/test_validation.py::test_Function_validate[-None-True] PASSED [ 45%] tests/test_validation.py::test_Function_validate[-failure!-False] PASSED [ 45%] tests/test_version.py::test_version PASSED [ 45%] tests/test_visible.py::test_visibility_changes PASSED [ 45%] tests/test_visible.py::test_visible_is_inherited PASSED [ 45%] tests/test_widget.py::test_widget_set_visible_true[True-True-visible] PASSED [ 45%] tests/test_widget.py::test_widget_set_visible_true[False-False-hidden] PASSED [ 45%] tests/test_widget.py::test_widget_set_visible_true[hidden-False-hidden] PASSED [ 46%] tests/test_widget.py::test_widget_set_visible_true[visible-True-visible] PASSED [ 46%] tests/test_widget.py::test_widget_set_visible_invalid_string PASSED [ 46%] tests/test_widget.py::test_widget_content_width PASSED [ 46%] tests/test_widget.py::test_get_child_by_id_gets_first_child PASSED [ 46%] tests/test_widget.py::test_get_child_by_id_no_matching_child PASSED [ 46%] tests/test_widget.py::test_get_child_by_id_only_immediate_descendents PASSED [ 46%] tests/test_widget.py::test_get_child_by_type PASSED [ 46%] tests/test_widget.py::test_get_widget_by_id_no_matching_child PASSED [ 46%] tests/test_widget.py::test_get_widget_by_id_non_immediate_descendants PASSED [ 46%] tests/test_widget.py::test_get_widget_by_id_immediate_descendants PASSED [ 46%] tests/test_widget.py::test_get_widget_by_id_doesnt_return_self PASSED [ 46%] tests/test_widget.py::test_get_widgets_app_delegated PASSED [ 46%] tests/test_widget.py::test_widget_mount_ids_must_be_unique_mounting_all_in_one_go PASSED [ 46%] tests/test_widget.py::test_widget_mount_ids_must_be_unique_mounting_multiple_calls PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state_disabled PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state_parent_disabled PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state_hover PASSED [ 46%] tests/test_widget.py::test_get_pseudo_class_state_focus PASSED [ 46%] tests/test_widget.py::test_remove PASSED [ 46%] tests/test_widget.py::test_remove_unmounted PASSED [ 46%] tests/test_widget.py::test_render_str PASSED [ 46%] tests/test_widget.py::test_compose_order PASSED [ 46%] tests/test_widget.py::test_children_must_be_widgets PASSED [ 47%] tests/test_widget.py::test_orphan_widget_has_no_siblings PASSED [ 47%] tests/test_widget.py::test__allow_scroll_default PASSED [ 47%] tests/test_widget.py::test__allow_scroll PASSED [ 47%] tests/test_widget.py::test_offset_getter_setter PASSED [ 47%] tests/test_widget.py::test_get_set_tooltip PASSED [ 47%] tests/test_widget.py::test_loading PASSED [ 47%] tests/test_widget.py::test_is_mounted_property PASSED [ 47%] tests/test_widget.py::test_mount_error_not_widget PASSED [ 47%] tests/test_widget.py::test_mount_error_bad_widget PASSED [ 47%] tests/test_widget.py::test_render_returns_text PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_no_direction PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_both_directions PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_not_our_child PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_to_outside PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_index[before] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_index[after] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[before] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[after] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_index[before] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_index[after] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_widget[before] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_widget[after] PASSED [ 47%] tests/test_widget_child_moving.py::test_move_past_end_of_child_list PASSED [ 47%] tests/test_widget_child_moving.py::test_move_before_end_of_child_list PASSED [ 48%] tests/test_widget_child_moving.py::test_move_before_permutations PASSED [ 48%] tests/test_widget_child_moving.py::test_move_after_permutations PASSED [ 48%] tests/test_widget_child_moving.py::test_move_child_after_last_child PASSED [ 48%] tests/test_widget_child_moving.py::test_move_child_after_last_numeric_location PASSED [ 48%] tests/test_widget_mount_point.py::test_find_dom_spot PASSED [ 48%] tests/test_widget_mounting.py::test_mount_via_app PASSED [ 48%] tests/test_widget_navigation.py::test_distance[2-8-1-10-4] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[2-8--1-10-6] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[8-2--1-10-4] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[8-2-1-10-6] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[8-2-1-1234123512-6] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[2-8-1-11-5] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[2-8-1-12-6] PASSED [ 48%] tests/test_widget_navigation.py::test_distance[5-5-1-10-0] PASSED [ 48%] tests/test_widget_navigation.py::test_find_enabled_returns_none_on_empty[find_first_enabled] PASSED [ 48%] tests/test_widget_navigation.py::test_find_enabled_returns_none_on_empty[find_last_enabled] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates0-None-1-None] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates1-None--1-None] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates2-None-1-0] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates3-None-1-0] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates4-None-1-0] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates5-None-1-1] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates6-None-1-2] PASSED [ 48%] tests/test_widget_navigation.py::test_find_next_enabled[candidates7-None--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates8-None--1-1] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates9-None--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates10-None--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates11-0-1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates12-1-1-1] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates13-1--1-1] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates14-None--1-None] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates15-0-1-3] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates16-0--1-4] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates17-1-1-3] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates18-1--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates19-2-1-3] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates20-2--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates21-3-1-4] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates22-3--1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates23-4-1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates24-4--1-3] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates25-5-1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled[candidates26-5--1-4] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates0-None-1-None] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates1-None--1-None] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates2-None-1-0] PASSED [ 49%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates3-None-1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates4-None-1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates5-None-1-1] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates6-None-1-2] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates7-None--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates8-None--1-1] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates9-None--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates10-None--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates11-0-1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates12-1-1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates13-1--1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates14-None--1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates15-0-1-3] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates16-0--1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates17-1-1-3] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates18-1--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates19-2-1-3] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates20-2--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates21-3-1-4] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates22-3--1-0] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates23-4-1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates24-4--1-3] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates25-5-1-None] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates26-5--1-4] PASSED [ 50%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-0-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-0--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-0-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-0--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-1-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-1--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-1-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-1--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-2-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled-2--1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-2-1] PASSED [ 51%] tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-2--1] PASSED [ 51%] tests/test_widget_removing.py::test_remove_single_widget PASSED [ 51%] tests/test_widget_removing.py::test_many_remove_all_widgets PASSED [ 51%] tests/test_widget_removing.py::test_many_remove_some_widgets PASSED [ 51%] tests/test_widget_removing.py::test_remove_branch PASSED [ 51%] tests/test_widget_removing.py::test_remove_overlap PASSED [ 51%] tests/test_widget_removing.py::test_remove_move_focus PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_order PASSED [ 51%] tests/test_widget_removing.py::test_query_remove_order PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_container PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_with_star_selector PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_with_string_selector PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_with_type_selector PASSED [ 51%] tests/test_widget_removing.py::test_widget_remove_children_with_selector_does_not_leak PASSED [ 52%] tests/test_widget_removing.py::test_widget_remove_children_no_children PASSED [ 52%] tests/test_widget_removing.py::test_widget_remove_children_no_children_match_selector PASSED [ 52%] tests/test_win_sleep.py::test_win_sleep_timer_is_cancellable SKIPPED (We only need to test this on Windows.) [ 52%] tests/test_wrap.py::test_chunks[-expected_output0] PASSED [ 52%] tests/test_wrap.py::test_chunks[ -expected_output1] PASSED [ 52%] tests/test_wrap.py::test_chunks[\t-expected_output2] PASSED [ 52%] tests/test_wrap.py::test_chunks[foo-expected_output3] PASSED [ 52%] tests/test_wrap.py::test_chunks[ foo -expected_output4] PASSED [ 52%] tests/test_wrap.py::test_chunks[foo bar-expected_output5] PASSED [ 52%] tests/test_wrap.py::test_chunks[\tfoo bar-expected_output6] PASSED [ 52%] tests/test_wrap.py::test_chunks[ foo bar-expected_output7] PASSED [ 52%] tests/test_wrap.py::test_chunks[foo bar -expected_output8] PASSED [ 52%] tests/test_wrap.py::test_chunks[foo\t bar -expected_output9] PASSED [ 52%] tests/test_wrap.py::test_chunks[\u6728\t \u5ddd -expected_output10] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[-6-4-expected_output0] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\t-6-4-expected_output1] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[ -6-4-expected_output2] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[foo bar baz-6-4-expected_output3] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\tfoo bar baz-6-4-expected_output4] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz-6-4-expected_output5] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz-6-8-expected_output6] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz\t-6-8-expected_output7] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\t\t\tfo bar baz\t-20-4-expected_output8] PASSED [ 52%] tests/test_wrap.py::test_compute_wrap_offsets[\t\t\t\t\t\t\t\tfo bar bar-19-4-expected_output9] PASSED [ 53%] tests/test_wrap.py::test_compute_wrap_offsets[\t\t\t\t\t-19-4-expected_output10] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[2] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[3] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[4] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[5] PASSED [ 53%] tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[6] PASSED [ 53%] tests/test_xterm_parser.py::test_bracketed_paste PASSED [ 53%] tests/test_xterm_parser.py::test_bracketed_paste_content_contains_escape_codes PASSED [ 53%] tests/test_xterm_parser.py::test_bracketed_paste_amongst_other_codes PASSED [ 53%] tests/test_xterm_parser.py::test_cant_match_escape_sequence_too_long PASSED [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[2] XFAIL [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[3] PASSED [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[4] XFAIL [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[5] PASSED [ 53%] tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[6] PASSED [ 53%] tests/test_xterm_parser.py::test_simple_key_presses_all_delivered_correct_order PASSED [ 53%] tests/test_xterm_parser.py::test_simple_keypress_non_character_key PASSED [ 53%] tests/test_xterm_parser.py::test_key_presses_and_escape_sequence_mixed PASSED [ 53%] tests/test_xterm_parser.py::test_single_escape PASSED [ 53%] tests/test_xterm_parser.py::test_double_escape PASSED [ 53%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<0;50;25M-MouseDown-False-False] PASSED [ 53%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<4;50;25M-MouseDown-True-False] PASSED [ 53%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<8;50;25M-MouseDown-False-True] PASSED [ 53%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<12;50;25M-MouseDown-True-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<0;50;25m-MouseUp-False-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<4;50;25m-MouseUp-True-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<8;50;25m-MouseUp-False-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_click[\x1b[<12;50;25m-MouseUp-True-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_move[\x1b[<32;15;38M-False-False-1] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_move[\x1b[<35;15;38M-False-False-0] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_move[\x1b[<39;15;38M-True-False-0] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_move[\x1b[<43;15;38M-False-True-0] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<64;18;25M-False-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<68;18;25M-True-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<72;18;25M-False-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<65;18;25M-False-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<69;18;25M-True-False] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<73;18;25M-False-True] PASSED [ 54%] tests/test_xterm_parser.py::test_mouse_event_detected_but_info_not_parsed PASSED [ 54%] tests/test_xterm_parser.py::test_escape_sequence_resulting_in_multiple_keypresses PASSED [ 54%] tests/test_xterm_parser.py::test_terminal_mode_reporting_synchronized_output_supported PASSED [ 54%] tests/test_xterm_parser.py::test_terminal_mode_reporting_synchronized_output_not_supported PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_animate_work_on_full PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_animate_are_disabled_on_basic PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_animate_are_disabled_on_none PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_transition_work_on_full PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_transition_are_disabled_on_basic PASSED [ 54%] tests/animations/test_disabling_animations.py::test_style_animations_via_transition_are_disabled_on_none PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[-full] PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[FULL-full] PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[BASIC-basic] PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[NONE-none] PASSED [ 55%] tests/animations/test_environment_variable.py::test__get_textual_animations[garbanzo beans-full] PASSED [ 55%] tests/animations/test_environment_variable.py::test_app_show_animations[full] PASSED [ 55%] tests/animations/test_environment_variable.py::test_app_show_animations[basic] PASSED [ 55%] tests/animations/test_environment_variable.py::test_app_show_animations[none] PASSED [ 55%] tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_not_static_on_full PASSED [ 55%] tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_not_static_on_basic PASSED [ 55%] tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_static_on_none PASSED [ 55%] tests/animations/test_progress_bar_animation.py::test_progress_bar_animates_on_full PASSED [ 55%] tests/animations/test_progress_bar_animation.py::test_progress_bar_animates_on_basic PASSED [ 55%] tests/animations/test_progress_bar_animation.py::test_progress_bar_does_not_animate_on_none PASSED [ 55%] tests/animations/test_scrolling_animation.py::test_scrolling_animates_on_full PASSED [ 55%] tests/animations/test_scrolling_animation.py::test_scrolling_animates_on_basic PASSED [ 55%] tests/animations/test_scrolling_animation.py::test_scrolling_does_not_animate_on_none PASSED [ 55%] tests/animations/test_switch_animation.py::test_switch_animates_on_full PASSED [ 55%] tests/animations/test_switch_animation.py::test_switch_animates_on_basic PASSED [ 55%] tests/animations/test_switch_animation.py::test_switch_does_not_animate_on_none PASSED [ 55%] tests/animations/test_tabs_underline_animation.py::test_tabs_underline_animates_on_full PASSED [ 55%] tests/animations/test_tabs_underline_animation.py::test_tabs_underline_animates_on_basic PASSED [ 55%] tests/animations/test_tabs_underline_animation.py::test_tabs_underline_does_not_animate_on_none PASSED [ 55%] tests/css/test_css_reloading.py::test_css_reloading_applies_to_non_top_screen PASSED [ 56%] tests/css/test_css_reloading.py::test_css_reloading_file_not_found PASSED [ 56%] tests/css/test_grid_rows_columns_relative_units.py::test_grid_rows_columns_relative_units_are_correct PASSED [ 56%] tests/css/test_grid_rows_columns_relative_units.py::test_styles_builder_uses_correct_relative_units_grid_rows_columns PASSED [ 56%] tests/css/test_help_text.py::test_help_text_examples_are_contextualized PASSED [ 56%] tests/css/test_help_text.py::test_spacing_wrong_number_of_values[css] PASSED [ 56%] tests/css/test_help_text.py::test_spacing_wrong_number_of_values[inline] PASSED [ 56%] tests/css/test_help_text.py::test_spacing_invalid_value[css] PASSED [ 56%] tests/css/test_help_text.py::test_spacing_invalid_value[inline] PASSED [ 56%] tests/css/test_help_text.py::test_scalar_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_scalar_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_string_enum_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_string_enum_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_color_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_color_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_border_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_border_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_layout_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_layout_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_fractional_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_fractional_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_offset_property_help_text[css] PASSED [ 56%] tests/css/test_help_text.py::test_offset_property_help_text[inline] PASSED [ 56%] tests/css/test_help_text.py::test_align_help_text PASSED [ 56%] tests/css/test_help_text.py::test_offset_single_axis_help_text PASSED [ 57%] tests/css/test_help_text.py::test_style_flags_property_help_text[css] PASSED [ 57%] tests/css/test_help_text.py::test_style_flags_property_help_text[inline] PASSED [ 57%] tests/css/test_inheritance.py::test_inheritance XFAIL (Overlapping styles should prioritize the most recent widget in the inheritance chain) [ 57%] tests/css/test_initial.py::test_initial_default PASSED [ 57%] tests/css/test_initial.py::test_initial PASSED [ 57%] tests/css/test_mega_stylesheet.py::test_mega_stylesheet PASSED [ 57%] tests/css/test_nested_css.py::test_nest_app PASSED [ 57%] tests/css/test_nested_css.py::test_lists_of_selectors_in_nested_css PASSED [ 57%] tests/css/test_nested_css.py::test_rule_declaration_after_nested PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[Selector {-EOFError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[Selector{ Foo {-EOFError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[Selector{ Foo {}-EOFError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[> {}-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[&-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[&&-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[&.foo-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[& .foo-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[{-TokenError] PASSED [ 57%] tests/css/test_nested_css.py::test_parse_errors[*{-EOFError] PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_simple_reference PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_simple_reference_no_whitespace PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_undefined_variable PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_empty_variable PASSED [ 57%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_transitive_reference PASSED [ 58%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_multi_value_variable PASSED [ 58%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_used_inside_property_value PASSED [ 58%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_definition_eof PASSED [ 58%] tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_reference_whitespace_trimming PASSED [ 58%] tests/css/test_parse.py::TestParseLayout::test_valid_layout_name PASSED [ 58%] tests/css/test_parse.py::TestParseLayout::test_invalid_layout_name PASSED [ 58%] tests/css/test_parse.py::TestParseText::test_foreground PASSED [ 58%] tests/css/test_parse.py::TestParseText::test_background PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgb(1,255,50)-result0] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgb( 1, 255,50 )-result1] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgba( 1, 255,50,0.3 )-result2] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgba( 1, 255,50, 1.3 )-result3] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsl( 180, 50%, 50% )-result4] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsl(180,50%,50%)-result5] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla(180,50%,50%,0.25)-result6] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla( 180, 50% ,50%,0.25 )-result7] PASSED [ 58%] tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla( 180, 50% , 50% , 1.5 )-result8] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_composite_rule[-5.5%-parsed_x0--30%-parsed_y0] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_composite_rule[5%-parsed_x1-40%-parsed_y1] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_composite_rule[10-parsed_x2-40-parsed_y2] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_separate_rules[-5.5%-parsed_x0--30%-parsed_y0] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_separate_rules[5%-parsed_x1-40%-parsed_y1] PASSED [ 58%] tests/css/test_parse.py::TestParseOffset::test_separate_rules[-10-parsed_x2-40-parsed_y2] PASSED [ 58%] tests/css/test_parse.py::TestParseOverflow::test_multiple_enum PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[5.57s-5.57] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.5s-0.5] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[1200ms-1.2] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.5ms-0.0005] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[20-20.0] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.1-0.1] PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_no_delay_specified PASSED [ 59%] tests/css/test_parse.py::TestParseTransition::test_unknown_easing_function PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[-0.2-0.0] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[0.4-0.4] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[1.3-1.0] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[-20%-0.0] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[25%-0.25] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[128%-1.0] PASSED [ 59%] tests/css/test_parse.py::TestParseOpacity::test_opacity_invalid_value PASSED [ 59%] tests/css/test_parse.py::TestParseMargin::test_margin_partial PASSED [ 59%] tests/css/test_parse.py::TestParsePadding::test_padding_partial PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[left] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[start] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[center] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[right] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[end] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align[justify] PASSED [ 59%] tests/css/test_parse.py::TestParseTextAlign::test_text_align_invalid PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_type_no_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_type_with_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_type_starts_with_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_combined_type_no_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_combined_type_with_number PASSED [ 60%] tests/css/test_parse.py::TestTypeNames::test_combined_type_starts_with_number PASSED [ 60%] tests/css/test_parse.py::test_parse_bad_pseudo_selector PASSED [ 60%] tests/css/test_parse.py::test_parse_bad_pseudo_selector_with_suggestion PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_size_rows-3] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_size_columns-3] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_gutter_vertical-4] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_gutter_horizontal-4] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_rows-1fr 3fr] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_columns-1fr 3fr] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align_horizontal-right] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align_vertical-bottom] PASSED [ 60%] tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align-value2] PASSED [ 60%] tests/css/test_scalar.py::test_copy_with_value PASSED [ 60%] tests/css/test_scalar.py::test_copy_with_unit PASSED [ 60%] tests/css/test_scalar.py::test_copy_with_percent_unit PASSED [ 60%] tests/css/test_screen_css.py::test_screen_pushing_and_popping_does_not_reparse_css PASSED [ 60%] tests/css/test_screen_css.py::test_screen_css_push_screen_instance PASSED [ 60%] tests/css/test_screen_css.py::test_screen_css_push_screen_instance_by_name PASSED [ 60%] tests/css/test_screen_css.py::test_screen_css_push_screen_type_by_name PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_screen_instance PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_screen_instance_by_name PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_screen_type_by_name PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_instance PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_instance_by_name PASSED [ 61%] tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_type_by_name PASSED [ 61%] tests/css/test_styles.py::test_styles_reset PASSED [ 61%] tests/css/test_styles.py::test_has_rule PASSED [ 61%] tests/css/test_styles.py::test_clear_rule PASSED [ 61%] tests/css/test_styles.py::test_get_rules PASSED [ 61%] tests/css/test_styles.py::test_set_rule PASSED [ 61%] tests/css/test_styles.py::test_reset PASSED [ 61%] tests/css/test_styles.py::test_merge PASSED [ 61%] tests/css/test_styles.py::test_merge_rules PASSED [ 61%] tests/css/test_styles.py::test_render_styles_border PASSED [ 61%] tests/css/test_styles.py::test_get_opacity_default PASSED [ 61%] tests/css/test_styles.py::test_styles_css_property PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[0.2-0.2] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[-0.4-0.0] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[5.8-1.0] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[25%-0.25] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[-10%-0.0] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_then_get[120%-1.0] PASSED [ 61%] tests/css/test_styles.py::test_opacity_set_invalid_type_error PASSED [ 62%] tests/css/test_styles.py::test_opacity_set_allows_integer_value PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[None-None] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1-size_dimension_expected_output1] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.0-size_dimension_expected_output2] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.2-size_dimension_expected_output3] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1200.0-size_dimension_expected_output4] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[20-size_dimension_expected_output5] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.4-size_dimension_expected_output6] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input7-size_dimension_expected_output7] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input8-size_dimension_expected_output8] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input9-size_dimension_expected_output9] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input10-size_dimension_expected_output10] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input11-size_dimension_expected_output11] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input12-size_dimension_expected_output12] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[size_dimension_input13-size_dimension_expected_output13] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[a] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[1.4e3] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[3.14j] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input3] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input4] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input5] PASSED [ 62%] tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input6] PASSED [ 62%] tests/css/test_stylesheet.py::test_stylesheet_apply_highest_specificity_wins PASSED [ 62%] tests/css/test_stylesheet.py::test_stylesheet_apply_doesnt_override_defaults PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_apply_highest_specificity_wins_multiple_classes PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_many_classes_dont_overrule_id PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_last_rule_wins_when_same_rule_twice_in_one_ruleset PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_rulesets_merged_for_duplicate_selectors PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_apply_takes_final_rule_in_specificity_clash PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_apply_empty_rulesets PASSED [ 63%] tests/css/test_stylesheet.py::test_stylesheet_apply_user_css_over_widget_css PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[transparent-expectation0-expected_color0] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[ansi_red-expectation1-expected_color1] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[ansi_bright_magenta-expectation2-expected_color2] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[red-expectation3-expected_color3] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[lime-expectation4-expected_color4] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[coral-expectation5-expected_color5] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[aqua-expectation6-expected_color6] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[deepskyblue-expectation7-expected_color7] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[rebeccapurple-expectation8-expected_color8] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[#ffcc00-expectation9-expected_color9] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[#ffcc0033-expectation10-expected_color10] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[rgb(200,90,30)-expectation11-expected_color11] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[rgba(200,90,30,0.3)-expectation12-expected_color12] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[coffee-expectation13-None] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[ansi_dark_cyan-expectation14-None] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[red 4-expectation15-None] PASSED [ 63%] tests/css/test_stylesheet.py::test_color_property_parsing[1-expectation16-None] PASSED [ 64%] tests/css/test_stylesheet.py::test_color_property_parsing[()-expectation17-None] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[backgroundu-background] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[bckgroundu-background] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[ofset-x-offset-x] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[ofst_y-offset-y] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[colr-color] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[colour-color] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wdth-width] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wth-width] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wh-None] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[xkcd-None] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[color-blu-blue] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[background-chartruse-chartreuse] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[tint-ansi_whi-ansi_white] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[scrollbar-color-transprnt-transparent] PASSED [ 64%] tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[color-xkcd-None] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warning-text] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warning_text] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext1] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[1warningtext] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[WarningText1] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext_] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext-] PASSED [ 64%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[_warningtext] PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_valid_names[-warningtext] PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_multiple_values PASSED [ 65%] tests/css/test_tokenize.py::test_single_line_comment PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_comment_ignored PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_comment_interspersed_ignored PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_no_semicolon PASSED [ 65%] tests/css/test_tokenize.py::test_variable_declaration_invalid_value PASSED [ 65%] tests/css/test_tokenize.py::test_variables_declarations_amongst_rulesets PASSED [ 65%] tests/css/test_tokenize.py::test_variables_reference_in_rule_declaration_value PASSED [ 65%] tests/css/test_tokenize.py::test_variables_reference_in_rule_declaration_value_multiple PASSED [ 65%] tests/css/test_tokenize.py::test_variables_reference_in_variable_declaration PASSED [ 65%] tests/css/test_tokenize.py::test_variable_references_in_variable_declaration_multiple PASSED [ 65%] tests/css/test_tokenize.py::test_allow_new_lines PASSED [ 65%] tests/directory_tree/test_early_show_root.py::test_managed_to_set_show_root_before_mounted PASSED [ 65%] tests/document/test_document.py::test_text[I must not fear.\nFear is the mind-killer.] PASSED [ 65%] tests/document/test_document.py::test_text[I must not fear.\nFear is the mind-killer.\n] PASSED [ 65%] tests/document/test_document.py::test_text[I must not fear.\r\nFear is the mind-killer.] PASSED [ 65%] tests/document/test_document.py::test_text[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 65%] tests/document/test_document.py::test_lines_newline_eof PASSED [ 65%] tests/document/test_document.py::test_lines_no_newline_eof PASSED [ 65%] tests/document/test_document.py::test_lines_windows PASSED [ 65%] tests/document/test_document.py::test_lines_windows_newline PASSED [ 65%] tests/document/test_document.py::test_newline_unix PASSED [ 65%] tests/document/test_document.py::test_newline_windows PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_no_selection PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_single_line PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_multiple_lines_unix PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_multiple_lines_windows PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_including_final_newline_unix PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_including_final_newline_windows PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_no_newline_at_end_of_file PASSED [ 66%] tests/document/test_document.py::test_get_selected_text_no_newline_at_end_of_file_windows PASSED [ 66%] tests/document/test_document.py::test_index_from_location[I must not fear.\nFear is the mind-killer.] PASSED [ 66%] tests/document/test_document.py::test_index_from_location[I must not fear.\nFear is the mind-killer.\n] PASSED [ 66%] tests/document/test_document.py::test_index_from_location[I must not fear.\r\nFear is the mind-killer.] PASSED [ 66%] tests/document/test_document.py::test_index_from_location[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 66%] tests/document/test_document.py::test_location_from_index[I must not fear.\nFear is the mind-killer.] PASSED [ 66%] tests/document/test_document.py::test_location_from_index[I must not fear.\nFear is the mind-killer.\n] PASSED [ 66%] tests/document/test_document.py::test_location_from_index[I must not fear.\r\nFear is the mind-killer.] PASSED [ 66%] tests/document/test_document.py::test_location_from_index[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 66%] tests/document/test_document_delete.py::test_delete_single_character PASSED [ 66%] tests/document/test_document_delete.py::test_delete_single_newline PASSED [ 66%] tests/document/test_document_delete.py::test_delete_near_end_of_document PASSED [ 66%] tests/document/test_document_delete.py::test_delete_clearing_the_document PASSED [ 66%] tests/document/test_document_delete.py::test_delete_multiple_characters_on_one_line PASSED [ 66%] tests/document/test_document_delete.py::test_delete_multiple_lines_partially_spanned PASSED [ 66%] tests/document/test_document_delete.py::test_delete_end_of_line PASSED [ 67%] tests/document/test_document_delete.py::test_delete_single_line_excluding_newline PASSED [ 67%] tests/document/test_document_delete.py::test_delete_single_line_including_newline PASSED [ 67%] tests/document/test_document_delete.py::test_delete_end_of_file_newline PASSED [ 67%] tests/document/test_document_insert.py::test_insert_no_newlines PASSED [ 67%] tests/document/test_document_insert.py::test_insert_empty_string PASSED [ 67%] tests/document/test_document_insert.py::test_insert_invalid_column PASSED [ 67%] tests/document/test_document_insert.py::test_insert_invalid_row_and_column PASSED [ 67%] tests/document/test_document_insert.py::test_insert_range_newline_file_start PASSED [ 67%] tests/document/test_document_insert.py::test_insert_newline_splits_line PASSED [ 67%] tests/document/test_document_insert.py::test_insert_newline_splits_line_selection PASSED [ 67%] tests/document/test_document_insert.py::test_insert_multiple_lines_ends_with_newline PASSED [ 67%] tests/document/test_document_insert.py::test_insert_multiple_lines_ends_with_no_newline PASSED [ 67%] tests/document/test_document_insert.py::test_insert_multiple_lines_starts_with_newline PASSED [ 67%] tests/document/test_document_insert.py::test_insert_range_text_no_newlines PASSED [ 67%] tests/document/test_document_insert.py::test_newline_eof PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start0-end0] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start1-end1] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start2-end2] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start3-end3] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start4-end4] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start5-end5] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start6-end6] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start7-end7] PASSED [ 67%] tests/document/test_document_navigator.py::test_get_location_above[start8-end8] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_above[start9-end9] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_above[start10-end10] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start0-end0] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start1-end1] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start2-end2] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start3-end3] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start4-end4] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start5-end5] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start6-end6] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start7-end7] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_below[start8-end8] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start0-end0] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start1-end1] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start2-end2] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start3-end3] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start4-end4] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start5-end5] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start6-end6] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start7-end7] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_home[start8-end8] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_end[start0-end0] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_end[start1-end1] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_end[start2-end2] PASSED [ 68%] tests/document/test_document_navigator.py::test_get_location_end[start3-end3] PASSED [ 69%] tests/document/test_document_navigator.py::test_get_location_end[start4-end4] PASSED [ 69%] tests/document/test_wrapped_document.py::test_wrap PASSED [ 69%] tests/document/test_wrapped_document.py::test_wrap_empty_document PASSED [ 69%] tests/document/test_wrapped_document.py::test_wrap_width_zero_no_wrapping PASSED [ 69%] tests/document/test_wrapped_document.py::test_refresh_range PASSED [ 69%] tests/document/test_wrapped_document.py::test_refresh_range_new_text_wrapped PASSED [ 69%] tests/document/test_wrapped_document.py::test_refresh_range_wrapping_at_previously_unavailable_range PASSED [ 69%] tests/document/test_wrapped_document.py::test_refresh_range_wrapping_disabled_previously_unavailable_range PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset0-location0] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset1-location1] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset2-location2] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset3-location3] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset4-location4] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset5-location5] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset6-location6] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset7-location7] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset8-location8] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset0-location0] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset1-location1] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset2-location2] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset3-location3] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset4-location4] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset5-location5] PASSED [ 69%] tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset6-location6] PASSED [ 70%] tests/document/test_wrapped_document.py::test_offset_to_location_invalid_offset_clamps_to_valid_offset[offset0-location0] PASSED [ 70%] tests/document/test_wrapped_document.py::test_offset_to_location_invalid_offset_clamps_to_valid_offset[offset1-location1] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets[0-offsets0] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets[1-offsets1] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets[2-offsets2] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets_no_wrapping PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets_invalid_line_index[-4] PASSED [ 70%] tests/document/test_wrapped_document.py::test_get_offsets_invalid_line_index[10000] PASSED [ 70%] tests/input/test_input_clear.py::test_input_clear PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_inside_first_word PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_password_delete_left_word_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_all_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_left_all_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_word_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_password_delete_right_word_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_word_from_end PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_all_from_home PASSED [ 70%] tests/input/test_input_key_modification_actions.py::test_delete_right_all_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_word_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_word_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_password_input_left_word_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_word_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_password_input_right_word_from_home PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_word_from_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_right_word_to_the_end PASSED [ 71%] tests/input/test_input_key_movement_actions.py::test_input_left_word_from_the_end PASSED [ 71%] tests/input/test_input_messages.py::test_no_startup_messages PASSED [ 71%] tests/input/test_input_messages.py::test_startup_messages_with_initial_value PASSED [ 71%] tests/input/test_input_messages.py::test_typing_from_empty_causes_changed PASSED [ 71%] tests/input/test_input_messages.py::test_typing_from_pre_populated_causes_changed PASSED [ 71%] tests/input/test_input_messages.py::test_submit_empty_input PASSED [ 71%] tests/input/test_input_messages.py::test_submit_pre_populated_input PASSED [ 71%] tests/input/test_input_messages.py::test_paste_event_impact PASSED [ 71%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-0-0] PASSED [ 71%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-1-1] PASSED [ 71%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-10-10] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-47-47] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-48-48] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-58-48] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-0-0] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-1-0] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-2-1] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-3-1] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-4-2] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-5-2] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-9-4] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-10-5] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-50-5] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-0-0] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-1-1] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-2-1] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-3-2] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-4-2] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-5-3] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-13-9] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-14-9] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-15-10] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-60-10] PASSED [ 72%] tests/input/test_input_mouse.py::test_mouse_click_outwith PASSED [ 72%] tests/input/test_input_properties.py::test_internal_value_no_password PASSED [ 73%] tests/input/test_input_properties.py::test_internal_value_password PASSED [ 73%] tests/input/test_input_properties.py::test_internal_value_highlighted PASSED [ 73%] tests/input/test_input_properties.py::test_cursor_toggle PASSED [ 73%] tests/input/test_input_properties.py::test_input_height PASSED [ 73%] tests/input/test_input_restrict.py::test_input_number_type PASSED [ 73%] tests/input/test_input_restrict.py::test_input_integer_type PASSED [ 73%] tests/input/test_input_restrict.py::test_bad_type PASSED [ 73%] tests/input/test_input_restrict.py::test_max_length PASSED [ 73%] tests/input/test_input_restrict.py::test_restrict PASSED [ 73%] tests/input/test_input_restrict.py::test_restrict_type PASSED [ 73%] tests/input/test_input_terminal_cursor.py::test_initial_terminal_cursor_position PASSED [ 73%] tests/input/test_input_terminal_cursor.py::test_terminal_cursor_position_update_on_cursor_move PASSED [ 73%] tests/input/test_input_validation.py::test_input_changed_message_validation_failure PASSED [ 73%] tests/input/test_input_validation.py::test_input_changed_message_validation_success PASSED [ 73%] tests/input/test_input_validation.py::test_input_submitted_message_validation_failure PASSED [ 73%] tests/input/test_input_validation.py::test_input_submitted_message_validation_success PASSED [ 73%] tests/input/test_input_validation.py::test_on_blur_triggers_validation PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on0] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on1] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on2] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on3] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on4] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on0] PASSED [ 73%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on1] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on2] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on3] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on4] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on0] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on1] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on2] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on3] PASSED [ 74%] tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on4] PASSED [ 74%] tests/input/test_input_validation.py::test_none_validate_on_means_all_validations_happen PASSED [ 74%] tests/input/test_input_validation.py::test_valid_empty PASSED [ 74%] tests/input/test_input_value_visibility.py::test_input_value_visible_on_instantiation FAILED [ 74%] =================================== FAILURES =================================== __________________ test_input_value_visible_on_instantiation ___________________ async def test_input_value_visible_on_instantiation(): """Check if the full input value is rendered if the input is instantiated with it.""" class MyApp(App): def compose(self): yield Input(value="value") app = MyApp() async with app.run_test(): console = Console(width=5) with console.capture() as capture: console.print(app.query_one(Input).render()) > assert capture.get() == "value" E AssertionError: assert 'value ' == 'value' E - value E + value tests/input/test_input_value_visibility.py:19: AssertionError =============================== warnings summary =============================== tests/test_widget.py::test_compose_order /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning: Exception ignored in: .MyApp.callback at 0xf4da44a0> Traceback (most recent call last): File "", line 1, in KeyError: '__import__' warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/input/test_input_value_visibility.py::test_input_value_visible_on_instantiation !!!!!!!!!!!!!!!!!!!!!!!!!! stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!! = 1 failed, 1777 passed, 1 skipped, 8 deselected, 4 xfailed, 1 warning in 224.60s (0:03:44) = E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/textual-0.52.1/.pybuild/cpython3_3.11_textual/build; python3.11 -m pytest -x -vvv -m "not syntax" --ignore=tests/test_features.py --ignore=tests/command_palette --ignore=tests/snapshot_tests -k "not test_footer_highlight_when_pushing_modal and not test_softbreak_split_links_rendered_correctly and not test_headings_that_look_like_they_contain_markup and not test_screen_stack_preserved and not test_clicking_outside_command_palette_closes_it and not test_command_source_environment and not test_escape_closes_when_no_list_visible and not test_register_language" dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 3.11" returned exit code 13 make: *** [debian/rules:26: build] Error 25 dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 I: copying local configuration E: Failed autobuilding of package I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/2629 and its subdirectories Wed May 8 13:49:59 UTC 2024 W: No second build log, what happened?