I: pbuilder: network access will be disabled during build
I: Current time: Thu Dec 26 05:48:50 +14 2024
I: pbuilder-time-stamp: 1735141730
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_1.0.0-1.dsc]
I: copying [./textual_1.0.0.orig.tar.xz]
I: copying [./textual_1.0.0-1.debian.tar.xz]
I: Extracting source
gpgv: Signature made Sun Dec 22 07:58:33 2024 
gpgv:                using RSA key B9FAD3192AF3E4A5309D9D39879F3C993801A94F
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./textual_1.0.0-1.dsc: no acceptable signature found
dpkg-source: info: extracting textual in textual-1.0.0
dpkg-source: info: unpacking textual_1.0.0.orig.tar.xz
dpkg-source: info: unpacking textual_1.0.0-1.debian.tar.xz
I: using fakeroot in build.
I: Installing the build-deps
I: user script /srv/workspace/pbuilder/27118/tmp/hooks/D01_modify_environment starting
debug: Running on virt64z.
I: Changing host+domainname to test build reproducibility
I: Adding a custom variable just for the fun of it...
I: Changing /bin/sh to bash
'/bin/sh' -> '/bin/bash'
lrwxrwxrwx 1 root root 9 Dec 25 15:49 /bin/sh -> /bin/bash
I: Setting pbuilder2's login shell to /bin/bash
I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other
I: user script /srv/workspace/pbuilder/27118/tmp/hooks/D01_modify_environment finished
I: user script /srv/workspace/pbuilder/27118/tmp/hooks/D02_print_environment starting
I: set
  BASH=/bin/sh
  BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath
  BASH_ALIASES=()
  BASH_ARGC=()
  BASH_ARGV=()
  BASH_CMDS=()
  BASH_LINENO=([0]="12" [1]="0")
  BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:.
  BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment")
  BASH_VERSINFO=([0]="5" [1]="2" [2]="37" [3]="1" [4]="release" [5]="arm-unknown-linux-gnueabihf")
  BASH_VERSION='5.2.37(1)-release'
  BUILDDIR=/build/reproducible-path
  BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other'
  BUILDUSERNAME=pbuilder2
  BUILD_ARCH=armhf
  DEBIAN_FRONTEND=noninteractive
  DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=4 '
  DIRSTACK=()
  DISTRIBUTION=trixie
  EUID=0
  FUNCNAME=([0]="Echo" [1]="main")
  GROUPS=()
  HOME=/root
  HOSTNAME=i-capture-the-hostname
  HOSTTYPE=arm
  HOST_ARCH=armhf
  IFS=' 	
  '
  INVOCATION_ID=ecc0e0fd3d2340a1a51f0109855b57c4
  LANG=C
  LANGUAGE=it_CH:it
  LC_ALL=C
  MACHTYPE=arm-unknown-linux-gnueabihf
  MAIL=/var/mail/root
  OPTERR=1
  OPTIND=1
  OSTYPE=linux-gnueabihf
  PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path
  PBCURRENTCOMMANDLINEOPERATION=build
  PBUILDER_OPERATION=build
  PBUILDER_PKGDATADIR=/usr/share/pbuilder
  PBUILDER_PKGLIBDIR=/usr/lib/pbuilder
  PBUILDER_SYSCONFDIR=/etc
  PIPESTATUS=([0]="0")
  POSIXLY_CORRECT=y
  PPID=27118
  PS4='+ '
  PWD=/
  SHELL=/bin/bash
  SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix
  SHLVL=3
  SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.qY5WyojM/pbuilderrc_z4Ry --distribution trixie --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/trixie-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.qY5WyojM/b2 --logfile b2/build.log textual_1.0.0-1.dsc'
  SUDO_GID=110
  SUDO_UID=103
  SUDO_USER=jenkins
  TERM=unknown
  TZ=/usr/share/zoneinfo/Etc/GMT-14
  UID=0
  USER=root
  _='I: set'
  http_proxy=http://10.0.0.15:3142/
I: uname -a
  Linux i-capture-the-hostname 6.1.0-28-arm64 #1 SMP Debian 6.1.119-1 (2024-11-22) aarch64 GNU/Linux
I: ls -l /bin
  lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin
I: user script /srv/workspace/pbuilder/27118/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 <pbuilder-maint@lists.alioth.debian.org>
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-pytest-xdist, 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 ... 19681 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-pytest-xdist; however:
  Package python3-pytest-xdist 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} libcom-err2{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libgssapi-krb5-2{a} libicu72{a} libk5crypto3{a} libkeyutils1{a} libkrb5-3{a} libkrb5support0{a} libmagic-mgc{a} libmagic1t64{a} libnsl2{a} libpipeline1{a} libpython3-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libtirpc-common{a} libtirpc3t64{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-autocommand{a} python3-bcrypt{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-dulwich{a} python3-execnet{a} python3-fastjsonschema{a} python3-filelock{a} python3-idna{a} python3-importlib-metadata{a} python3-inflect{a} python3-iniconfig{a} python3-installer{a} python3-jaraco.classes{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-jeepney{a} python3-jinja2{a} python3-keyring{a} python3-linkify-it{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-pytest-xdist{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-syrupy{a} python3-toml{a} python3-tomlkit{a} python3-trove-classifiers{a} python3-typeguard{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.12{a} python3.12-minimal{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} 
The following packages are RECOMMENDED but will NOT be installed:
  curl krb5-locales libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx python-pkginfo-doc python3-babel python3-dev python3-fastimport wget 
0 packages upgraded, 133 newly installed, 0 to remove and 0 not upgraded.
Need to get 41.8 MB of archives. After unpacking 154 MB will be used.
Writing extended state information...
Get: 1 http://deb.debian.org/debian trixie/main armhf libpython3.12-minimal armhf 3.12.8-3 [802 kB]
Get: 2 http://deb.debian.org/debian trixie/main armhf libexpat1 armhf 2.6.4-1 [83.5 kB]
Get: 3 http://deb.debian.org/debian trixie/main armhf python3.12-minimal armhf 3.12.8-3 [1794 kB]
Get: 4 http://deb.debian.org/debian trixie/main armhf python3-minimal armhf 3.12.7-1 [26.8 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 2024b-4 [256 kB]
Get: 8 http://deb.debian.org/debian trixie/main armhf libkrb5support0 armhf 1.21.3-3 [30.0 kB]
Get: 9 http://deb.debian.org/debian trixie/main armhf libcom-err2 armhf 1.47.2~rc1-2 [22.9 kB]
Get: 10 http://deb.debian.org/debian trixie/main armhf libk5crypto3 armhf 1.21.3-3 [75.8 kB]
Get: 11 http://deb.debian.org/debian trixie/main armhf libkeyutils1 armhf 1.6.3-4 [8096 B]
Get: 12 http://deb.debian.org/debian trixie/main armhf libkrb5-3 armhf 1.21.3-3 [283 kB]
Get: 13 http://deb.debian.org/debian trixie/main armhf libgssapi-krb5-2 armhf 1.21.3-3 [114 kB]
Get: 14 http://deb.debian.org/debian trixie/main armhf libtirpc-common all 1.3.4+ds-1.3 [10.9 kB]
Get: 15 http://deb.debian.org/debian trixie/main armhf libtirpc3t64 armhf 1.3.4+ds-1.3+b1 [71.3 kB]
Get: 16 http://deb.debian.org/debian trixie/main armhf libnsl2 armhf 1.3.0-3+b3 [35.0 kB]
Get: 17 http://deb.debian.org/debian trixie/main armhf readline-common all 8.2-6 [69.4 kB]
Get: 18 http://deb.debian.org/debian trixie/main armhf libreadline8t64 armhf 8.2-6 [146 kB]
Get: 19 http://deb.debian.org/debian trixie/main armhf libpython3.12-stdlib armhf 3.12.8-3 [1824 kB]
Get: 20 http://deb.debian.org/debian trixie/main armhf python3.12 armhf 3.12.8-3 [677 kB]
Get: 21 http://deb.debian.org/debian trixie/main armhf libpython3-stdlib armhf 3.12.7-1 [9712 B]
Get: 22 http://deb.debian.org/debian trixie/main armhf python3 armhf 3.12.7-1 [27.8 kB]
Get: 23 http://deb.debian.org/debian trixie/main armhf libpython3.13-minimal armhf 3.13.1-2 [844 kB]
Get: 24 http://deb.debian.org/debian trixie/main armhf python3.13-minimal armhf 3.13.1-2 [1838 kB]
Get: 25 http://deb.debian.org/debian trixie/main armhf sensible-utils all 0.0.24 [24.8 kB]
Get: 26 http://deb.debian.org/debian trixie/main armhf openssl armhf 3.3.2-2 [1348 kB]
Get: 27 http://deb.debian.org/debian trixie/main armhf ca-certificates all 20240203 [158 kB]
Get: 28 http://deb.debian.org/debian trixie/main armhf libmagic-mgc armhf 1:5.45-3+b1 [314 kB]
Get: 29 http://deb.debian.org/debian trixie/main armhf libmagic1t64 armhf 1:5.45-3+b1 [98.5 kB]
Get: 30 http://deb.debian.org/debian trixie/main armhf file armhf 1:5.45-3+b1 [42.3 kB]
Get: 31 http://deb.debian.org/debian trixie/main armhf gettext-base armhf 0.22.5-3 [195 kB]
Get: 32 http://deb.debian.org/debian trixie/main armhf libuchardet0 armhf 0.0.8-1+b2 [65.6 kB]
Get: 33 http://deb.debian.org/debian trixie/main armhf groff-base armhf 1.23.0-6 [1091 kB]
Get: 34 http://deb.debian.org/debian trixie/main armhf bsdextrautils armhf 2.40.2-12 [83.9 kB]
Get: 35 http://deb.debian.org/debian trixie/main armhf libpipeline1 armhf 1.5.8-1 [35.0 kB]
Get: 36 http://deb.debian.org/debian trixie/main armhf man-db armhf 2.13.0-1 [1382 kB]
Get: 37 http://deb.debian.org/debian trixie/main armhf m4 armhf 1.4.19-4 [264 kB]
Get: 38 http://deb.debian.org/debian trixie/main armhf autoconf all 2.72-3 [493 kB]
Get: 39 http://deb.debian.org/debian trixie/main armhf autotools-dev all 20220109.1 [51.6 kB]
Get: 40 http://deb.debian.org/debian trixie/main armhf automake all 1:1.16.5-1.3 [823 kB]
Get: 41 http://deb.debian.org/debian trixie/main armhf autopoint all 0.22.5-3 [723 kB]
Get: 42 http://deb.debian.org/debian trixie/main armhf libdebhelper-perl all 13.20 [89.7 kB]
Get: 43 http://deb.debian.org/debian trixie/main armhf libtool all 2.4.7-8 [517 kB]
Get: 44 http://deb.debian.org/debian trixie/main armhf dh-autoreconf all 20 [17.1 kB]
Get: 45 http://deb.debian.org/debian trixie/main armhf libarchive-zip-perl all 1.68-1 [104 kB]
Get: 46 http://deb.debian.org/debian trixie/main armhf libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB]
Get: 47 http://deb.debian.org/debian trixie/main armhf dh-strip-nondeterminism all 1.14.0-1 [8448 B]
Get: 48 http://deb.debian.org/debian trixie/main armhf libelf1t64 armhf 0.192-4 [184 kB]
Get: 49 http://deb.debian.org/debian trixie/main armhf dwz armhf 0.15-1+b2 [106 kB]
Get: 50 http://deb.debian.org/debian trixie/main armhf libicu72 armhf 72.1-5+b1 [9088 kB]
Get: 51 http://deb.debian.org/debian trixie/main armhf libxml2 armhf 2.12.7+dfsg+really2.9.14-0.2+b1 [605 kB]
Get: 52 http://deb.debian.org/debian trixie/main armhf gettext armhf 0.22.5-3 [1488 kB]
Get: 53 http://deb.debian.org/debian trixie/main armhf intltool-debian all 0.35.0+20060710.6 [22.9 kB]
Get: 54 http://deb.debian.org/debian trixie/main armhf po-debconf all 1.0.21+nmu1 [248 kB]
Get: 55 http://deb.debian.org/debian trixie/main armhf debhelper all 13.20 [915 kB]
Get: 56 http://deb.debian.org/debian trixie/main armhf python3-autocommand all 2.2.2-3 [13.6 kB]
Get: 57 http://deb.debian.org/debian trixie/main armhf python3-more-itertools all 10.5.0-1 [63.8 kB]
Get: 58 http://deb.debian.org/debian trixie/main armhf python3-typing-extensions all 4.12.2-2 [73.0 kB]
Get: 59 http://deb.debian.org/debian trixie/main armhf python3-zipp all 3.21.0-1 [10.6 kB]
Get: 60 http://deb.debian.org/debian trixie/main armhf python3-importlib-metadata all 8.5.0-1 [21.0 kB]
Get: 61 http://deb.debian.org/debian trixie/main armhf python3-typeguard all 4.4.1-1 [37.0 kB]
Get: 62 http://deb.debian.org/debian trixie/main armhf python3-inflect all 7.3.1-2 [32.4 kB]
Get: 63 http://deb.debian.org/debian trixie/main armhf python3-jaraco.context all 6.0.0-1 [7984 B]
Get: 64 http://deb.debian.org/debian trixie/main armhf python3-jaraco.functools all 4.1.0-1 [12.0 kB]
Get: 65 http://deb.debian.org/debian trixie/main armhf python3-pkg-resources all 75.6.0-1 [222 kB]
Get: 66 http://deb.debian.org/debian trixie/main armhf python3-jaraco.text all 4.0.0-1 [11.4 kB]
Get: 67 http://deb.debian.org/debian trixie/main armhf python3-setuptools all 75.6.0-1 [720 kB]
Get: 68 http://deb.debian.org/debian trixie/main armhf dh-python all 6.20241217 [113 kB]
Get: 69 http://deb.debian.org/debian trixie/main armhf libpython3.13-stdlib armhf 3.13.1-2 [1846 kB]
Get: 70 http://deb.debian.org/debian trixie/main armhf python3-packaging all 24.2-1 [55.3 kB]
Get: 71 http://deb.debian.org/debian trixie/main armhf python3-pyproject-hooks all 1.2.0-1 [11.7 kB]
Get: 72 http://deb.debian.org/debian trixie/main armhf python3-toml all 0.10.2-1 [16.2 kB]
Get: 73 http://deb.debian.org/debian trixie/main armhf python3-wheel all 0.45.1-1 [56.7 kB]
Get: 74 http://deb.debian.org/debian trixie/main armhf python3-build all 1.2.2-1 [36.0 kB]
Get: 75 http://deb.debian.org/debian trixie/main armhf python3-installer all 0.7.0+dfsg1-3 [18.6 kB]
Get: 76 http://deb.debian.org/debian trixie/main armhf pybuild-plugin-pyproject all 6.20241217 [11.5 kB]
Get: 77 http://deb.debian.org/debian trixie/main armhf python3.13 armhf 3.13.1-2 [740 kB]
Get: 78 http://deb.debian.org/debian trixie/main armhf python3-all armhf 3.12.7-1 [1052 B]
Get: 79 http://deb.debian.org/debian trixie/main armhf python3-async-generator all 1.10-4 [17.4 kB]
Get: 80 http://deb.debian.org/debian trixie/main armhf python3-bcrypt armhf 4.2.0-2.1 [214 kB]
Get: 81 http://deb.debian.org/debian trixie/main armhf python3-certifi all 2024.8.30+dfsg-1 [9576 B]
Get: 82 http://deb.debian.org/debian trixie/main armhf python3-charset-normalizer armhf 3.4.0-1+b1 [126 kB]
Get: 83 http://deb.debian.org/debian trixie/main armhf python3-idna all 3.8-2 [41.6 kB]
Get: 84 http://deb.debian.org/debian trixie/main armhf python3-urllib3 all 2.2.3-4 [112 kB]
Get: 85 http://deb.debian.org/debian trixie/main armhf python3-chardet all 5.2.0+dfsg-1 [107 kB]
Get: 86 http://deb.debian.org/debian trixie/main armhf python3-requests all 2.32.3+dfsg-1 [71.9 kB]
Get: 87 http://deb.debian.org/debian trixie/main armhf python3-msgpack armhf 1.0.3-3+b3 [101 kB]
Get: 88 http://deb.debian.org/debian trixie/main armhf python3-cachecontrol all 0.14.1-1 [18.6 kB]
Get: 89 http://deb.debian.org/debian trixie/main armhf python3-cffi-backend armhf 1.17.1-2+b1 [83.7 kB]
Get: 90 http://deb.debian.org/debian trixie/main armhf python3-crashtest all 0.4.1-1 [6740 B]
Get: 91 http://deb.debian.org/debian trixie/main armhf python3-pylev all 1.4.0-1 [6496 B]
Get: 92 http://deb.debian.org/debian trixie/main armhf python3-cleo all 2.1.0-2 [54.4 kB]
Get: 93 http://deb.debian.org/debian trixie/main armhf python3-colorama all 0.4.6-4 [36.2 kB]
Get: 94 http://deb.debian.org/debian trixie/main armhf python3-click all 8.1.7-2 [94.3 kB]
Get: 95 http://deb.debian.org/debian trixie/main armhf python3-cryptography armhf 43.0.0-1 [827 kB]
Get: 96 http://deb.debian.org/debian trixie/main armhf python3-distlib all 0.3.9-1 [257 kB]
Get: 97 http://deb.debian.org/debian trixie/main armhf python3-dulwich armhf 0.22.5-1+b1 [449 kB]
Get: 98 http://deb.debian.org/debian trixie/main armhf python3-execnet all 2.1.1-1 [40.2 kB]
Get: 99 http://deb.debian.org/debian trixie/main armhf python3-fastjsonschema all 2.20.0-1 [21.8 kB]
Get: 100 http://deb.debian.org/debian trixie/main armhf python3-filelock all 3.16.1-1 [12.6 kB]
Get: 101 http://deb.debian.org/debian trixie/main armhf python3-iniconfig all 1.1.1-2 [6396 B]
Get: 102 http://deb.debian.org/debian trixie/main armhf python3-jaraco.classes all 3.4.0-1 [7728 B]
Get: 103 http://deb.debian.org/debian trixie/main armhf python3-jeepney all 0.8.0-4 [32.6 kB]
Get: 104 http://deb.debian.org/debian trixie/main armhf python3-markupsafe armhf 2.1.5-1+b2 [13.4 kB]
Get: 105 http://deb.debian.org/debian trixie/main armhf python3-jinja2 all 3.1.3-1.1 [120 kB]
Get: 106 http://deb.debian.org/debian trixie/main armhf python3-secretstorage all 3.3.3-3 [16.1 kB]
Get: 107 http://deb.debian.org/debian trixie/main armhf python3-keyring all 25.4.1-1 [54.6 kB]
Get: 108 http://deb.debian.org/debian trixie/main armhf python3-uc-micro all 1.0.3-1 [5744 B]
Get: 109 http://deb.debian.org/debian trixie/main armhf python3-linkify-it all 2.0.3-1 [18.7 kB]
Get: 110 http://deb.debian.org/debian trixie/main armhf python3-mdurl all 0.1.2-1 [9444 B]
Get: 111 http://deb.debian.org/debian trixie/main armhf python3-markdown-it all 3.0.0-2 [62.5 kB]
Get: 112 http://deb.debian.org/debian trixie/main armhf python3-ptyprocess all 0.7.0-6 [14.5 kB]
Get: 113 http://deb.debian.org/debian trixie/main armhf python3-pexpect all 4.9-3 [55.6 kB]
Get: 114 http://deb.debian.org/debian trixie/main armhf python3-pip-whl all 24.3.1+dfsg-1 [1501 kB]
Get: 115 http://deb.debian.org/debian trixie/main armhf python3-pkginfo all 1.11.2-1 [20.4 kB]
Get: 116 http://deb.debian.org/debian trixie/main armhf python3-platformdirs all 4.3.6-1 [16.6 kB]
Get: 117 http://deb.debian.org/debian trixie/main armhf python3-pluggy all 1.5.0-1 [26.9 kB]
Get: 118 http://deb.debian.org/debian trixie/main armhf python3-poetry-core all 1.9.0-2 [210 kB]
Get: 119 http://deb.debian.org/debian trixie/main armhf python3-poetry-plugin-export all 1.8.0-1 [12.0 kB]
Get: 120 http://deb.debian.org/debian trixie/main armhf python3-requests-toolbelt all 1.0.0-4 [40.3 kB]
Get: 121 http://deb.debian.org/debian trixie/main armhf python3-shellingham all 1.5.4-1 [11.0 kB]
Get: 122 http://deb.debian.org/debian trixie/main armhf python3-tomlkit all 0.13.2-1 [42.7 kB]
Get: 123 http://deb.debian.org/debian trixie/main armhf python3-trove-classifiers all 2024.9.12-1 [10.2 kB]
Get: 124 http://deb.debian.org/debian trixie/main armhf python3-setuptools-whl all 75.6.0-1 [1239 kB]
Get: 125 http://deb.debian.org/debian trixie/main armhf python3-wheel-whl all 0.45.1-1 [75.3 kB]
Get: 126 http://deb.debian.org/debian trixie/main armhf python3-virtualenv all 20.28.0+ds-1 [71.3 kB]
Get: 127 http://deb.debian.org/debian trixie/main armhf python3-poetry all 1.8.3+dfsg-4 [181 kB]
Get: 128 http://deb.debian.org/debian trixie/main armhf python3-pygments all 2.18.0+dfsg-1 [836 kB]
Get: 129 http://deb.debian.org/debian trixie/main armhf python3-pytest all 8.3.3-1 [249 kB]
Get: 130 http://deb.debian.org/debian trixie/main armhf python3-pytest-asyncio all 0.24.0a1-1 [15.6 kB]
Get: 131 http://deb.debian.org/debian trixie/main armhf python3-pytest-xdist all 3.6.1-1 [44.4 kB]
Get: 132 http://deb.debian.org/debian trixie/main armhf python3-rich all 13.7.1-1 [201 kB]
Get: 133 http://deb.debian.org/debian trixie/main armhf python3-syrupy all 4.8.0-1 [53.5 kB]
Fetched 41.8 MB in 4s (11.5 MB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package libpython3.12-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 ... 19681 files and directories currently installed.)
Preparing to unpack .../libpython3.12-minimal_3.12.8-3_armhf.deb ...
Unpacking libpython3.12-minimal:armhf (3.12.8-3) ...
Selecting previously unselected package libexpat1:armhf.
Preparing to unpack .../libexpat1_2.6.4-1_armhf.deb ...
Unpacking libexpat1:armhf (2.6.4-1) ...
Selecting previously unselected package python3.12-minimal.
Preparing to unpack .../python3.12-minimal_3.12.8-3_armhf.deb ...
Unpacking python3.12-minimal (3.12.8-3) ...
Setting up libpython3.12-minimal:armhf (3.12.8-3) ...
Setting up libexpat1:armhf (2.6.4-1) ...
Setting up python3.12-minimal (3.12.8-3) ...
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 ... 20001 files and directories currently installed.)
Preparing to unpack .../00-python3-minimal_3.12.7-1_armhf.deb ...
Unpacking python3-minimal (3.12.7-1) ...
Selecting previously unselected package media-types.
Preparing to unpack .../01-media-types_10.1.0_all.deb ...
Unpacking media-types (10.1.0) ...
Selecting previously unselected package netbase.
Preparing to unpack .../02-netbase_6.4_all.deb ...
Unpacking netbase (6.4) ...
Selecting previously unselected package tzdata.
Preparing to unpack .../03-tzdata_2024b-4_all.deb ...
Unpacking tzdata (2024b-4) ...
Selecting previously unselected package libkrb5support0:armhf.
Preparing to unpack .../04-libkrb5support0_1.21.3-3_armhf.deb ...
Unpacking libkrb5support0:armhf (1.21.3-3) ...
Selecting previously unselected package libcom-err2:armhf.
Preparing to unpack .../05-libcom-err2_1.47.2~rc1-2_armhf.deb ...
Unpacking libcom-err2:armhf (1.47.2~rc1-2) ...
Selecting previously unselected package libk5crypto3:armhf.
Preparing to unpack .../06-libk5crypto3_1.21.3-3_armhf.deb ...
Unpacking libk5crypto3:armhf (1.21.3-3) ...
Selecting previously unselected package libkeyutils1:armhf.
Preparing to unpack .../07-libkeyutils1_1.6.3-4_armhf.deb ...
Unpacking libkeyutils1:armhf (1.6.3-4) ...
Selecting previously unselected package libkrb5-3:armhf.
Preparing to unpack .../08-libkrb5-3_1.21.3-3_armhf.deb ...
Unpacking libkrb5-3:armhf (1.21.3-3) ...
Selecting previously unselected package libgssapi-krb5-2:armhf.
Preparing to unpack .../09-libgssapi-krb5-2_1.21.3-3_armhf.deb ...
Unpacking libgssapi-krb5-2:armhf (1.21.3-3) ...
Selecting previously unselected package libtirpc-common.
Preparing to unpack .../10-libtirpc-common_1.3.4+ds-1.3_all.deb ...
Unpacking libtirpc-common (1.3.4+ds-1.3) ...
Selecting previously unselected package libtirpc3t64:armhf.
Preparing to unpack .../11-libtirpc3t64_1.3.4+ds-1.3+b1_armhf.deb ...
Adding 'diversion of /lib/arm-linux-gnueabihf/libtirpc.so.3 to /lib/arm-linux-gnueabihf/libtirpc.so.3.usr-is-merged by libtirpc3t64'
Adding 'diversion of /lib/arm-linux-gnueabihf/libtirpc.so.3.0.0 to /lib/arm-linux-gnueabihf/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64'
Unpacking libtirpc3t64:armhf (1.3.4+ds-1.3+b1) ...
Selecting previously unselected package libnsl2:armhf.
Preparing to unpack .../12-libnsl2_1.3.0-3+b3_armhf.deb ...
Unpacking libnsl2:armhf (1.3.0-3+b3) ...
Selecting previously unselected package readline-common.
Preparing to unpack .../13-readline-common_8.2-6_all.deb ...
Unpacking readline-common (8.2-6) ...
Selecting previously unselected package libreadline8t64:armhf.
Preparing to unpack .../14-libreadline8t64_8.2-6_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-6) ...
Selecting previously unselected package libpython3.12-stdlib:armhf.
Preparing to unpack .../15-libpython3.12-stdlib_3.12.8-3_armhf.deb ...
Unpacking libpython3.12-stdlib:armhf (3.12.8-3) ...
Selecting previously unselected package python3.12.
Preparing to unpack .../16-python3.12_3.12.8-3_armhf.deb ...
Unpacking python3.12 (3.12.8-3) ...
Selecting previously unselected package libpython3-stdlib:armhf.
Preparing to unpack .../17-libpython3-stdlib_3.12.7-1_armhf.deb ...
Unpacking libpython3-stdlib:armhf (3.12.7-1) ...
Setting up python3-minimal (3.12.7-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 ... 21064 files and directories currently installed.)
Preparing to unpack .../000-python3_3.12.7-1_armhf.deb ...
Unpacking python3 (3.12.7-1) ...
Selecting previously unselected package libpython3.13-minimal:armhf.
Preparing to unpack .../001-libpython3.13-minimal_3.13.1-2_armhf.deb ...
Unpacking libpython3.13-minimal:armhf (3.13.1-2) ...
Selecting previously unselected package python3.13-minimal.
Preparing to unpack .../002-python3.13-minimal_3.13.1-2_armhf.deb ...
Unpacking python3.13-minimal (3.13.1-2) ...
Selecting previously unselected package sensible-utils.
Preparing to unpack .../003-sensible-utils_0.0.24_all.deb ...
Unpacking sensible-utils (0.0.24) ...
Selecting previously unselected package openssl.
Preparing to unpack .../004-openssl_3.3.2-2_armhf.deb ...
Unpacking openssl (3.3.2-2) ...
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+b1_armhf.deb ...
Unpacking libmagic-mgc (1:5.45-3+b1) ...
Selecting previously unselected package libmagic1t64:armhf.
Preparing to unpack .../007-libmagic1t64_1%3a5.45-3+b1_armhf.deb ...
Unpacking libmagic1t64:armhf (1:5.45-3+b1) ...
Selecting previously unselected package file.
Preparing to unpack .../008-file_1%3a5.45-3+b1_armhf.deb ...
Unpacking file (1:5.45-3+b1) ...
Selecting previously unselected package gettext-base.
Preparing to unpack .../009-gettext-base_0.22.5-3_armhf.deb ...
Unpacking gettext-base (0.22.5-3) ...
Selecting previously unselected package libuchardet0:armhf.
Preparing to unpack .../010-libuchardet0_0.0.8-1+b2_armhf.deb ...
Unpacking libuchardet0:armhf (0.0.8-1+b2) ...
Selecting previously unselected package groff-base.
Preparing to unpack .../011-groff-base_1.23.0-6_armhf.deb ...
Unpacking groff-base (1.23.0-6) ...
Selecting previously unselected package bsdextrautils.
Preparing to unpack .../012-bsdextrautils_2.40.2-12_armhf.deb ...
Unpacking bsdextrautils (2.40.2-12) ...
Selecting previously unselected package libpipeline1:armhf.
Preparing to unpack .../013-libpipeline1_1.5.8-1_armhf.deb ...
Unpacking libpipeline1:armhf (1.5.8-1) ...
Selecting previously unselected package man-db.
Preparing to unpack .../014-man-db_2.13.0-1_armhf.deb ...
Unpacking man-db (2.13.0-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.72-3_all.deb ...
Unpacking autoconf (2.72-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.22.5-3_all.deb ...
Unpacking autopoint (0.22.5-3) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../020-libdebhelper-perl_13.20_all.deb ...
Unpacking libdebhelper-perl (13.20) ...
Selecting previously unselected package libtool.
Preparing to unpack .../021-libtool_2.4.7-8_all.deb ...
Unpacking libtool (2.4.7-8) ...
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 libfile-stripnondeterminism-perl.
Preparing to unpack .../024-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ...
Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ...
Selecting previously unselected package dh-strip-nondeterminism.
Preparing to unpack .../025-dh-strip-nondeterminism_1.14.0-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.14.0-1) ...
Selecting previously unselected package libelf1t64:armhf.
Preparing to unpack .../026-libelf1t64_0.192-4_armhf.deb ...
Unpacking libelf1t64:armhf (0.192-4) ...
Selecting previously unselected package dwz.
Preparing to unpack .../027-dwz_0.15-1+b2_armhf.deb ...
Unpacking dwz (0.15-1+b2) ...
Selecting previously unselected package libicu72:armhf.
Preparing to unpack .../028-libicu72_72.1-5+b1_armhf.deb ...
Unpacking libicu72:armhf (72.1-5+b1) ...
Selecting previously unselected package libxml2:armhf.
Preparing to unpack .../029-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_armhf.deb ...
Unpacking libxml2:armhf (2.12.7+dfsg+really2.9.14-0.2+b1) ...
Selecting previously unselected package gettext.
Preparing to unpack .../030-gettext_0.22.5-3_armhf.deb ...
Unpacking gettext (0.22.5-3) ...
Selecting previously unselected package intltool-debian.
Preparing to unpack .../031-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 .../032-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../033-debhelper_13.20_all.deb ...
Unpacking debhelper (13.20) ...
Selecting previously unselected package python3-autocommand.
Preparing to unpack .../034-python3-autocommand_2.2.2-3_all.deb ...
Unpacking python3-autocommand (2.2.2-3) ...
Selecting previously unselected package python3-more-itertools.
Preparing to unpack .../035-python3-more-itertools_10.5.0-1_all.deb ...
Unpacking python3-more-itertools (10.5.0-1) ...
Selecting previously unselected package python3-typing-extensions.
Preparing to unpack .../036-python3-typing-extensions_4.12.2-2_all.deb ...
Unpacking python3-typing-extensions (4.12.2-2) ...
Selecting previously unselected package python3-zipp.
Preparing to unpack .../037-python3-zipp_3.21.0-1_all.deb ...
Unpacking python3-zipp (3.21.0-1) ...
Selecting previously unselected package python3-importlib-metadata.
Preparing to unpack .../038-python3-importlib-metadata_8.5.0-1_all.deb ...
Unpacking python3-importlib-metadata (8.5.0-1) ...
Selecting previously unselected package python3-typeguard.
Preparing to unpack .../039-python3-typeguard_4.4.1-1_all.deb ...
Unpacking python3-typeguard (4.4.1-1) ...
Selecting previously unselected package python3-inflect.
Preparing to unpack .../040-python3-inflect_7.3.1-2_all.deb ...
Unpacking python3-inflect (7.3.1-2) ...
Selecting previously unselected package python3-jaraco.context.
Preparing to unpack .../041-python3-jaraco.context_6.0.0-1_all.deb ...
Unpacking python3-jaraco.context (6.0.0-1) ...
Selecting previously unselected package python3-jaraco.functools.
Preparing to unpack .../042-python3-jaraco.functools_4.1.0-1_all.deb ...
Unpacking python3-jaraco.functools (4.1.0-1) ...
Selecting previously unselected package python3-pkg-resources.
Preparing to unpack .../043-python3-pkg-resources_75.6.0-1_all.deb ...
Unpacking python3-pkg-resources (75.6.0-1) ...
Selecting previously unselected package python3-jaraco.text.
Preparing to unpack .../044-python3-jaraco.text_4.0.0-1_all.deb ...
Unpacking python3-jaraco.text (4.0.0-1) ...
Selecting previously unselected package python3-setuptools.
Preparing to unpack .../045-python3-setuptools_75.6.0-1_all.deb ...
Unpacking python3-setuptools (75.6.0-1) ...
Selecting previously unselected package dh-python.
Preparing to unpack .../046-dh-python_6.20241217_all.deb ...
Unpacking dh-python (6.20241217) ...
Selecting previously unselected package libpython3.13-stdlib:armhf.
Preparing to unpack .../047-libpython3.13-stdlib_3.13.1-2_armhf.deb ...
Unpacking libpython3.13-stdlib:armhf (3.13.1-2) ...
Selecting previously unselected package python3-packaging.
Preparing to unpack .../048-python3-packaging_24.2-1_all.deb ...
Unpacking python3-packaging (24.2-1) ...
Selecting previously unselected package python3-pyproject-hooks.
Preparing to unpack .../049-python3-pyproject-hooks_1.2.0-1_all.deb ...
Unpacking python3-pyproject-hooks (1.2.0-1) ...
Selecting previously unselected package python3-toml.
Preparing to unpack .../050-python3-toml_0.10.2-1_all.deb ...
Unpacking python3-toml (0.10.2-1) ...
Selecting previously unselected package python3-wheel.
Preparing to unpack .../051-python3-wheel_0.45.1-1_all.deb ...
Unpacking python3-wheel (0.45.1-1) ...
Selecting previously unselected package python3-build.
Preparing to unpack .../052-python3-build_1.2.2-1_all.deb ...
Unpacking python3-build (1.2.2-1) ...
Selecting previously unselected package python3-installer.
Preparing to unpack .../053-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 .../054-pybuild-plugin-pyproject_6.20241217_all.deb ...
Unpacking pybuild-plugin-pyproject (6.20241217) ...
Selecting previously unselected package python3.13.
Preparing to unpack .../055-python3.13_3.13.1-2_armhf.deb ...
Unpacking python3.13 (3.13.1-2) ...
Selecting previously unselected package python3-all.
Preparing to unpack .../056-python3-all_3.12.7-1_armhf.deb ...
Unpacking python3-all (3.12.7-1) ...
Selecting previously unselected package python3-async-generator.
Preparing to unpack .../057-python3-async-generator_1.10-4_all.deb ...
Unpacking python3-async-generator (1.10-4) ...
Selecting previously unselected package python3-bcrypt.
Preparing to unpack .../058-python3-bcrypt_4.2.0-2.1_armhf.deb ...
Unpacking python3-bcrypt (4.2.0-2.1) ...
Selecting previously unselected package python3-certifi.
Preparing to unpack .../059-python3-certifi_2024.8.30+dfsg-1_all.deb ...
Unpacking python3-certifi (2024.8.30+dfsg-1) ...
Selecting previously unselected package python3-charset-normalizer.
Preparing to unpack .../060-python3-charset-normalizer_3.4.0-1+b1_armhf.deb ...
Unpacking python3-charset-normalizer (3.4.0-1+b1) ...
Selecting previously unselected package python3-idna.
Preparing to unpack .../061-python3-idna_3.8-2_all.deb ...
Unpacking python3-idna (3.8-2) ...
Selecting previously unselected package python3-urllib3.
Preparing to unpack .../062-python3-urllib3_2.2.3-4_all.deb ...
Unpacking python3-urllib3 (2.2.3-4) ...
Selecting previously unselected package python3-chardet.
Preparing to unpack .../063-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 .../064-python3-requests_2.32.3+dfsg-1_all.deb ...
Unpacking python3-requests (2.32.3+dfsg-1) ...
Selecting previously unselected package python3-msgpack.
Preparing to unpack .../065-python3-msgpack_1.0.3-3+b3_armhf.deb ...
Unpacking python3-msgpack (1.0.3-3+b3) ...
Selecting previously unselected package python3-cachecontrol.
Preparing to unpack .../066-python3-cachecontrol_0.14.1-1_all.deb ...
Unpacking python3-cachecontrol (0.14.1-1) ...
Selecting previously unselected package python3-cffi-backend:armhf.
Preparing to unpack .../067-python3-cffi-backend_1.17.1-2+b1_armhf.deb ...
Unpacking python3-cffi-backend:armhf (1.17.1-2+b1) ...
Selecting previously unselected package python3-crashtest.
Preparing to unpack .../068-python3-crashtest_0.4.1-1_all.deb ...
Unpacking python3-crashtest (0.4.1-1) ...
Selecting previously unselected package python3-pylev.
Preparing to unpack .../069-python3-pylev_1.4.0-1_all.deb ...
Unpacking python3-pylev (1.4.0-1) ...
Selecting previously unselected package python3-cleo.
Preparing to unpack .../070-python3-cleo_2.1.0-2_all.deb ...
Unpacking python3-cleo (2.1.0-2) ...
Selecting previously unselected package python3-colorama.
Preparing to unpack .../071-python3-colorama_0.4.6-4_all.deb ...
Unpacking python3-colorama (0.4.6-4) ...
Selecting previously unselected package python3-click.
Preparing to unpack .../072-python3-click_8.1.7-2_all.deb ...
Unpacking python3-click (8.1.7-2) ...
Selecting previously unselected package python3-cryptography.
Preparing to unpack .../073-python3-cryptography_43.0.0-1_armhf.deb ...
Unpacking python3-cryptography (43.0.0-1) ...
Selecting previously unselected package python3-distlib.
Preparing to unpack .../074-python3-distlib_0.3.9-1_all.deb ...
Unpacking python3-distlib (0.3.9-1) ...
Selecting previously unselected package python3-dulwich.
Preparing to unpack .../075-python3-dulwich_0.22.5-1+b1_armhf.deb ...
Unpacking python3-dulwich (0.22.5-1+b1) ...
Selecting previously unselected package python3-execnet.
Preparing to unpack .../076-python3-execnet_2.1.1-1_all.deb ...
Unpacking python3-execnet (2.1.1-1) ...
Selecting previously unselected package python3-fastjsonschema.
Preparing to unpack .../077-python3-fastjsonschema_2.20.0-1_all.deb ...
Unpacking python3-fastjsonschema (2.20.0-1) ...
Selecting previously unselected package python3-filelock.
Preparing to unpack .../078-python3-filelock_3.16.1-1_all.deb ...
Unpacking python3-filelock (3.16.1-1) ...
Selecting previously unselected package python3-iniconfig.
Preparing to unpack .../079-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 .../080-python3-jaraco.classes_3.4.0-1_all.deb ...
Unpacking python3-jaraco.classes (3.4.0-1) ...
Selecting previously unselected package python3-jeepney.
Preparing to unpack .../081-python3-jeepney_0.8.0-4_all.deb ...
Unpacking python3-jeepney (0.8.0-4) ...
Selecting previously unselected package python3-markupsafe.
Preparing to unpack .../082-python3-markupsafe_2.1.5-1+b2_armhf.deb ...
Unpacking python3-markupsafe (2.1.5-1+b2) ...
Selecting previously unselected package python3-jinja2.
Preparing to unpack .../083-python3-jinja2_3.1.3-1.1_all.deb ...
Unpacking python3-jinja2 (3.1.3-1.1) ...
Selecting previously unselected package python3-secretstorage.
Preparing to unpack .../084-python3-secretstorage_3.3.3-3_all.deb ...
Unpacking python3-secretstorage (3.3.3-3) ...
Selecting previously unselected package python3-keyring.
Preparing to unpack .../085-python3-keyring_25.4.1-1_all.deb ...
Unpacking python3-keyring (25.4.1-1) ...
Selecting previously unselected package python3-uc-micro.
Preparing to unpack .../086-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 .../087-python3-linkify-it_2.0.3-1_all.deb ...
Unpacking python3-linkify-it (2.0.3-1) ...
Selecting previously unselected package python3-mdurl.
Preparing to unpack .../088-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 .../089-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 .../090-python3-ptyprocess_0.7.0-6_all.deb ...
Unpacking python3-ptyprocess (0.7.0-6) ...
Selecting previously unselected package python3-pexpect.
Preparing to unpack .../091-python3-pexpect_4.9-3_all.deb ...
Unpacking python3-pexpect (4.9-3) ...
Selecting previously unselected package python3-pip-whl.
Preparing to unpack .../092-python3-pip-whl_24.3.1+dfsg-1_all.deb ...
Unpacking python3-pip-whl (24.3.1+dfsg-1) ...
Selecting previously unselected package python3-pkginfo.
Preparing to unpack .../093-python3-pkginfo_1.11.2-1_all.deb ...
Unpacking python3-pkginfo (1.11.2-1) ...
Selecting previously unselected package python3-platformdirs.
Preparing to unpack .../094-python3-platformdirs_4.3.6-1_all.deb ...
Unpacking python3-platformdirs (4.3.6-1) ...
Selecting previously unselected package python3-pluggy.
Preparing to unpack .../095-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 .../096-python3-poetry-core_1.9.0-2_all.deb ...
Unpacking python3-poetry-core (1.9.0-2) ...
Selecting previously unselected package python3-poetry-plugin-export.
Preparing to unpack .../097-python3-poetry-plugin-export_1.8.0-1_all.deb ...
Unpacking python3-poetry-plugin-export (1.8.0-1) ...
Selecting previously unselected package python3-requests-toolbelt.
Preparing to unpack .../098-python3-requests-toolbelt_1.0.0-4_all.deb ...
Unpacking python3-requests-toolbelt (1.0.0-4) ...
Selecting previously unselected package python3-shellingham.
Preparing to unpack .../099-python3-shellingham_1.5.4-1_all.deb ...
Unpacking python3-shellingham (1.5.4-1) ...
Selecting previously unselected package python3-tomlkit.
Preparing to unpack .../100-python3-tomlkit_0.13.2-1_all.deb ...
Unpacking python3-tomlkit (0.13.2-1) ...
Selecting previously unselected package python3-trove-classifiers.
Preparing to unpack .../101-python3-trove-classifiers_2024.9.12-1_all.deb ...
Unpacking python3-trove-classifiers (2024.9.12-1) ...
Selecting previously unselected package python3-setuptools-whl.
Preparing to unpack .../102-python3-setuptools-whl_75.6.0-1_all.deb ...
Unpacking python3-setuptools-whl (75.6.0-1) ...
Selecting previously unselected package python3-wheel-whl.
Preparing to unpack .../103-python3-wheel-whl_0.45.1-1_all.deb ...
Unpacking python3-wheel-whl (0.45.1-1) ...
Selecting previously unselected package python3-virtualenv.
Preparing to unpack .../104-python3-virtualenv_20.28.0+ds-1_all.deb ...
Unpacking python3-virtualenv (20.28.0+ds-1) ...
Selecting previously unselected package python3-poetry.
Preparing to unpack .../105-python3-poetry_1.8.3+dfsg-4_all.deb ...
Unpacking python3-poetry (1.8.3+dfsg-4) ...
Selecting previously unselected package python3-pygments.
Preparing to unpack .../106-python3-pygments_2.18.0+dfsg-1_all.deb ...
Unpacking python3-pygments (2.18.0+dfsg-1) ...
Selecting previously unselected package python3-pytest.
Preparing to unpack .../107-python3-pytest_8.3.3-1_all.deb ...
Unpacking python3-pytest (8.3.3-1) ...
Selecting previously unselected package python3-pytest-asyncio.
Preparing to unpack .../108-python3-pytest-asyncio_0.24.0a1-1_all.deb ...
Unpacking python3-pytest-asyncio (0.24.0a1-1) ...
Selecting previously unselected package python3-pytest-xdist.
Preparing to unpack .../109-python3-pytest-xdist_3.6.1-1_all.deb ...
Unpacking python3-pytest-xdist (3.6.1-1) ...
Selecting previously unselected package python3-rich.
Preparing to unpack .../110-python3-rich_13.7.1-1_all.deb ...
Unpacking python3-rich (13.7.1-1) ...
Selecting previously unselected package python3-syrupy.
Preparing to unpack .../111-python3-syrupy_4.8.0-1_all.deb ...
Unpacking python3-syrupy (4.8.0-1) ...
Setting up media-types (10.1.0) ...
Setting up libpipeline1:armhf (1.5.8-1) ...
Setting up python3-setuptools-whl (75.6.0-1) ...
Setting up libkeyutils1:armhf (1.6.3-4) ...
Setting up libicu72:armhf (72.1-5+b1) ...
Setting up bsdextrautils (2.40.2-12) ...
Setting up libmagic-mgc (1:5.45-3+b1) ...
Setting up libarchive-zip-perl (1.68-1) ...
Setting up libtirpc-common (1.3.4+ds-1.3) ...
Setting up libdebhelper-perl (13.20) ...
Setting up libmagic1t64:armhf (1:5.45-3+b1) ...
Setting up gettext-base (0.22.5-3) ...
Setting up m4 (1.4.19-4) ...
Setting up libcom-err2:armhf (1.47.2~rc1-2) ...
Setting up file (1:5.45-3+b1) ...
Setting up libelf1t64:armhf (0.192-4) ...
Setting up libkrb5support0:armhf (1.21.3-3) ...
Setting up tzdata (2024b-4) ...

Current default time zone: 'Etc/UTC'
Local time is now:      Wed Dec 25 15:49:40 UTC 2024.
Universal Time is now:  Wed Dec 25 15:49:40 UTC 2024.
Run 'dpkg-reconfigure tzdata' if you wish to change it.

Setting up libpython3.13-minimal:armhf (3.13.1-2) ...
Setting up autotools-dev (20220109.1) ...
Setting up autopoint (0.22.5-3) ...
Setting up libk5crypto3:armhf (1.21.3-3) ...
Setting up autoconf (2.72-3) ...
Setting up dwz (0.15-1+b2) ...
Setting up sensible-utils (0.0.24) ...
Setting up libuchardet0:armhf (0.0.8-1+b2) ...
Setting up python3.13-minimal (3.13.1-2) ...
Setting up netbase (6.4) ...
Setting up libkrb5-3:armhf (1.21.3-3) ...
Setting up openssl (3.3.2-2) ...
Setting up python3-wheel-whl (0.45.1-1) ...
Setting up readline-common (8.2-6) ...
Setting up libxml2:armhf (2.12.7+dfsg+really2.9.14-0.2+b1) ...
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.14.0-1) ...
Setting up gettext (0.22.5-3) ...
Setting up libtool (2.4.7-8) ...
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 libgssapi-krb5-2:armhf (1.21.3-3) ...
Setting up libreadline8t64:armhf (8.2-6) ...
Setting up dh-strip-nondeterminism (1.14.0-1) ...
Setting up groff-base (1.23.0-6) ...
Setting up libpython3.13-stdlib:armhf (3.13.1-2) ...
Setting up libtirpc3t64:armhf (1.3.4+ds-1.3+b1) ...
Setting up python3.13 (3.13.1-2) ...
Setting up python3-pip-whl (24.3.1+dfsg-1) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up man-db (2.13.0-1) ...
Not building database; man-db/auto-update is not 'true'.
Setting up libnsl2:armhf (1.3.0-3+b3) ...
Setting up libpython3.12-stdlib:armhf (3.12.8-3) ...
Setting up python3.12 (3.12.8-3) ...
Setting up debhelper (13.20) ...
Setting up libpython3-stdlib:armhf (3.12.7-1) ...
Setting up python3 (3.12.7-1) ...
Setting up python3-distlib (0.3.9-1) ...
Setting up python3-zipp (3.21.0-1) ...
Setting up python3-autocommand (2.2.2-3) ...
Setting up python3-markupsafe (2.1.5-1+b2) ...
Setting up python3-wheel (0.45.1-1) ...
Setting up python3-uc-micro (1.0.3-1) ...
Setting up python3-platformdirs (4.3.6-1) ...
Setting up python3-jinja2 (3.1.3-1.1) ...
Setting up python3-packaging (24.2-1) ...
Setting up python3-pyproject-hooks (1.2.0-1) ...
Setting up python3-certifi (2024.8.30+dfsg-1) ...
Setting up python3-poetry-core (1.9.0-2) ...
Setting up python3-mdurl (0.1.2-1) ...
Setting up python3-crashtest (0.4.1-1) ...
Setting up python3-idna (3.8-2) ...
Setting up python3-typing-extensions (4.12.2-2) ...
Setting up python3-toml (0.10.2-1) ...
Setting up python3-jeepney (0.8.0-4) ...
Setting up python3-installer (0.7.0+dfsg1-3) ...
Setting up python3-urllib3 (2.2.3-4) ...
Setting up python3-pluggy (1.5.0-1) ...
Setting up python3-markdown-it (3.0.0-2) ...
Setting up python3-fastjsonschema (2.20.0-1) ...
Setting up python3-trove-classifiers (2024.9.12-1) ...
Setting up python3-dulwich (0.22.5-1+b1) ...
Setting up python3-linkify-it (2.0.3-1) ...
Setting up python3-msgpack (1.0.3-3+b3) ...
Setting up python3-build (1.2.2-1) ...
Setting up python3-execnet (2.1.1-1) ...
Setting up python3-shellingham (1.5.4-1) ...
Setting up python3-tomlkit (0.13.2-1) ...
Setting up python3-cffi-backend:armhf (1.17.1-2+b1) ...
Setting up python3-ptyprocess (0.7.0-6) ...
Setting up python3-more-itertools (10.5.0-1) ...
Setting up python3-iniconfig (1.1.1-2) ...
Setting up python3-filelock (3.16.1-1) ...
Setting up python3-jaraco.classes (3.4.0-1) ...
Setting up python3-importlib-metadata (8.5.0-1) ...
Setting up python3-jaraco.functools (4.1.0-1) ...
Setting up python3-async-generator (1.10-4) ...
Setting up python3-jaraco.context (6.0.0-1) ...
Setting up python3-colorama (0.4.6-4) ...
Setting up python3-charset-normalizer (3.4.0-1+b1) ...
Setting up python3-pytest (8.3.3-1) ...
Setting up python3-bcrypt (4.2.0-2.1) ...
Setting up python3-syrupy (4.8.0-1) ...
Setting up python3-typeguard (4.4.1-1) ...
Setting up python3-pylev (1.4.0-1) ...
Setting up python3-virtualenv (20.28.0+ds-1) ...
Setting up python3-all (3.12.7-1) ...
Setting up python3-click (8.1.7-2) ...
Setting up python3-inflect (7.3.1-2) ...
Setting up python3-jaraco.text (4.0.0-1) ...
Setting up python3-pexpect (4.9-3) ...
Setting up python3-cryptography (43.0.0-1) ...
Setting up python3-pytest-asyncio (0.24.0a1-1) ...
Setting up python3-cleo (2.1.0-2) ...
Setting up python3-pkg-resources (75.6.0-1) ...
Setting up python3-setuptools (75.6.0-1) ...
Setting up python3-pytest-xdist (3.6.1-1) ...
Setting up python3-pkginfo (1.11.2-1) ...
Setting up python3-pygments (2.18.0+dfsg-1) ...
Setting up python3-chardet (5.2.0+dfsg-1) ...
Setting up python3-secretstorage (3.3.3-3) ...
Setting up python3-requests (2.32.3+dfsg-1) ...
Setting up python3-keyring (25.4.1-1) ...
Setting up python3-cachecontrol (0.14.1-1) ...
Setting up dh-python (6.20241217) ...
Setting up python3-requests-toolbelt (1.0.0-4) ...
Setting up python3-rich (13.7.1-1) ...
Setting up pybuild-plugin-pyproject (6.20241217) ...
Setting up python3-poetry (1.8.3+dfsg-4) ...
Setting up python3-poetry-plugin-export (1.8.0-1) ...
Processing triggers for libc-bin (2.40-4) ...
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.36.2-1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
I: Building the package
I: user script /srv/workspace/pbuilder/27118/tmp/hooks/A99_set_merged_usr starting
Not re-configuring usrmerge for trixie
I: user script /srv/workspace/pbuilder/27118/tmp/hooks/A99_set_merged_usr finished
hostname: Name or service not known
I: Running cd /build/reproducible-path/textual-1.0.0/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S  > ../textual_1.0.0-1_source.changes
dpkg-buildpackage: info: source package textual
dpkg-buildpackage: info: source version 1.0.0-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Sandro Tosi <morph@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture armhf
dpkg-source: info: using options from textual-1.0.0/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.13 with "build" module
I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/textual-1.0.0/.pybuild/cpython3_3.13_textual  
* Building wheel...
Successfully built textual-1.0.0-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module
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-1.0.0/.pybuild/cpython3_3.12_textual  
* Building wheel...
Successfully built textual-1.0.0-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with "installer" module
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd /build/reproducible-path/textual-1.0.0/.pybuild/cpython3_3.13_textual/build; python3.13 -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.13.1, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13
cachedir: .pytest_cache
rootdir: /build/reproducible-path/textual-1.0.0/.pybuild/cpython3_3.13_textual/build
configfile: pyproject.toml
testpaths: tests
plugins: xdist-3.6.1, asyncio-0.24.0a1, typeguard-4.4.1, syrupy-4.8.0
asyncio: mode=Mode.AUTO, default_loop_scope=function
collecting ... collected 2730 items / 7 deselected / 2723 selected

tests/animations/test_disabling_animations.py::test_style_animations_via_animate_work_on_full PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_animate_are_disabled_on_basic PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_animate_are_disabled_on_none PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_transition_work_on_full PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_transition_are_disabled_on_basic PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_transition_are_disabled_on_none PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[-full] PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[FULL-full] PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[BASIC-basic] PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[NONE-none] PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[garbanzo beans-full] PASSED [  0%]
tests/animations/test_environment_variable.py::test_app_show_animations[full] PASSED [  0%]
tests/animations/test_environment_variable.py::test_app_show_animations[basic] PASSED [  0%]
tests/animations/test_environment_variable.py::test_app_show_animations[none] PASSED [  0%]
tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_not_static_on_full PASSED [  0%]
tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_not_static_on_basic PASSED [  0%]
tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_static_on_none PASSED [  0%]
tests/animations/test_progress_bar_animation.py::test_progress_bar_animates_on_full PASSED [  0%]
tests/animations/test_progress_bar_animation.py::test_progress_bar_animates_on_basic PASSED [  0%]
tests/animations/test_progress_bar_animation.py::test_progress_bar_does_not_animate_on_none PASSED [  0%]
tests/animations/test_scrolling_animation.py::test_scrolling_animates_on_full PASSED [  0%]
tests/animations/test_scrolling_animation.py::test_scrolling_animates_on_basic PASSED [  0%]
tests/animations/test_scrolling_animation.py::test_scrolling_does_not_animate_on_none PASSED [  0%]
tests/animations/test_switch_animation.py::test_switch_animates_on_full PASSED [  0%]
tests/animations/test_switch_animation.py::test_switch_animates_on_basic PASSED [  0%]
tests/animations/test_switch_animation.py::test_switch_does_not_animate_on_none PASSED [  0%]
tests/animations/test_tabs_underline_animation.py::test_tabs_underline_animates_on_full PASSED [  0%]
tests/animations/test_tabs_underline_animation.py::test_tabs_underline_animates_on_basic PASSED [  1%]
tests/animations/test_tabs_underline_animation.py::test_tabs_underline_does_not_animate_on_none PASSED [  1%]
tests/css/test_css_reloading.py::test_css_reloading_applies_to_non_top_screen PASSED [  1%]
tests/css/test_css_reloading.py::test_css_reloading_file_not_found PASSED [  1%]
tests/css/test_grid_rows_columns_relative_units.py::test_grid_rows_columns_relative_units_are_correct PASSED [  1%]
tests/css/test_grid_rows_columns_relative_units.py::test_styles_builder_uses_correct_relative_units_grid_rows_columns PASSED [  1%]
tests/css/test_help_text.py::test_help_text_examples_are_contextualized PASSED [  1%]
tests/css/test_help_text.py::test_spacing_wrong_number_of_values[css] PASSED [  1%]
tests/css/test_help_text.py::test_spacing_wrong_number_of_values[inline] PASSED [  1%]
tests/css/test_help_text.py::test_spacing_invalid_value[css] PASSED      [  1%]
tests/css/test_help_text.py::test_spacing_invalid_value[inline] PASSED   [  1%]
tests/css/test_help_text.py::test_scalar_help_text[css] PASSED           [  1%]
tests/css/test_help_text.py::test_scalar_help_text[inline] PASSED        [  1%]
tests/css/test_help_text.py::test_string_enum_help_text[css] PASSED      [  1%]
tests/css/test_help_text.py::test_string_enum_help_text[inline] PASSED   [  1%]
tests/css/test_help_text.py::test_color_property_help_text[css] PASSED   [  1%]
tests/css/test_help_text.py::test_color_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_border_property_help_text[css] PASSED  [  1%]
tests/css/test_help_text.py::test_border_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_layout_property_help_text[css] PASSED  [  1%]
tests/css/test_help_text.py::test_layout_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_fractional_property_help_text[css] PASSED [  1%]
tests/css/test_help_text.py::test_fractional_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_offset_property_help_text[css] PASSED  [  1%]
tests/css/test_help_text.py::test_offset_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_align_help_text PASSED                 [  1%]
tests/css/test_help_text.py::test_offset_single_axis_help_text PASSED    [  1%]
tests/css/test_help_text.py::test_style_flags_property_help_text[css] PASSED [  2%]
tests/css/test_help_text.py::test_style_flags_property_help_text[inline] PASSED [  2%]
tests/css/test_inheritance.py::test_inheritance XFAIL (Overlapping
styles should prioritize the most recent widget in the inheritance
chain)                                                                   [  2%]
tests/css/test_initial.py::test_initial_default PASSED                   [  2%]
tests/css/test_initial.py::test_initial PASSED                           [  2%]
tests/css/test_mega_stylesheet.py::test_mega_stylesheet PASSED           [  2%]
tests/css/test_nested_css.py::test_nest_app PASSED                       [  2%]
tests/css/test_nested_css.py::test_lists_of_selectors_in_nested_css PASSED [  2%]
tests/css/test_nested_css.py::test_rule_declaration_after_nested PASSED  [  2%]
tests/css/test_nested_css.py::test_parse_errors[Selector {-EOFError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[Selector{ Foo {-EOFError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[Selector{ Foo {}-EOFError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[> {}-TokenError] PASSED  [  2%]
tests/css/test_nested_css.py::test_parse_errors[&-TokenError] PASSED     [  2%]
tests/css/test_nested_css.py::test_parse_errors[&&-TokenError] PASSED    [  2%]
tests/css/test_nested_css.py::test_parse_errors[&.foo-TokenError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[& .foo-TokenError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[{-TokenError] PASSED     [  2%]
tests/css/test_nested_css.py::test_parse_errors[*{-EOFError] PASSED      [  2%]
tests/css/test_nested_css.py::test_pseudo_classes_work_in_nested_css PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_simple_reference PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_simple_reference_no_whitespace PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_undefined_variable PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_empty_variable PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_transitive_reference PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_multi_value_variable PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_used_inside_property_value PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_definition_eof PASSED [  3%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_reference_whitespace_trimming PASSED [  3%]
tests/css/test_parse.py::TestParseLayout::test_valid_layout_name PASSED  [  3%]
tests/css/test_parse.py::TestParseLayout::test_invalid_layout_name PASSED [  3%]
tests/css/test_parse.py::TestParseText::test_foreground PASSED           [  3%]
tests/css/test_parse.py::TestParseText::test_background PASSED           [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgb(1,255,50)-result0] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgb( 1, 255,50 )-result1] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgba( 1, 255,50,0.3 )-result2] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgba( 1, 255,50, 1.3 )-result3] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsl( 180, 50%, 50% )-result4] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsl(180,50%,50%)-result5] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla(180,50%,50%,0.25)-result6] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla( 180, 50% ,50%,0.25 )-result7] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla( 180, 50% , 50% , 1.5 )-result8] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_composite_rule[-5.5%-parsed_x0--30%-parsed_y0] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_composite_rule[5%-parsed_x1-40%-parsed_y1] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_composite_rule[10-parsed_x2-40-parsed_y2] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_separate_rules[-5.5%-parsed_x0--30%-parsed_y0] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_separate_rules[5%-parsed_x1-40%-parsed_y1] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_separate_rules[-10-parsed_x2-40-parsed_y2] PASSED [  3%]
tests/css/test_parse.py::TestParseOverflow::test_multiple_enum PASSED    [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[5.57s-5.57] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.5s-0.5] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[1200ms-1.2] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.5ms-0.0005] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[20-20.0] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.1-0.1] PASSED [  4%]
tests/css/test_parse.py::TestParseTransition::test_no_delay_specified PASSED [  4%]
tests/css/test_parse.py::TestParseTransition::test_unknown_easing_function PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[-0.2-0.0] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[0.4-0.4] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[1.3-1.0] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[-20%-0.0] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[25%-0.25] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[128%-1.0] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_invalid_value PASSED [  4%]
tests/css/test_parse.py::TestParseMargin::test_margin_partial PASSED     [  4%]
tests/css/test_parse.py::TestParsePadding::test_padding_partial PASSED   [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[left] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[start] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[center] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[right] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[end] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[justify] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align_invalid PASSED [  4%]
tests/css/test_parse.py::TestTypeNames::test_type_no_number PASSED       [  4%]
tests/css/test_parse.py::TestTypeNames::test_type_with_number PASSED     [  4%]
tests/css/test_parse.py::TestTypeNames::test_type_starts_with_number PASSED [  4%]
tests/css/test_parse.py::TestTypeNames::test_combined_type_no_number PASSED [  4%]
tests/css/test_parse.py::TestTypeNames::test_combined_type_with_number PASSED [  4%]
tests/css/test_parse.py::TestTypeNames::test_combined_type_starts_with_number PASSED [  4%]
tests/css/test_parse.py::test_parse_bad_pseudo_selector PASSED           [  4%]
tests/css/test_parse.py::test_parse_bad_pseudo_selector_with_suggestion PASSED [  4%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_size_rows-3] PASSED [  4%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_size_columns-3] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_gutter_vertical-4] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_gutter_horizontal-4] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_rows-1fr 3fr] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_columns-1fr 3fr] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align_horizontal-right] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align_vertical-bottom] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align-value2] PASSED [  5%]
tests/css/test_scalar.py::test_copy_with_value PASSED                    [  5%]
tests/css/test_scalar.py::test_copy_with_unit PASSED                     [  5%]
tests/css/test_scalar.py::test_copy_with_percent_unit PASSED             [  5%]
tests/css/test_screen_css.py::test_screen_pushing_and_popping_does_not_reparse_css PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_push_screen_instance PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_push_screen_instance_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_push_screen_type_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_screen_instance PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_screen_instance_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_screen_type_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_instance PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_instance_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_type_by_name PASSED [  5%]
tests/css/test_styles.py::test_styles_reset PASSED                       [  5%]
tests/css/test_styles.py::test_has_rule PASSED                           [  5%]
tests/css/test_styles.py::test_clear_rule PASSED                         [  5%]
tests/css/test_styles.py::test_get_rules PASSED                          [  5%]
tests/css/test_styles.py::test_set_rule PASSED                           [  5%]
tests/css/test_styles.py::test_reset PASSED                              [  5%]
tests/css/test_styles.py::test_merge PASSED                              [  6%]
tests/css/test_styles.py::test_merge_rules PASSED                        [  6%]
tests/css/test_styles.py::test_render_styles_border PASSED               [  6%]
tests/css/test_styles.py::test_get_opacity_default PASSED                [  6%]
tests/css/test_styles.py::test_styles_css_property PASSED                [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[0.2-0.2] PASSED      [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[-0.4-0.0] PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[5.8-1.0] PASSED      [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[25%-0.25] PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[-10%-0.0] PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[120%-1.0] PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_invalid_type_error PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_allows_integer_value PASSED   [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[None-None] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1-size_dimension_expected_output1] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.0-size_dimension_expected_output2] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.2-size_dimension_expected_output3] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1200.0-size_dimension_expected_output4] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[20-size_dimension_expected_output5] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.4-size_dimension_expected_output6] PASSED [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[a] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[1.4e3] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[3.14j] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input3] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input4] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input5] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input6] PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_highest_specificity_wins PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_doesnt_override_defaults PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_highest_specificity_wins_multiple_classes PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_many_classes_dont_overrule_id PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_last_rule_wins_when_same_rule_twice_in_one_ruleset PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_rulesets_merged_for_duplicate_selectors PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_takes_final_rule_in_specificity_clash PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_empty_rulesets PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_user_css_over_widget_css PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[transparent-expectation0-expected_color0] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[ansi_red-expectation1-expected_color1] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[ansi_bright_magenta-expectation2-expected_color2] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[red-expectation3-expected_color3] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[lime-expectation4-expected_color4] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[coral-expectation5-expected_color5] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[aqua-expectation6-expected_color6] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[deepskyblue-expectation7-expected_color7] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[rebeccapurple-expectation8-expected_color8] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[#ffcc00-expectation9-expected_color9] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[#ffcc0033-expectation10-expected_color10] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[rgb(200,90,30)-expectation11-expected_color11] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[rgba(200,90,30,0.3)-expectation12-expected_color12] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[coffee-expectation13-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[ansi_dark_cyan-expectation14-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[red 4-expectation15-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[1-expectation16-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[()-expectation17-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[backgroundu-background] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[bckgroundu-background] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[ofset-x-offset-x] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[ofst_y-offset-y] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[colr-color] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[colour-color] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wdth-width] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wth-width] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wh-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[xkcd-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[backgroundu-background] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[bckgroundu-background] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[ofset-x-offset-x] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[ofst_y-offset-y] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[colr-color] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[colour-color] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[wdth-width] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[wth-width] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[wh-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[xkcd-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[color-blu-blue] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[background-chartruse-chartreuse] PASSED [  9%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[tint-ansi_whi-ansi_white] PASSED [  9%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[scrollbar-color-transprnt-transparent] PASSED [  9%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[color-xkcd-None] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warning-text] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warning_text] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext1] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[1warningtext] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[WarningText1] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext_] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext-] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[_warningtext] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[-warningtext] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_multiple_values PASSED [  9%]
tests/css/test_tokenize.py::test_single_line_comment PASSED              [  9%]
tests/css/test_tokenize.py::test_variable_declaration_comment_ignored PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_comment_interspersed_ignored PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_no_semicolon PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_invalid_value PASSED [  9%]
tests/css/test_tokenize.py::test_variables_declarations_amongst_rulesets PASSED [  9%]
tests/css/test_tokenize.py::test_variables_reference_in_rule_declaration_value PASSED [  9%]
tests/css/test_tokenize.py::test_variables_reference_in_rule_declaration_value_multiple PASSED [  9%]
tests/css/test_tokenize.py::test_variables_reference_in_variable_declaration PASSED [  9%]
tests/css/test_tokenize.py::test_variable_references_in_variable_declaration_multiple PASSED [  9%]
tests/css/test_tokenize.py::test_allow_new_lines PASSED                  [  9%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[blue-blur] PASSED [  9%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[br-blur] PASSED [  9%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[canfocus-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[can_focus-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[can-foc-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[drk-dark] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[ark-dark] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[disssabled-disabled] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[enalbed-enabled] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[focoswithin-focus-within] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[focus_whitin-focus-within] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[fcus-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[huver-hover] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[LIght-light] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[blue-blur] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[br-blur] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[canfocus-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[can_focus-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[can-foc-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[drk-dark] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[ark-dark] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[disssabled-disabled] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[enalbed-enabled] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[focoswithin-focus-within] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[focus_whitin-focus-within] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[fcus-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[huver-hover] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[LIght-light] PASSED [ 10%]
tests/directory_tree/test_change_path.py::test_change_directory_tree_path PASSED [ 10%]
tests/directory_tree/test_early_show_root.py::test_managed_to_set_show_root_before_mounted PASSED [ 11%]
tests/document/test_document.py::test_text[I must not fear.\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_text[I must not fear.\nFear is the mind-killer.\n] PASSED [ 11%]
tests/document/test_document.py::test_text[I must not fear.\r\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_text[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 11%]
tests/document/test_document.py::test_lines_newline_eof PASSED           [ 11%]
tests/document/test_document.py::test_lines_no_newline_eof PASSED        [ 11%]
tests/document/test_document.py::test_lines_windows PASSED               [ 11%]
tests/document/test_document.py::test_lines_windows_newline PASSED       [ 11%]
tests/document/test_document.py::test_newline_unix PASSED                [ 11%]
tests/document/test_document.py::test_newline_windows PASSED             [ 11%]
tests/document/test_document.py::test_get_selected_text_no_selection PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_single_line PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_multiple_lines_unix PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_multiple_lines_windows PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_including_final_newline_unix PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_including_final_newline_windows PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_no_newline_at_end_of_file PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_no_newline_at_end_of_file_windows PASSED [ 11%]
tests/document/test_document.py::test_index_from_location[I must not fear.\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_index_from_location[I must not fear.\nFear is the mind-killer.\n] PASSED [ 11%]
tests/document/test_document.py::test_index_from_location[I must not fear.\r\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_index_from_location[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 11%]
tests/document/test_document.py::test_location_from_index[I must not fear.\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_location_from_index[I must not fear.\nFear is the mind-killer.\n] PASSED [ 11%]
tests/document/test_document.py::test_location_from_index[I must not fear.\r\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_location_from_index[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 11%]
tests/document/test_document.py::test_document_end[I must not fear.\nFear is the mind-killer.] PASSED [ 12%]
tests/document/test_document.py::test_document_end[I must not fear.\nFear is the mind-killer.\n] PASSED [ 12%]
tests/document/test_document.py::test_document_end[I must not fear.\r\nFear is the mind-killer.] PASSED [ 12%]
tests/document/test_document.py::test_document_end[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_single_character PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_single_newline PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_near_end_of_document PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_clearing_the_document PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_multiple_characters_on_one_line PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_multiple_lines_partially_spanned PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_end_of_line PASSED   [ 12%]
tests/document/test_document_delete.py::test_delete_single_line_excluding_newline PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_single_line_including_newline PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_end_of_file_newline PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_no_newlines PASSED   [ 12%]
tests/document/test_document_insert.py::test_insert_empty_string PASSED  [ 12%]
tests/document/test_document_insert.py::test_insert_invalid_column PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_invalid_row_and_column PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_range_newline_file_start PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_newline_splits_line PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_newline_splits_line_selection PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_multiple_lines_ends_with_newline PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_multiple_lines_ends_with_no_newline PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_multiple_lines_starts_with_newline PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_range_text_no_newlines PASSED [ 12%]
tests/document/test_document_insert.py::test_newline_eof PASSED          [ 12%]
tests/document/test_document_navigator.py::test_get_location_above[start0-end0] PASSED [ 12%]
tests/document/test_document_navigator.py::test_get_location_above[start1-end1] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start2-end2] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start3-end3] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start4-end4] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start5-end5] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start6-end6] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start7-end7] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start8-end8] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start9-end9] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start10-end10] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start0-end0] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start1-end1] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start2-end2] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start3-end3] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start4-end4] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start5-end5] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start6-end6] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start7-end7] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start8-end8] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start0-end0] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start1-end1] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start2-end2] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start3-end3] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start4-end4] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start5-end5] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start6-end6] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start7-end7] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start8-end8] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_end[start0-end0] PASSED [ 14%]
tests/document/test_document_navigator.py::test_get_location_end[start1-end1] PASSED [ 14%]
tests/document/test_document_navigator.py::test_get_location_end[start2-end2] PASSED [ 14%]
tests/document/test_document_navigator.py::test_get_location_end[start3-end3] PASSED [ 14%]
tests/document/test_document_navigator.py::test_get_location_end[start4-end4] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_wrap PASSED                [ 14%]
tests/document/test_wrapped_document.py::test_wrap_empty_document PASSED [ 14%]
tests/document/test_wrapped_document.py::test_wrap_width_zero_no_wrapping PASSED [ 14%]
tests/document/test_wrapped_document.py::test_refresh_range PASSED       [ 14%]
tests/document/test_wrapped_document.py::test_refresh_range_new_text_wrapped PASSED [ 14%]
tests/document/test_wrapped_document.py::test_refresh_range_wrapping_at_previously_unavailable_range PASSED [ 14%]
tests/document/test_wrapped_document.py::test_refresh_range_wrapping_disabled_previously_unavailable_range PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset0-location0] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset1-location1] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset2-location2] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset3-location3] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset4-location4] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset5-location5] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset6-location6] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset7-location7] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset8-location8] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset0-location0] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset1-location1] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset2-location2] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset3-location3] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset4-location4] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset5-location5] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset6-location6] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_offset_to_location_invalid_offset_clamps_to_valid_offset[offset0-location0] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_offset_to_location_invalid_offset_clamps_to_valid_offset[offset1-location1] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets[0-offsets0] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets[1-offsets1] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets[2-offsets2] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets_no_wrapping PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets_invalid_line_index[-4] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets_invalid_line_index[10000] PASSED [ 15%]
tests/footer/test_footer.py::test_footer_bindings PASSED                 [ 15%]
tests/input/test_cut_copy_paste.py::test_cut PASSED                      [ 15%]
tests/input/test_cut_copy_paste.py::test_copy PASSED                     [ 15%]
tests/input/test_cut_copy_paste.py::test_paste PASSED                    [ 15%]
tests/input/test_input_clear.py::test_input_clear PASSED                 [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_inside_first_word PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_password_delete_left_word_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_all_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_all_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_word_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_password_delete_right_word_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_word_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_all_from_home PASSED [ 16%]
tests/input/test_input_key_modification_actions.py::test_delete_right_all_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_home PASSED   [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_end PASSED    [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_word_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_word_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_password_input_left_word_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_word_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_password_input_right_word_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_word_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_word_to_the_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_word_from_the_end PASSED [ 16%]
tests/input/test_input_messages.py::test_no_startup_messages PASSED      [ 16%]
tests/input/test_input_messages.py::test_startup_messages_with_initial_value PASSED [ 16%]
tests/input/test_input_messages.py::test_typing_from_empty_causes_changed PASSED [ 16%]
tests/input/test_input_messages.py::test_typing_from_pre_populated_causes_changed PASSED [ 16%]
tests/input/test_input_messages.py::test_submit_empty_input PASSED       [ 16%]
tests/input/test_input_messages.py::test_submit_pre_populated_input PASSED [ 16%]
tests/input/test_input_messages.py::test_paste_event_impact PASSED       [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-0-0] PASSED [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-1-1] PASSED [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-10-10] PASSED [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-47-47] PASSED [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-48-48] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-58-48] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-0-0] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-1-0] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-2-1] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-3-1] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-4-2] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-5-2] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-9-4] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-10-5] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-50-5] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-0-0] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-1-1] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-2-1] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-3-2] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-4-2] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-5-3] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-13-9] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-14-9] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-15-10] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-60-10] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_click_outwith_moves_cursor_to_nearest_cell PASSED [ 17%]
tests/input/test_input_properties.py::test_internal_value_no_password PASSED [ 17%]
tests/input/test_input_properties.py::test_internal_value_password PASSED [ 17%]
tests/input/test_input_properties.py::test_internal_value_highlighted PASSED [ 17%]
tests/input/test_input_properties.py::test_cursor_toggle PASSED          [ 17%]
tests/input/test_input_properties.py::test_input_height PASSED           [ 17%]
tests/input/test_input_properties.py::test_input_selected_text PASSED    [ 17%]
tests/input/test_input_properties.py::test_input_selection_deleted_programmatically PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection0-0123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection1-] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection2-123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection3-01234] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection4-0126789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection5-01234] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection6-0123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection7-] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection8-123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection9-01234] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection10-0126789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection11-01234] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection0--0123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection1-X-X123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection2-X-01234X] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection3-X-012X6789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection4-X-01234X] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection5--0123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection6-X-X123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection7-X-01234X] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection8-X-012X6789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection9-X-01234X] PASSED [ 18%]
tests/input/test_input_restrict.py::test_input_number_type PASSED        [ 18%]
tests/input/test_input_restrict.py::test_input_integer_type PASSED       [ 18%]
tests/input/test_input_restrict.py::test_bad_type PASSED                 [ 18%]
tests/input/test_input_restrict.py::test_max_length PASSED               [ 18%]
tests/input/test_input_restrict.py::test_restrict PASSED                 [ 19%]
tests/input/test_input_restrict.py::test_restrict_type PASSED            [ 19%]
tests/input/test_input_terminal_cursor.py::test_initial_terminal_cursor_position PASSED [ 19%]
tests/input/test_input_terminal_cursor.py::test_terminal_cursor_position_update_on_cursor_move PASSED [ 19%]
tests/input/test_input_validation.py::test_input_changed_message_validation_failure PASSED [ 19%]
tests/input/test_input_validation.py::test_input_changed_message_validation_success PASSED [ 19%]
tests/input/test_input_validation.py::test_input_submitted_message_validation_failure PASSED [ 19%]
tests/input/test_input_validation.py::test_input_submitted_message_validation_success PASSED [ 19%]
tests/input/test_input_validation.py::test_on_blur_triggers_validation PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on0] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on1] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on2] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on3] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on4] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on5] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on0] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on1] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on2] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on3] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on4] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on0] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on1] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on2] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on3] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on4] PASSED [ 19%]
tests/input/test_input_validation.py::test_none_validate_on_means_all_validations_happen PASSED [ 19%]
tests/input/test_input_validation.py::test_valid_empty PASSED            [ 19%]
tests/layouts/test_common_layout_features.py::test_nodes_take_display_property_into_account_when_they_display_their_children[horizontal-block-True] PASSED [ 20%]
tests/layouts/test_common_layout_features.py::test_nodes_take_display_property_into_account_when_they_display_their_children[vertical-block-True] PASSED [ 20%]
tests/layouts/test_common_layout_features.py::test_nodes_take_display_property_into_account_when_they_display_their_children[horizontal-none-False] PASSED [ 20%]
tests/layouts/test_common_layout_features.py::test_nodes_take_display_property_into_account_when_they_display_their_children[vertical-none-False] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_height[GridLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_height[HorizontalLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_height[VerticalLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_width[GridLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_width[HorizontalLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_width[VerticalLayout] PASSED [ 20%]
tests/layouts/test_factory.py::test_get_layout_valid_layout PASSED       [ 20%]
tests/layouts/test_factory.py::test_get_layout_invalid_layout PASSED     [ 20%]
tests/layouts/test_horizontal.py::test_horizontal_get_content_width PASSED [ 20%]
tests/listview/test_inherit_listview.py::test_empty_inherited_list_view PASSED [ 20%]
tests/listview/test_inherit_listview.py::test_populated_inherited_list_view PASSED [ 20%]
tests/listview/test_inherit_listview.py::test_actions_work_when_list_view_empty PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[0-1] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[1-1] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[2-4] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[3-4] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[4-4] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[5-5] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[6-7] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[7-7] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[8-1] PASSED [ 20%]
tests/listview/test_listview_navigation.py::test_keyboard_navigation_with_disabled_items PASSED [ 20%]
tests/listview/test_listview_remove_items.py::test_listview_pop_empty_raises_index_error PASSED [ 20%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[2-2-2-expected_highlighted0] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[0-0-0-expected_highlighted1] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[8-None-7-expected_highlighted2] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[4-2-3-expected_highlighted3] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[4--2-4-expected_highlighted4] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[2-remove_indices0-2-expected_highlighted0] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[0-remove_indices1-0-expected_highlighted1] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[8-remove_indices2-7-expected_highlighted2] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[4-remove_indices3-2-expected_highlighted3] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[4-remove_indices4-4-expected_highlighted4] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[4-remove_indices5-None-expected_highlighted5] PASSED [ 21%]
tests/notifications/test_all_levels_notifications.py::test_all_levels_of_notification PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_no_notifications PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_with_notifications PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_with_removing_notifications PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_with_notifications_that_expire PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_clearing_notifications PASSED [ 21%]
tests/notifications/test_notification.py::test_message PASSED            [ 21%]
tests/notifications/test_notification.py::test_default_title PASSED      [ 21%]
tests/notifications/test_notification.py::test_default_severity_level PASSED [ 21%]
tests/notifications/test_notification.py::test_default_timeout PASSED    [ 21%]
tests/notifications/test_notification.py::test_identity_is_unique PASSED [ 21%]
tests/notifications/test_notification.py::test_time_out PASSED           [ 21%]
tests/notifications/test_notifications.py::test_empty_to_start_with PASSED [ 21%]
tests/notifications/test_notifications.py::test_many_notifications PASSED [ 21%]
tests/notifications/test_notifications.py::test_timeout PASSED           [ 21%]
tests/notifications/test_notifications.py::test_in PASSED                [ 21%]
tests/notifications/test_notifications.py::test_remove_notification PASSED [ 22%]
tests/notifications/test_notifications.py::test_remove_notification_multiple_times PASSED [ 22%]
tests/notifications/test_notifications.py::test_clear PASSED             [ 22%]
tests/option_list/test_option_list_create.py::test_all_parameters_become_options PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_id_capture PASSED     [ 22%]
tests/option_list/test_option_list_create.py::test_get_option_by_id PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_get_option_with_bad_id PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_get_option_by_index PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_get_option_at_bad_index PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_clear_option_list PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_add_later PASSED      [ 22%]
tests/option_list/test_option_list_create.py::test_create_with_duplicate_id PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_create_with_duplicate_id_and_subsequent_non_dupes PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_adding_multiple_duplicates_at_once PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_options_are_available_soon PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_default_enabled PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_default_disabled PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_enabled_to_disabled_via_index PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_disabled_to_enabled_via_index PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_enabled_to_disabled_via_id PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_disabled_to_enabled_via_id PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_disable_invalid_id PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_disable_invalid_index PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_enable_invalid_id PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_enable_invalid_index PASSED [ 22%]
tests/option_list/test_option_list_id_stability.py::test_get_after_add PASSED [ 22%]
tests/option_list/test_option_list_mouse_click.py::test_option_list_clicking_separator PASSED [ 22%]
tests/option_list/test_option_list_mouse_hover.py::test_no_hover PASSED  [ 23%]
tests/option_list/test_option_list_mouse_hover.py::test_hover_highlight PASSED [ 23%]
tests/option_list/test_option_list_mouse_hover.py::test_hover_no_highlight PASSED [ 23%]
tests/option_list/test_option_list_mouse_hover.py::test_hover_disabled PASSED [ 23%]
tests/option_list/test_option_list_mouse_hover.py::test_hover_then_leave PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_initial_highlight PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_cleared_highlight_is_none PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_cleared_movement_does_nothing PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_move_down PASSED    [ 23%]
tests/option_list/test_option_list_movement.py::test_move_down_from_end PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_move_up PASSED      [ 23%]
tests/option_list/test_option_list_movement.py::test_move_up_from_nowhere PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_move_end PASSED     [ 23%]
tests/option_list/test_option_list_movement.py::test_move_home PASSED    [ 23%]
tests/option_list/test_option_list_movement.py::test_page_down_from_start_short_list PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_page_up_from_end_short_list PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_page_down_from_end_short_list PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_page_up_from_start_short_list PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_empty_list_movement PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[up-99] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[down-0] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[home-0] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[end-99] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[pageup-0] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[pagedown-99] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_keyboard_navigation_with_disabled_options PASSED [ 23%]
tests/option_list/test_option_list_option_subclass.py::test_option_list_with_subclassed_options PASSED [ 23%]
tests/option_list/test_option_messages.py::test_messages_on_startup PASSED [ 24%]
tests/option_list/test_option_messages.py::test_same_highlight_message PASSED [ 24%]
tests/option_list/test_option_messages.py::test_highlight_disabled_option_no_message PASSED [ 24%]
tests/option_list/test_option_messages.py::test_new_highlight PASSED     [ 24%]
tests/option_list/test_option_messages.py::test_move_highlight_with_keyboard PASSED [ 24%]
tests/option_list/test_option_messages.py::test_select_message_with_keyboard PASSED [ 24%]
tests/option_list/test_option_messages.py::test_click_option_with_mouse PASSED [ 24%]
tests/option_list/test_option_messages.py::test_click_disabled_option_with_mouse PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_option_prompt_with_invalid_id PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_option_prompt_with_invalid_index PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_option_prompt_with_valid_id PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_option_prompt_with_valid_index PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_single_line_option_prompt_with_multiple PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_multiple_line_option_prompt_with_single PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_multiple_line_option_prompt_with_multiple PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_first_option_via_index PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_first_option_via_id PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_last_option_via_index PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_last_option_via_id PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_all_options_via_index PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_all_options_via_id PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_invalid_id PASSED  [ 24%]
tests/option_list/test_option_removal.py::test_remove_invalid_index PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_with_hover_on_last_option PASSED [ 24%]
tests/renderables/test_sparkline.py::test_sparkline_no_data PASSED       [ 24%]
tests/renderables/test_sparkline.py::test_sparkline_single_datapoint PASSED [ 24%]
tests/renderables/test_sparkline.py::test_sparkline_two_values_min_max PASSED [ 24%]
tests/renderables/test_sparkline.py::test_sparkline_expand_data_to_width PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_expand_data_to_width_non_divisible PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_shrink_data_to_width PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_color_blend PASSED   [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data0] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data1] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data2] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[\x01\x02\x03] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data4] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data5] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data6] PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_simple_text_opacity PASSED  [ 25%]
tests/renderables/test_text_opacity.py::test_value_zero_doesnt_render_the_text PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_text_opacity_value_of_one_noop PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_ansi_colors_noop PASSED     [ 25%]
tests/renderables/test_text_opacity.py::test_text_opacity_no_style_noop PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_text_opacity_only_fg_noop PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_text_opacity_only_bg_noop PASSED [ 25%]
tests/renderables/test_tint.py::test_tint PASSED                         [ 25%]
tests/renderables/test_tint.py::test_tint_ansi_mapping PASSED            [ 25%]
tests/renderables/test_underline_bar.py::test_no_highlight PASSED        [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_from_zero PASSED [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_from_zero_point_five PASSED [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_middle PASSED    [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_half_start PASSED [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_half_end PASSED  [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_half_start_and_half_end PASSED [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_to_near_end PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_to_end PASSED    [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_out_of_bounds_start PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_out_of_bounds_end PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_full_range_out_of_bounds_end PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_full_range_out_of_bounds_start PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_custom_styles PASSED       [ 26%]
tests/renderables/test_underline_bar.py::test_clickable_ranges PASSED    [ 26%]
tests/select/test_blank_and_clear.py::test_value_is_blank_by_default PASSED [ 26%]
tests/select/test_blank_and_clear.py::test_setting_and_checking_blank PASSED [ 26%]
tests/select/test_blank_and_clear.py::test_clear_with_allow_blanks PASSED [ 26%]
tests/select/test_blank_and_clear.py::test_clear_fails_if_allow_blank_is_false PASSED [ 26%]
tests/select/test_changed_message.py::test_message_control PASSED        [ 26%]
tests/select/test_changed_message.py::test_selecting_posts_message PASSED [ 26%]
tests/select/test_changed_message.py::test_same_selection_does_not_post_message PASSED [ 26%]
tests/select/test_changed_message.py::test_setting_value_posts_message PASSED [ 26%]
tests/select/test_empty_select.py::test_empty_select_is_ok_with_blanks PASSED [ 26%]
tests/select/test_empty_select.py::test_empty_set_options_is_ok_with_blanks PASSED [ 26%]
tests/select/test_empty_select.py::test_empty_select_raises_exception_if_allow_blank_is_false PASSED [ 26%]
tests/select/test_empty_select.py::test_empty_set_options_raises_exception_if_allow_blank_is_false PASSED [ 26%]
tests/select/test_prompt.py::test_reactive_prompt_change PASSED          [ 26%]
tests/select/test_prompt.py::test_reactive_prompt_change_when_allow_blank_is_false PASSED [ 26%]
tests/select/test_remove.py::test_select_remove PASSED                   [ 26%]
tests/select/test_value.py::test_initial_value_is_validated PASSED       [ 26%]
tests/select/test_value.py::test_value_unknown_option_raises_error PASSED [ 26%]
tests/select/test_value.py::test_initial_value_inside_compose_is_validated PASSED [ 26%]
tests/select/test_value.py::test_value_assign_to_blank PASSED            [ 26%]
tests/select/test_value.py::test_initial_value_is_picked_if_allow_blank_is_false PASSED [ 26%]
tests/select/test_value.py::test_set_value_to_blank_with_allow_blank_false PASSED [ 27%]
tests/select/test_value.py::test_set_options_resets_value_to_blank PASSED [ 27%]
tests/select/test_value.py::test_set_options_resets_value_if_allow_blank_is_false PASSED [ 27%]
tests/selection_list/test_over_wide_selections.py::test_over_wide_options PASSED [ 27%]
tests/selection_list/test_selection_click_checkbox.py::test_click_on_prompt PASSED [ 27%]
tests/selection_list/test_selection_click_checkbox.py::test_click_on_checkbox PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_all_parameters_become_selctions PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_get_selection_by_index PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_get_selection_by_id PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_add_later PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_add_later_selcted_state PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_add_non_selections PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_clear_options PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_options_are_available_soon PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_removing_option_updates_indexes PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_messages_on_startup PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_new_highlight PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_toggle PASSED      [ 27%]
tests/selection_list/test_selection_messages.py::test_toggle_via_user PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_toggle_all PASSED  [ 27%]
tests/selection_list/test_selection_messages.py::test_select PASSED      [ 27%]
tests/selection_list/test_selection_messages.py::test_select_selected PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_select_all PASSED  [ 27%]
tests/selection_list/test_selection_messages.py::test_select_all_selected PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_deselect PASSED    [ 27%]
tests/selection_list/test_selection_messages.py::test_deselect_deselected PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_deselect_all PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_select_then_deselect_all PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_empty_selected PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_select PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_select_all PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_deselect PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_deselect_all PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_toggle PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_toggle_all PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_removal_of_selected_item PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_no_suggestions PASSED    [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion PASSED        [ 28%]
tests/suggester/test_input_suggestions.py::test_accept_suggestion PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_no_suggestion_on_empty_value PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_no_suggestion_on_empty_value_after_deleting PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_shows_up_after_deleting_extra_chars PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_shows_up_after_deleting_extra_chars_in_middle_of_word PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[.......-3] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[hey there-3] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[Ol\xe1, tudo bem?-3] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[\xe1\xe0\xf3\xe3\xf5\xf1\xe7-2] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~-3] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[~}|{`_^]\\[@?>=<;:/.-,+*)('&%$#"!-5] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[!$'*-:=@]`}-5] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_priority PASSED [ 28%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority PASSED [ 28%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[s] PASSED [ 28%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[S] PASSED [ 28%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[sc] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[sC] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[Sc] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[SC] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[p] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[P] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[po] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[Po] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[pO] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[PO] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[port] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[Port] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[pORT] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[PORT] PASSED [ 29%]
tests/suggester/test_suggester.py::test_cache_on PASSED                  [ 29%]
tests/suggester/test_suggester.py::test_cache_off PASSED                 [ 29%]
tests/suggester/test_suggester.py::test_suggestion_ready_message PASSED  [ 29%]
tests/suggester/test_suggester.py::test_no_message_if_no_suggestion PASSED [ 29%]
tests/suggester/test_suggester.py::test_suggestion_ready_message_on_cache_hit PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[hello] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[HELLO] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[HeLlO] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[Hello] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[hELLO] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_cache_hits PASSED [ 29%]
tests/test_actions.py::test_parse_action[spam--spam-expected_arguments0] PASSED [ 29%]
tests/test_actions.py::test_parse_action[hypothetical_action()--hypothetical_action-expected_arguments1] PASSED [ 29%]
tests/test_actions.py::test_parse_action[another_action(1)--another_action-expected_arguments2] PASSED [ 30%]
tests/test_actions.py::test_parse_action[foo(True, False)--foo-expected_arguments3] PASSED [ 30%]
tests/test_actions.py::test_parse_action[foo.bar.baz(3, 3.15, 'Python')-foo.bar-baz-expected_arguments4] PASSED [ 30%]
tests/test_actions.py::test_parse_action[m1234.n5678(None, [1, 2])-m1234-n5678-expected_arguments5] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f()-expected_arguments0] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(())-expected_arguments1] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2, 3))-expected_arguments2] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2, 3), (1, 2, 3))-expected_arguments3] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(((1, 2), (), None), 0)-expected_arguments4] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((((((1))))))-expected_arguments5] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(((((((((1, 2)))))))))-expected_arguments6] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2), (3, 4))-expected_arguments7] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((((((1, 2), (3, 4))))))-expected_arguments8] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('')-expected_arguments0] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f("")-expected_arguments1] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('''''')-expected_arguments2] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f("""""")-expected_arguments3] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('(')-expected_arguments4] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f(')')-expected_arguments5] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('f()')-expected_arguments6] PASSED [ 30%]
tests/test_actions.py::test_parse_action_raises_error[foo(,,,,,)] PASSED [ 30%]
tests/test_actions.py::test_parse_action_raises_error[bar(1 2 3 4 5)] PASSED [ 30%]
tests/test_actions.py::test_parse_action_raises_error[baz.spam(Tru, Fals, in)] PASSED [ 30%]
tests/test_actions.py::test_parse_action_raises_error[ham(not)] PASSED   [ 30%]
tests/test_actions.py::test_parse_action_raises_error[cheese((((()] PASSED [ 30%]
tests/test_animation.py::test_animate_height PASSED                      [ 30%]
tests/test_animation.py::test_scheduling_animation PASSED                [ 30%]
tests/test_animation.py::test_wait_for_current_animations PASSED         [ 30%]
tests/test_animation.py::test_wait_for_current_and_scheduled_animations PASSED [ 31%]
tests/test_animation.py::test_reverse_animations PASSED                  [ 31%]
tests/test_animation.py::test_schedule_reverse_animations PASSED         [ 31%]
tests/test_animation.py::test_cancel_app_animation PASSED                [ 31%]
tests/test_animation.py::test_cancel_app_non_animation PASSED            [ 31%]
tests/test_animation.py::test_cancel_widget_animation PASSED             [ 31%]
tests/test_animation.py::test_cancel_widget_non_animation PASSED         [ 31%]
tests/test_animator.py::test_simple_animation PASSED                     [ 31%]
tests/test_animator.py::test_simple_animation_duration_zero PASSED       [ 31%]
tests/test_animator.py::test_simple_animation_reverse PASSED             [ 31%]
tests/test_animator.py::test_animatable PASSED                           [ 31%]
tests/test_animator.py::test_animator PASSED                             [ 31%]
tests/test_animator.py::test_bound_animator PASSED                       [ 31%]
tests/test_animator.py::test_animator_on_complete_callback_not_fired_before_duration_ends PASSED [ 31%]
tests/test_animator.py::test_animator_on_complete_callback_fired_at_duration PASSED [ 31%]
tests/test_animator.py::test_force_stop_animation PASSED                 [ 31%]
tests/test_app.py::test_batch_update PASSED                              [ 31%]
tests/test_app.py::test_hover_update_styles PASSED                       [ 31%]
tests/test_app.py::test_setting_title PASSED                             [ 31%]
tests/test_app.py::test_setting_sub_title PASSED                         [ 31%]
tests/test_app.py::test_default_return_code_is_zero PASSED               [ 31%]
tests/test_app.py::test_return_code_is_one_after_crash PASSED            [ 31%]
tests/test_app.py::test_set_return_code PASSED                           [ 31%]
tests/test_app.py::test_no_return_code_before_running PASSED             [ 31%]
tests/test_app.py::test_no_return_code_while_running PASSED              [ 31%]
tests/test_app.py::test_ansi_theme PASSED                                [ 31%]
tests/test_app.py::test_early_exit PASSED                                [ 31%]
tests/test_app.py::test_early_exit_inline PASSED                         [ 32%]
tests/test_app.py::test_search_with_simple_commands PASSED               [ 32%]
tests/test_app.py::test_search_with_tuples PASSED                        [ 32%]
tests/test_app.py::test_search_with_empty_list PASSED                    [ 32%]
tests/test_app.py::test_click_chain_initial_repeated_clicks[1-1] event: Click(Label(id='one'), x=0, y=0, chain=1)
PASSED  [ 32%]
tests/test_app.py::test_click_chain_initial_repeated_clicks[2-3] event: Click(Label(id='one'), x=0, y=0, chain=1)
event: Click(Label(id='one'), x=0, y=0, chain=2)
PASSED  [ 32%]
tests/test_app.py::test_click_chain_initial_repeated_clicks[3-6] event: Click(Label(id='one'), x=0, y=0, chain=1)
event: Click(Label(id='one'), x=0, y=0, chain=2)
event: Click(Label(id='one'), x=0, y=0, chain=3)
PASSED  [ 32%]
tests/test_app.py::test_click_chain_different_offset PASSED              [ 32%]
tests/test_app.py::test_click_chain_offset_changes_mid_chain PASSED      [ 32%]
tests/test_app.py::test_click_chain_time_outwith_threshold PASSED        [ 32%]
tests/test_app_focus_blur.py::test_app_blur PASSED                       [ 32%]
tests/test_app_focus_blur.py::test_app_focus_restores_focus PASSED       [ 32%]
tests/test_app_focus_blur.py::test_app_focus_restores_none_focus PASSED  [ 32%]
tests/test_app_focus_blur.py::test_app_focus_handles_missing_widget PASSED [ 32%]
tests/test_app_focus_blur.py::test_app_focus_defers_to_new_focus PASSED  [ 32%]
tests/test_arrange.py::test_arrange_empty PASSED                         [ 32%]
tests/test_arrange.py::test_arrange_dock_top PASSED                      [ 32%]
tests/test_arrange.py::test_arrange_dock_left PASSED                     [ 32%]
tests/test_arrange.py::test_arrange_dock_right PASSED                    [ 32%]
tests/test_arrange.py::test_arrange_dock_bottom PASSED                   [ 32%]
tests/test_arrange.py::test_arrange_dock_badly PASSED                    [ 32%]
tests/test_auto_refresh.py::test_auto_refresh PASSED                     [ 32%]
tests/test_await_remove.py::test_multiple_simultaneous_removals PASSED   [ 32%]
tests/test_binary_encode.py::test_round_trip[None] PASSED                [ 32%]
tests/test_binary_encode.py::test_round_trip[False] PASSED               [ 32%]
tests/test_binary_encode.py::test_round_trip[True] PASSED                [ 32%]
tests/test_binary_encode.py::test_round_trip[-10] PASSED                 [ 32%]
tests/test_binary_encode.py::test_round_trip[-1] PASSED                  [ 33%]
tests/test_binary_encode.py::test_round_trip[0] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[1] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[100] PASSED                 [ 33%]
tests/test_binary_encode.py::test_round_trip[2] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[\U0001f4a9] PASSED          [ 33%]
tests/test_binary_encode.py::test_round_trip[Hello] PASSED               [ 33%]
tests/test_binary_encode.py::test_round_trip[World] PASSED               [ 33%]
tests/test_binary_encode.py::test_round_trip[3] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[data13] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data14] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data15] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data16] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data17] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data18] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data19] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data20] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[4] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[data22] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data23] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data24] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data25] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data26] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data27] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data28] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data29] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data30] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data31] PASSED              [ 34%]
tests/test_binary_encode.py::test_round_trip[data32] PASSED              [ 34%]
tests/test_binary_encode.py::test_round_trip[data33] PASSED              [ 34%]
tests/test_binary_encode.py::test_round_trip[data34] PASSED              [ 34%]
tests/test_binary_encode.py::test_round_trip[data35] PASSED              [ 34%]
tests/test_binary_encode.py::test_bad_encoding[] PASSED                  [ 34%]
tests/test_binary_encode.py::test_bad_encoding[100:hello] PASSED         [ 34%]
tests/test_binary_encode.py::test_bad_encoding[i] PASSED                 [ 34%]
tests/test_binary_encode.py::test_bad_encoding[i1] PASSED                [ 34%]
tests/test_binary_encode.py::test_bad_encoding[i10] PASSED               [ 34%]
tests/test_binary_encode.py::test_bad_encoding[li1e] PASSED              [ 34%]
tests/test_binary_encode.py::test_bad_encoding[x100] PASSED              [ 34%]
tests/test_binary_encode.py::test_dump_invalid_type[data0] PASSED        [ 34%]
tests/test_binary_encode.py::test_dump_invalid_type[float] PASSED        [ 34%]
tests/test_binary_encode.py::test_dump_invalid_type[data2] PASSED        [ 34%]
tests/test_binary_encode.py::test_dump_invalid_type[data3] PASSED        [ 34%]
tests/test_binary_encode.py::test_load_wrong_type PASSED                 [ 34%]
tests/test_binding.py::test_bindings_get_key PASSED                      [ 34%]
tests/test_binding.py::test_bindings_get_key_spaced_list PASSED          [ 34%]
tests/test_binding.py::test_bindings_merge_simple PASSED                 [ 34%]
tests/test_binding.py::test_bindings_merge_overlap PASSED                [ 34%]
tests/test_binding.py::test_bad_binding_tuple PASSED                     [ 34%]
tests/test_binding.py::test_binding_from_tuples PASSED                   [ 34%]
tests/test_binding.py::test_shown PASSED                                 [ 34%]
tests/test_binding.py::test_invalid_binding PASSED                       [ 34%]
tests/test_binding_inheritance.py::test_just_app_no_bindings PASSED      [ 34%]
tests/test_binding_inheritance.py::test_just_app_alpha_binding PASSED    [ 34%]
tests/test_binding_inheritance.py::test_just_app_low_priority_alpha_binding PASSED [ 34%]
tests/test_binding_inheritance.py::test_app_screen_with_bindings PASSED  [ 35%]
tests/test_binding_inheritance.py::test_app_screen_with_low_bindings PASSED [ 35%]
tests/test_binding_inheritance.py::test_pressing_alpha_on_app PASSED     [ 35%]
tests/test_binding_inheritance.py::test_pressing_movement_keys_app PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings_on_screen PASSED [ 35%]
tests/test_binding_inheritance.py::test_contained_focused_child_widget_with_movement_bindings_on_screen PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings_no_inherit PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_no_inherit_with_movement_bindings_on_screen PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_no_inherit_empty_bindings_with_movement_bindings_on_screen PASSED [ 35%]
tests/test_binding_inheritance.py::test_overlapping_priority_bindings PASSED [ 35%]
tests/test_binding_inheritance.py::test_skip_action PASSED               [ 35%]
tests/test_border.py::test_border_render_row PASSED                      [ 35%]
tests/test_border.py::test_border_title_single_line PASSED               [ 35%]
tests/test_border.py::test_border_subtitle_single_line PASSED            [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[10-True-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[10-True-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[10-False-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[10-False-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[1-True-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[1-True-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[1-False-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[1-False-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-True-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-True-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-False-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-3-True-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-4-True-True] PASSED [ 36%]
tests/test_border.py::test_render_border_label_wide_plain[Why did the scarecrow] PASSED [ 36%]
tests/test_border.py::test_render_border_label_wide_plain[win a Nobel prize?] PASSED [ 36%]
tests/test_border.py::test_render_border_label_wide_plain[because it was outstanding] PASSED [ 36%]
tests/test_border.py::test_render_border_label_wide_plain[in its field.] PASSED [ 36%]
tests/test_border.py::test_render_border_empty_text_with_markup[[b][/]] PASSED [ 36%]
tests/test_border.py::test_render_border_empty_text_with_markup[[i b][/]] PASSED [ 36%]
tests/test_border.py::test_render_border_empty_text_with_markup[[white on red][/]] PASSED [ 36%]
tests/test_border.py::test_render_border_empty_text_with_markup[[blue]] PASSED [ 36%]
tests/test_border.py::test_render_border_label PASSED                    [ 36%]
tests/test_border_subtitle.py::test_border_subtitle PASSED               [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad10-quad20-expected0] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad11-quad21-expected1] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad12-quad22-expected2] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad13-quad23-expected3] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad14-quad24-expected4] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad15-quad25-expected5] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad16-quad26-expected6] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad17-quad27-expected7] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad18-quad28-expected8] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad19-quad29-expected9] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad110-quad210-expected10] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad111-quad211-expected11] PASSED [ 36%]
tests/test_box_model.py::test_content_box PASSED                         [ 36%]
tests/test_box_model.py::test_width PASSED                               [ 36%]
tests/test_box_model.py::test_height PASSED                              [ 36%]
tests/test_box_model.py::test_max PASSED                                 [ 36%]
tests/test_box_model.py::test_min PASSED                                 [ 37%]
tests/test_cache.py::test_lru_cache PASSED                               [ 37%]
tests/test_cache.py::test_lru_cache_hits PASSED                          [ 37%]
tests/test_cache.py::test_lru_cache_get PASSED                           [ 37%]
tests/test_cache.py::test_lru_cache_maxsize PASSED                       [ 37%]
tests/test_cache.py::test_lru_cache_mapping PASSED                       [ 37%]
tests/test_cache.py::test_lru_cache_clear PASSED                         [ 37%]
tests/test_cache.py::test_lru_cache_bool PASSED                          [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys0-expected0] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys1-expected1] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys2-expected2] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys3-expected3] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys4-expected4] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys5-expected5] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_len[keys0-0] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys1-1] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys2-2] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys3-3] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys4-3] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys5-3] PASSED                  [ 37%]
tests/test_cache.py::test_fifo_cache PASSED                              [ 37%]
tests/test_cache.py::test_fifo_cache_hits PASSED                         [ 37%]
tests/test_cache.py::test_discard PASSED                                 [ 37%]
tests/test_cache.py::test_discard_regression PASSED                      [ 37%]
tests/test_call_x_schedulers.py::test_call_later PASSED                  [ 37%]
tests/test_call_x_schedulers.py::test_call_after_refresh PASSED          [ 37%]
tests/test_case.py::test_camel_to_snake PASSED                           [ 37%]
tests/test_collapsible.py::test_collapsible PASSED                       [ 38%]
tests/test_collapsible.py::test_compose_default_collapsible PASSED       [ 38%]
tests/test_collapsible.py::test_compose_empty_collapsible PASSED         [ 38%]
tests/test_collapsible.py::test_compose_nested_collapsible PASSED        [ 38%]
tests/test_collapsible.py::test_compose_expanded_collapsible PASSED      [ 38%]
tests/test_collapsible.py::test_collapsible_collapsed_contents_display_false PASSED [ 38%]
tests/test_collapsible.py::test_collapsible_expanded_contents_display_true PASSED [ 38%]
tests/test_collapsible.py::test_toggle_title PASSED                      [ 38%]
tests/test_collapsible.py::test_toggle_message PASSED                    [ 38%]
tests/test_collapsible.py::test_expand_message PASSED                    [ 38%]
tests/test_collapsible.py::test_expand_via_watcher_message PASSED        [ 38%]
tests/test_collapsible.py::test_collapse_message PASSED                  [ 38%]
tests/test_collapsible.py::test_collapse_via_watcher_message PASSED      [ 38%]
tests/test_collapsible.py::test_collapsible_title_reactive_change PASSED [ 38%]
tests/test_color.py::test_rich_color PASSED                              [ 38%]
tests/test_color.py::test_normalized PASSED                              [ 38%]
tests/test_color.py::test_clamped PASSED                                 [ 38%]
tests/test_color.py::test_css PASSED                                     [ 38%]
tests/test_color.py::test_monochrome PASSED                              [ 38%]
tests/test_color.py::test_rgb PASSED                                     [ 38%]
tests/test_color.py::test_hsl PASSED                                     [ 38%]
tests/test_color.py::test_color_brightness PASSED                        [ 38%]
tests/test_color.py::test_color_hex PASSED                               [ 38%]
tests/test_color.py::test_color_hex6 PASSED                              [ 38%]
tests/test_color.py::test_color_css PASSED                               [ 38%]
tests/test_color.py::test_color_with_alpha PASSED                        [ 38%]
tests/test_color.py::test_multiply_alpha PASSED                          [ 38%]
tests/test_color.py::test_color_blend PASSED                             [ 39%]
tests/test_color.py::test_color_parse[#000000-expected0] PASSED          [ 39%]
tests/test_color.py::test_color_parse[#ffffff-expected1] PASSED          [ 39%]
tests/test_color.py::test_color_parse[#FFFFFF-expected2] PASSED          [ 39%]
tests/test_color.py::test_color_parse[#fab-expected3] PASSED             [ 39%]
tests/test_color.py::test_color_parse[#fab0-expected4] PASSED            [ 39%]
tests/test_color.py::test_color_parse[#020304ff-expected5] PASSED        [ 39%]
tests/test_color.py::test_color_parse[#02030400-expected6] PASSED        [ 39%]
tests/test_color.py::test_color_parse[#0203040f-expected7] PASSED        [ 39%]
tests/test_color.py::test_color_parse[rgb(0,0,0)-expected8] PASSED       [ 39%]
tests/test_color.py::test_color_parse[rgb(255,255,255)-expected9] PASSED [ 39%]
tests/test_color.py::test_color_parse[rgba(255,255,255,1)-expected10] PASSED [ 39%]
tests/test_color.py::test_color_parse[rgb(2,3,4)-expected11] PASSED      [ 39%]
tests/test_color.py::test_color_parse[rgba(2,3,4,1.0)-expected12] PASSED [ 39%]
tests/test_color.py::test_color_parse[rgba(2,3,4,0.058823529411764705)-expected13] PASSED [ 39%]
tests/test_color.py::test_color_parse[hsl(45,25%,25%)-expected14] PASSED [ 39%]
tests/test_color.py::test_color_parse[hsla(45,25%,25%,0.35)-expected15] PASSED [ 39%]
tests/test_color.py::test_color_parse_input_has_spaces[rgb( 300, 300 , 300 )-output0] PASSED [ 39%]
tests/test_color.py::test_color_parse_input_has_spaces[rgba( 2 , 3 , 4, 1.0 )-output1] PASSED [ 39%]
tests/test_color.py::test_color_parse_input_has_spaces[hsl( 45, 25% , 25% )-output2] PASSED [ 39%]
tests/test_color.py::test_color_parse_input_has_spaces[hsla( 45, 25% , 25%, 0.35 )-output3] PASSED [ 39%]
tests/test_color.py::test_color_parse_clamp[rgb(300, 300, 300)-output0] PASSED [ 39%]
tests/test_color.py::test_color_parse_clamp[rgba(300, 300, 300, 300)-output1] PASSED [ 39%]
tests/test_color.py::test_color_parse_clamp[hsl(400, 200%, 250%)-output2] PASSED [ 39%]
tests/test_color.py::test_color_parse_clamp[hsla(400, 200%, 250%, 1.9)-output3] PASSED [ 39%]
tests/test_color.py::test_color_parse_hsl_negative_degrees PASSED        [ 39%]
tests/test_color.py::test_color_parse_hsla_negative_degrees PASSED       [ 39%]
tests/test_color.py::test_color_parse_color PASSED                       [ 39%]
tests/test_color.py::test_color_add[color10-color20-expected0] PASSED    [ 40%]
tests/test_color.py::test_color_add[color11-color21-expected1] PASSED    [ 40%]
tests/test_color.py::test_color_add[color12-color22-expected2] PASSED    [ 40%]
tests/test_color.py::test_color_add[color13-color23-expected3] PASSED    [ 40%]
tests/test_color.py::test_color_add[color14-color24-expected4] PASSED    [ 40%]
tests/test_color.py::test_color_add[color15-foo-expected5] PASSED        [ 40%]
tests/test_color.py::test_color_darken PASSED                            [ 40%]
tests/test_color.py::test_color_lighten PASSED                           [ 40%]
tests/test_color.py::test_rgb_to_lab[10-23-73-10.245-15.913--32.672] PASSED [ 40%]
tests/test_color.py::test_rgb_to_lab[200-34-123-45.438-67.75--8.008] PASSED [ 40%]
tests/test_color.py::test_rgb_to_lab[0-0-0-0-0-0] PASSED                 [ 40%]
tests/test_color.py::test_rgb_to_lab[255-255-255-100-0-0] PASSED         [ 40%]
tests/test_color.py::test_lab_to_rgb[10-23-73-10.245-15.913--32.672] PASSED [ 40%]
tests/test_color.py::test_lab_to_rgb[200-34-123-45.438-67.75--8.008] PASSED [ 40%]
tests/test_color.py::test_lab_to_rgb[0-0-0-0-0-0] PASSED                 [ 40%]
tests/test_color.py::test_lab_to_rgb[255-255-255-100-0-0] PASSED         [ 40%]
tests/test_color.py::test_rgb_lab_rgb_roundtrip PASSED                   [ 40%]
tests/test_color.py::test_inverse PASSED                                 [ 40%]
tests/test_color.py::test_gradient_errors PASSED                         [ 40%]
tests/test_color.py::test_gradient PASSED                                [ 40%]
tests/test_color.py::test_is_transparent PASSED                          [ 40%]
tests/test_color.py::test_tint[base0-tint0-expected0] PASSED             [ 40%]
tests/test_color.py::test_tint[base1-tint1-expected1] PASSED             [ 40%]
tests/test_color.py::test_tint[base2-tint2-expected2] PASSED             [ 40%]
tests/test_color.py::test_tint[base3-tint3-expected3] PASSED             [ 40%]
tests/test_compositor.py::test_compositor_scroll_placements PASSED       [ 40%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_no_regions PASSED [ 40%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_single_region PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_partially_overlapping_regions PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_fully_overlapping_regions PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_disjoint_regions_different_lines PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_disjoint_regions_same_line PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_directly_adjacent_ranges_merged PASSED [ 41%]
tests/test_concurrency.py::test_call_from_thread_app_not_running PASSED  [ 41%]
tests/test_concurrency.py::test_call_from_thread PASSED                  [ 41%]
tests/test_constants.py::test_environ_int PASSED                         [ 41%]
tests/test_constants.py::test_environ_bool PASSED                        [ 41%]
tests/test_constants.py::test_environ_port PASSED                        [ 41%]
tests/test_containers.py::test_horizontal_vs_horizontalscroll_scrolling PASSED [ 41%]
tests/test_containers.py::test_vertical_vs_verticalscroll_scrolling PASSED [ 41%]
tests/test_containers.py::test_center_container PASSED                   [ 41%]
tests/test_containers.py::test_middle_container PASSED                   [ 41%]
tests/test_containers.py::test_scrollbar_zero_thickness PASSED           [ 41%]
tests/test_content.py::test_constructor PASSED                           [ 41%]
tests/test_content.py::test_bool PASSED                                  [ 41%]
tests/test_content.py::test_from_rich_text PASSED                        [ 41%]
tests/test_content.py::test_styled PASSED                                [ 41%]
tests/test_content.py::test_getitem PASSED                               [ 41%]
tests/test_content.py::test_cell_length PASSED                           [ 41%]
tests/test_content_switcher.py::test_no_initial_display PASSED           [ 41%]
tests/test_content_switcher.py::test_initial_display PASSED              [ 41%]
tests/test_content_switcher.py::test_no_initial_display_then_set PASSED  [ 41%]
tests/test_content_switcher.py::test_initial_display_then_change PASSED  [ 41%]
tests/test_content_switcher.py::test_initial_display_then_hide PASSED    [ 41%]
tests/test_content_switcher.py::test_initial_display_unknown_id XFAILs
related to https://github.com/Textualize/textual/issues/1972)            [ 42%]
tests/test_content_switcher.py::test_set_current_to_unknown_id PASSED    [ 42%]
tests/test_content_switcher.py::test_add_content PASSED                  [ 42%]
tests/test_count_parameters.py::test_functions PASSED                    [ 42%]
tests/test_count_parameters.py::test_methods PASSED                      [ 42%]
tests/test_count_parameters.py::test_partials PASSED                     [ 42%]
tests/test_data_bind.py::test_data_binding PASSED                        [ 42%]
tests/test_data_bind.py::test_data_binding_missing_reactive PASSED       [ 42%]
tests/test_data_table.py::test_datatable_message_emission PASSED         [ 42%]
tests/test_data_table.py::test_empty_table_interactions PASSED           [ 42%]
tests/test_data_table.py::test_cursor_movement_with_home_pagedown_etc[True] PASSED [ 42%]
tests/test_data_table.py::test_cursor_movement_with_home_pagedown_etc[False] PASSED [ 42%]
tests/test_data_table.py::test_add_rows PASSED                           [ 42%]
tests/test_data_table.py::test_add_rows_user_defined_keys PASSED         [ 42%]
tests/test_data_table.py::test_add_row_duplicate_key PASSED              [ 42%]
tests/test_data_table.py::test_add_row_too_many_values PASSED            [ 42%]
tests/test_data_table.py::test_add_column_duplicate_key PASSED           [ 42%]
tests/test_data_table.py::test_add_column_with_width PASSED              [ 42%]
tests/test_data_table.py::test_add_columns PASSED                        [ 42%]
tests/test_data_table.py::test_add_columns_user_defined_keys PASSED      [ 42%]
tests/test_data_table.py::test_remove_row PASSED                         [ 42%]
tests/test_data_table.py::test_remove_row_and_update PASSED              [ 42%]
tests/test_data_table.py::test_remove_column PASSED                      [ 42%]
tests/test_data_table.py::test_remove_column_and_update PASSED           [ 42%]
tests/test_data_table.py::test_clear PASSED                              [ 42%]
tests/test_data_table.py::test_column_labels PASSED                      [ 42%]
tests/test_data_table.py::test_initial_column_widths PASSED              [ 42%]
tests/test_data_table.py::test_get_cell_returns_value_at_cell PASSED     [ 43%]
tests/test_data_table.py::test_get_cell_invalid_row_key PASSED           [ 43%]
tests/test_data_table.py::test_get_cell_invalid_column_key PASSED        [ 43%]
tests/test_data_table.py::test_get_cell_coordinate_returns_coordinate PASSED [ 43%]
tests/test_data_table.py::test_get_cell_coordinate_invalid_row_key PASSED [ 43%]
tests/test_data_table.py::test_get_cell_coordinate_invalid_column_key PASSED [ 43%]
tests/test_data_table.py::test_get_cell_at_returns_value_at_cell PASSED  [ 43%]
tests/test_data_table.py::test_get_cell_at_exception PASSED              [ 43%]
tests/test_data_table.py::test_get_row PASSED                            [ 43%]
tests/test_data_table.py::test_get_row_invalid_row_key PASSED            [ 43%]
tests/test_data_table.py::test_get_row_at PASSED                         [ 43%]
tests/test_data_table.py::test_get_row_at_invalid_index[-1] PASSED       [ 43%]
tests/test_data_table.py::test_get_row_at_invalid_index[2] PASSED        [ 43%]
tests/test_data_table.py::test_get_row_index_returns_index PASSED        [ 43%]
tests/test_data_table.py::test_get_row_index_invalid_row_key PASSED      [ 43%]
tests/test_data_table.py::test_get_column PASSED                         [ 43%]
tests/test_data_table.py::test_get_column_invalid_key PASSED             [ 43%]
tests/test_data_table.py::test_get_column_at PASSED                      [ 43%]
tests/test_data_table.py::test_get_column_at_invalid_index[-1] PASSED    [ 43%]
tests/test_data_table.py::test_get_column_at_invalid_index[5] PASSED     [ 43%]
tests/test_data_table.py::test_get_column_index_returns_index PASSED     [ 43%]
tests/test_data_table.py::test_get_column_index_invalid_column_key PASSED [ 43%]
tests/test_data_table.py::test_update_cell_cell_exists PASSED            [ 43%]
tests/test_data_table.py::test_update_cell_cell_doesnt_exist PASSED      [ 43%]
tests/test_data_table.py::test_update_cell_invalid_column_key PASSED     [ 43%]
tests/test_data_table.py::test_update_cell_at_coordinate_exists PASSED   [ 43%]
tests/test_data_table.py::test_update_cell_at_coordinate_doesnt_exist PASSED [ 43%]
tests/test_data_table.py::test_update_cell_at_column_width[A-BB-3] PASSED [ 43%]
tests/test_data_table.py::test_update_cell_at_column_width[1234567-1234-7] PASSED [ 44%]
tests/test_data_table.py::test_update_cell_at_column_width[12345-123-5] PASSED [ 44%]
tests/test_data_table.py::test_update_cell_at_column_width[12345-123456789-9] PASSED [ 44%]
tests/test_data_table.py::test_coordinate_to_cell_key PASSED             [ 44%]
tests/test_data_table.py::test_coordinate_to_cell_key_invalid_coordinate PASSED [ 44%]
tests/test_data_table.py::test_datatable_click_cell_cursor PASSED        [ 44%]
tests/test_data_table.py::test_click_row_cursor PASSED                   [ 44%]
tests/test_data_table.py::test_click_column_cursor PASSED                [ 44%]
tests/test_data_table.py::test_hover_coordinate PASSED                   [ 44%]
tests/test_data_table.py::test_hover_mouse_leave PASSED                  [ 44%]
tests/test_data_table.py::test_header_selected PASSED                    [ 44%]
tests/test_data_table.py::test_row_label_selected PASSED                 [ 44%]
tests/test_data_table.py::test_sort_coordinate_and_key_access PASSED     [ 44%]
tests/test_data_table.py::test_sort_reverse_coordinate_and_key_access PASSED [ 44%]
tests/test_data_table.py::test_cell_cursor_highlight_events PASSED       [ 44%]
tests/test_data_table.py::test_row_cursor_highlight_events PASSED        [ 44%]
tests/test_data_table.py::test_column_cursor_highlight_events PASSED     [ 44%]
tests/test_data_table.py::test_reuse_row_key_after_clear PASSED          [ 44%]
tests/test_data_table.py::test_reuse_column_key_after_clear PASSED       [ 44%]
tests/test_data_table.py::test_key_equals_equivalent_string PASSED       [ 44%]
tests/test_data_table.py::test_key_doesnt_match_non_equal_string PASSED  [ 44%]
tests/test_data_table.py::test_key_equals_self PASSED                    [ 44%]
tests/test_data_table.py::test_key_string_lookup PASSED                  [ 44%]
tests/test_data_table.py::test_scrolling_cursor_into_view PASSED         [ 44%]
tests/test_data_table.py::test_move_cursor PASSED                        [ 44%]
tests/test_data_table.py::test_unset_hover_highlight_when_no_table_cell_under_mouse PASSED [ 44%]
tests/test_data_table.py::test_sort_by_all_columns_no_key PASSED         [ 44%]
tests/test_data_table.py::test_sort_by_multiple_columns_no_key PASSED    [ 45%]
tests/test_data_table.py::test_sort_by_function_sum PASSED               [ 45%]
tests/test_data_table.py::test_add_row_auto_height[hey there-1] PASSED   [ 45%]
tests/test_data_table.py::test_add_row_auto_height[cell1-1] PASSED       [ 45%]
tests/test_data_table.py::test_add_row_auto_height[cell2-2] PASSED       [ 45%]
tests/test_data_table.py::test_add_row_auto_height[cell3-4] PASSED       [ 45%]
tests/test_data_table.py::test_add_row_auto_height[1\n2\n3\n4\n5\n6\n7-7] PASSED [ 45%]
tests/test_data_table.py::test_add_row_expands_column_widths PASSED      [ 45%]
tests/test_data_table.py::test_cell_padding_updates_virtual_size PASSED  [ 45%]
tests/test_data_table.py::test_cell_padding_cannot_be_negative PASSED    [ 45%]
tests/test_data_table.py::test_move_cursor_respects_animate_parameter PASSED [ 45%]
tests/test_data_table.py::test_clicking_border_link_doesnt_crash PASSED  [ 45%]
tests/test_demo.py::test_demo PASSED                                     [ 45%]
tests/test_disabled.py::test_all_initially_enabled PASSED                [ 45%]
tests/test_disabled.py::test_enabled_widgets_have_enabled_pseudo_class PASSED [ 45%]
tests/test_disabled.py::test_all_individually_disabled PASSED            [ 45%]
tests/test_disabled.py::test_disabled_widgets_have_disabled_pseudo_class PASSED [ 45%]
tests/test_disabled.py::test_disable_via_container PASSED                [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Button] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Checkbox] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[DataTable] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[DirectoryTree] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Input] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[ListView] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[OptionList] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[RadioSet] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Select] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Switch] PASSED [ 46%]
tests/test_dom.py::test_display_default PASSED                           [ 46%]
tests/test_dom.py::test_display_set_bool[True-block] PASSED              [ 46%]
tests/test_dom.py::test_display_set_bool[False-none] PASSED              [ 46%]
tests/test_dom.py::test_display_set_bool[block-block] PASSED             [ 46%]
tests/test_dom.py::test_display_set_bool[none-none] PASSED               [ 46%]
tests/test_dom.py::test_display_set_invalid_value PASSED                 [ 46%]
tests/test_dom.py::test_validate PASSED                                  [ 46%]
tests/test_dom.py::test_classes_setter PASSED                            [ 46%]
tests/test_dom.py::test_classes_setter_iterable PASSED                   [ 46%]
tests/test_dom.py::test_classes_set_classes PASSED                       [ 46%]
tests/test_dom.py::test_inherited_bindings PASSED                        [ 46%]
tests/test_dom.py::test__get_default_css PASSED                          [ 46%]
tests/test_dom.py::test_component_classes_inheritance PASSED             [ 46%]
tests/test_dom.py::test_walk_children_depth PASSED                       [ 46%]
tests/test_dom.py::test_walk_children_with_self_depth PASSED             [ 46%]
tests/test_dom.py::test_walk_children_breadth PASSED                     [ 46%]
tests/test_dom.py::test_walk_children_with_self_breadth PASSED           [ 46%]
tests/test_dom.py::test_id_validation[ bad] PASSED                       [ 46%]
tests/test_dom.py::test_id_validation[  terrible  ] PASSED               [ 46%]
tests/test_dom.py::test_id_validation[worse!  ] PASSED                   [ 46%]
tests/test_dom.py::test_id_validation[&ampersand] PASSED                 [ 46%]
tests/test_dom.py::test_id_validation[amper&sand] PASSED                 [ 46%]
tests/test_dom.py::test_id_validation[ampersand&] PASSED                 [ 46%]
tests/test_dom.py::test_id_validation[2_leading_digits] PASSED           [ 46%]
tests/test_dom.py::test_id_validation[\xe1gua] PASSED                    [ 46%]
tests/test_dom.py::test_id_validation[c\xe3o] PASSED                     [ 46%]
tests/test_dom.py::test_id_validation[@'/.23] PASSED                     [ 47%]
tests/test_driver.py::test_driver_mouse_down_up_click PASSED             [ 47%]
tests/test_driver.py::test_driver_mouse_down_up_click_widget PASSED      [ 47%]
tests/test_driver.py::test_driver_mouse_down_drag_inside_widget_up_click PASSED [ 47%]
tests/test_driver.py::test_driver_mouse_down_drag_outside_widget_up_click PASSED [ 47%]
tests/test_duration.py::test_parse PASSED                                [ 47%]
tests/test_dynamic_bindings.py::test_dynamic_disabled PASSED             [ 47%]
tests/test_easing.py::test_coverage PASSED                               [ 47%]
tests/test_easing.py::test_easings PASSED                                [ 47%]
tests/test_eta.py::test_basics PASSED                                    [ 47%]
tests/test_eta.py::test_speed PASSED                                     [ 47%]
tests/test_eta.py::test_get_progress_at PASSED                           [ 47%]
tests/test_eta.py::test_eta PASSED                                       [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[ b ar - b ar ] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\tbar-    bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\tbar\t-    bar ] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\tr\t-    r   ] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[1\tbar-1   bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[12\tbar-12  bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[123\tbar-123 bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[1234\tbar-1234    bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\tbar-\U0001f4a9  bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\U0001f4a9\tbar-\U0001f4a9\U0001f4a9    bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\U0001f4a9\U0001f4a9\tbar-\U0001f4a9\U0001f4a9\U0001f4a9  bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[F\U0001f4a9\tbar-F\U0001f4a9 bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[F\U0001f4a9O\tbar-F\U0001f4a9O    bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_get_tab_widths PASSED                    [ 47%]
tests/test_file_monitor.py::test_repr PASSED                             [ 47%]
tests/test_file_monitor.py::test_file_never_found PASSED                 [ 48%]
tests/test_file_monitor.py::test_file_deletion PASSED                    [ 48%]
tests/test_focus.py::test_focus_chain PASSED                             [ 48%]
tests/test_focus.py::test_allow_focus PASSED                             [ 48%]
tests/test_focus.py::test_focus_next_and_previous PASSED                 [ 48%]
tests/test_focus.py::test_focus_next_wrap_around PASSED                  [ 48%]
tests/test_focus.py::test_focus_previous_wrap_around PASSED              [ 48%]
tests/test_focus.py::test_wrap_around_selector PASSED                    [ 48%]
tests/test_focus.py::test_no_focus_empty_selector PASSED                 [ 48%]
tests/test_focus.py::test_focus_next_and_previous_with_type_selector PASSED [ 48%]
tests/test_focus.py::test_focus_next_and_previous_with_str_selector PASSED [ 48%]
tests/test_focus.py::test_focus_next_and_previous_with_type_selector_without_self PASSED [ 48%]
tests/test_focus.py::test_focus_next_and_previous_with_str_selector_without_self PASSED [ 48%]
tests/test_focus.py::test_focus_does_not_move_to_invisible_widgets PASSED [ 48%]
tests/test_focus.py::test_focus_moves_to_visible_widgets_inside_invisible_containers PASSED [ 48%]
tests/test_focus.py::test_focus_chain_handles_inherited_visibility PASSED [ 48%]
tests/test_focus.py::test_mouse_down_gives_focus PASSED                  [ 48%]
tests/test_focus.py::test_mouse_up_does_not_give_focus PASSED            [ 48%]
tests/test_focus.py::test_focus_pseudo_class PASSED                      [ 48%]
tests/test_focus.py::test_get_focusable_widget_at PASSED                 [ 48%]
tests/test_freeze.py::test_freeze PASSED                                 [ 48%]
tests/test_fuzzy.py::test_no_match PASSED                                [ 48%]
tests/test_fuzzy.py::test_match_single_group PASSED                      [ 48%]
tests/test_fuzzy.py::test_boosted_matches PASSED                         [ 48%]
tests/test_fuzzy.py::test_highlight PASSED                               [ 48%]
tests/test_gc.py::test_gc XFAIL                                          [ 48%]
tests/test_geometry.py::test_dimensions_region PASSED                    [ 48%]
tests/test_geometry.py::test_dimensions_contains PASSED                  [ 49%]
tests/test_geometry.py::test_dimensions_contains_point PASSED            [ 49%]
tests/test_geometry.py::test_dimensions_contains_special PASSED          [ 49%]
tests/test_geometry.py::test_dimensions_bool PASSED                      [ 49%]
tests/test_geometry.py::test_dimensions_area PASSED                      [ 49%]
tests/test_geometry.py::test_clamp PASSED                                [ 49%]
tests/test_geometry.py::test_offset_bool PASSED                          [ 49%]
tests/test_geometry.py::test_offset_is_origin PASSED                     [ 49%]
tests/test_geometry.py::test_clamped PASSED                              [ 49%]
tests/test_geometry.py::test_offset_add PASSED                           [ 49%]
tests/test_geometry.py::test_offset_sub PASSED                           [ 49%]
tests/test_geometry.py::test_offset_neg PASSED                           [ 49%]
tests/test_geometry.py::test_offset_mul PASSED                           [ 49%]
tests/test_geometry.py::test_offset_blend PASSED                         [ 49%]
tests/test_geometry.py::test_offset_get_distance_to PASSED               [ 49%]
tests/test_geometry.py::test_region_null PASSED                          [ 49%]
tests/test_geometry.py::test_region_from_union PASSED                    [ 49%]
tests/test_geometry.py::test_region_from_offset PASSED                   [ 49%]
tests/test_geometry.py::test_get_scroll_to_visible[window0-region0-scroll0] PASSED [ 49%]
tests/test_geometry.py::test_get_scroll_to_visible[window1-region1-scroll1] PASSED [ 49%]
tests/test_geometry.py::test_get_scroll_to_visible[window2-region2-scroll2] PASSED [ 49%]
tests/test_geometry.py::test_region_area PASSED                          [ 49%]
tests/test_geometry.py::test_region_size PASSED                          [ 49%]
tests/test_geometry.py::test_region_origin PASSED                        [ 49%]
tests/test_geometry.py::test_region_bottom_left PASSED                   [ 49%]
tests/test_geometry.py::test_region_top_right PASSED                     [ 49%]
tests/test_geometry.py::test_region_bottom_right PASSED                  [ 49%]
tests/test_geometry.py::test_region_add PASSED                           [ 50%]
tests/test_geometry.py::test_region_sub PASSED                           [ 50%]
tests/test_geometry.py::test_region_at_offset PASSED                     [ 50%]
tests/test_geometry.py::test_crop_size PASSED                            [ 50%]
tests/test_geometry.py::test_region_overlaps PASSED                      [ 50%]
tests/test_geometry.py::test_region_contains PASSED                      [ 50%]
tests/test_geometry.py::test_region_contains_point PASSED                [ 50%]
tests/test_geometry.py::test_region_contains_region PASSED               [ 50%]
tests/test_geometry.py::test_region_translate PASSED                     [ 50%]
tests/test_geometry.py::test_region_contains_special PASSED              [ 50%]
tests/test_geometry.py::test_clip PASSED                                 [ 50%]
tests/test_geometry.py::test_region_shrink PASSED                        [ 50%]
tests/test_geometry.py::test_region_grow PASSED                          [ 50%]
tests/test_geometry.py::test_region_intersection PASSED                  [ 50%]
tests/test_geometry.py::test_region_union PASSED                         [ 50%]
tests/test_geometry.py::test_size_add PASSED                             [ 50%]
tests/test_geometry.py::test_size_sub PASSED                             [ 50%]
tests/test_geometry.py::test_size_line_range PASSED                      [ 50%]
tests/test_geometry.py::test_region_x_extents PASSED                     [ 50%]
tests/test_geometry.py::test_region_y_extents PASSED                     [ 50%]
tests/test_geometry.py::test_region_x_max PASSED                         [ 50%]
tests/test_geometry.py::test_region_y_max PASSED                         [ 50%]
tests/test_geometry.py::test_region_columns_range PASSED                 [ 50%]
tests/test_geometry.py::test_region_lines_range PASSED                   [ 50%]
tests/test_geometry.py::test_region_reset_offset PASSED                  [ 50%]
tests/test_geometry.py::test_region_expand PASSED                        [ 50%]
tests/test_geometry.py::test_spacing_bool PASSED                         [ 50%]
tests/test_geometry.py::test_spacing_width PASSED                        [ 51%]
tests/test_geometry.py::test_spacing_height PASSED                       [ 51%]
tests/test_geometry.py::test_spacing_top_left PASSED                     [ 51%]
tests/test_geometry.py::test_spacing_bottom_right PASSED                 [ 51%]
tests/test_geometry.py::test_spacing_totals PASSED                       [ 51%]
tests/test_geometry.py::test_spacing_css PASSED                          [ 51%]
tests/test_geometry.py::test_spacing_unpack PASSED                       [ 51%]
tests/test_geometry.py::test_spacing_add PASSED                          [ 51%]
tests/test_geometry.py::test_spacing_sub PASSED                          [ 51%]
tests/test_geometry.py::test_spacing_convenience_constructors PASSED     [ 51%]
tests/test_geometry.py::test_split PASSED                                [ 51%]
tests/test_geometry.py::test_split_negative PASSED                       [ 51%]
tests/test_geometry.py::test_split_vertical PASSED                       [ 51%]
tests/test_geometry.py::test_split_vertical_negative PASSED              [ 51%]
tests/test_geometry.py::test_split_horizontal PASSED                     [ 51%]
tests/test_geometry.py::test_split_horizontal_negative PASSED            [ 51%]
tests/test_geometry.py::test_translate_inside PASSED                     [ 51%]
tests/test_geometry.py::test_inflect PASSED                              [ 51%]
tests/test_geometry.py::test_size_with_height PASSED                     [ 51%]
tests/test_geometry.py::test_size_with_width PASSED                      [ 51%]
tests/test_geometry.py::test_offset_clamp PASSED                         [ 51%]
tests/test_geometry.py::test_size_clamp_offset PASSED                    [ 51%]
tests/test_geometry.py::test_get_spacing_between[region10-region20-expected0] PASSED [ 51%]
tests/test_geometry.py::test_get_spacing_between[region11-region21-expected1] PASSED [ 51%]
tests/test_geometry.py::test_constrain[none-none-margin0-region0-container0-expected0] PASSED [ 51%]
tests/test_geometry.py::test_constrain[inside-inside-margin1-region1-container1-expected1] PASSED [ 51%]
tests/test_geometry.py::test_constrain[inside-inside-margin2-region2-container2-expected2] PASSED [ 51%]
tests/test_geometry.py::test_constrain[inside-inflect-margin3-region3-container3-expected3] PASSED [ 52%]
tests/test_header.py::test_screen_title_none_is_ignored PASSED           [ 52%]
tests/test_header.py::test_screen_title_overrides_app_title PASSED       [ 52%]
tests/test_header.py::test_screen_title_reactive_updates_title PASSED    [ 52%]
tests/test_header.py::test_app_title_reactive_does_not_update_title_when_screen_title_is_set PASSED [ 52%]
tests/test_header.py::test_screen_sub_title_none_is_ignored PASSED       [ 52%]
tests/test_header.py::test_screen_sub_title_overrides_app_sub_title PASSED [ 52%]
tests/test_header.py::test_screen_sub_title_reactive_updates_sub_title PASSED [ 52%]
tests/test_header.py::test_app_sub_title_reactive_does_not_update_sub_title_when_screen_sub_title_is_set PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_empty_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_non_empty_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_no_assign_to_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_no_del_from_iummutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_get_item_from_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_get_slice_from_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_immutable_sequence_contains PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_immutable_sequence_index PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_reverse_immutable_sequence PASSED [ 52%]
tests/test_issue_4248.py::test_issue_4248 PASSED                         [ 52%]
tests/test_keymap.py::test_keymap_default_binding_replaces_old_binding PASSED [ 52%]
tests/test_keymap.py::test_keymap_sends_message_when_clash PASSED        [ 52%]
tests/test_keymap.py::test_keymap_with_unknown_id_is_noop PASSED         [ 52%]
tests/test_keymap.py::test_keymap_inherited_bindings_same_id PASSED      [ 52%]
tests/test_keymap.py::test_keymap_child_with_different_id_overridden PASSED [ 52%]
tests/test_keys.py::test_character_to_key[1-1] PASSED                    [ 52%]
tests/test_keys.py::test_character_to_key[2-2] PASSED                    [ 52%]
tests/test_keys.py::test_character_to_key[a-a] PASSED                    [ 52%]
tests/test_keys.py::test_character_to_key[z-z] PASSED                    [ 52%]
tests/test_keys.py::test_character_to_key[_-underscore] PASSED           [ 53%]
tests/test_keys.py::test_character_to_key[ -space] PASSED                [ 53%]
tests/test_keys.py::test_character_to_key[~-tilde] PASSED                [ 53%]
tests/test_keys.py::test_character_to_key[?-question_mark] PASSED        [ 53%]
tests/test_keys.py::test_character_to_key[\xa3-pound_sign] PASSED        [ 53%]
tests/test_keys.py::test_character_to_key[,-comma] PASSED                [ 53%]
tests/test_keys.py::test_character_bindings PASSED                       [ 53%]
tests/test_keys.py::test_format_key PASSED                               [ 53%]
tests/test_keys.py::test_get_key_display PASSED                          [ 53%]
tests/test_keys.py::test_key_to_character PASSED                         [ 53%]
tests/test_layout_resolve.py::test_empty PASSED                          [ 53%]
tests/test_layout_resolve.py::test_total_zero PASSED                     [ 53%]
tests/test_layout_resolve.py::test_single PASSED                         [ 53%]
tests/test_layout_resolve.py::test_two PASSED                            [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges0-result0] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges1-result1] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges2-result2] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges3-result3] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges4-result4] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges5-result5] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges6-result6] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[2-edges7-result7] PASSED     [ 53%]
tests/test_layout_resolve.py::test_multiple[2-edges8-result8] PASSED     [ 53%]
tests/test_layout_resolve.py::test_multiple[18-edges9-result9] PASSED    [ 53%]
tests/test_lazy.py::test_lazy PASSED                                     [ 53%]
tests/test_lazy.py::test_lazy_reveal PASSED                              [ 53%]
tests/test_line_filter.py::test_dim_apply PASSED                         [ 53%]
tests/test_line_split.py::test_split_string_to_lines_and_endings PASSED  [ 54%]
tests/test_links.py::test_links PASSED                                   [ 54%]
tests/test_loading.py::test_loading_disables_and_remove_scrollbars PASSED [ 54%]
tests/test_log.py::test_process_line PASSED                              [ 54%]
tests/test_log.py::test_disabled_log_no_attribute_error PASSED           [ 54%]
tests/test_loop.py::test_loop_first PASSED                               [ 54%]
tests/test_loop.py::test_loop_last PASSED                                [ 54%]
tests/test_loop.py::test_loop_first_last PASSED                          [ 54%]
tests/test_loop.py::test_loop_from_index PASSED                          [ 54%]
tests/test_markdown.py::test_markdown_nodes[-expected_nodes0] PASSED     [ 54%]
tests/test_markdown.py::test_markdown_nodes[# Hello-expected_nodes1] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[## Hello-expected_nodes2] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[### Hello-expected_nodes3] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[#### Hello-expected_nodes4] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[##### Hello-expected_nodes5] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[###### Hello-expected_nodes6] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[----expected_nodes7] PASSED  [ 54%]
tests/test_markdown.py::test_markdown_nodes[Hello-expected_nodes8] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[Hello\nWorld-expected_nodes9] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[> Hello-expected_nodes10] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[- One\n-Two-expected_nodes11] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[1. One\n2. Two-expected_nodes12] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[    1-expected_nodes13] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[```\n1\n```-expected_nodes14] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[```python\n1\n```-expected_nodes15] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[| One | Two |\n| :- | :- |\n| 1 | 2 |-expected_nodes16] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[- One\n```\nTwo\n```\n- Three\n-expected_nodes17] PASSED [ 54%]
tests/test_markdown.py::test_load_non_existing_file PASSED               [ 55%]
tests/test_markdown.py::test_goto_anchor[hello-world-False] PASSED       [ 55%]
tests/test_markdown.py::test_goto_anchor[hello-there-True] PASSED        [ 55%]
tests/test_markdown.py::test_update_of_document_posts_table_of_content_update_message PASSED [ 55%]
tests/test_markdown.py::test_link_in_markdown_table_posts_message_when_clicked PASSED [ 55%]
tests/test_markdown.py::test_markdown_quoting PASSED                     [ 55%]
tests/test_markdownviewer.py::test_markdown_file_viewer_anchor_link[0] PASSED [ 55%]
tests/test_markdownviewer.py::test_markdown_file_viewer_anchor_link[1] PASSED [ 55%]
tests/test_markdownviewer.py::test_markdown_string_viewer_anchor_link[0] PASSED [ 55%]
tests/test_markdownviewer.py::test_markdown_string_viewer_anchor_link[1] PASSED [ 55%]
tests/test_masked_input.py::test_missing_required PASSED                 [ 55%]
tests/test_masked_input.py::test_valid_required PASSED                   [ 55%]
tests/test_masked_input.py::test_missing_optional PASSED                 [ 55%]
tests/test_masked_input.py::test_editing PASSED                          [ 55%]
tests/test_masked_input.py::test_key_movement_actions PASSED             [ 55%]
tests/test_masked_input.py::test_key_modification_actions PASSED         [ 55%]
tests/test_masked_input.py::test_cursor_word_right_after_last_separator PASSED [ 55%]
tests/test_masked_input.py::test_case_conversion_meta_characters PASSED  [ 55%]
tests/test_masked_input.py::test_case_conversion_override PASSED         [ 55%]
tests/test_masked_input.py::test_case_conversion_cancel PASSED           [ 55%]
tests/test_masked_input.py::test_only_separators__raises_ValueError PASSED [ 55%]
tests/test_masked_input.py::test_custom_separator_escaping PASSED        [ 55%]
tests/test_masked_input.py::test_digits_not_required PASSED              [ 55%]
tests/test_masked_input.py::test_digits_required PASSED                  [ 55%]
tests/test_message_handling.py::test_message_inheritance_namespace PASSED [ 55%]
tests/test_message_pump.py::test_dispatch_key_valid_key PASSED           [ 55%]
tests/test_message_pump.py::test_dispatch_key_valid_key_alias PASSED     [ 55%]
tests/test_message_pump.py::test_dispatch_key_raises_when_conflicting_handler_aliases PASSED [ 56%]
tests/test_message_pump.py::test_message_queue_size PASSED               [ 56%]
tests/test_message_pump.py::test_prevent PASSED                          [ 56%]
tests/test_message_pump.py::test_prevent_with_call_next PASSED           [ 56%]
tests/test_message_pump.py::test_prevent_default PASSED                  [ 56%]
tests/test_modal.py::test_modal_pop_screen PASSED                        [ 56%]
tests/test_mount.py::test_render_only_after_mount PASSED                 [ 56%]
tests/test_node_list.py::test_empty_list PASSED                          [ 56%]
tests/test_node_list.py::test_add_one PASSED                             [ 56%]
tests/test_node_list.py::test_length_hint PASSED                         [ 56%]
tests/test_node_list.py::test_repeat_add_one PASSED                      [ 56%]
tests/test_node_list.py::test_insert PASSED                              [ 56%]
tests/test_node_list.py::test_truthy PASSED                              [ 56%]
tests/test_node_list.py::test_contains PASSED                            [ 56%]
tests/test_node_list.py::test_index PASSED                               [ 56%]
tests/test_node_list.py::test_remove PASSED                              [ 56%]
tests/test_node_list.py::test_clear PASSED                               [ 56%]
tests/test_node_list.py::test_listy PASSED                               [ 56%]
tests/test_on.py::test_on_button_pressed PASSED                          [ 56%]
tests/test_on.py::test_on_inheritance PASSED                             [ 56%]
tests/test_on.py::test_on_bad_selector PASSED                            [ 56%]
tests/test_on.py::test_on_no_control PASSED                              [ 56%]
tests/test_on.py::test_on_attribute_not_listed PASSED                    [ 56%]
tests/test_on.py::test_on_arbitrary_attributes PASSED                    [ 56%]
tests/test_on.py::test_fire_on_inherited_message PASSED                  [ 56%]
tests/test_on.py::test_fire_inherited_on_single_handler PASSED           [ 56%]
tests/test_on.py::test_fire_inherited_on_single_handler_multi_selector PASSED [ 56%]
tests/test_on.py::test_fire_inherited_and_on_methods PASSED              [ 56%]
tests/test_on.py::test_fire_on_inherited_message_plus_mixins PASSED      [ 57%]
tests/test_on.py::test_on_with_enter_and_leave_events PASSED             [ 57%]
tests/test_overflow_change.py::test_overflow_change_updates_virtual_size_appropriately PASSED [ 57%]
tests/test_parser.py::test_read1 PASSED                                  [ 57%]
tests/test_parser.py::test_read PASSED                                   [ 57%]
tests/test_partition.py::test_partition PASSED                           [ 57%]
tests/test_paste.py::test_paste_app PASSED                               [ 57%]
tests/test_paste.py::test_empty_paste PASSED                             [ 57%]
tests/test_path.py::test_css_paths_of_various_types[RelativePathObjectApp-expected_css_path_attribute0] PASSED [ 57%]
tests/test_path.py::test_css_paths_of_various_types[RelativePathStrApp-expected_css_path_attribute1] PASSED [ 57%]
tests/test_path.py::test_css_paths_of_various_types[AbsolutePathObjectApp-expected_css_path_attribute2] PASSED [ 57%]
tests/test_path.py::test_css_paths_of_various_types[AbsolutePathStrApp-expected_css_path_attribute3] PASSED [ 57%]
tests/test_path.py::test_css_paths_of_various_types[ListPathApp-expected_css_path_attribute4] PASSED [ 57%]
tests/test_pilot.py::test_pilot_press_ascii_chars PASSED                 [ 57%]
tests/test_pilot.py::test_pilot_exception_catching_app_compose PASSED    [ 57%]
tests/test_pilot.py::test_pilot_exception_catching_widget_compose PASSED [ 57%]
tests/test_pilot.py::test_pilot_exception_catching_action PASSED         [ 57%]
tests/test_pilot.py::test_pilot_exception_catching_worker PASSED         [ 57%]
tests/test_pilot.py::test_pilot_click_screen PASSED                      [ 57%]
tests/test_pilot.py::test_pilot_hover_screen PASSED                      [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size0-offset0] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size1-offset1] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size2-offset2] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size3-offset3] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size4-offset4] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size5-offset5] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size6-offset6] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size7-offset7] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size8-offset8] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size9-offset9] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size10-offset10] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size11-offset11] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size12-offset12] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size13-offset13] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size14-offset14] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size15-offset15] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size16-offset16] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size17-offset17] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size18-offset18] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size19-offset19] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size20-offset20] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size21-offset21] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size22-offset22] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size23-offset23] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size24-offset24] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size25-offset25] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size26-offset26] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size27-offset27] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size28-offset28] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size29-offset29] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size30-offset30] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size31-offset31] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size32-offset32] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size33-offset33] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size34-offset34] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size35-offset35] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size36-offset36] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size37-offset37] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size38-offset38] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size39-offset39] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size40-offset40] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size41-offset41] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size42-offset42] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size43-offset43] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size44-offset44] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size45-offset45] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size46-offset46] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size47-offset47] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size48-offset48] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size49-offset49] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size50-offset50] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size51-offset51] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size52-offset52] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size53-offset53] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size54-offset54] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size55-offset55] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size56-offset56] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size57-offset57] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size58-offset58] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size59-offset59] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size60-offset60] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size61-offset61] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size62-offset62] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size63-offset63] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset0] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset1] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset2] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset3] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset4] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset5] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset6] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset7] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset8] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset9] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset10] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset11] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset12] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset13] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset14] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset15] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset16] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset17] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset18] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset19] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset20] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset21] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset22] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset23] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset24] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset25] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset26] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset27] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset28] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset29] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset30] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset31] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset32] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset33] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset34] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset35] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-#label0] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-#label90] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-Button] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-#label0] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-#label90] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-Button] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-#label0] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-#label90] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-Button] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-#label0] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-#label90] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-Button] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_widget_under_another_widget[click] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_widget_under_another_widget[hover] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_widget_under_another_widget[mouse_down] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_widget_under_another_widget[mouse_up] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_visible_widget[click] PASSED      [ 62%]
tests/test_pilot.py::test_pilot_target_visible_widget[hover] PASSED      [ 62%]
tests/test_pilot.py::test_pilot_target_visible_widget[mouse_down] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_visible_widget[mouse_up] PASSED   [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset0] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset1] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset2] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset3] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset4] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset5] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset6] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset7] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset8] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset9] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset10] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset11] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset12] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset13] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset14] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset15] PASSED [ 62%]
tests/test_pilot.py::test_pilot_resize_terminal PASSED                   [ 62%]
tests/test_pilot.py::test_fail_early PASSED                              [ 62%]
tests/test_pilot.py::test_click_by_widget PASSED                         [ 62%]
tests/test_pipe.py::test_deadlock PASSED                                 [ 62%]
tests/test_placeholder.py::test_invalid_placeholder_variant PASSED       [ 62%]
tests/test_placeholder.py::test_invalid_reactive_variant_change PASSED   [ 62%]
tests/test_progress_bar.py::test_initial_status PASSED                   [ 62%]
tests/test_progress_bar.py::test_advance PASSED                          [ 63%]
tests/test_progress_bar.py::test_advance_backwards PASSED                [ 63%]
tests/test_progress_bar.py::test_progress_overflow PASSED                [ 63%]
tests/test_progress_bar.py::test_progress_underflow PASSED               [ 63%]
tests/test_progress_bar.py::test_non_negative_total PASSED               [ 63%]
tests/test_progress_bar.py::test_update_total PASSED                     [ 63%]
tests/test_progress_bar.py::test_update_progress PASSED                  [ 63%]
tests/test_progress_bar.py::test_update_advance PASSED                   [ 63%]
tests/test_progress_bar.py::test_update PASSED                           [ 63%]
tests/test_progress_bar.py::test_go_back_to_indeterminate PASSED         [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[True-True-True] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[True-True-False] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[True-False-True] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[True-False-False] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[False-True-True] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[False-True-False] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[False-False-True] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[False-False-False] PASSED [ 63%]
tests/test_progress_bar.py::test_apply_gradient PASSED                   [ 63%]
tests/test_query.py::test_query_errors PASSED                            [ 63%]
tests/test_query.py::test_query PASSED                                   [ 63%]
tests/test_query.py::test_query_classes PASSED                           [ 63%]
tests/test_query.py::test_invalid_query PASSED                           [ 63%]
tests/test_query.py::test_universal_selector_doesnt_select_self PASSED   [ 63%]
tests/test_query.py::test_query_set_styles_invalid_css_raises_error PASSED [ 63%]
tests/test_query.py::test_query_set_styles_kwds PASSED                   [ 63%]
tests/test_query.py::test_query_set_styles_css_and_kwds PASSED           [ 63%]
tests/test_query.py::test_query_set_styles_css PASSED                    [ 64%]
tests/test_query.py::test_query_refresh[args0] PASSED                    [ 64%]
tests/test_query.py::test_query_refresh[args1] PASSED                    [ 64%]
tests/test_query.py::test_query_refresh[args2] PASSED                    [ 64%]
tests/test_query.py::test_query_refresh[args3] PASSED                    [ 64%]
tests/test_query.py::test_query_focus_blur PASSED                        [ 64%]
tests/test_reactive.py::test_watch PASSED                                [ 64%]
tests/test_reactive.py::test_watch_async_init_false PASSED               [ 64%]
tests/test_reactive.py::test_watch_async_init_true PASSED                [ 64%]
tests/test_reactive.py::test_watch_init_false_always_update_false PASSED [ 64%]
tests/test_reactive.py::test_watch_init_true PASSED                      [ 64%]
tests/test_reactive.py::test_reactive_always_update PASSED               [ 64%]
tests/test_reactive.py::test_reactive_with_callable_default PASSED       [ 64%]
tests/test_reactive.py::test_validate_init_true PASSED                   [ 64%]
tests/test_reactive.py::test_validate_init_true_set_before_dom_ready PASSED [ 64%]
tests/test_reactive.py::test_reactive_compute_first_time_set PASSED      [ 64%]
tests/test_reactive.py::test_reactive_method_call_order PASSED           [ 64%]
tests/test_reactive.py::test_premature_reactive_call PASSED              [ 64%]
tests/test_reactive.py::test_reactive_inheritance PASSED                 [ 64%]
tests/test_reactive.py::test_compute PASSED                              [ 64%]
tests/test_reactive.py::test_watch_compute PASSED                        [ 64%]
tests/test_reactive.py::test_public_and_private_watch PASSED             [ 64%]
tests/test_reactive.py::test_private_validate PASSED                     [ 64%]
tests/test_reactive.py::test_public_and_private_validate PASSED          [ 64%]
tests/test_reactive.py::test_public_and_private_validate_order PASSED    [ 64%]
tests/test_reactive.py::test_public_and_private_compute PASSED           [ 64%]
tests/test_reactive.py::test_private_compute PASSED                      [ 64%]
tests/test_reactive.py::test_async_reactive_watch_callbacks_go_on_the_watcher PASSED [ 65%]
tests/test_reactive.py::test_sync_reactive_watch_callbacks_go_on_the_watcher PASSED [ 65%]
tests/test_reactive.py::test_set_reactive PASSED                         [ 65%]
tests/test_reactive.py::test_no_duplicate_external_watchers PASSED       [ 65%]
tests/test_reactive.py::test_external_watch_init_does_not_propagate PASSED [ 65%]
tests/test_reactive.py::test_external_watch_init_does_not_propagate_to_externals PASSED [ 65%]
tests/test_reactive.py::test_message_sender_from_reactive PASSED         [ 65%]
tests/test_reactive.py::test_mutate_reactive PASSED                      [ 65%]
tests/test_reactive.py::test_mutate_reactive_data_bind PASSED            [ 65%]
tests/test_resolve.py::test_resolve_empty PASSED                         [ 65%]
tests/test_resolve.py::test_resolve[scalars0-100-0-result0] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars1-100-0-result1] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars2-100-1-result2] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars3-100-1-result3] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars4-100-0-result4] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars5-100-1-result5] PASSED       [ 65%]
tests/test_resolve.py::test_resolve_fraction_unit PASSED                 [ 65%]
tests/test_resolve.py::test_resolve_fraction_unit_stress_test PASSED     [ 65%]
tests/test_resolve.py::test_resolve_issue_2502 PASSED                    [ 65%]
tests/test_rlock.py::test_simple_lock PASSED                             [ 65%]
tests/test_rlock.py::test_multiple_tasks PASSED                          [ 65%]
tests/test_rule.py::test_invalid_rule_orientation PASSED                 [ 65%]
tests/test_rule.py::test_invalid_rule_line_style PASSED                  [ 65%]
tests/test_rule.py::test_invalid_reactive_rule_orientation_change PASSED [ 65%]
tests/test_rule.py::test_invalid_reactive_rule_line_style_change PASSED  [ 65%]
tests/test_screen_modes.py::test_mode_setup PASSED                       [ 65%]
tests/test_screen_modes.py::test_switch_mode PASSED                      [ 65%]
tests/test_screen_modes.py::test_switch_same_mode PASSED                 [ 65%]
tests/test_screen_modes.py::test_switch_unknown_mode PASSED              [ 66%]
tests/test_screen_modes.py::test_remove_mode PASSED                      [ 66%]
tests/test_screen_modes.py::test_remove_active_mode PASSED               [ 66%]
tests/test_screen_modes.py::test_add_mode PASSED                         [ 66%]
tests/test_screen_modes.py::test_add_mode_duplicated PASSED              [ 66%]
tests/test_screen_modes.py::test_multiple_mode_callbacks PASSED          [ 66%]
tests/test_screens.py::test_screen_walk_children PASSED                  [ 66%]
tests/test_screens.py::test_installed_screens PASSED                     [ 66%]
tests/test_screens.py::test_screens PASSED                               [ 66%]
tests/test_screens.py::test_auto_focus_on_screen_if_app_auto_focus_is_none PASSED [ 66%]
tests/test_screens.py::test_auto_focus_on_screen_if_app_auto_focus_is_disabled PASSED [ 66%]
tests/test_screens.py::test_auto_focus_inheritance PASSED                [ 66%]
tests/test_screens.py::test_auto_focus_skips_non_focusable_widgets PASSED [ 66%]
tests/test_screens.py::test_dismiss_non_top_screen PASSED                [ 66%]
tests/test_screens.py::test_dismiss_action PASSED                        [ 66%]
tests/test_screens.py::test_dismiss_action_no_argument PASSED            [ 66%]
tests/test_screens.py::test_switch_screen_no_op PASSED                   [ 66%]
tests/test_screens.py::test_switch_screen_updates_results_callback_stack PASSED [ 66%]
tests/test_screens.py::test_screen_receives_mouse_move_events PASSED     [ 66%]
tests/test_screens.py::test_mouse_move_event_bubbles_to_screen_from_widget PASSED [ 66%]
tests/test_screens.py::test_push_screen_wait_for_dismiss PASSED          [ 66%]
tests/test_screens.py::test_push_screen_wait_for_dismiss_no_worker PASSED [ 66%]
tests/test_screens.py::test_default_custom_screen PASSED                 [ 66%]
tests/test_screens.py::test_disallow_screen_instances PASSED             [ 66%]
tests/test_screens.py::test_worker_cancellation PASSED                   [ 66%]
tests/test_screens.py::test_get_screen_with_expected_type PASSED         [ 66%]
tests/test_segment_tools.py::test_line_crop PASSED                       [ 66%]
tests/test_segment_tools.py::test_line_crop_emoji PASSED                 [ 67%]
tests/test_segment_tools.py::test_line_crop_edge PASSED                  [ 67%]
tests/test_segment_tools.py::test_line_crop_edge_2 PASSED                [ 67%]
tests/test_segment_tools.py::test_line_trim_ascii PASSED                 [ 67%]
tests/test_segment_tools.py::test_line_pad PASSED                        [ 67%]
tests/test_segment_tools.py::test_align_lines_vertical_middle PASSED     [ 67%]
tests/test_segment_tools.py::test_align_lines_top_left PASSED            [ 67%]
tests/test_segment_tools.py::test_align_lines_top_right PASSED           [ 67%]
tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_left PASSED [ 67%]
tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_center PASSED [ 67%]
tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_right PASSED [ 67%]
tests/test_shutdown.py::test_shutdown PASSED                             [ 67%]
tests/test_signal.py::test_signal PASSED                                 [ 67%]
tests/test_signal.py::test_signal_errors PASSED                          [ 67%]
tests/test_signal.py::test_repr PASSED                                   [ 67%]
tests/test_signal.py::test_signal_parameters PASSED                      [ 67%]
tests/test_slug.py::test_simple_slug[test-test] PASSED                   [ 67%]
tests/test_slug.py::test_simple_slug[Test-test] PASSED                   [ 67%]
tests/test_slug.py::test_simple_slug[ Test -test] PASSED                 [ 67%]
tests/test_slug.py::test_simple_slug[-test---test-] PASSED               [ 67%]
tests/test_slug.py::test_simple_slug[!test!-test] PASSED                 [ 67%]
tests/test_slug.py::test_simple_slug[test!!test-testtest] PASSED         [ 67%]
tests/test_slug.py::test_simple_slug[test! !test-test-test] PASSED       [ 67%]
tests/test_slug.py::test_simple_slug[test test-test-test] PASSED         [ 67%]
tests/test_slug.py::test_simple_slug[test  test-test--test] PASSED       [ 67%]
tests/test_slug.py::test_simple_slug[test          test-test----------test] PASSED [ 67%]
tests/test_slug.py::test_simple_slug[--test---test] PASSED               [ 67%]
tests/test_slug.py::test_simple_slug[test---test--] PASSED               [ 68%]
tests/test_slug.py::test_simple_slug[--test--test-----test--test--] PASSED [ 68%]
tests/test_slug.py::test_simple_slug[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test] PASSED [ 68%]
tests/test_slug.py::test_simple_slug[t\xebst-t%C3%ABst] PASSED           [ 68%]
tests/test_slug.py::test_simple_slug[test\U0001f642test-testtest] PASSED [ 68%]
tests/test_slug.py::test_simple_slug[test\U0001f937test-testtest] PASSED [ 68%]
tests/test_slug.py::test_simple_slug[test\U0001f937\U0001f3fb\u200d\u2640\ufe0ftest-testtest] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test] PASSED                 [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test-1] PASSED               [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test-2] PASSED               [ 68%]
tests/test_slug.py::test_tracked_slugs[-test---test-] PASSED             [ 68%]
tests/test_slug.py::test_tracked_slugs[-test---test--1] PASSED           [ 68%]
tests/test_slug.py::test_tracked_slugs[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test-1] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst] PASSED         [ 68%]
tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst-1] PASSED       [ 68%]
tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst-2] PASSED       [ 68%]
tests/test_slug.py::test_tracked_slugs[test\U0001f642test-testtest] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test\U0001f937test-testtest-1] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test\U0001f937\U0001f3fb\u200d\u2640\ufe0ftest-testtest-2] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test-3] PASSED               [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test-4] PASSED               [ 68%]
tests/test_slug.py::test_tracked_slugs[ test -test-5] PASSED             [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region0-grid0] PASSED     [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region1-grid1] PASSED     [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region2-grid2] PASSED     [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region3-grid3] PASSED     [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region4-grid4] PASSED     [ 69%]
tests/test_spatial_map.py::test_get_values_in_region PASSED              [ 69%]
tests/test_strip.py::test_cell_length PASSED                             [ 69%]
tests/test_strip.py::test_repr PASSED                                    [ 69%]
tests/test_strip.py::test_join PASSED                                    [ 69%]
tests/test_strip.py::test_bool PASSED                                    [ 69%]
tests/test_strip.py::test_iter PASSED                                    [ 69%]
tests/test_strip.py::test_len PASSED                                     [ 69%]
tests/test_strip.py::test_reversed PASSED                                [ 69%]
tests/test_strip.py::test_eq PASSED                                      [ 69%]
tests/test_strip.py::test_adjust_cell_length PASSED                      [ 69%]
tests/test_strip.py::test_extend_cell_length PASSED                      [ 69%]
tests/test_strip.py::test_simplify PASSED                                [ 69%]
tests/test_strip.py::test_apply_filter PASSED                            [ 69%]
tests/test_strip.py::test_style_links PASSED                             [ 69%]
tests/test_strip.py::test_crop PASSED                                    [ 69%]
tests/test_strip.py::test_crop_out_of_bounds[foo-crop0-output0] PASSED   [ 69%]
tests/test_strip.py::test_crop_out_of_bounds[foo-crop1-output1] PASSED   [ 69%]
tests/test_strip.py::test_crop_out_of_bounds[foo-crop2-output2] PASSED   [ 69%]
tests/test_strip.py::test_crop_out_of_bounds[foo-crop3-output3] PASSED   [ 69%]
tests/test_strip.py::test_divide PASSED                                  [ 69%]
tests/test_strip.py::test_index_to_cell_position[0-0] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[1-1] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[2-2] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[3-3] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[4-4] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[5-6] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[6-8] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[7-10] PASSED            [ 70%]
tests/test_strip.py::test_index_to_cell_position[8-11] PASSED            [ 70%]
tests/test_strip.py::test_index_to_cell_position[9-12] PASSED            [ 70%]
tests/test_strip.py::test_index_to_cell_position[10-13] PASSED           [ 70%]
tests/test_strip.py::test_index_to_cell_position[11-14] PASSED           [ 70%]
tests/test_strip.py::test_index_cell_position_no_segments PASSED         [ 70%]
tests/test_strip.py::test_index_cell_position_index_too_large PASSED     [ 70%]
tests/test_strip.py::test_text PASSED                                    [ 70%]
tests/test_style_importance.py::test_border_importance PASSED            [ 70%]
tests/test_style_importance.py::test_outline_importance PASSED           [ 70%]
tests/test_style_importance.py::test_align_importance PASSED             [ 70%]
tests/test_style_importance.py::test_content_align_importance PASSED     [ 70%]
tests/test_style_importance.py::test_offset_importance PASSED            [ 70%]
tests/test_style_importance.py::test_overflow_importance PASSED          [ 70%]
tests/test_style_importance.py::test_padding_importance PASSED           [ 70%]
tests/test_style_importance.py::test_scrollbar_size_importance PASSED    [ 70%]
tests/test_style_inheritance.py::test_text_style_inheritance PASSED      [ 70%]
tests/test_style_properties.py::test_box_normalization PASSED            [ 70%]
tests/test_style_properties.py::test_text_style_none_with_others[text_style] PASSED [ 70%]
tests/test_style_properties.py::test_text_style_none_with_others[link_style] PASSED [ 70%]
tests/test_style_properties.py::test_text_style_set_to_none[text_style] PASSED [ 70%]
tests/test_style_properties.py::test_text_style_set_to_none[link_style] PASSED [ 70%]
tests/test_styles_cache.py::test_set_dirty PASSED                        [ 70%]
tests/test_styles_cache.py::test_no_styles PASSED                        [ 70%]
tests/test_styles_cache.py::test_border PASSED                           [ 70%]
tests/test_styles_cache.py::test_padding PASSED                          [ 70%]
tests/test_styles_cache.py::test_padding_border PASSED                   [ 70%]
tests/test_styles_cache.py::test_outline PASSED                          [ 71%]
tests/test_styles_cache.py::test_crop PASSED                             [ 71%]
tests/test_styles_cache.py::test_dirty_cache PASSED                      [ 71%]
tests/test_suggestions.py::test_get_suggestion[background-possible_words0-background] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[backgroundu-possible_words1-background] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[bkgrund-possible_words2-background] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[llow-possible_words3-None] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[llow-possible_words4-yellow] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[yllow-possible_words5-yellow] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[background-possible_words0-1-expected_result0] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[backgroundu-possible_words1-1-expected_result1] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[bkgrund-possible_words2-1-expected_result2] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[llow-possible_words3-1-expected_result3] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[llow-possible_words4-1-expected_result4] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[yllow-possible_words5-1-expected_result5] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[yllow-possible_words6-2-expected_result6] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[yllow-possible_words7-2-expected_result7] PASSED [ 71%]
tests/test_suspend.py::test_suspend_not_supported PASSED                 [ 71%]
tests/test_suspend.py::test_suspend_supported PASSED                     [ 71%]
tests/test_switch.py::test_switch_click_doesnt_bubble_up PASSED          [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_switch_via_ui PASSED   [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_switch_via_code PASSED [ 71%]
tests/test_tabbed_content.py::test_unsetting_tabbed_content_active PASSED [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_initial PASSED         [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_messages PASSED        [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_add_later_from_empty PASSED [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_add_later_from_composed PASSED [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_add_before_id PASSED   [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_before_pane PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_before_badly PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_after PASSED       [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_after_pane PASSED  [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_after_badly PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_before_and_after PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_removal PASSED         [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_reversed_removal PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_clear PASSED           [ 72%]
tests/test_tabbed_content.py::test_disabling_does_not_deactivate_tab PASSED [ 72%]
tests/test_tabbed_content.py::test_disabled_tab_cannot_be_clicked PASSED [ 72%]
tests/test_tabbed_content.py::test_disabling_via_tabbed_content PASSED   [ 72%]
tests/test_tabbed_content.py::test_disabling_via_tab_pane PASSED         [ 72%]
tests/test_tabbed_content.py::test_creating_disabled_tab PASSED          [ 72%]
tests/test_tabbed_content.py::test_navigation_around_disabled_tabs PASSED [ 72%]
tests/test_tabbed_content.py::test_reenabling_tab PASSED                 [ 72%]
tests/test_tabbed_content.py::test_reenabling_via_tabbed_content PASSED  [ 72%]
tests/test_tabbed_content.py::test_reenabling_via_tab_pane PASSED        [ 72%]
tests/test_tabbed_content.py::test_disabling_unknown_tab PASSED          [ 72%]
tests/test_tabbed_content.py::test_enabling_unknown_tab PASSED           [ 72%]
tests/test_tabbed_content.py::test_hide_unknown_tab PASSED               [ 72%]
tests/test_tabbed_content.py::test_show_unknown_tab PASSED               [ 72%]
tests/test_tabbed_content.py::test_hide_show_messages PASSED             [ 72%]
tests/test_tabbed_content.py::test_hide_last_tab_means_no_tab_active PASSED [ 72%]
tests/test_tabbed_content.py::test_hiding_tabs_moves_active_to_next_tab PASSED [ 72%]
tests/test_tabbed_content.py::test_showing_tabs_does_not_change_active_tab PASSED [ 72%]
tests/test_tabbed_content.py::test_showing_first_tab_activates_tab[tab-1] PASSED [ 73%]
tests/test_tabbed_content.py::test_showing_first_tab_activates_tab[tab-2] PASSED [ 73%]
tests/test_tabbed_content.py::test_disabling_nested_tabs PASSED          [ 73%]
tests/test_tabbed_content.py::test_hiding_nested_tabs PASSED             [ 73%]
tests/test_tabbed_content.py::test_tabs_nested_in_tabbed_content_doesnt_crash PASSED [ 73%]
tests/test_tabbed_content.py::test_tabs_nested_doesnt_interfere_with_ancestor_tabbed_content PASSED [ 73%]
tests/test_tabbed_content.py::test_disabling_tab_within_tabbed_content_stays_isolated PASSED [ 73%]
tests/test_tabs.py::test_tab_label PASSED                                [ 73%]
tests/test_tabs.py::test_tab_relabel PASSED                              [ 73%]
tests/test_tabs.py::test_compose_empty_tabs PASSED                       [ 73%]
tests/test_tabs.py::test_compose_tabs_from_strings PASSED                [ 73%]
tests/test_tabs.py::test_compose_tabs_from_tabs PASSED                   [ 73%]
tests/test_tabs.py::test_add_tabs_later PASSED                           [ 73%]
tests/test_tabs.py::test_add_tab_before PASSED                           [ 73%]
tests/test_tabs.py::test_add_tab_before_badly PASSED                     [ 73%]
tests/test_tabs.py::test_add_tab_after PASSED                            [ 73%]
tests/test_tabs.py::test_add_tab_after_badly PASSED                      [ 73%]
tests/test_tabs.py::test_add_tab_before_and_after PASSED                 [ 73%]
tests/test_tabs.py::test_remove_tabs PASSED                              [ 73%]
tests/test_tabs.py::test_remove_tabs_reversed PASSED                     [ 73%]
tests/test_tabs.py::test_clear_tabs PASSED                               [ 73%]
tests/test_tabs.py::test_change_active_from_code PASSED                  [ 73%]
tests/test_tabs.py::test_navigate_tabs_with_keyboard PASSED              [ 73%]
tests/test_tabs.py::test_navigate_empty_tabs_with_keyboard PASSED        [ 73%]
tests/test_tabs.py::test_navigate_tabs_with_mouse PASSED                 [ 73%]
tests/test_tabs.py::test_startup_messages PASSED                         [ 73%]
tests/test_tabs.py::test_change_tab_with_code_messages PASSED            [ 73%]
tests/test_tabs.py::test_remove_tabs_messages PASSED                     [ 73%]
tests/test_tabs.py::test_reverse_remove_tabs_messages PASSED             [ 74%]
tests/test_tabs.py::test_keyboard_navigation_messages PASSED             [ 74%]
tests/test_tabs.py::test_mouse_navigation_messages PASSED                [ 74%]
tests/test_tabs.py::test_disabled_tab_is_not_activated_by_clicking_underline PASSED [ 74%]
tests/test_test_runner.py::test_run_test PASSED                          [ 74%]
tests/test_textlog.py::test_make_renderable_expand_tabs PASSED           [ 74%]
tests/test_tooltips.py::test_no_tip_gets_no_tooltip PASSED               [ 74%]
tests/test_tooltips.py::test_tip_gets_a_tooltip PASSED                   [ 74%]
tests/test_tooltips.py::test_mouse_move_removes_a_tooltip PASSED         [ 74%]
tests/test_tooltips.py::test_removing_tipper_should_remove_tooltip PASSED [ 74%]
tests/test_tooltips.py::test_making_tipper_invisible_should_remove_tooltip PASSED [ 74%]
tests/test_tooltips.py::test_making_tipper_not_displayed_should_remove_tooltip PASSED [ 74%]
tests/test_tooltips.py::test_making_tipper_shuffle_away_should_remove_tooltip PASSED [ 74%]
tests/test_two_way_dict.py::test_get PASSED                              [ 74%]
tests/test_two_way_dict.py::test_get_key PASSED                          [ 74%]
tests/test_two_way_dict.py::test_set_item PASSED                         [ 74%]
tests/test_two_way_dict.py::test_len PASSED                              [ 74%]
tests/test_two_way_dict.py::test_delitem PASSED                          [ 74%]
tests/test_two_way_dict.py::test_contains PASSED                         [ 74%]
tests/test_unmount.py::test_unmount PASSED                               [ 74%]
tests/test_validation.py::test_ValidationResult_merge_successes PASSED   [ 74%]
tests/test_validation.py::test_ValidationResult_merge_failures PASSED    [ 74%]
tests/test_validation.py::test_ValidationResult_failure_descriptions PASSED [ 74%]
tests/test_validation.py::test_Failure_description_priorities_parameter_only PASSED [ 74%]
tests/test_validation.py::test_Failure_description_priorities_parameter_and_describe_failure PASSED [ 74%]
tests/test_validation.py::test_Failure_description_priorities_describe_failure_only PASSED [ 74%]
tests/test_validation.py::test_Failure_description_parameter_and_description_inside_validate PASSED [ 74%]
tests/test_validation.py::test_Failure_description_describe_and_description_inside_validate PASSED [ 75%]
tests/test_validation.py::test_Number_validate[123-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[-123-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[123.45-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[1.23e-4-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[abc-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[123-100-200-True] PASSED  [ 75%]
tests/test_validation.py::test_Number_validate[99-100-200-False] PASSED  [ 75%]
tests/test_validation.py::test_Number_validate[201-100-200-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[1.23e4-0-50000-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[inf-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[nan-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[-inf-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[-4-0-5-False] PASSED      [ 75%]
tests/test_validation.py::test_Number_validate[2--3-0-False] PASSED      [ 75%]
tests/test_validation.py::test_Number_validate[-2--3-0-True] PASSED      [ 75%]
tests/test_validation.py::test_Regex_validate[\\d+-123-True] PASSED      [ 75%]
tests/test_validation.py::test_Regex_validate[\\d+-abc-False] PASSED     [ 75%]
tests/test_validation.py::test_Regex_validate[[a-z]+-abc-True] PASSED    [ 75%]
tests/test_validation.py::test_Regex_validate[[a-z]+-ABC-False] PASSED   [ 75%]
tests/test_validation.py::test_Regex_validate[\\w+-abc123-True] PASSED   [ 75%]
tests/test_validation.py::test_Regex_validate[\\w+-!@#-False] PASSED     [ 75%]
tests/test_validation.py::test_Integer_validate[123-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[-123-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[123.45-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[1.23e-4-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[abc-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[123-100-200-True] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[99-100-200-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[201-100-200-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[1.23e4-None-None-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[123.-None-None-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[123_456-None-None-True] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[_123_456-None-None-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[-123--123--123-True] PASSED [ 76%]
tests/test_validation.py::test_Length_validate[-None-None-True] PASSED   [ 76%]
tests/test_validation.py::test_Length_validate[test-None-None-True] PASSED [ 76%]
tests/test_validation.py::test_Length_validate[test-5-None-False] PASSED [ 76%]
tests/test_validation.py::test_Length_validate[test-None-3-False] PASSED [ 76%]
tests/test_validation.py::test_Length_validate[test-4-4-True] PASSED     [ 76%]
tests/test_validation.py::test_Length_validate[test-2-6-True] PASSED     [ 76%]
tests/test_validation.py::test_URL_validate[http://example.com-True] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[https://example.com-True] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[www.example.com-False] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[://example.com-False] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[https:///path-False] PASSED  [ 76%]
tests/test_validation.py::test_URL_validate[redis://username:pass[word@localhost:6379/0-False] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[-False] PASSED               [ 76%]
tests/test_validation.py::test_Function_validate[<lambda>-None-True] PASSED [ 76%]
tests/test_validation.py::test_Function_validate[<lambda>-failure!-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_failure_description_when_NotANumber PASSED [ 76%]
tests/test_version.py::test_version PASSED                               [ 76%]
tests/test_visible.py::test_visibility_changes PASSED                    [ 76%]
tests/test_visible.py::test_visible_is_inherited PASSED                  [ 76%]
tests/test_widget.py::test_widget_construct PASSED                       [ 77%]
tests/test_widget.py::test_widget_set_visible_true[True-True-visible] PASSED [ 77%]
tests/test_widget.py::test_widget_set_visible_true[False-False-hidden] PASSED [ 77%]
tests/test_widget.py::test_widget_set_visible_true[hidden-False-hidden] PASSED [ 77%]
tests/test_widget.py::test_widget_set_visible_true[visible-True-visible] PASSED [ 77%]
tests/test_widget.py::test_widget_set_visible_invalid_string PASSED      [ 77%]
tests/test_widget.py::test_widget_content_width PASSED                   [ 77%]
tests/test_widget.py::test_get_child_by_id_gets_first_child PASSED       [ 77%]
tests/test_widget.py::test_get_child_by_id_no_matching_child PASSED      [ 77%]
tests/test_widget.py::test_get_child_by_id_only_immediate_descendents PASSED [ 77%]
tests/test_widget.py::test_get_child_by_type PASSED                      [ 77%]
tests/test_widget.py::test_get_widget_by_id_no_matching_child PASSED     [ 77%]
tests/test_widget.py::test_get_widget_by_id_non_immediate_descendants PASSED [ 77%]
tests/test_widget.py::test_get_widget_by_id_immediate_descendants PASSED [ 77%]
tests/test_widget.py::test_get_widget_by_id_doesnt_return_self PASSED    [ 77%]
tests/test_widget.py::test_get_widgets_app_delegated PASSED              [ 77%]
tests/test_widget.py::test_widget_mount_ids_must_be_unique_mounting_all_in_one_go PASSED [ 77%]
tests/test_widget.py::test_widget_mount_ids_must_be_unique_mounting_multiple_calls PASSED [ 77%]
tests/test_widget.py::test_get_pseudo_class_state PASSED                 [ 77%]
tests/test_widget.py::test_get_pseudo_class_state_disabled PASSED        [ 77%]
tests/test_widget.py::test_get_pseudo_class_state_parent_disabled PASSED [ 77%]
tests/test_widget.py::test_get_pseudo_class_state_hover PASSED           [ 77%]
tests/test_widget.py::test_get_pseudo_class_state_focus PASSED           [ 77%]
tests/test_widget.py::test_remove PASSED                                 [ 77%]
tests/test_widget.py::test_remove_unmounted PASSED                       [ 77%]
tests/test_widget.py::test_render_str PASSED                             [ 77%]
tests/test_widget.py::test_compose_order PASSED                          [ 77%]
tests/test_widget.py::test_children_must_be_widgets PASSED               [ 78%]
tests/test_widget.py::test_orphan_widget_has_no_siblings PASSED          [ 78%]
tests/test_widget.py::test__allow_scroll_default PASSED                  [ 78%]
tests/test_widget.py::test__allow_scroll PASSED                          [ 78%]
tests/test_widget.py::test_offset_getter_setter PASSED                   [ 78%]
tests/test_widget.py::test_get_set_tooltip PASSED                        [ 78%]
tests/test_widget.py::test_loading PASSED                                [ 78%]
tests/test_widget.py::test_loading_button PASSED                         [ 78%]
tests/test_widget.py::test_is_mounted_property PASSED                    [ 78%]
tests/test_widget.py::test_mount_error_not_widget PASSED                 [ 78%]
tests/test_widget.py::test_mount_error_bad_widget PASSED                 [ 78%]
tests/test_widget.py::test_render_returns_text PASSED                    [ 78%]
tests/test_widget.py::test_sort_children PASSED                          [ 78%]
tests/test_widget.py::test_sort_children_no_key PASSED                   [ 78%]
tests/test_widget.py::test_bad_widget_name_raised PASSED                 [ 78%]
tests/test_widget.py::test_lazy_loading PASSED                           [ 78%]
tests/test_widget.py::test_of_type PASSED                                [ 78%]
tests/test_widget_child_moving.py::test_move_child_no_direction PASSED   [ 78%]
tests/test_widget_child_moving.py::test_move_child_both_directions PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_not_our_child PASSED  [ 78%]
tests/test_widget_child_moving.py::test_move_child_to_outside PASSED     [ 78%]
tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_index[before] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_index[after] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[before] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[after] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_index[before] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_index[after] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_widget[before] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_widget[after] PASSED [ 79%]
tests/test_widget_child_moving.py::test_move_past_end_of_child_list PASSED [ 79%]
tests/test_widget_child_moving.py::test_move_before_end_of_child_list PASSED [ 79%]
tests/test_widget_child_moving.py::test_move_before_permutations PASSED  [ 79%]
tests/test_widget_child_moving.py::test_move_after_permutations PASSED   [ 79%]
tests/test_widget_child_moving.py::test_move_child_after_last_child PASSED [ 79%]
tests/test_widget_child_moving.py::test_move_child_after_last_numeric_location PASSED [ 79%]
tests/test_widget_mount_point.py::test_find_dom_spot PASSED              [ 79%]
tests/test_widget_mounting.py::test_mount_via_app PASSED                 [ 79%]
tests/test_widget_mounting.py::test_mount_error PASSED                   [ 79%]
tests/test_widget_navigation.py::test_distance[2-8-1-10-4] PASSED        [ 79%]
tests/test_widget_navigation.py::test_distance[2-8--1-10-6] PASSED       [ 79%]
tests/test_widget_navigation.py::test_distance[8-2--1-10-4] PASSED       [ 79%]
tests/test_widget_navigation.py::test_distance[8-2-1-10-6] PASSED        [ 79%]
tests/test_widget_navigation.py::test_distance[8-2-1-1234123512-6] PASSED [ 79%]
tests/test_widget_navigation.py::test_distance[2-8-1-11-5] PASSED        [ 79%]
tests/test_widget_navigation.py::test_distance[2-8-1-12-6] PASSED        [ 79%]
tests/test_widget_navigation.py::test_distance[5-5-1-10-0] PASSED        [ 79%]
tests/test_widget_navigation.py::test_find_enabled_returns_none_on_empty[find_first_enabled] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_enabled_returns_none_on_empty[find_last_enabled] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates0-None-1-None] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates1-None--1-None] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates2-None-1-0] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates3-None-1-0] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates4-None-1-0] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates5-None-1-1] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates6-None-1-2] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates7-None--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates8-None--1-1] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates9-None--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates10-None--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates11-0-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates12-1-1-1] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates13-1--1-1] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates14-None--1-None] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates15-0-1-3] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates16-0--1-4] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates17-1-1-3] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates18-1--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates19-2-1-3] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates20-2--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates21-3-1-4] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates22-3--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates23-4-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates24-4--1-3] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates25-5-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates26-5--1-4] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates0-None-1-None] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates1-None--1-None] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates2-None-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates3-None-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates4-None-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates5-None-1-1] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates6-None-1-2] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates7-None--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates8-None--1-1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates9-None--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates10-None--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates11-0-1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates12-1-1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates13-1--1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates14-None--1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates15-0-1-3] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates16-0--1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates17-1-1-3] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates18-1--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates19-2-1-3] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates20-2--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates21-3-1-4] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates22-3--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates23-4-1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates24-4--1-3] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates25-5-1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates26-5--1-4] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-0-1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-0--1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-1-1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-1--1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-2-1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-2--1] PASSED [ 81%]
tests/test_widget_removing.py::test_remove_single_widget PASSED          [ 81%]
tests/test_widget_removing.py::test_many_remove_all_widgets PASSED       [ 82%]
tests/test_widget_removing.py::test_many_remove_some_widgets PASSED      [ 82%]
tests/test_widget_removing.py::test_remove_branch PASSED                 [ 82%]
tests/test_widget_removing.py::test_remove_overlap PASSED                [ 82%]
tests/test_widget_removing.py::test_remove_move_focus PASSED             [ 82%]
tests/test_widget_removing.py::test_widget_remove_order PASSED           [ 82%]
tests/test_widget_removing.py::test_query_remove_order PASSED            [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_container PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_with_star_selector PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_with_string_selector PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_with_type_selector PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_with_selector_does_not_leak PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_no_children PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_no_children_match_selector PASSED [ 82%]
tests/test_widget_visibility.py::test_hide PASSED                        [ 82%]
tests/test_win_sleep.py::test_win_sleep_timer_is_cancellable SKIPPED (We
only need to test this on Windows.)                                      [ 82%]
tests/test_wrap.py::test_chunks[-expected_output0] PASSED                [ 82%]
tests/test_wrap.py::test_chunks[    -expected_output1] PASSED            [ 82%]
tests/test_wrap.py::test_chunks[\t-expected_output2] PASSED              [ 82%]
tests/test_wrap.py::test_chunks[foo-expected_output3] PASSED             [ 82%]
tests/test_wrap.py::test_chunks[  foo  -expected_output4] PASSED         [ 82%]
tests/test_wrap.py::test_chunks[foo bar-expected_output5] PASSED         [ 82%]
tests/test_wrap.py::test_chunks[\tfoo bar-expected_output6] PASSED       [ 82%]
tests/test_wrap.py::test_chunks[ foo bar-expected_output7] PASSED        [ 82%]
tests/test_wrap.py::test_chunks[foo bar   -expected_output8] PASSED      [ 82%]
tests/test_wrap.py::test_chunks[foo\t  bar   -expected_output9] PASSED   [ 82%]
tests/test_wrap.py::test_chunks[\u6728\t  \u5ddd   -expected_output10] PASSED [ 82%]
tests/test_wrap.py::test_compute_wrap_offsets[-6-4-expected_output0] PASSED [ 82%]
tests/test_wrap.py::test_compute_wrap_offsets[\t-6-4-expected_output1] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[    -6-4-expected_output2] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[foo bar baz-6-4-expected_output3] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\tfoo bar baz-6-4-expected_output4] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz-6-4-expected_output5] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz-6-8-expected_output6] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz\t-6-8-expected_output7] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\t\t\tfo bar baz\t-20-4-expected_output8] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\t\t\t\t\t\t\t\tfo bar bar-19-4-expected_output9] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\t\t\t\t\t-19-4-expected_output10] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[2] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[3] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[4] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[5] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[6] PASSED [ 83%]
tests/test_xterm_parser.py::test_bracketed_paste PASSED                  [ 83%]
tests/test_xterm_parser.py::test_bracketed_paste_content_contains_escape_codes PASSED [ 83%]
tests/test_xterm_parser.py::test_bracketed_paste_amongst_other_codes PASSED [ 83%]
tests/test_xterm_parser.py::test_cant_match_escape_sequence_too_long PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[2] PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[3] PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[4] PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[5] PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[6] PASSED [ 83%]
tests/test_xterm_parser.py::test_simple_key_presses_all_delivered_correct_order PASSED [ 83%]
tests/test_xterm_parser.py::test_simple_keypress_non_character_key PASSED [ 83%]
tests/test_xterm_parser.py::test_key_presses_and_escape_sequence_mixed PASSED [ 83%]
tests/test_xterm_parser.py::test_single_escape PASSED                    [ 84%]
tests/test_xterm_parser.py::test_double_escape PASSED                    [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<0;50;25M-MouseDown-False-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<4;50;25M-MouseDown-True-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<8;50;25M-MouseDown-False-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<12;50;25M-MouseDown-True-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<0;50;25m-MouseUp-False-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<4;50;25m-MouseUp-True-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<8;50;25m-MouseUp-False-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<12;50;25m-MouseUp-True-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<32;15;38M-False-False-1] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<35;15;38M-False-False-0] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<39;15;38M-True-False-0] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<43;15;38M-False-True-0] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<3;15;38M-False-False-0] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<64;18;25M-False-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<68;18;25M-True-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<72;18;25M-False-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<65;18;25M-False-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<69;18;25M-True-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<73;18;25M-False-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_event_detected_but_info_not_parsed PASSED [ 84%]
tests/test_xterm_parser.py::test_escape_sequence_resulting_in_multiple_keypresses XFAIL [ 84%]
tests/test_xterm_parser.py::test_terminal_mode_reporting_synchronized_output_supported PASSED [ 84%]
tests/test_xterm_parser.py::test_terminal_mode_reporting_synchronized_output_not_supported PASSED [ 84%]
tests/text_area/test_code_editor.py::test_code_editor_parameters_kept_up_to_date PASSED [ 84%]
tests/text_area/test_edit_via_api.py::test_insert_text_start_maintain_selection_offset PASSED [ 84%]
tests/text_area/test_edit_via_api.py::test_insert_text_start PASSED      [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_empty_string PASSED    [ 85%]
tests/text_area/test_edit_via_api.py::test_replace_empty_string PASSED   [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_character_near_cursor_maintain_selection_offset[cursor_location0-insert_location0-cursor_destination0] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_character_near_cursor_maintain_selection_offset[cursor_location1-insert_location1-cursor_destination1] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_character_near_cursor_maintain_selection_offset[cursor_location2-insert_location2-cursor_destination2] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_character_near_cursor_maintain_selection_offset[cursor_location3-insert_location3-cursor_destination3] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newline_around_cursor_maintain_selection_offset[cursor_location0-insert_location0-cursor_destination0] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newline_around_cursor_maintain_selection_offset[cursor_location1-insert_location1-cursor_destination1] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newline_around_cursor_maintain_selection_offset[cursor_location2-insert_location2-cursor_destination2] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newlines_start PASSED  [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newlines_end PASSED    [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_windows_newlines PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_old_mac_newlines PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_text_non_cursor_location PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_text_non_cursor_location_dont_maintain_offset PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_multiline_text PASSED  [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_multiline_text_maintain_offset PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_replace_multiline_text PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_replace_multiline_text_maintain_selection PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_delete_within_line PASSED     [ 85%]
tests/text_area/test_edit_via_api.py::test_delete_within_line_dont_maintain_offset PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_delete_multiple_lines_selection_above PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_delete_empty_document PASSED  [ 85%]
tests/text_area/test_edit_via_api.py::test_clear PASSED                  [ 85%]
tests/text_area/test_edit_via_api.py::test_clear_empty_document PASSED   [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_text_multiline_selection_top[select_from0-select_to0] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_text_multiline_selection_top[select_from1-select_to1] PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_insert_text_multiline_selection_bottom[select_from0-select_to0] PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_insert_text_multiline_selection_bottom[select_from1-select_to1] PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_delete_fully_within_selection PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_replace_fully_within_selection PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_text_setter PASSED            [ 86%]
tests/text_area/test_edit_via_api.py::test_edits_on_read_only_mode PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_single_keypress_printable_character PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_single_keypress_enter PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[-0-4] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[x-0-4] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[x-1-4] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[xxx-3-4] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[xxxx-4-8] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[xxxxx-5-8] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[xxxxxx-6-8] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[\U0001f4a9-1-3] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[\U0001f4a9\U0001f4a9-2-6] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_left PASSED       [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_left_start PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_left_end PASSED   [ 86%]
tests/text_area/test_edit_via_bindings.py::test_deletion_with_non_empty_selection[delete-selection0] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_deletion_with_non_empty_selection[delete-selection1] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_deletion_with_non_empty_selection[backspace-selection2] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_deletion_with_non_empty_selection[backspace-selection3] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_right PASSED      [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_right_end_of_line PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection0--0123456789-cursor_end_location0] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection1--0123456789-cursor_end_location1] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection2--0123456789-cursor_end_location2] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection3-01456789-23-cursor_end_location3] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection4-01456789-23-cursor_end_location4] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection0-345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection1-345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection2-012\n345\n678\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection3-012\n345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection4-012\n35\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection5-012\n3478\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection0-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection1-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection2-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection3-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection4-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection0-345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection1-345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection2-012\n345\n678\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection3-012\n345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection4-012\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection5-012\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection6-012\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection7-012\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection8-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection0-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection1-01234] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection2-012345678] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection3-0123456789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection4-012345678] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection5-0123456789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection6-01234] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection7-01] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection0-0123456789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection1-56789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection2-9] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection3-] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection4-9] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection5-] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection6-56789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection7-23456789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection0-  012 345 6789-final_selection0] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection1-  2 345 6789-final_selection1] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection2-   345 6789-final_selection2] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection3-  345 6789-final_selection3] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection4-  012 345 -final_selection4] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection5-  01789-final_selection5] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection0-\t012 \t 345\t6789-final_selection0] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection1-\t \t 345\t6789-final_selection1] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection2-\t\t 345\t6789-final_selection2] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection3-\t 345\t6789-final_selection3] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection4-\t012 \t 345\t-final_selection4] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection5-\t0126789-final_selection5] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_to_start_of_line PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_at_line_start PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection0-012 345 6789-final_selection0] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection1-  01 345 6789-final_selection1] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection2-  012345 6789-final_selection2] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection3-  012 345 6789-final_selection3] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection4-  01789-final_selection4] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right_delete_to_end_of_line PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right_at_end_of_line PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[enter] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[backspace] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+u] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+f] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+w] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+k] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+x] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[space] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[1] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[tab] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_replace_lines_with_fewer_lines[selection0] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_replace_lines_with_fewer_lines[selection1] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_paste[selection0] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_paste[selection1] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_paste_read_only_does_nothing PASSED [ 89%]
tests/text_area/test_escape_binding.py::test_escape_key_when_tab_behavior_is_focus PASSED [ 89%]
tests/text_area/test_escape_binding.py::test_escape_key_when_tab_behavior_is_indent PASSED [ 89%]
tests/text_area/test_history.py::test_simple_undo_redo PASSED            [ 89%]
tests/text_area/test_history.py::test_undo_selection_retained PASSED     [ 89%]
tests/text_area/test_history.py::test_undo_checkpoint_created_on_cursor_move PASSED [ 89%]
tests/text_area/test_history.py::test_setting_text_property_resets_history PASSED [ 90%]
tests/text_area/test_history.py::test_edits_batched_by_time PASSED       [ 90%]
tests/text_area/test_history.py::test_undo_checkpoint_character_limit_reached PASSED [ 90%]
tests/text_area/test_history.py::test_redo_with_no_undo_is_noop PASSED   [ 90%]
tests/text_area/test_history.py::test_undo_with_empty_undo_stack_is_noop PASSED [ 90%]
tests/text_area/test_history.py::test_redo_stack_cleared_on_edit PASSED  [ 90%]
tests/text_area/test_history.py::test_inserts_not_batched_with_deletes PASSED [ 90%]
tests/text_area/test_history.py::test_paste_is_an_isolated_batch PASSED  [ 90%]
tests/text_area/test_history.py::test_focus_creates_checkpoint PASSED    [ 90%]
tests/text_area/test_history.py::test_undo_redo_deletions_batched PASSED [ 90%]
tests/text_area/test_history.py::test_max_checkpoints PASSED             [ 90%]
tests/text_area/test_history.py::test_redo_stack PASSED                  [ 90%]
tests/text_area/test_history.py::test_backward_selection_undo_redo PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection0-A] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection1-delete] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection2-backspace] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection3-A] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection4-delete] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection5-backspace] PASSED [ 90%]
tests/text_area/test_languages.py::test_setting_builtin_language_via_constructor PASSED [ 90%]
tests/text_area/test_languages.py::test_setting_builtin_language_via_attribute PASSED [ 90%]
tests/text_area/test_languages.py::test_setting_language_to_none PASSED  [ 90%]
tests/text_area/test_messages.py::test_changed_message_edit_via_api PASSED [ 90%]
tests/text_area/test_messages.py::test_changed_message_via_typing PASSED [ 90%]
tests/text_area/test_messages.py::test_changed_message_edit_via_assignment PASSED [ 90%]
tests/text_area/test_messages.py::test_selection_changed_via_api PASSED  [ 90%]
tests/text_area/test_messages.py::test_selection_changed_via_typing PASSED [ 90%]
tests/text_area/test_selection.py::test_default_selection PASSED         [ 91%]
tests/text_area/test_selection.py::test_cursor_location_get PASSED       [ 91%]
tests/text_area/test_selection.py::test_cursor_location_set PASSED       [ 91%]
tests/text_area/test_selection.py::test_cursor_location_set_while_selecting PASSED [ 91%]
tests/text_area/test_selection.py::test_move_cursor_select PASSED        [ 91%]
tests/text_area/test_selection.py::test_move_cursor_relative PASSED      [ 91%]
tests/text_area/test_selection.py::test_selected_text_forward PASSED     [ 91%]
tests/text_area/test_selection.py::test_selected_text_backward PASSED    [ 91%]
tests/text_area/test_selection.py::test_selected_text_multibyte PASSED   [ 91%]
tests/text_area/test_selection.py::test_selection_clamp PASSED           [ 91%]
tests/text_area/test_selection.py::test_get_cursor_left_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_left_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_left_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_right_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_right_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_right_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_right_location[start3-end3] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_up_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_up_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_up_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_down_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_down_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_down_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start3-end3] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start4-end4] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start5-end5] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start6-end6] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start7-end7] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start8-end8] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start9-end9] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start10-end10] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start11-end11] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start12-end12] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start13-end13] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start14-end14] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start15-end15] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start0-end0] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start1-end1] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start2-end2] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start3-end3] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start4-end4] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start5-end5] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start6-end6] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start7-end7] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start8-end8] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start9-end9] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start10-end10] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start11-end11] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start12-end12] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start13-end13] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start14-end14] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start15-end15] PASSED [ 92%]
tests/text_area/test_selection.py::test_select_all[123\n456\n789-expected_selection0] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_all[123\n456\n789\n-expected_selection1] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_all[-expected_selection2] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[1-123\n456\n789\n-expected_selection0] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[2-123\n456\n789\n-expected_selection1] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[3-123\n456\n789\n-expected_selection2] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[1000-123\n456\n789\n-expected_selection3] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[0--expected_selection4] PASSED [ 93%]
tests/text_area/test_selection.py::test_cursor_screen_offset_and_terminal_cursor_position_update PASSED [ 93%]
tests/text_area/test_selection.py::test_cursor_screen_offset_and_terminal_cursor_position_scrolling PASSED [ 93%]
tests/text_area/test_selection.py::test_mouse_selection_with_tab_characters PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click_clamp_from_right[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click_clamp_from_right[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click_gutter_clamp[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click_gutter_clamp[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_movement_basic PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_right[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_right[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_right_to_previous_line[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_right_to_previous_line[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_left[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_left[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_left_to_previous_line[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_left_to_previous_line[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_up[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_up[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_up_when_cursor_on_first_line[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_up_when_cursor_on_first_line[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_down[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_down[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_down_when_cursor_on_last_line[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_down_when_cursor_on_last_line[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_right[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_right[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_right_select[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_right_select[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_left[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_left[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_left_select[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_left_select[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_end[True-end] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_end[True-ctrl+e] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_end[False-end] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_end[False-ctrl+e] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_home_basic_behaviour[True-home] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_home_basic_behaviour[True-ctrl+a] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_home_basic_behaviour[False-home] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_home_basic_behaviour[False-ctrl+a] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start0-cursor_destination0] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start1-cursor_destination1] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start2-cursor_destination2] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start3-cursor_destination3] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start4-cursor_destination4] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start5-cursor_destination5] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start0-cursor_destination0] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start1-cursor_destination1] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start2-cursor_destination2] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start3-cursor_destination3] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start4-cursor_destination4] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start5-cursor_destination5] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_page_down[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_page_down[False] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_page_up[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_page_up[False] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_vertical_movement_visual_alignment_snapping[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_vertical_movement_visual_alignment_snapping[False] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_select_line_binding[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_select_line_binding[False] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_select_all_binding[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_select_all_binding[False] PASSED [ 95%]
tests/text_area/test_setting_themes.py::test_default_theme PASSED        [ 95%]
tests/text_area/test_setting_themes.py::test_setting_builtin_themes PASSED [ 95%]
tests/text_area/test_setting_themes.py::test_setting_unknown_theme_raises_exception PASSED [ 95%]
tests/text_area/test_setting_themes.py::test_registering_and_setting_theme PASSED [ 95%]
tests/text_area/test_textarea_cut_copy_paste.py::test_cut PASSED         [ 95%]
tests/text_area/test_textarea_cut_copy_paste.py::test_copy PASSED        [ 95%]
tests/text_area/test_textarea_cut_copy_paste.py::test_paste PASSED       [ 95%]
tests/toggles/test_checkbox.py::test_checkbox_initial_state PASSED       [ 95%]
tests/toggles/test_checkbox.py::test_checkbox_toggle PASSED              [ 95%]
tests/toggles/test_labels.py::test_change_labels PASSED                  [ 95%]
tests/toggles/test_radiobutton.py::test_radio_button_initial_state PASSED [ 96%]
tests/toggles/test_radiobutton.py::test_radio_button_toggle PASSED       [ 96%]
tests/toggles/test_radioset.py::test_radio_sets_initial_state PASSED     [ 96%]
tests/toggles/test_radioset.py::test_click_sets_focus PASSED             [ 96%]
tests/toggles/test_radioset.py::test_radio_sets_toggle PASSED            [ 96%]
tests/toggles/test_radioset.py::test_radioset_same_button_mash PASSED    [ 96%]
tests/toggles/test_radioset.py::test_radioset_inner_navigation PASSED    [ 96%]
tests/toggles/test_radioset.py::test_radioset_inner_navigation_post_build PASSED [ 96%]
tests/toggles/test_radioset.py::test_radioset_breakout_navigation PASSED [ 96%]
tests/toggles/test_radioset.py::test_there_can_only_be_one PASSED        [ 96%]
tests/toggles/test_radioset.py::test_keyboard_navigation_with_disabled_buttons PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_file_selected_message PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_directory_selected_message PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_reload_node PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_reload_other_node PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_reloading_preserves_state PASSED [ 96%]
tests/tree/test_node_refresh.py::test_initial_state PASSED               [ 96%]
tests/tree/test_node_refresh.py::test_root_refresh PASSED                [ 96%]
tests/tree/test_node_refresh.py::test_child_refresh PASSED               [ 96%]
tests/tree/test_node_refresh.py::test_grandchild_refresh PASSED          [ 96%]
tests/tree/test_tree_availability.py::test_creating_disabled_tree PASSED [ 96%]
tests/tree/test_tree_availability.py::test_creating_enabled_tree PASSED  [ 96%]
tests/tree/test_tree_availability.py::test_disabled_tree_node_selected_message [('NodeHighlighted', 'test-tree'), ('NodeExpanded', 'test-tree')]
PASSED [ 96%]
tests/tree/test_tree_availability.py::test_enabled_tree_node_selected_message [('NodeHighlighted', 'test-tree'), ('NodeExpanded', 'test-tree')]
PASSED [ 96%]
tests/tree/test_tree_clearing.py::test_tree_simple_clear PASSED          [ 96%]
tests/tree/test_tree_clearing.py::test_tree_reset_with_label PASSED      [ 96%]
tests/tree/test_tree_clearing.py::test_tree_reset_with_label_and_data PASSED [ 96%]
tests/tree/test_tree_clearing.py::test_remove_node PASSED                [ 97%]
tests/tree/test_tree_clearing.py::test_remove_node_children PASSED       [ 97%]
tests/tree/test_tree_clearing.py::test_tree_remove_children_of_root PASSED [ 97%]
tests/tree/test_tree_clearing.py::test_attempt_to_remove_root PASSED     [ 97%]
tests/tree/test_tree_cursor.py::test_move_cursor PASSED                  [ 97%]
tests/tree/test_tree_cursor.py::test_move_cursor_reset PASSED            [ 97%]
tests/tree/test_tree_cursor.py::test_select_node PASSED                  [ 97%]
tests/tree/test_tree_cursor.py::test_select_node_reset PASSED            [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_expand PASSED         [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_expand_all PASSED     [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_collapse PASSED       [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_collapse_all PASSED   [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_toggle PASSED         [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_toggle_all PASSED     [ 97%]
tests/tree/test_tree_get_node_by_id.py::test_get_tree_node_by_id PASSED  [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_selected_message PASSED [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_selected_message_no_auto PASSED [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_expanded_message PASSED [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_collapsed_message PASSED [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_highlighted_message PASSED [ 97%]
tests/tree/test_tree_messages.py::test_expand_node_from_code PASSED      [ 97%]
tests/tree/test_tree_messages.py::test_collapse_node_from_code PASSED    [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_before_and_after_raises_exception PASSED [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_before_or_after_with_invalid_type_raises_exception PASSED [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_before_index PASSED [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_after_index PASSED  [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_relative_to_unknown_node_raises_exception PASSED [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_before_node PASSED  [ 98%]
tests/tree/test_tree_node_add.py::test_tree_node_add_after_node PASSED   [ 98%]
tests/tree/test_tree_node_add.py::test_tree_node_add_leaf_before_or_after PASSED [ 98%]
tests/tree/test_tree_node_children.py::test_tree_node_children PASSED    [ 98%]
tests/tree/test_tree_node_label.py::test_tree_node_label PASSED          [ 98%]
tests/tree/test_tree_node_label.py::test_tree_node_label_via_tree PASSED [ 98%]
tests/tree/test_tree_node_parent.py::test_tree_node_parent PASSED        [ 98%]
tests/workers/test_work_decorator.py::test_async_work PASSED             [ 98%]
tests/workers/test_work_decorator.py::test_async_thread_work PASSED      [ 98%]
tests/workers/test_work_decorator.py::test_thread_work PASSED            [ 98%]
tests/workers/test_work_decorator.py::test_decorate_non_async_no_thread_argument PASSED [ 98%]
tests/workers/test_work_decorator.py::test_decorate_non_async_no_thread_is_false PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack0] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack1] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack2] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack3] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack4] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack5] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack6] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack7] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack8] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack9] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack10] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack11] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack12] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack13] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack14] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack15] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack16] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack17] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack18] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack19] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack20] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack21] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack22] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack23] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack24] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack25] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack26] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack27] PASSED [ 99%]
tests/workers/test_worker.py::test_initialize PASSED                     [ 99%]
tests/workers/test_worker.py::test_run_success PASSED                    [ 99%]
tests/workers/test_worker.py::test_run_error PASSED                      [ 99%]
tests/workers/test_worker.py::test_run_cancel PASSED                     [ 99%]
tests/workers/test_worker.py::test_run_cancel_immediately PASSED         [ 99%]
tests/workers/test_worker.py::test_get_worker PASSED                     [ 99%]
tests/workers/test_worker.py::test_no_active_worker PASSED               [ 99%]
tests/workers/test_worker.py::test_progress_update PASSED                [ 99%]
tests/workers/test_worker.py::test_double_start PASSED                   [ 99%]
tests/workers/test_worker.py::test_self_referential_deadlock PASSED      [ 99%]
tests/workers/test_worker.py::test_wait_without_start PASSED             [ 99%]
tests/workers/test_worker_manager.py::test_worker_manager_init PASSED    [ 99%]
tests/workers/test_worker_manager.py::test_run_worker_async PASSED       [ 99%]
tests/workers/test_worker_manager.py::test_run_worker_thread_non_async PASSED [ 99%]
tests/workers/test_worker_manager.py::test_run_worker_thread_async PASSED [100%]

=============================== warnings summary ===============================
tests/test_reactive.py::test_sync_reactive_watch_callbacks_go_on_the_watcher
  /build/reproducible-path/textual-1.0.0/.pybuild/cpython3_3.13_textual/build/textual/css/tokenizer.py:264: RuntimeWarning: coroutine 'test_async_reactive_watch_callbacks_go_on_the_watcher.<locals>.MyApp.callback' was never awaited
    for name, value in zip(expect.names, iter_groups):
  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
= 2718 passed, 1 skipped, 7 deselected, 4 xfailed, 1 warning in 282.62s (0:04:42) =
I: pybuild base:311: cd /build/reproducible-path/textual-1.0.0/.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.8, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12
cachedir: .pytest_cache
rootdir: /build/reproducible-path/textual-1.0.0/.pybuild/cpython3_3.12_textual/build
configfile: pyproject.toml
testpaths: tests
plugins: xdist-3.6.1, asyncio-0.24.0a1, typeguard-4.4.1, syrupy-4.8.0
asyncio: mode=Mode.AUTO, default_loop_scope=function
collecting ... collected 2730 items / 7 deselected / 2723 selected

tests/animations/test_disabling_animations.py::test_style_animations_via_animate_work_on_full PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_animate_are_disabled_on_basic PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_animate_are_disabled_on_none PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_transition_work_on_full PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_transition_are_disabled_on_basic PASSED [  0%]
tests/animations/test_disabling_animations.py::test_style_animations_via_transition_are_disabled_on_none PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[-full] PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[FULL-full] PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[BASIC-basic] PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[NONE-none] PASSED [  0%]
tests/animations/test_environment_variable.py::test__get_textual_animations[garbanzo beans-full] PASSED [  0%]
tests/animations/test_environment_variable.py::test_app_show_animations[full] PASSED [  0%]
tests/animations/test_environment_variable.py::test_app_show_animations[basic] PASSED [  0%]
tests/animations/test_environment_variable.py::test_app_show_animations[none] PASSED [  0%]
tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_not_static_on_full PASSED [  0%]
tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_not_static_on_basic PASSED [  0%]
tests/animations/test_loading_indicator_animation.py::test_loading_indicator_is_static_on_none PASSED [  0%]
tests/animations/test_progress_bar_animation.py::test_progress_bar_animates_on_full PASSED [  0%]
tests/animations/test_progress_bar_animation.py::test_progress_bar_animates_on_basic PASSED [  0%]
tests/animations/test_progress_bar_animation.py::test_progress_bar_does_not_animate_on_none PASSED [  0%]
tests/animations/test_scrolling_animation.py::test_scrolling_animates_on_full PASSED [  0%]
tests/animations/test_scrolling_animation.py::test_scrolling_animates_on_basic PASSED [  0%]
tests/animations/test_scrolling_animation.py::test_scrolling_does_not_animate_on_none PASSED [  0%]
tests/animations/test_switch_animation.py::test_switch_animates_on_full PASSED [  0%]
tests/animations/test_switch_animation.py::test_switch_animates_on_basic PASSED [  0%]
tests/animations/test_switch_animation.py::test_switch_does_not_animate_on_none PASSED [  0%]
tests/animations/test_tabs_underline_animation.py::test_tabs_underline_animates_on_full PASSED [  0%]
tests/animations/test_tabs_underline_animation.py::test_tabs_underline_animates_on_basic PASSED [  1%]
tests/animations/test_tabs_underline_animation.py::test_tabs_underline_does_not_animate_on_none PASSED [  1%]
tests/css/test_css_reloading.py::test_css_reloading_applies_to_non_top_screen PASSED [  1%]
tests/css/test_css_reloading.py::test_css_reloading_file_not_found PASSED [  1%]
tests/css/test_grid_rows_columns_relative_units.py::test_grid_rows_columns_relative_units_are_correct PASSED [  1%]
tests/css/test_grid_rows_columns_relative_units.py::test_styles_builder_uses_correct_relative_units_grid_rows_columns PASSED [  1%]
tests/css/test_help_text.py::test_help_text_examples_are_contextualized PASSED [  1%]
tests/css/test_help_text.py::test_spacing_wrong_number_of_values[css] PASSED [  1%]
tests/css/test_help_text.py::test_spacing_wrong_number_of_values[inline] PASSED [  1%]
tests/css/test_help_text.py::test_spacing_invalid_value[css] PASSED      [  1%]
tests/css/test_help_text.py::test_spacing_invalid_value[inline] PASSED   [  1%]
tests/css/test_help_text.py::test_scalar_help_text[css] PASSED           [  1%]
tests/css/test_help_text.py::test_scalar_help_text[inline] PASSED        [  1%]
tests/css/test_help_text.py::test_string_enum_help_text[css] PASSED      [  1%]
tests/css/test_help_text.py::test_string_enum_help_text[inline] PASSED   [  1%]
tests/css/test_help_text.py::test_color_property_help_text[css] PASSED   [  1%]
tests/css/test_help_text.py::test_color_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_border_property_help_text[css] PASSED  [  1%]
tests/css/test_help_text.py::test_border_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_layout_property_help_text[css] PASSED  [  1%]
tests/css/test_help_text.py::test_layout_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_fractional_property_help_text[css] PASSED [  1%]
tests/css/test_help_text.py::test_fractional_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_offset_property_help_text[css] PASSED  [  1%]
tests/css/test_help_text.py::test_offset_property_help_text[inline] PASSED [  1%]
tests/css/test_help_text.py::test_align_help_text PASSED                 [  1%]
tests/css/test_help_text.py::test_offset_single_axis_help_text PASSED    [  1%]
tests/css/test_help_text.py::test_style_flags_property_help_text[css] PASSED [  2%]
tests/css/test_help_text.py::test_style_flags_property_help_text[inline] PASSED [  2%]
tests/css/test_inheritance.py::test_inheritance XFAIL (Overlapping
styles should prioritize the most recent widget in the inheritance
chain)                                                                   [  2%]
tests/css/test_initial.py::test_initial_default PASSED                   [  2%]
tests/css/test_initial.py::test_initial PASSED                           [  2%]
tests/css/test_mega_stylesheet.py::test_mega_stylesheet PASSED           [  2%]
tests/css/test_nested_css.py::test_nest_app PASSED                       [  2%]
tests/css/test_nested_css.py::test_lists_of_selectors_in_nested_css PASSED [  2%]
tests/css/test_nested_css.py::test_rule_declaration_after_nested PASSED  [  2%]
tests/css/test_nested_css.py::test_parse_errors[Selector {-EOFError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[Selector{ Foo {-EOFError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[Selector{ Foo {}-EOFError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[> {}-TokenError] PASSED  [  2%]
tests/css/test_nested_css.py::test_parse_errors[&-TokenError] PASSED     [  2%]
tests/css/test_nested_css.py::test_parse_errors[&&-TokenError] PASSED    [  2%]
tests/css/test_nested_css.py::test_parse_errors[&.foo-TokenError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[& .foo-TokenError] PASSED [  2%]
tests/css/test_nested_css.py::test_parse_errors[{-TokenError] PASSED     [  2%]
tests/css/test_nested_css.py::test_parse_errors[*{-EOFError] PASSED      [  2%]
tests/css/test_nested_css.py::test_pseudo_classes_work_in_nested_css PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_simple_reference PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_simple_reference_no_whitespace PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_undefined_variable PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_empty_variable PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_transitive_reference PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_multi_value_variable PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_used_inside_property_value PASSED [  2%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_definition_eof PASSED [  3%]
tests/css/test_parse.py::TestVariableReferenceSubstitution::test_variable_reference_whitespace_trimming PASSED [  3%]
tests/css/test_parse.py::TestParseLayout::test_valid_layout_name PASSED  [  3%]
tests/css/test_parse.py::TestParseLayout::test_invalid_layout_name PASSED [  3%]
tests/css/test_parse.py::TestParseText::test_foreground PASSED           [  3%]
tests/css/test_parse.py::TestParseText::test_background PASSED           [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgb(1,255,50)-result0] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgb( 1, 255,50 )-result1] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgba( 1, 255,50,0.3 )-result2] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[rgba( 1, 255,50, 1.3 )-result3] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsl( 180, 50%, 50% )-result4] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsl(180,50%,50%)-result5] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla(180,50%,50%,0.25)-result6] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla( 180, 50% ,50%,0.25 )-result7] PASSED [  3%]
tests/css/test_parse.py::TestParseColor::test_rgb_and_hsl[hsla( 180, 50% , 50% , 1.5 )-result8] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_composite_rule[-5.5%-parsed_x0--30%-parsed_y0] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_composite_rule[5%-parsed_x1-40%-parsed_y1] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_composite_rule[10-parsed_x2-40-parsed_y2] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_separate_rules[-5.5%-parsed_x0--30%-parsed_y0] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_separate_rules[5%-parsed_x1-40%-parsed_y1] PASSED [  3%]
tests/css/test_parse.py::TestParseOffset::test_separate_rules[-10-parsed_x2-40-parsed_y2] PASSED [  3%]
tests/css/test_parse.py::TestParseOverflow::test_multiple_enum PASSED    [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[5.57s-5.57] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.5s-0.5] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[1200ms-1.2] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.5ms-0.0005] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[20-20.0] PASSED [  3%]
tests/css/test_parse.py::TestParseTransition::test_various_duration_formats[0.1-0.1] PASSED [  4%]
tests/css/test_parse.py::TestParseTransition::test_no_delay_specified PASSED [  4%]
tests/css/test_parse.py::TestParseTransition::test_unknown_easing_function PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[-0.2-0.0] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[0.4-0.4] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[1.3-1.0] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[-20%-0.0] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[25%-0.25] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_to_styles[128%-1.0] PASSED [  4%]
tests/css/test_parse.py::TestParseOpacity::test_opacity_invalid_value PASSED [  4%]
tests/css/test_parse.py::TestParseMargin::test_margin_partial PASSED     [  4%]
tests/css/test_parse.py::TestParsePadding::test_padding_partial PASSED   [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[left] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[start] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[center] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[right] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[end] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align[justify] PASSED [  4%]
tests/css/test_parse.py::TestParseTextAlign::test_text_align_invalid PASSED [  4%]
tests/css/test_parse.py::TestTypeNames::test_type_no_number PASSED       [  4%]
tests/css/test_parse.py::TestTypeNames::test_type_with_number PASSED     [  4%]
tests/css/test_parse.py::TestTypeNames::test_type_starts_with_number PASSED [  4%]
tests/css/test_parse.py::TestTypeNames::test_combined_type_no_number PASSED [  4%]
tests/css/test_parse.py::TestTypeNames::test_combined_type_with_number PASSED [  4%]
tests/css/test_parse.py::TestTypeNames::test_combined_type_starts_with_number PASSED [  4%]
tests/css/test_parse.py::test_parse_bad_pseudo_selector PASSED           [  4%]
tests/css/test_parse.py::test_parse_bad_pseudo_selector_with_suggestion PASSED [  4%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_size_rows-3] PASSED [  4%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_size_columns-3] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_gutter_vertical-4] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_gutter_horizontal-4] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_rows-1fr 3fr] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_style_change_updates_children[grid_columns-1fr 3fr] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align_horizontal-right] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align_vertical-bottom] PASSED [  5%]
tests/css/test_programmatic_style_changes.py::test_programmatic_align_change_updates_children_position[align-value2] PASSED [  5%]
tests/css/test_scalar.py::test_copy_with_value PASSED                    [  5%]
tests/css/test_scalar.py::test_copy_with_unit PASSED                     [  5%]
tests/css/test_scalar.py::test_copy_with_percent_unit PASSED             [  5%]
tests/css/test_screen_css.py::test_screen_pushing_and_popping_does_not_reparse_css PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_push_screen_instance PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_push_screen_instance_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_push_screen_type_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_screen_instance PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_screen_instance_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_screen_type_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_instance PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_instance_by_name PASSED [  5%]
tests/css/test_screen_css.py::test_screen_css_switch_mode_screen_type_by_name PASSED [  5%]
tests/css/test_styles.py::test_styles_reset PASSED                       [  5%]
tests/css/test_styles.py::test_has_rule PASSED                           [  5%]
tests/css/test_styles.py::test_clear_rule PASSED                         [  5%]
tests/css/test_styles.py::test_get_rules PASSED                          [  5%]
tests/css/test_styles.py::test_set_rule PASSED                           [  5%]
tests/css/test_styles.py::test_reset PASSED                              [  5%]
tests/css/test_styles.py::test_merge PASSED                              [  6%]
tests/css/test_styles.py::test_merge_rules PASSED                        [  6%]
tests/css/test_styles.py::test_render_styles_border PASSED               [  6%]
tests/css/test_styles.py::test_get_opacity_default PASSED                [  6%]
tests/css/test_styles.py::test_styles_css_property PASSED                [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[0.2-0.2] PASSED      [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[-0.4-0.0] PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[5.8-1.0] PASSED      [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[25%-0.25] PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[-10%-0.0] PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_then_get[120%-1.0] PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_invalid_type_error PASSED     [  6%]
tests/css/test_styles.py::test_opacity_set_allows_integer_value PASSED   [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[None-None] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1-size_dimension_expected_output1] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.0-size_dimension_expected_output2] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.2-size_dimension_expected_output3] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1200.0-size_dimension_expected_output4] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[20-size_dimension_expected_output5] PASSED [  6%]
tests/css/test_styles.py::test_widget_style_size_can_accept_various_data_types_and_normalize_them[1.4-size_dimension_expected_output6] PASSED [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
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 [  6%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[a] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[1.4e3] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[3.14j] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input3] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input4] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input5] PASSED [  7%]
tests/css/test_styles.py::test_widget_style_size_fails_if_data_type_is_not_supported[size_dimension_input6] PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_highest_specificity_wins PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_doesnt_override_defaults PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_highest_specificity_wins_multiple_classes PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_many_classes_dont_overrule_id PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_last_rule_wins_when_same_rule_twice_in_one_ruleset PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_rulesets_merged_for_duplicate_selectors PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_takes_final_rule_in_specificity_clash PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_empty_rulesets PASSED [  7%]
tests/css/test_stylesheet.py::test_stylesheet_apply_user_css_over_widget_css PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[transparent-expectation0-expected_color0] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[ansi_red-expectation1-expected_color1] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[ansi_bright_magenta-expectation2-expected_color2] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[red-expectation3-expected_color3] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[lime-expectation4-expected_color4] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[coral-expectation5-expected_color5] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[aqua-expectation6-expected_color6] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[deepskyblue-expectation7-expected_color7] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[rebeccapurple-expectation8-expected_color8] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[#ffcc00-expectation9-expected_color9] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[#ffcc0033-expectation10-expected_color10] PASSED [  7%]
tests/css/test_stylesheet.py::test_color_property_parsing[rgb(200,90,30)-expectation11-expected_color11] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[rgba(200,90,30,0.3)-expectation12-expected_color12] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[coffee-expectation13-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[ansi_dark_cyan-expectation14-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[red 4-expectation15-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[1-expectation16-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_color_property_parsing[()-expectation17-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[backgroundu-background] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[bckgroundu-background] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[ofset-x-offset-x] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[ofst_y-offset-y] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[colr-color] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[colour-color] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wdth-width] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wth-width] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[wh-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_css_property_names[xkcd-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[backgroundu-background] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[bckgroundu-background] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[ofset-x-offset-x] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[ofst_y-offset-y] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[colr-color] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[colour-color] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[wdth-width] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[wth-width] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[wh-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_property_names_in_nested_css[xkcd-None] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[color-blu-blue] PASSED [  8%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[background-chartruse-chartreuse] PASSED [  9%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[tint-ansi_whi-ansi_white] PASSED [  9%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[scrollbar-color-transprnt-transparent] PASSED [  9%]
tests/css/test_stylesheet.py::test_did_you_mean_for_color_names[color-xkcd-None] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warning-text] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warning_text] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext1] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[1warningtext] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[WarningText1] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext_] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[warningtext-] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[_warningtext] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_valid_names[-warningtext] PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_multiple_values PASSED [  9%]
tests/css/test_tokenize.py::test_single_line_comment PASSED              [  9%]
tests/css/test_tokenize.py::test_variable_declaration_comment_ignored PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_comment_interspersed_ignored PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_no_semicolon PASSED [  9%]
tests/css/test_tokenize.py::test_variable_declaration_invalid_value PASSED [  9%]
tests/css/test_tokenize.py::test_variables_declarations_amongst_rulesets PASSED [  9%]
tests/css/test_tokenize.py::test_variables_reference_in_rule_declaration_value PASSED [  9%]
tests/css/test_tokenize.py::test_variables_reference_in_rule_declaration_value_multiple PASSED [  9%]
tests/css/test_tokenize.py::test_variables_reference_in_variable_declaration PASSED [  9%]
tests/css/test_tokenize.py::test_variable_references_in_variable_declaration_multiple PASSED [  9%]
tests/css/test_tokenize.py::test_allow_new_lines PASSED                  [  9%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[blue-blur] PASSED [  9%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[br-blur] PASSED [  9%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[canfocus-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[can_focus-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[can-foc-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[drk-dark] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[ark-dark] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[disssabled-disabled] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[enalbed-enabled] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[focoswithin-focus-within] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[focus_whitin-focus-within] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[fcus-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[huver-hover] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes[LIght-light] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[blue-blur] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[br-blur] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[canfocus-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[can_focus-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[can-foc-can-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[drk-dark] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[ark-dark] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[disssabled-disabled] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[enalbed-enabled] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[focoswithin-focus-within] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[focus_whitin-focus-within] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[fcus-focus] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[huver-hover] PASSED [ 10%]
tests/css/test_tokenize.py::test_did_you_mean_pseudo_classes_in_nested_css[LIght-light] PASSED [ 10%]
tests/directory_tree/test_change_path.py::test_change_directory_tree_path PASSED [ 10%]
tests/directory_tree/test_early_show_root.py::test_managed_to_set_show_root_before_mounted PASSED [ 11%]
tests/document/test_document.py::test_text[I must not fear.\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_text[I must not fear.\nFear is the mind-killer.\n] PASSED [ 11%]
tests/document/test_document.py::test_text[I must not fear.\r\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_text[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 11%]
tests/document/test_document.py::test_lines_newline_eof PASSED           [ 11%]
tests/document/test_document.py::test_lines_no_newline_eof PASSED        [ 11%]
tests/document/test_document.py::test_lines_windows PASSED               [ 11%]
tests/document/test_document.py::test_lines_windows_newline PASSED       [ 11%]
tests/document/test_document.py::test_newline_unix PASSED                [ 11%]
tests/document/test_document.py::test_newline_windows PASSED             [ 11%]
tests/document/test_document.py::test_get_selected_text_no_selection PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_single_line PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_multiple_lines_unix PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_multiple_lines_windows PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_including_final_newline_unix PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_including_final_newline_windows PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_no_newline_at_end_of_file PASSED [ 11%]
tests/document/test_document.py::test_get_selected_text_no_newline_at_end_of_file_windows PASSED [ 11%]
tests/document/test_document.py::test_index_from_location[I must not fear.\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_index_from_location[I must not fear.\nFear is the mind-killer.\n] PASSED [ 11%]
tests/document/test_document.py::test_index_from_location[I must not fear.\r\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_index_from_location[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 11%]
tests/document/test_document.py::test_location_from_index[I must not fear.\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_location_from_index[I must not fear.\nFear is the mind-killer.\n] PASSED [ 11%]
tests/document/test_document.py::test_location_from_index[I must not fear.\r\nFear is the mind-killer.] PASSED [ 11%]
tests/document/test_document.py::test_location_from_index[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 11%]
tests/document/test_document.py::test_document_end[I must not fear.\nFear is the mind-killer.] PASSED [ 12%]
tests/document/test_document.py::test_document_end[I must not fear.\nFear is the mind-killer.\n] PASSED [ 12%]
tests/document/test_document.py::test_document_end[I must not fear.\r\nFear is the mind-killer.] PASSED [ 12%]
tests/document/test_document.py::test_document_end[I must not fear.\r\nFear is the mind-killer.\r\n] PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_single_character PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_single_newline PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_near_end_of_document PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_clearing_the_document PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_multiple_characters_on_one_line PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_multiple_lines_partially_spanned PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_end_of_line PASSED   [ 12%]
tests/document/test_document_delete.py::test_delete_single_line_excluding_newline PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_single_line_including_newline PASSED [ 12%]
tests/document/test_document_delete.py::test_delete_end_of_file_newline PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_no_newlines PASSED   [ 12%]
tests/document/test_document_insert.py::test_insert_empty_string PASSED  [ 12%]
tests/document/test_document_insert.py::test_insert_invalid_column PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_invalid_row_and_column PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_range_newline_file_start PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_newline_splits_line PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_newline_splits_line_selection PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_multiple_lines_ends_with_newline PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_multiple_lines_ends_with_no_newline PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_multiple_lines_starts_with_newline PASSED [ 12%]
tests/document/test_document_insert.py::test_insert_range_text_no_newlines PASSED [ 12%]
tests/document/test_document_insert.py::test_newline_eof PASSED          [ 12%]
tests/document/test_document_navigator.py::test_get_location_above[start0-end0] PASSED [ 12%]
tests/document/test_document_navigator.py::test_get_location_above[start1-end1] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start2-end2] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start3-end3] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start4-end4] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start5-end5] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start6-end6] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start7-end7] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start8-end8] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start9-end9] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_above[start10-end10] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start0-end0] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start1-end1] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start2-end2] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start3-end3] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start4-end4] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start5-end5] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start6-end6] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start7-end7] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_below[start8-end8] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start0-end0] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start1-end1] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start2-end2] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start3-end3] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start4-end4] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start5-end5] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start6-end6] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start7-end7] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_home[start8-end8] PASSED [ 13%]
tests/document/test_document_navigator.py::test_get_location_end[start0-end0] PASSED [ 14%]
tests/document/test_document_navigator.py::test_get_location_end[start1-end1] PASSED [ 14%]
tests/document/test_document_navigator.py::test_get_location_end[start2-end2] PASSED [ 14%]
tests/document/test_document_navigator.py::test_get_location_end[start3-end3] PASSED [ 14%]
tests/document/test_document_navigator.py::test_get_location_end[start4-end4] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_wrap PASSED                [ 14%]
tests/document/test_wrapped_document.py::test_wrap_empty_document PASSED [ 14%]
tests/document/test_wrapped_document.py::test_wrap_width_zero_no_wrapping PASSED [ 14%]
tests/document/test_wrapped_document.py::test_refresh_range PASSED       [ 14%]
tests/document/test_wrapped_document.py::test_refresh_range_new_text_wrapped PASSED [ 14%]
tests/document/test_wrapped_document.py::test_refresh_range_wrapping_at_previously_unavailable_range PASSED [ 14%]
tests/document/test_wrapped_document.py::test_refresh_range_wrapping_disabled_previously_unavailable_range PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset0-location0] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset1-location1] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset2-location2] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset3-location3] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset4-location4] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset5-location5] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset6-location6] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset7-location7] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_enabled[offset8-location8] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset0-location0] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset1-location1] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset2-location2] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset3-location3] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset4-location4] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset5-location5] PASSED [ 14%]
tests/document/test_wrapped_document.py::test_offset_to_location_wrapping_disabled[offset6-location6] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_offset_to_location_invalid_offset_clamps_to_valid_offset[offset0-location0] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_offset_to_location_invalid_offset_clamps_to_valid_offset[offset1-location1] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets[0-offsets0] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets[1-offsets1] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets[2-offsets2] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets_no_wrapping PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets_invalid_line_index[-4] PASSED [ 15%]
tests/document/test_wrapped_document.py::test_get_offsets_invalid_line_index[10000] PASSED [ 15%]
tests/footer/test_footer.py::test_footer_bindings PASSED                 [ 15%]
tests/input/test_cut_copy_paste.py::test_cut PASSED                      [ 15%]
tests/input/test_cut_copy_paste.py::test_copy PASSED                     [ 15%]
tests/input/test_cut_copy_paste.py::test_paste PASSED                    [ 15%]
tests/input/test_input_clear.py::test_input_clear PASSED                 [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_inside_first_word PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_word_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_password_delete_left_word_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_all_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_left_all_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_word_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_password_delete_right_word_from_home PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_word_from_end PASSED [ 15%]
tests/input/test_input_key_modification_actions.py::test_delete_right_all_from_home PASSED [ 16%]
tests/input/test_input_key_modification_actions.py::test_delete_right_all_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_home PASSED   [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_end PASSED    [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_word_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_word_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_password_input_left_word_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_word_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_password_input_right_word_from_home PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_word_from_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_right_word_to_the_end PASSED [ 16%]
tests/input/test_input_key_movement_actions.py::test_input_left_word_from_the_end PASSED [ 16%]
tests/input/test_input_messages.py::test_no_startup_messages PASSED      [ 16%]
tests/input/test_input_messages.py::test_startup_messages_with_initial_value PASSED [ 16%]
tests/input/test_input_messages.py::test_typing_from_empty_causes_changed PASSED [ 16%]
tests/input/test_input_messages.py::test_typing_from_pre_populated_causes_changed PASSED [ 16%]
tests/input/test_input_messages.py::test_submit_empty_input PASSED       [ 16%]
tests/input/test_input_messages.py::test_submit_pre_populated_input PASSED [ 16%]
tests/input/test_input_messages.py::test_paste_event_impact PASSED       [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-0-0] PASSED [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-1-1] PASSED [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-10-10] PASSED [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-47-47] PASSED [ 16%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-48-48] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[That gum you like is going to come back in style-58-48] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-0-0] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-1-0] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-2-1] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-3-1] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-4-2] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-5-2] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-9-4] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-10-5] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[\u3053\u3093\u306b\u3061\u306f-50-5] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-0-0] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-1-1] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-2-1] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-3-2] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-4-2] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-5-3] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-13-9] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-14-9] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-15-10] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_clicks_within[a\u3053\u3093bc\u306bd\u3061e\u306f-60-10] PASSED [ 17%]
tests/input/test_input_mouse.py::test_mouse_click_outwith_moves_cursor_to_nearest_cell PASSED [ 17%]
tests/input/test_input_properties.py::test_internal_value_no_password PASSED [ 17%]
tests/input/test_input_properties.py::test_internal_value_password PASSED [ 17%]
tests/input/test_input_properties.py::test_internal_value_highlighted PASSED [ 17%]
tests/input/test_input_properties.py::test_cursor_toggle PASSED          [ 17%]
tests/input/test_input_properties.py::test_input_height PASSED           [ 17%]
tests/input/test_input_properties.py::test_input_selected_text PASSED    [ 17%]
tests/input/test_input_properties.py::test_input_selection_deleted_programmatically PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection0-0123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection1-] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection2-123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection3-01234] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection4-0126789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection5-01234] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection6-0123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection7-] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection8-123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection9-01234] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection10-0126789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_delete[selection11-01234] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection0--0123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection1-X-X123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection2-X-01234X] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection3-X-012X6789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection4-X-01234X] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection5--0123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection6-X-X123456789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection7-X-01234X] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection8-X-012X6789] PASSED [ 18%]
tests/input/test_input_replace.py::test_input_replace[selection9-X-01234X] PASSED [ 18%]
tests/input/test_input_restrict.py::test_input_number_type PASSED        [ 18%]
tests/input/test_input_restrict.py::test_input_integer_type PASSED       [ 18%]
tests/input/test_input_restrict.py::test_bad_type PASSED                 [ 18%]
tests/input/test_input_restrict.py::test_max_length PASSED               [ 18%]
tests/input/test_input_restrict.py::test_restrict PASSED                 [ 19%]
tests/input/test_input_restrict.py::test_restrict_type PASSED            [ 19%]
tests/input/test_input_terminal_cursor.py::test_initial_terminal_cursor_position PASSED [ 19%]
tests/input/test_input_terminal_cursor.py::test_terminal_cursor_position_update_on_cursor_move PASSED [ 19%]
tests/input/test_input_validation.py::test_input_changed_message_validation_failure PASSED [ 19%]
tests/input/test_input_validation.py::test_input_changed_message_validation_success PASSED [ 19%]
tests/input/test_input_validation.py::test_input_submitted_message_validation_failure PASSED [ 19%]
tests/input/test_input_validation.py::test_input_submitted_message_validation_success PASSED [ 19%]
tests/input/test_input_validation.py::test_on_blur_triggers_validation PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on0] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on1] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on2] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on3] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on4] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_changed_should_not_happen[validate_on5] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on0] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on1] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on2] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on3] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_submitted_should_not_happen[validate_on4] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on0] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on1] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on2] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on3] PASSED [ 19%]
tests/input/test_input_validation.py::test_validation_on_blur_should_not_happen_unless_specified[validate_on4] PASSED [ 19%]
tests/input/test_input_validation.py::test_none_validate_on_means_all_validations_happen PASSED [ 19%]
tests/input/test_input_validation.py::test_valid_empty PASSED            [ 19%]
tests/layouts/test_common_layout_features.py::test_nodes_take_display_property_into_account_when_they_display_their_children[horizontal-block-True] PASSED [ 20%]
tests/layouts/test_common_layout_features.py::test_nodes_take_display_property_into_account_when_they_display_their_children[vertical-block-True] PASSED [ 20%]
tests/layouts/test_common_layout_features.py::test_nodes_take_display_property_into_account_when_they_display_their_children[horizontal-none-False] PASSED [ 20%]
tests/layouts/test_common_layout_features.py::test_nodes_take_display_property_into_account_when_they_display_their_children[vertical-none-False] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_height[GridLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_height[HorizontalLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_height[VerticalLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_width[GridLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_width[HorizontalLayout] PASSED [ 20%]
tests/layouts/test_content_dimensions.py::test_empty_widget_width[VerticalLayout] PASSED [ 20%]
tests/layouts/test_factory.py::test_get_layout_valid_layout PASSED       [ 20%]
tests/layouts/test_factory.py::test_get_layout_invalid_layout PASSED     [ 20%]
tests/layouts/test_horizontal.py::test_horizontal_get_content_width PASSED [ 20%]
tests/listview/test_inherit_listview.py::test_empty_inherited_list_view PASSED [ 20%]
tests/listview/test_inherit_listview.py::test_populated_inherited_list_view PASSED [ 20%]
tests/listview/test_inherit_listview.py::test_actions_work_when_list_view_empty PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[0-1] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[1-1] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[2-4] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[3-4] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[4-4] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[5-5] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[6-7] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[7-7] PASSED [ 20%]
tests/listview/test_listview_initial_index.py::test_listview_initial_index[8-1] PASSED [ 20%]
tests/listview/test_listview_navigation.py::test_keyboard_navigation_with_disabled_items PASSED [ 20%]
tests/listview/test_listview_remove_items.py::test_listview_pop_empty_raises_index_error PASSED [ 20%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[2-2-2-expected_highlighted0] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[0-0-0-expected_highlighted1] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[8-None-7-expected_highlighted2] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[4-2-3-expected_highlighted3] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_pop_updates_index_and_highlighting[4--2-4-expected_highlighted4] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[2-remove_indices0-2-expected_highlighted0] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[0-remove_indices1-0-expected_highlighted1] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[8-remove_indices2-7-expected_highlighted2] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[4-remove_indices3-2-expected_highlighted3] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[4-remove_indices4-4-expected_highlighted4] PASSED [ 21%]
tests/listview/test_listview_remove_items.py::test_listview_remove_items_updates_index_and_highlighting[4-remove_indices5-None-expected_highlighted5] PASSED [ 21%]
tests/notifications/test_all_levels_notifications.py::test_all_levels_of_notification PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_no_notifications PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_with_notifications PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_with_removing_notifications PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_with_notifications_that_expire PASSED [ 21%]
tests/notifications/test_app_notifications.py::test_app_clearing_notifications PASSED [ 21%]
tests/notifications/test_notification.py::test_message PASSED            [ 21%]
tests/notifications/test_notification.py::test_default_title PASSED      [ 21%]
tests/notifications/test_notification.py::test_default_severity_level PASSED [ 21%]
tests/notifications/test_notification.py::test_default_timeout PASSED    [ 21%]
tests/notifications/test_notification.py::test_identity_is_unique PASSED [ 21%]
tests/notifications/test_notification.py::test_time_out PASSED           [ 21%]
tests/notifications/test_notifications.py::test_empty_to_start_with PASSED [ 21%]
tests/notifications/test_notifications.py::test_many_notifications PASSED [ 21%]
tests/notifications/test_notifications.py::test_timeout PASSED           [ 21%]
tests/notifications/test_notifications.py::test_in PASSED                [ 21%]
tests/notifications/test_notifications.py::test_remove_notification PASSED [ 22%]
tests/notifications/test_notifications.py::test_remove_notification_multiple_times PASSED [ 22%]
tests/notifications/test_notifications.py::test_clear PASSED             [ 22%]
tests/option_list/test_option_list_create.py::test_all_parameters_become_options PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_id_capture PASSED     [ 22%]
tests/option_list/test_option_list_create.py::test_get_option_by_id PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_get_option_with_bad_id PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_get_option_by_index PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_get_option_at_bad_index PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_clear_option_list PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_add_later PASSED      [ 22%]
tests/option_list/test_option_list_create.py::test_create_with_duplicate_id PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_create_with_duplicate_id_and_subsequent_non_dupes PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_adding_multiple_duplicates_at_once PASSED [ 22%]
tests/option_list/test_option_list_create.py::test_options_are_available_soon PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_default_enabled PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_default_disabled PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_enabled_to_disabled_via_index PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_disabled_to_enabled_via_index PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_enabled_to_disabled_via_id PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_disabled_to_enabled_via_id PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_disable_invalid_id PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_disable_invalid_index PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_enable_invalid_id PASSED [ 22%]
tests/option_list/test_option_list_disabled.py::test_enable_invalid_index PASSED [ 22%]
tests/option_list/test_option_list_id_stability.py::test_get_after_add PASSED [ 22%]
tests/option_list/test_option_list_mouse_click.py::test_option_list_clicking_separator PASSED [ 22%]
tests/option_list/test_option_list_mouse_hover.py::test_no_hover PASSED  [ 23%]
tests/option_list/test_option_list_mouse_hover.py::test_hover_highlight PASSED [ 23%]
tests/option_list/test_option_list_mouse_hover.py::test_hover_no_highlight PASSED [ 23%]
tests/option_list/test_option_list_mouse_hover.py::test_hover_disabled PASSED [ 23%]
tests/option_list/test_option_list_mouse_hover.py::test_hover_then_leave PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_initial_highlight PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_cleared_highlight_is_none PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_cleared_movement_does_nothing PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_move_down PASSED    [ 23%]
tests/option_list/test_option_list_movement.py::test_move_down_from_end PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_move_up PASSED      [ 23%]
tests/option_list/test_option_list_movement.py::test_move_up_from_nowhere PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_move_end PASSED     [ 23%]
tests/option_list/test_option_list_movement.py::test_move_home PASSED    [ 23%]
tests/option_list/test_option_list_movement.py::test_page_down_from_start_short_list PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_page_up_from_end_short_list PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_page_down_from_end_short_list PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_page_up_from_start_short_list PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_empty_list_movement PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[up-99] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[down-0] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[home-0] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[end-99] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[pageup-0] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_no_highlight_movement[pagedown-99] PASSED [ 23%]
tests/option_list/test_option_list_movement.py::test_keyboard_navigation_with_disabled_options PASSED [ 23%]
tests/option_list/test_option_list_option_subclass.py::test_option_list_with_subclassed_options PASSED [ 23%]
tests/option_list/test_option_messages.py::test_messages_on_startup PASSED [ 24%]
tests/option_list/test_option_messages.py::test_same_highlight_message PASSED [ 24%]
tests/option_list/test_option_messages.py::test_highlight_disabled_option_no_message PASSED [ 24%]
tests/option_list/test_option_messages.py::test_new_highlight PASSED     [ 24%]
tests/option_list/test_option_messages.py::test_move_highlight_with_keyboard PASSED [ 24%]
tests/option_list/test_option_messages.py::test_select_message_with_keyboard PASSED [ 24%]
tests/option_list/test_option_messages.py::test_click_option_with_mouse PASSED [ 24%]
tests/option_list/test_option_messages.py::test_click_disabled_option_with_mouse PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_option_prompt_with_invalid_id PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_option_prompt_with_invalid_index PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_option_prompt_with_valid_id PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_option_prompt_with_valid_index PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_single_line_option_prompt_with_multiple PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_multiple_line_option_prompt_with_single PASSED [ 24%]
tests/option_list/test_option_prompt_replacement.py::test_replace_multiple_line_option_prompt_with_multiple PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_first_option_via_index PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_first_option_via_id PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_last_option_via_index PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_last_option_via_id PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_all_options_via_index PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_all_options_via_id PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_invalid_id PASSED  [ 24%]
tests/option_list/test_option_removal.py::test_remove_invalid_index PASSED [ 24%]
tests/option_list/test_option_removal.py::test_remove_with_hover_on_last_option PASSED [ 24%]
tests/renderables/test_sparkline.py::test_sparkline_no_data PASSED       [ 24%]
tests/renderables/test_sparkline.py::test_sparkline_single_datapoint PASSED [ 24%]
tests/renderables/test_sparkline.py::test_sparkline_two_values_min_max PASSED [ 24%]
tests/renderables/test_sparkline.py::test_sparkline_expand_data_to_width PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_expand_data_to_width_non_divisible PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_shrink_data_to_width PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_color_blend PASSED   [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data0] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data1] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data2] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[\x01\x02\x03] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data4] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data5] PASSED [ 25%]
tests/renderables/test_sparkline.py::test_sparkline_sequence_types[data6] PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_simple_text_opacity PASSED  [ 25%]
tests/renderables/test_text_opacity.py::test_value_zero_doesnt_render_the_text PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_text_opacity_value_of_one_noop PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_ansi_colors_noop PASSED     [ 25%]
tests/renderables/test_text_opacity.py::test_text_opacity_no_style_noop PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_text_opacity_only_fg_noop PASSED [ 25%]
tests/renderables/test_text_opacity.py::test_text_opacity_only_bg_noop PASSED [ 25%]
tests/renderables/test_tint.py::test_tint PASSED                         [ 25%]
tests/renderables/test_tint.py::test_tint_ansi_mapping PASSED            [ 25%]
tests/renderables/test_underline_bar.py::test_no_highlight PASSED        [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_from_zero PASSED [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_from_zero_point_five PASSED [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_middle PASSED    [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_half_start PASSED [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_half_end PASSED  [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_half_start_and_half_end PASSED [ 25%]
tests/renderables/test_underline_bar.py::test_highlight_to_near_end PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_to_end PASSED    [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_out_of_bounds_start PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_out_of_bounds_end PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_full_range_out_of_bounds_end PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_highlight_full_range_out_of_bounds_start PASSED [ 26%]
tests/renderables/test_underline_bar.py::test_custom_styles PASSED       [ 26%]
tests/renderables/test_underline_bar.py::test_clickable_ranges PASSED    [ 26%]
tests/select/test_blank_and_clear.py::test_value_is_blank_by_default PASSED [ 26%]
tests/select/test_blank_and_clear.py::test_setting_and_checking_blank PASSED [ 26%]
tests/select/test_blank_and_clear.py::test_clear_with_allow_blanks PASSED [ 26%]
tests/select/test_blank_and_clear.py::test_clear_fails_if_allow_blank_is_false PASSED [ 26%]
tests/select/test_changed_message.py::test_message_control PASSED        [ 26%]
tests/select/test_changed_message.py::test_selecting_posts_message PASSED [ 26%]
tests/select/test_changed_message.py::test_same_selection_does_not_post_message PASSED [ 26%]
tests/select/test_changed_message.py::test_setting_value_posts_message PASSED [ 26%]
tests/select/test_empty_select.py::test_empty_select_is_ok_with_blanks PASSED [ 26%]
tests/select/test_empty_select.py::test_empty_set_options_is_ok_with_blanks PASSED [ 26%]
tests/select/test_empty_select.py::test_empty_select_raises_exception_if_allow_blank_is_false PASSED [ 26%]
tests/select/test_empty_select.py::test_empty_set_options_raises_exception_if_allow_blank_is_false PASSED [ 26%]
tests/select/test_prompt.py::test_reactive_prompt_change PASSED          [ 26%]
tests/select/test_prompt.py::test_reactive_prompt_change_when_allow_blank_is_false PASSED [ 26%]
tests/select/test_remove.py::test_select_remove PASSED                   [ 26%]
tests/select/test_value.py::test_initial_value_is_validated PASSED       [ 26%]
tests/select/test_value.py::test_value_unknown_option_raises_error PASSED [ 26%]
tests/select/test_value.py::test_initial_value_inside_compose_is_validated PASSED [ 26%]
tests/select/test_value.py::test_value_assign_to_blank PASSED            [ 26%]
tests/select/test_value.py::test_initial_value_is_picked_if_allow_blank_is_false PASSED [ 26%]
tests/select/test_value.py::test_set_value_to_blank_with_allow_blank_false PASSED [ 27%]
tests/select/test_value.py::test_set_options_resets_value_to_blank PASSED [ 27%]
tests/select/test_value.py::test_set_options_resets_value_if_allow_blank_is_false PASSED [ 27%]
tests/selection_list/test_over_wide_selections.py::test_over_wide_options PASSED [ 27%]
tests/selection_list/test_selection_click_checkbox.py::test_click_on_prompt PASSED [ 27%]
tests/selection_list/test_selection_click_checkbox.py::test_click_on_checkbox PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_all_parameters_become_selctions PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_get_selection_by_index PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_get_selection_by_id PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_add_later PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_add_later_selcted_state PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_add_non_selections PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_clear_options PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_options_are_available_soon PASSED [ 27%]
tests/selection_list/test_selection_list_create.py::test_removing_option_updates_indexes PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_messages_on_startup PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_new_highlight PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_toggle PASSED      [ 27%]
tests/selection_list/test_selection_messages.py::test_toggle_via_user PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_toggle_all PASSED  [ 27%]
tests/selection_list/test_selection_messages.py::test_select PASSED      [ 27%]
tests/selection_list/test_selection_messages.py::test_select_selected PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_select_all PASSED  [ 27%]
tests/selection_list/test_selection_messages.py::test_select_all_selected PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_deselect PASSED    [ 27%]
tests/selection_list/test_selection_messages.py::test_deselect_deselected PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_deselect_all PASSED [ 27%]
tests/selection_list/test_selection_messages.py::test_select_then_deselect_all PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_empty_selected PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_select PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_select_all PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_deselect PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_deselect_all PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_toggle PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_programatic_toggle_all PASSED [ 28%]
tests/selection_list/test_selection_values.py::test_removal_of_selected_item PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_no_suggestions PASSED    [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion PASSED        [ 28%]
tests/suggester/test_input_suggestions.py::test_accept_suggestion PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_no_suggestion_on_empty_value PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_no_suggestion_on_empty_value_after_deleting PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_shows_up_after_deleting_extra_chars PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_shows_up_after_deleting_extra_chars_in_middle_of_word PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[.......-3] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[hey there-3] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[Ol\xe1, tudo bem?-3] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[\xe1\xe0\xf3\xe3\xf5\xf1\xe7-2] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~-3] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[~}|{`_^]\\[@?>=<;:/.-,+*)('&%$#"!-5] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_with_special_characters[!$'*-:=@]`}-5] PASSED [ 28%]
tests/suggester/test_input_suggestions.py::test_suggestion_priority PASSED [ 28%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority PASSED [ 28%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[s] PASSED [ 28%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[S] PASSED [ 28%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[sc] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[sC] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[Sc] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_case_insensitive_suggestions[SC] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[p] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[P] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[po] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[Po] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[pO] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[PO] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[port] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[Port] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[pORT] PASSED [ 29%]
tests/suggester/test_suggest_from_list.py::test_first_suggestion_has_priority_case_insensitive[PORT] PASSED [ 29%]
tests/suggester/test_suggester.py::test_cache_on PASSED                  [ 29%]
tests/suggester/test_suggester.py::test_cache_off PASSED                 [ 29%]
tests/suggester/test_suggester.py::test_suggestion_ready_message PASSED  [ 29%]
tests/suggester/test_suggester.py::test_no_message_if_no_suggestion PASSED [ 29%]
tests/suggester/test_suggester.py::test_suggestion_ready_message_on_cache_hit PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[hello] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[HELLO] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[HeLlO] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[Hello] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_suggestions[hELLO] PASSED [ 29%]
tests/suggester/test_suggester.py::test_case_insensitive_cache_hits PASSED [ 29%]
tests/test_actions.py::test_parse_action[spam--spam-expected_arguments0] PASSED [ 29%]
tests/test_actions.py::test_parse_action[hypothetical_action()--hypothetical_action-expected_arguments1] PASSED [ 29%]
tests/test_actions.py::test_parse_action[another_action(1)--another_action-expected_arguments2] PASSED [ 30%]
tests/test_actions.py::test_parse_action[foo(True, False)--foo-expected_arguments3] PASSED [ 30%]
tests/test_actions.py::test_parse_action[foo.bar.baz(3, 3.15, 'Python')-foo.bar-baz-expected_arguments4] PASSED [ 30%]
tests/test_actions.py::test_parse_action[m1234.n5678(None, [1, 2])-m1234-n5678-expected_arguments5] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f()-expected_arguments0] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(())-expected_arguments1] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2, 3))-expected_arguments2] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2, 3), (1, 2, 3))-expected_arguments3] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(((1, 2), (), None), 0)-expected_arguments4] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((((((1))))))-expected_arguments5] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f(((((((((1, 2)))))))))-expected_arguments6] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((1, 2), (3, 4))-expected_arguments7] PASSED [ 30%]
tests/test_actions.py::test_nested_and_convoluted_tuple_arguments[f((((((1, 2), (3, 4))))))-expected_arguments8] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('')-expected_arguments0] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f("")-expected_arguments1] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('''''')-expected_arguments2] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f("""""")-expected_arguments3] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('(')-expected_arguments4] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f(')')-expected_arguments5] PASSED [ 30%]
tests/test_actions.py::test_parse_action_nested_special_character_arguments[f('f()')-expected_arguments6] PASSED [ 30%]
tests/test_actions.py::test_parse_action_raises_error[foo(,,,,,)] PASSED [ 30%]
tests/test_actions.py::test_parse_action_raises_error[bar(1 2 3 4 5)] PASSED [ 30%]
tests/test_actions.py::test_parse_action_raises_error[baz.spam(Tru, Fals, in)] PASSED [ 30%]
tests/test_actions.py::test_parse_action_raises_error[ham(not)] PASSED   [ 30%]
tests/test_actions.py::test_parse_action_raises_error[cheese((((()] PASSED [ 30%]
tests/test_animation.py::test_animate_height PASSED                      [ 30%]
tests/test_animation.py::test_scheduling_animation PASSED                [ 30%]
tests/test_animation.py::test_wait_for_current_animations PASSED         [ 30%]
tests/test_animation.py::test_wait_for_current_and_scheduled_animations PASSED [ 31%]
tests/test_animation.py::test_reverse_animations PASSED                  [ 31%]
tests/test_animation.py::test_schedule_reverse_animations PASSED         [ 31%]
tests/test_animation.py::test_cancel_app_animation PASSED                [ 31%]
tests/test_animation.py::test_cancel_app_non_animation PASSED            [ 31%]
tests/test_animation.py::test_cancel_widget_animation PASSED             [ 31%]
tests/test_animation.py::test_cancel_widget_non_animation PASSED         [ 31%]
tests/test_animator.py::test_simple_animation PASSED                     [ 31%]
tests/test_animator.py::test_simple_animation_duration_zero PASSED       [ 31%]
tests/test_animator.py::test_simple_animation_reverse PASSED             [ 31%]
tests/test_animator.py::test_animatable PASSED                           [ 31%]
tests/test_animator.py::test_animator PASSED                             [ 31%]
tests/test_animator.py::test_bound_animator PASSED                       [ 31%]
tests/test_animator.py::test_animator_on_complete_callback_not_fired_before_duration_ends PASSED [ 31%]
tests/test_animator.py::test_animator_on_complete_callback_fired_at_duration PASSED [ 31%]
tests/test_animator.py::test_force_stop_animation PASSED                 [ 31%]
tests/test_app.py::test_batch_update PASSED                              [ 31%]
tests/test_app.py::test_hover_update_styles PASSED                       [ 31%]
tests/test_app.py::test_setting_title PASSED                             [ 31%]
tests/test_app.py::test_setting_sub_title PASSED                         [ 31%]
tests/test_app.py::test_default_return_code_is_zero PASSED               [ 31%]
tests/test_app.py::test_return_code_is_one_after_crash PASSED            [ 31%]
tests/test_app.py::test_set_return_code PASSED                           [ 31%]
tests/test_app.py::test_no_return_code_before_running PASSED             [ 31%]
tests/test_app.py::test_no_return_code_while_running PASSED              [ 31%]
tests/test_app.py::test_ansi_theme PASSED                                [ 31%]
tests/test_app.py::test_early_exit PASSED                                [ 31%]
tests/test_app.py::test_early_exit_inline PASSED                         [ 32%]
tests/test_app.py::test_search_with_simple_commands PASSED               [ 32%]
tests/test_app.py::test_search_with_tuples PASSED                        [ 32%]
tests/test_app.py::test_search_with_empty_list PASSED                    [ 32%]
tests/test_app.py::test_click_chain_initial_repeated_clicks[1-1] event: Click(Label(id='one'), x=0, y=0, chain=1)
PASSED  [ 32%]
tests/test_app.py::test_click_chain_initial_repeated_clicks[2-3] event: Click(Label(id='one'), x=0, y=0, chain=1)
event: Click(Label(id='one'), x=0, y=0, chain=2)
PASSED  [ 32%]
tests/test_app.py::test_click_chain_initial_repeated_clicks[3-6] event: Click(Label(id='one'), x=0, y=0, chain=1)
event: Click(Label(id='one'), x=0, y=0, chain=2)
event: Click(Label(id='one'), x=0, y=0, chain=3)
PASSED  [ 32%]
tests/test_app.py::test_click_chain_different_offset PASSED              [ 32%]
tests/test_app.py::test_click_chain_offset_changes_mid_chain PASSED      [ 32%]
tests/test_app.py::test_click_chain_time_outwith_threshold PASSED        [ 32%]
tests/test_app_focus_blur.py::test_app_blur PASSED                       [ 32%]
tests/test_app_focus_blur.py::test_app_focus_restores_focus PASSED       [ 32%]
tests/test_app_focus_blur.py::test_app_focus_restores_none_focus PASSED  [ 32%]
tests/test_app_focus_blur.py::test_app_focus_handles_missing_widget PASSED [ 32%]
tests/test_app_focus_blur.py::test_app_focus_defers_to_new_focus PASSED  [ 32%]
tests/test_arrange.py::test_arrange_empty PASSED                         [ 32%]
tests/test_arrange.py::test_arrange_dock_top PASSED                      [ 32%]
tests/test_arrange.py::test_arrange_dock_left PASSED                     [ 32%]
tests/test_arrange.py::test_arrange_dock_right PASSED                    [ 32%]
tests/test_arrange.py::test_arrange_dock_bottom PASSED                   [ 32%]
tests/test_arrange.py::test_arrange_dock_badly PASSED                    [ 32%]
tests/test_auto_refresh.py::test_auto_refresh PASSED                     [ 32%]
tests/test_await_remove.py::test_multiple_simultaneous_removals PASSED   [ 32%]
tests/test_binary_encode.py::test_round_trip[None] PASSED                [ 32%]
tests/test_binary_encode.py::test_round_trip[False] PASSED               [ 32%]
tests/test_binary_encode.py::test_round_trip[True] PASSED                [ 32%]
tests/test_binary_encode.py::test_round_trip[-10] PASSED                 [ 32%]
tests/test_binary_encode.py::test_round_trip[-1] PASSED                  [ 33%]
tests/test_binary_encode.py::test_round_trip[0] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[1] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[100] PASSED                 [ 33%]
tests/test_binary_encode.py::test_round_trip[2] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[\U0001f4a9] PASSED          [ 33%]
tests/test_binary_encode.py::test_round_trip[Hello] PASSED               [ 33%]
tests/test_binary_encode.py::test_round_trip[World] PASSED               [ 33%]
tests/test_binary_encode.py::test_round_trip[3] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[data13] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data14] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data15] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data16] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data17] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data18] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data19] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data20] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[4] PASSED                   [ 33%]
tests/test_binary_encode.py::test_round_trip[data22] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data23] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data24] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data25] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data26] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data27] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data28] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data29] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data30] PASSED              [ 33%]
tests/test_binary_encode.py::test_round_trip[data31] PASSED              [ 34%]
tests/test_binary_encode.py::test_round_trip[data32] PASSED              [ 34%]
tests/test_binary_encode.py::test_round_trip[data33] PASSED              [ 34%]
tests/test_binary_encode.py::test_round_trip[data34] PASSED              [ 34%]
tests/test_binary_encode.py::test_round_trip[data35] PASSED              [ 34%]
tests/test_binary_encode.py::test_bad_encoding[] PASSED                  [ 34%]
tests/test_binary_encode.py::test_bad_encoding[100:hello] PASSED         [ 34%]
tests/test_binary_encode.py::test_bad_encoding[i] PASSED                 [ 34%]
tests/test_binary_encode.py::test_bad_encoding[i1] PASSED                [ 34%]
tests/test_binary_encode.py::test_bad_encoding[i10] PASSED               [ 34%]
tests/test_binary_encode.py::test_bad_encoding[li1e] PASSED              [ 34%]
tests/test_binary_encode.py::test_bad_encoding[x100] PASSED              [ 34%]
tests/test_binary_encode.py::test_dump_invalid_type[data0] PASSED        [ 34%]
tests/test_binary_encode.py::test_dump_invalid_type[float] PASSED        [ 34%]
tests/test_binary_encode.py::test_dump_invalid_type[data2] PASSED        [ 34%]
tests/test_binary_encode.py::test_dump_invalid_type[data3] PASSED        [ 34%]
tests/test_binary_encode.py::test_load_wrong_type PASSED                 [ 34%]
tests/test_binding.py::test_bindings_get_key PASSED                      [ 34%]
tests/test_binding.py::test_bindings_get_key_spaced_list PASSED          [ 34%]
tests/test_binding.py::test_bindings_merge_simple PASSED                 [ 34%]
tests/test_binding.py::test_bindings_merge_overlap PASSED                [ 34%]
tests/test_binding.py::test_bad_binding_tuple PASSED                     [ 34%]
tests/test_binding.py::test_binding_from_tuples PASSED                   [ 34%]
tests/test_binding.py::test_shown PASSED                                 [ 34%]
tests/test_binding.py::test_invalid_binding PASSED                       [ 34%]
tests/test_binding_inheritance.py::test_just_app_no_bindings PASSED      [ 34%]
tests/test_binding_inheritance.py::test_just_app_alpha_binding PASSED    [ 34%]
tests/test_binding_inheritance.py::test_just_app_low_priority_alpha_binding PASSED [ 34%]
tests/test_binding_inheritance.py::test_app_screen_with_bindings PASSED  [ 35%]
tests/test_binding_inheritance.py::test_app_screen_with_low_bindings PASSED [ 35%]
tests/test_binding_inheritance.py::test_pressing_alpha_on_app PASSED     [ 35%]
tests/test_binding_inheritance.py::test_pressing_movement_keys_app PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings_on_screen PASSED [ 35%]
tests/test_binding_inheritance.py::test_contained_focused_child_widget_with_movement_bindings_on_screen PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_with_movement_bindings_no_inherit PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_no_inherit_with_movement_bindings_on_screen PASSED [ 35%]
tests/test_binding_inheritance.py::test_focused_child_widget_no_inherit_empty_bindings_with_movement_bindings_on_screen PASSED [ 35%]
tests/test_binding_inheritance.py::test_overlapping_priority_bindings PASSED [ 35%]
tests/test_binding_inheritance.py::test_skip_action PASSED               [ 35%]
tests/test_border.py::test_border_render_row PASSED                      [ 35%]
tests/test_border.py::test_border_title_single_line PASSED               [ 35%]
tests/test_border.py::test_border_subtitle_single_line PASSED            [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[10-True-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[10-True-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[10-False-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[10-False-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[1-True-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[1-True-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[1-False-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_empty_label_skipped[1-False-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-True-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-True-False] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-2-False-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-3-True-True] PASSED [ 35%]
tests/test_border.py::test_render_border_label_skipped_if_narrow[hey-4-True-True] PASSED [ 36%]
tests/test_border.py::test_render_border_label_wide_plain[Why did the scarecrow] PASSED [ 36%]
tests/test_border.py::test_render_border_label_wide_plain[win a Nobel prize?] PASSED [ 36%]
tests/test_border.py::test_render_border_label_wide_plain[because it was outstanding] PASSED [ 36%]
tests/test_border.py::test_render_border_label_wide_plain[in its field.] PASSED [ 36%]
tests/test_border.py::test_render_border_empty_text_with_markup[[b][/]] PASSED [ 36%]
tests/test_border.py::test_render_border_empty_text_with_markup[[i b][/]] PASSED [ 36%]
tests/test_border.py::test_render_border_empty_text_with_markup[[white on red][/]] PASSED [ 36%]
tests/test_border.py::test_render_border_empty_text_with_markup[[blue]] PASSED [ 36%]
tests/test_border.py::test_render_border_label PASSED                    [ 36%]
tests/test_border_subtitle.py::test_border_subtitle PASSED               [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad10-quad20-expected0] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad11-quad21-expected1] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad12-quad22-expected2] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad13-quad23-expected3] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad14-quad24-expected4] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad15-quad25-expected5] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad16-quad26-expected6] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad17-quad27-expected7] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad18-quad28-expected8] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad19-quad29-expected9] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad110-quad210-expected10] PASSED [ 36%]
tests/test_box_drawing.py::test_box_combine_quads[quad111-quad211-expected11] PASSED [ 36%]
tests/test_box_model.py::test_content_box PASSED                         [ 36%]
tests/test_box_model.py::test_width PASSED                               [ 36%]
tests/test_box_model.py::test_height PASSED                              [ 36%]
tests/test_box_model.py::test_max PASSED                                 [ 36%]
tests/test_box_model.py::test_min PASSED                                 [ 37%]
tests/test_cache.py::test_lru_cache PASSED                               [ 37%]
tests/test_cache.py::test_lru_cache_hits PASSED                          [ 37%]
tests/test_cache.py::test_lru_cache_get PASSED                           [ 37%]
tests/test_cache.py::test_lru_cache_maxsize PASSED                       [ 37%]
tests/test_cache.py::test_lru_cache_mapping PASSED                       [ 37%]
tests/test_cache.py::test_lru_cache_clear PASSED                         [ 37%]
tests/test_cache.py::test_lru_cache_bool PASSED                          [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys0-expected0] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys1-expected1] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys2-expected2] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys3-expected3] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys4-expected4] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_evicts[keys5-expected5] PASSED       [ 37%]
tests/test_cache.py::test_lru_cache_len[keys0-0] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys1-1] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys2-2] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys3-3] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys4-3] PASSED                  [ 37%]
tests/test_cache.py::test_lru_cache_len[keys5-3] PASSED                  [ 37%]
tests/test_cache.py::test_fifo_cache PASSED                              [ 37%]
tests/test_cache.py::test_fifo_cache_hits PASSED                         [ 37%]
tests/test_cache.py::test_discard PASSED                                 [ 37%]
tests/test_cache.py::test_discard_regression PASSED                      [ 37%]
tests/test_call_x_schedulers.py::test_call_later PASSED                  [ 37%]
tests/test_call_x_schedulers.py::test_call_after_refresh PASSED          [ 37%]
tests/test_case.py::test_camel_to_snake PASSED                           [ 37%]
tests/test_collapsible.py::test_collapsible PASSED                       [ 38%]
tests/test_collapsible.py::test_compose_default_collapsible PASSED       [ 38%]
tests/test_collapsible.py::test_compose_empty_collapsible PASSED         [ 38%]
tests/test_collapsible.py::test_compose_nested_collapsible PASSED        [ 38%]
tests/test_collapsible.py::test_compose_expanded_collapsible PASSED      [ 38%]
tests/test_collapsible.py::test_collapsible_collapsed_contents_display_false PASSED [ 38%]
tests/test_collapsible.py::test_collapsible_expanded_contents_display_true PASSED [ 38%]
tests/test_collapsible.py::test_toggle_title PASSED                      [ 38%]
tests/test_collapsible.py::test_toggle_message PASSED                    [ 38%]
tests/test_collapsible.py::test_expand_message PASSED                    [ 38%]
tests/test_collapsible.py::test_expand_via_watcher_message PASSED        [ 38%]
tests/test_collapsible.py::test_collapse_message PASSED                  [ 38%]
tests/test_collapsible.py::test_collapse_via_watcher_message PASSED      [ 38%]
tests/test_collapsible.py::test_collapsible_title_reactive_change PASSED [ 38%]
tests/test_color.py::test_rich_color PASSED                              [ 38%]
tests/test_color.py::test_normalized PASSED                              [ 38%]
tests/test_color.py::test_clamped PASSED                                 [ 38%]
tests/test_color.py::test_css PASSED                                     [ 38%]
tests/test_color.py::test_monochrome PASSED                              [ 38%]
tests/test_color.py::test_rgb PASSED                                     [ 38%]
tests/test_color.py::test_hsl PASSED                                     [ 38%]
tests/test_color.py::test_color_brightness PASSED                        [ 38%]
tests/test_color.py::test_color_hex PASSED                               [ 38%]
tests/test_color.py::test_color_hex6 PASSED                              [ 38%]
tests/test_color.py::test_color_css PASSED                               [ 38%]
tests/test_color.py::test_color_with_alpha PASSED                        [ 38%]
tests/test_color.py::test_multiply_alpha PASSED                          [ 38%]
tests/test_color.py::test_color_blend PASSED                             [ 39%]
tests/test_color.py::test_color_parse[#000000-expected0] PASSED          [ 39%]
tests/test_color.py::test_color_parse[#ffffff-expected1] PASSED          [ 39%]
tests/test_color.py::test_color_parse[#FFFFFF-expected2] PASSED          [ 39%]
tests/test_color.py::test_color_parse[#fab-expected3] PASSED             [ 39%]
tests/test_color.py::test_color_parse[#fab0-expected4] PASSED            [ 39%]
tests/test_color.py::test_color_parse[#020304ff-expected5] PASSED        [ 39%]
tests/test_color.py::test_color_parse[#02030400-expected6] PASSED        [ 39%]
tests/test_color.py::test_color_parse[#0203040f-expected7] PASSED        [ 39%]
tests/test_color.py::test_color_parse[rgb(0,0,0)-expected8] PASSED       [ 39%]
tests/test_color.py::test_color_parse[rgb(255,255,255)-expected9] PASSED [ 39%]
tests/test_color.py::test_color_parse[rgba(255,255,255,1)-expected10] PASSED [ 39%]
tests/test_color.py::test_color_parse[rgb(2,3,4)-expected11] PASSED      [ 39%]
tests/test_color.py::test_color_parse[rgba(2,3,4,1.0)-expected12] PASSED [ 39%]
tests/test_color.py::test_color_parse[rgba(2,3,4,0.058823529411764705)-expected13] PASSED [ 39%]
tests/test_color.py::test_color_parse[hsl(45,25%,25%)-expected14] PASSED [ 39%]
tests/test_color.py::test_color_parse[hsla(45,25%,25%,0.35)-expected15] PASSED [ 39%]
tests/test_color.py::test_color_parse_input_has_spaces[rgb( 300, 300 , 300 )-output0] PASSED [ 39%]
tests/test_color.py::test_color_parse_input_has_spaces[rgba( 2 , 3 , 4, 1.0 )-output1] PASSED [ 39%]
tests/test_color.py::test_color_parse_input_has_spaces[hsl( 45, 25% , 25% )-output2] PASSED [ 39%]
tests/test_color.py::test_color_parse_input_has_spaces[hsla( 45, 25% , 25%, 0.35 )-output3] PASSED [ 39%]
tests/test_color.py::test_color_parse_clamp[rgb(300, 300, 300)-output0] PASSED [ 39%]
tests/test_color.py::test_color_parse_clamp[rgba(300, 300, 300, 300)-output1] PASSED [ 39%]
tests/test_color.py::test_color_parse_clamp[hsl(400, 200%, 250%)-output2] PASSED [ 39%]
tests/test_color.py::test_color_parse_clamp[hsla(400, 200%, 250%, 1.9)-output3] PASSED [ 39%]
tests/test_color.py::test_color_parse_hsl_negative_degrees PASSED        [ 39%]
tests/test_color.py::test_color_parse_hsla_negative_degrees PASSED       [ 39%]
tests/test_color.py::test_color_parse_color PASSED                       [ 39%]
tests/test_color.py::test_color_add[color10-color20-expected0] PASSED    [ 40%]
tests/test_color.py::test_color_add[color11-color21-expected1] PASSED    [ 40%]
tests/test_color.py::test_color_add[color12-color22-expected2] PASSED    [ 40%]
tests/test_color.py::test_color_add[color13-color23-expected3] PASSED    [ 40%]
tests/test_color.py::test_color_add[color14-color24-expected4] PASSED    [ 40%]
tests/test_color.py::test_color_add[color15-foo-expected5] PASSED        [ 40%]
tests/test_color.py::test_color_darken PASSED                            [ 40%]
tests/test_color.py::test_color_lighten PASSED                           [ 40%]
tests/test_color.py::test_rgb_to_lab[10-23-73-10.245-15.913--32.672] PASSED [ 40%]
tests/test_color.py::test_rgb_to_lab[200-34-123-45.438-67.75--8.008] PASSED [ 40%]
tests/test_color.py::test_rgb_to_lab[0-0-0-0-0-0] PASSED                 [ 40%]
tests/test_color.py::test_rgb_to_lab[255-255-255-100-0-0] PASSED         [ 40%]
tests/test_color.py::test_lab_to_rgb[10-23-73-10.245-15.913--32.672] PASSED [ 40%]
tests/test_color.py::test_lab_to_rgb[200-34-123-45.438-67.75--8.008] PASSED [ 40%]
tests/test_color.py::test_lab_to_rgb[0-0-0-0-0-0] PASSED                 [ 40%]
tests/test_color.py::test_lab_to_rgb[255-255-255-100-0-0] PASSED         [ 40%]
tests/test_color.py::test_rgb_lab_rgb_roundtrip PASSED                   [ 40%]
tests/test_color.py::test_inverse PASSED                                 [ 40%]
tests/test_color.py::test_gradient_errors PASSED                         [ 40%]
tests/test_color.py::test_gradient PASSED                                [ 40%]
tests/test_color.py::test_is_transparent PASSED                          [ 40%]
tests/test_color.py::test_tint[base0-tint0-expected0] PASSED             [ 40%]
tests/test_color.py::test_tint[base1-tint1-expected1] PASSED             [ 40%]
tests/test_color.py::test_tint[base2-tint2-expected2] PASSED             [ 40%]
tests/test_color.py::test_tint[base3-tint3-expected3] PASSED             [ 40%]
tests/test_compositor.py::test_compositor_scroll_placements PASSED       [ 40%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_no_regions PASSED [ 40%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_single_region PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_partially_overlapping_regions PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_fully_overlapping_regions PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_disjoint_regions_different_lines PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_disjoint_regions_same_line PASSED [ 41%]
tests/test_compositor_regions_to_spans.py::test_regions_to_ranges_directly_adjacent_ranges_merged PASSED [ 41%]
tests/test_concurrency.py::test_call_from_thread_app_not_running PASSED  [ 41%]
tests/test_concurrency.py::test_call_from_thread PASSED                  [ 41%]
tests/test_constants.py::test_environ_int PASSED                         [ 41%]
tests/test_constants.py::test_environ_bool PASSED                        [ 41%]
tests/test_constants.py::test_environ_port PASSED                        [ 41%]
tests/test_containers.py::test_horizontal_vs_horizontalscroll_scrolling PASSED [ 41%]
tests/test_containers.py::test_vertical_vs_verticalscroll_scrolling PASSED [ 41%]
tests/test_containers.py::test_center_container PASSED                   [ 41%]
tests/test_containers.py::test_middle_container PASSED                   [ 41%]
tests/test_containers.py::test_scrollbar_zero_thickness PASSED           [ 41%]
tests/test_content.py::test_constructor PASSED                           [ 41%]
tests/test_content.py::test_bool PASSED                                  [ 41%]
tests/test_content.py::test_from_rich_text PASSED                        [ 41%]
tests/test_content.py::test_styled PASSED                                [ 41%]
tests/test_content.py::test_getitem PASSED                               [ 41%]
tests/test_content.py::test_cell_length PASSED                           [ 41%]
tests/test_content_switcher.py::test_no_initial_display PASSED           [ 41%]
tests/test_content_switcher.py::test_initial_display PASSED              [ 41%]
tests/test_content_switcher.py::test_no_initial_display_then_set PASSED  [ 41%]
tests/test_content_switcher.py::test_initial_display_then_change PASSED  [ 41%]
tests/test_content_switcher.py::test_initial_display_then_hide PASSED    [ 41%]
tests/test_content_switcher.py::test_initial_display_unknown_id XFAILs
related to https://github.com/Textualize/textual/issues/1972)            [ 42%]
tests/test_content_switcher.py::test_set_current_to_unknown_id PASSED    [ 42%]
tests/test_content_switcher.py::test_add_content PASSED                  [ 42%]
tests/test_count_parameters.py::test_functions PASSED                    [ 42%]
tests/test_count_parameters.py::test_methods PASSED                      [ 42%]
tests/test_count_parameters.py::test_partials PASSED                     [ 42%]
tests/test_data_bind.py::test_data_binding PASSED                        [ 42%]
tests/test_data_bind.py::test_data_binding_missing_reactive PASSED       [ 42%]
tests/test_data_table.py::test_datatable_message_emission PASSED         [ 42%]
tests/test_data_table.py::test_empty_table_interactions PASSED           [ 42%]
tests/test_data_table.py::test_cursor_movement_with_home_pagedown_etc[True] PASSED [ 42%]
tests/test_data_table.py::test_cursor_movement_with_home_pagedown_etc[False] PASSED [ 42%]
tests/test_data_table.py::test_add_rows PASSED                           [ 42%]
tests/test_data_table.py::test_add_rows_user_defined_keys PASSED         [ 42%]
tests/test_data_table.py::test_add_row_duplicate_key PASSED              [ 42%]
tests/test_data_table.py::test_add_row_too_many_values PASSED            [ 42%]
tests/test_data_table.py::test_add_column_duplicate_key PASSED           [ 42%]
tests/test_data_table.py::test_add_column_with_width PASSED              [ 42%]
tests/test_data_table.py::test_add_columns PASSED                        [ 42%]
tests/test_data_table.py::test_add_columns_user_defined_keys PASSED      [ 42%]
tests/test_data_table.py::test_remove_row PASSED                         [ 42%]
tests/test_data_table.py::test_remove_row_and_update PASSED              [ 42%]
tests/test_data_table.py::test_remove_column PASSED                      [ 42%]
tests/test_data_table.py::test_remove_column_and_update PASSED           [ 42%]
tests/test_data_table.py::test_clear PASSED                              [ 42%]
tests/test_data_table.py::test_column_labels PASSED                      [ 42%]
tests/test_data_table.py::test_initial_column_widths PASSED              [ 42%]
tests/test_data_table.py::test_get_cell_returns_value_at_cell PASSED     [ 43%]
tests/test_data_table.py::test_get_cell_invalid_row_key PASSED           [ 43%]
tests/test_data_table.py::test_get_cell_invalid_column_key PASSED        [ 43%]
tests/test_data_table.py::test_get_cell_coordinate_returns_coordinate PASSED [ 43%]
tests/test_data_table.py::test_get_cell_coordinate_invalid_row_key PASSED [ 43%]
tests/test_data_table.py::test_get_cell_coordinate_invalid_column_key PASSED [ 43%]
tests/test_data_table.py::test_get_cell_at_returns_value_at_cell PASSED  [ 43%]
tests/test_data_table.py::test_get_cell_at_exception PASSED              [ 43%]
tests/test_data_table.py::test_get_row PASSED                            [ 43%]
tests/test_data_table.py::test_get_row_invalid_row_key PASSED            [ 43%]
tests/test_data_table.py::test_get_row_at PASSED                         [ 43%]
tests/test_data_table.py::test_get_row_at_invalid_index[-1] PASSED       [ 43%]
tests/test_data_table.py::test_get_row_at_invalid_index[2] PASSED        [ 43%]
tests/test_data_table.py::test_get_row_index_returns_index PASSED        [ 43%]
tests/test_data_table.py::test_get_row_index_invalid_row_key PASSED      [ 43%]
tests/test_data_table.py::test_get_column PASSED                         [ 43%]
tests/test_data_table.py::test_get_column_invalid_key PASSED             [ 43%]
tests/test_data_table.py::test_get_column_at PASSED                      [ 43%]
tests/test_data_table.py::test_get_column_at_invalid_index[-1] PASSED    [ 43%]
tests/test_data_table.py::test_get_column_at_invalid_index[5] PASSED     [ 43%]
tests/test_data_table.py::test_get_column_index_returns_index PASSED     [ 43%]
tests/test_data_table.py::test_get_column_index_invalid_column_key PASSED [ 43%]
tests/test_data_table.py::test_update_cell_cell_exists PASSED            [ 43%]
tests/test_data_table.py::test_update_cell_cell_doesnt_exist PASSED      [ 43%]
tests/test_data_table.py::test_update_cell_invalid_column_key PASSED     [ 43%]
tests/test_data_table.py::test_update_cell_at_coordinate_exists PASSED   [ 43%]
tests/test_data_table.py::test_update_cell_at_coordinate_doesnt_exist PASSED [ 43%]
tests/test_data_table.py::test_update_cell_at_column_width[A-BB-3] PASSED [ 43%]
tests/test_data_table.py::test_update_cell_at_column_width[1234567-1234-7] PASSED [ 44%]
tests/test_data_table.py::test_update_cell_at_column_width[12345-123-5] PASSED [ 44%]
tests/test_data_table.py::test_update_cell_at_column_width[12345-123456789-9] PASSED [ 44%]
tests/test_data_table.py::test_coordinate_to_cell_key PASSED             [ 44%]
tests/test_data_table.py::test_coordinate_to_cell_key_invalid_coordinate PASSED [ 44%]
tests/test_data_table.py::test_datatable_click_cell_cursor PASSED        [ 44%]
tests/test_data_table.py::test_click_row_cursor PASSED                   [ 44%]
tests/test_data_table.py::test_click_column_cursor PASSED                [ 44%]
tests/test_data_table.py::test_hover_coordinate PASSED                   [ 44%]
tests/test_data_table.py::test_hover_mouse_leave PASSED                  [ 44%]
tests/test_data_table.py::test_header_selected PASSED                    [ 44%]
tests/test_data_table.py::test_row_label_selected PASSED                 [ 44%]
tests/test_data_table.py::test_sort_coordinate_and_key_access PASSED     [ 44%]
tests/test_data_table.py::test_sort_reverse_coordinate_and_key_access PASSED [ 44%]
tests/test_data_table.py::test_cell_cursor_highlight_events PASSED       [ 44%]
tests/test_data_table.py::test_row_cursor_highlight_events PASSED        [ 44%]
tests/test_data_table.py::test_column_cursor_highlight_events PASSED     [ 44%]
tests/test_data_table.py::test_reuse_row_key_after_clear PASSED          [ 44%]
tests/test_data_table.py::test_reuse_column_key_after_clear PASSED       [ 44%]
tests/test_data_table.py::test_key_equals_equivalent_string PASSED       [ 44%]
tests/test_data_table.py::test_key_doesnt_match_non_equal_string PASSED  [ 44%]
tests/test_data_table.py::test_key_equals_self PASSED                    [ 44%]
tests/test_data_table.py::test_key_string_lookup PASSED                  [ 44%]
tests/test_data_table.py::test_scrolling_cursor_into_view PASSED         [ 44%]
tests/test_data_table.py::test_move_cursor PASSED                        [ 44%]
tests/test_data_table.py::test_unset_hover_highlight_when_no_table_cell_under_mouse PASSED [ 44%]
tests/test_data_table.py::test_sort_by_all_columns_no_key PASSED         [ 44%]
tests/test_data_table.py::test_sort_by_multiple_columns_no_key PASSED    [ 45%]
tests/test_data_table.py::test_sort_by_function_sum PASSED               [ 45%]
tests/test_data_table.py::test_add_row_auto_height[hey there-1] PASSED   [ 45%]
tests/test_data_table.py::test_add_row_auto_height[cell1-1] PASSED       [ 45%]
tests/test_data_table.py::test_add_row_auto_height[cell2-2] PASSED       [ 45%]
tests/test_data_table.py::test_add_row_auto_height[cell3-4] PASSED       [ 45%]
tests/test_data_table.py::test_add_row_auto_height[1\n2\n3\n4\n5\n6\n7-7] PASSED [ 45%]
tests/test_data_table.py::test_add_row_expands_column_widths PASSED      [ 45%]
tests/test_data_table.py::test_cell_padding_updates_virtual_size PASSED  [ 45%]
tests/test_data_table.py::test_cell_padding_cannot_be_negative PASSED    [ 45%]
tests/test_data_table.py::test_move_cursor_respects_animate_parameter PASSED [ 45%]
tests/test_data_table.py::test_clicking_border_link_doesnt_crash PASSED  [ 45%]
tests/test_demo.py::test_demo PASSED                                     [ 45%]
tests/test_disabled.py::test_all_initially_enabled PASSED                [ 45%]
tests/test_disabled.py::test_enabled_widgets_have_enabled_pseudo_class PASSED [ 45%]
tests/test_disabled.py::test_all_individually_disabled PASSED            [ 45%]
tests/test_disabled.py::test_disabled_widgets_have_disabled_pseudo_class PASSED [ 45%]
tests/test_disabled.py::test_disable_via_container PASSED                [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Button] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Checkbox] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[DataTable] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[DirectoryTree] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Input] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[ListView] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[OptionList] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[RadioSet] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Select] PASSED [ 45%]
tests/test_disabled.py::test_children_loses_focus_if_container_is_disabled[Switch] PASSED [ 46%]
tests/test_dom.py::test_display_default PASSED                           [ 46%]
tests/test_dom.py::test_display_set_bool[True-block] PASSED              [ 46%]
tests/test_dom.py::test_display_set_bool[False-none] PASSED              [ 46%]
tests/test_dom.py::test_display_set_bool[block-block] PASSED             [ 46%]
tests/test_dom.py::test_display_set_bool[none-none] PASSED               [ 46%]
tests/test_dom.py::test_display_set_invalid_value PASSED                 [ 46%]
tests/test_dom.py::test_validate PASSED                                  [ 46%]
tests/test_dom.py::test_classes_setter PASSED                            [ 46%]
tests/test_dom.py::test_classes_setter_iterable PASSED                   [ 46%]
tests/test_dom.py::test_classes_set_classes PASSED                       [ 46%]
tests/test_dom.py::test_inherited_bindings PASSED                        [ 46%]
tests/test_dom.py::test__get_default_css PASSED                          [ 46%]
tests/test_dom.py::test_component_classes_inheritance PASSED             [ 46%]
tests/test_dom.py::test_walk_children_depth PASSED                       [ 46%]
tests/test_dom.py::test_walk_children_with_self_depth PASSED             [ 46%]
tests/test_dom.py::test_walk_children_breadth PASSED                     [ 46%]
tests/test_dom.py::test_walk_children_with_self_breadth PASSED           [ 46%]
tests/test_dom.py::test_id_validation[ bad] PASSED                       [ 46%]
tests/test_dom.py::test_id_validation[  terrible  ] PASSED               [ 46%]
tests/test_dom.py::test_id_validation[worse!  ] PASSED                   [ 46%]
tests/test_dom.py::test_id_validation[&ampersand] PASSED                 [ 46%]
tests/test_dom.py::test_id_validation[amper&sand] PASSED                 [ 46%]
tests/test_dom.py::test_id_validation[ampersand&] PASSED                 [ 46%]
tests/test_dom.py::test_id_validation[2_leading_digits] PASSED           [ 46%]
tests/test_dom.py::test_id_validation[\xe1gua] PASSED                    [ 46%]
tests/test_dom.py::test_id_validation[c\xe3o] PASSED                     [ 46%]
tests/test_dom.py::test_id_validation[@'/.23] PASSED                     [ 47%]
tests/test_driver.py::test_driver_mouse_down_up_click PASSED             [ 47%]
tests/test_driver.py::test_driver_mouse_down_up_click_widget PASSED      [ 47%]
tests/test_driver.py::test_driver_mouse_down_drag_inside_widget_up_click PASSED [ 47%]
tests/test_driver.py::test_driver_mouse_down_drag_outside_widget_up_click PASSED [ 47%]
tests/test_duration.py::test_parse PASSED                                [ 47%]
tests/test_dynamic_bindings.py::test_dynamic_disabled PASSED             [ 47%]
tests/test_easing.py::test_coverage PASSED                               [ 47%]
tests/test_easing.py::test_easings PASSED                                [ 47%]
tests/test_eta.py::test_basics PASSED                                    [ 47%]
tests/test_eta.py::test_speed PASSED                                     [ 47%]
tests/test_eta.py::test_get_progress_at PASSED                           [ 47%]
tests/test_eta.py::test_eta PASSED                                       [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[ b ar - b ar ] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\tbar-    bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\tbar\t-    bar ] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\tr\t-    r   ] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[1\tbar-1   bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[12\tbar-12  bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[123\tbar-123 bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[1234\tbar-1234    bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\tbar-\U0001f4a9  bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\U0001f4a9\tbar-\U0001f4a9\U0001f4a9    bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[\U0001f4a9\U0001f4a9\U0001f4a9\tbar-\U0001f4a9\U0001f4a9\U0001f4a9  bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[F\U0001f4a9\tbar-F\U0001f4a9 bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_expand_tabs_inline[F\U0001f4a9O\tbar-F\U0001f4a9O    bar] PASSED [ 47%]
tests/test_expand_tabs.py::test_get_tab_widths PASSED                    [ 47%]
tests/test_file_monitor.py::test_repr PASSED                             [ 47%]
tests/test_file_monitor.py::test_file_never_found PASSED                 [ 48%]
tests/test_file_monitor.py::test_file_deletion PASSED                    [ 48%]
tests/test_focus.py::test_focus_chain PASSED                             [ 48%]
tests/test_focus.py::test_allow_focus PASSED                             [ 48%]
tests/test_focus.py::test_focus_next_and_previous PASSED                 [ 48%]
tests/test_focus.py::test_focus_next_wrap_around PASSED                  [ 48%]
tests/test_focus.py::test_focus_previous_wrap_around PASSED              [ 48%]
tests/test_focus.py::test_wrap_around_selector PASSED                    [ 48%]
tests/test_focus.py::test_no_focus_empty_selector PASSED                 [ 48%]
tests/test_focus.py::test_focus_next_and_previous_with_type_selector PASSED [ 48%]
tests/test_focus.py::test_focus_next_and_previous_with_str_selector PASSED [ 48%]
tests/test_focus.py::test_focus_next_and_previous_with_type_selector_without_self PASSED [ 48%]
tests/test_focus.py::test_focus_next_and_previous_with_str_selector_without_self PASSED [ 48%]
tests/test_focus.py::test_focus_does_not_move_to_invisible_widgets PASSED [ 48%]
tests/test_focus.py::test_focus_moves_to_visible_widgets_inside_invisible_containers PASSED [ 48%]
tests/test_focus.py::test_focus_chain_handles_inherited_visibility PASSED [ 48%]
tests/test_focus.py::test_mouse_down_gives_focus PASSED                  [ 48%]
tests/test_focus.py::test_mouse_up_does_not_give_focus PASSED            [ 48%]
tests/test_focus.py::test_focus_pseudo_class PASSED                      [ 48%]
tests/test_focus.py::test_get_focusable_widget_at PASSED                 [ 48%]
tests/test_freeze.py::test_freeze PASSED                                 [ 48%]
tests/test_fuzzy.py::test_no_match PASSED                                [ 48%]
tests/test_fuzzy.py::test_match_single_group PASSED                      [ 48%]
tests/test_fuzzy.py::test_boosted_matches PASSED                         [ 48%]
tests/test_fuzzy.py::test_highlight PASSED                               [ 48%]
tests/test_gc.py::test_gc XFAIL                                          [ 48%]
tests/test_geometry.py::test_dimensions_region PASSED                    [ 48%]
tests/test_geometry.py::test_dimensions_contains PASSED                  [ 49%]
tests/test_geometry.py::test_dimensions_contains_point PASSED            [ 49%]
tests/test_geometry.py::test_dimensions_contains_special PASSED          [ 49%]
tests/test_geometry.py::test_dimensions_bool PASSED                      [ 49%]
tests/test_geometry.py::test_dimensions_area PASSED                      [ 49%]
tests/test_geometry.py::test_clamp PASSED                                [ 49%]
tests/test_geometry.py::test_offset_bool PASSED                          [ 49%]
tests/test_geometry.py::test_offset_is_origin PASSED                     [ 49%]
tests/test_geometry.py::test_clamped PASSED                              [ 49%]
tests/test_geometry.py::test_offset_add PASSED                           [ 49%]
tests/test_geometry.py::test_offset_sub PASSED                           [ 49%]
tests/test_geometry.py::test_offset_neg PASSED                           [ 49%]
tests/test_geometry.py::test_offset_mul PASSED                           [ 49%]
tests/test_geometry.py::test_offset_blend PASSED                         [ 49%]
tests/test_geometry.py::test_offset_get_distance_to PASSED               [ 49%]
tests/test_geometry.py::test_region_null PASSED                          [ 49%]
tests/test_geometry.py::test_region_from_union PASSED                    [ 49%]
tests/test_geometry.py::test_region_from_offset PASSED                   [ 49%]
tests/test_geometry.py::test_get_scroll_to_visible[window0-region0-scroll0] PASSED [ 49%]
tests/test_geometry.py::test_get_scroll_to_visible[window1-region1-scroll1] PASSED [ 49%]
tests/test_geometry.py::test_get_scroll_to_visible[window2-region2-scroll2] PASSED [ 49%]
tests/test_geometry.py::test_region_area PASSED                          [ 49%]
tests/test_geometry.py::test_region_size PASSED                          [ 49%]
tests/test_geometry.py::test_region_origin PASSED                        [ 49%]
tests/test_geometry.py::test_region_bottom_left PASSED                   [ 49%]
tests/test_geometry.py::test_region_top_right PASSED                     [ 49%]
tests/test_geometry.py::test_region_bottom_right PASSED                  [ 49%]
tests/test_geometry.py::test_region_add PASSED                           [ 50%]
tests/test_geometry.py::test_region_sub PASSED                           [ 50%]
tests/test_geometry.py::test_region_at_offset PASSED                     [ 50%]
tests/test_geometry.py::test_crop_size PASSED                            [ 50%]
tests/test_geometry.py::test_region_overlaps PASSED                      [ 50%]
tests/test_geometry.py::test_region_contains PASSED                      [ 50%]
tests/test_geometry.py::test_region_contains_point PASSED                [ 50%]
tests/test_geometry.py::test_region_contains_region PASSED               [ 50%]
tests/test_geometry.py::test_region_translate PASSED                     [ 50%]
tests/test_geometry.py::test_region_contains_special PASSED              [ 50%]
tests/test_geometry.py::test_clip PASSED                                 [ 50%]
tests/test_geometry.py::test_region_shrink PASSED                        [ 50%]
tests/test_geometry.py::test_region_grow PASSED                          [ 50%]
tests/test_geometry.py::test_region_intersection PASSED                  [ 50%]
tests/test_geometry.py::test_region_union PASSED                         [ 50%]
tests/test_geometry.py::test_size_add PASSED                             [ 50%]
tests/test_geometry.py::test_size_sub PASSED                             [ 50%]
tests/test_geometry.py::test_size_line_range PASSED                      [ 50%]
tests/test_geometry.py::test_region_x_extents PASSED                     [ 50%]
tests/test_geometry.py::test_region_y_extents PASSED                     [ 50%]
tests/test_geometry.py::test_region_x_max PASSED                         [ 50%]
tests/test_geometry.py::test_region_y_max PASSED                         [ 50%]
tests/test_geometry.py::test_region_columns_range PASSED                 [ 50%]
tests/test_geometry.py::test_region_lines_range PASSED                   [ 50%]
tests/test_geometry.py::test_region_reset_offset PASSED                  [ 50%]
tests/test_geometry.py::test_region_expand PASSED                        [ 50%]
tests/test_geometry.py::test_spacing_bool PASSED                         [ 50%]
tests/test_geometry.py::test_spacing_width PASSED                        [ 51%]
tests/test_geometry.py::test_spacing_height PASSED                       [ 51%]
tests/test_geometry.py::test_spacing_top_left PASSED                     [ 51%]
tests/test_geometry.py::test_spacing_bottom_right PASSED                 [ 51%]
tests/test_geometry.py::test_spacing_totals PASSED                       [ 51%]
tests/test_geometry.py::test_spacing_css PASSED                          [ 51%]
tests/test_geometry.py::test_spacing_unpack PASSED                       [ 51%]
tests/test_geometry.py::test_spacing_add PASSED                          [ 51%]
tests/test_geometry.py::test_spacing_sub PASSED                          [ 51%]
tests/test_geometry.py::test_spacing_convenience_constructors PASSED     [ 51%]
tests/test_geometry.py::test_split PASSED                                [ 51%]
tests/test_geometry.py::test_split_negative PASSED                       [ 51%]
tests/test_geometry.py::test_split_vertical PASSED                       [ 51%]
tests/test_geometry.py::test_split_vertical_negative PASSED              [ 51%]
tests/test_geometry.py::test_split_horizontal PASSED                     [ 51%]
tests/test_geometry.py::test_split_horizontal_negative PASSED            [ 51%]
tests/test_geometry.py::test_translate_inside PASSED                     [ 51%]
tests/test_geometry.py::test_inflect PASSED                              [ 51%]
tests/test_geometry.py::test_size_with_height PASSED                     [ 51%]
tests/test_geometry.py::test_size_with_width PASSED                      [ 51%]
tests/test_geometry.py::test_offset_clamp PASSED                         [ 51%]
tests/test_geometry.py::test_size_clamp_offset PASSED                    [ 51%]
tests/test_geometry.py::test_get_spacing_between[region10-region20-expected0] PASSED [ 51%]
tests/test_geometry.py::test_get_spacing_between[region11-region21-expected1] PASSED [ 51%]
tests/test_geometry.py::test_constrain[none-none-margin0-region0-container0-expected0] PASSED [ 51%]
tests/test_geometry.py::test_constrain[inside-inside-margin1-region1-container1-expected1] PASSED [ 51%]
tests/test_geometry.py::test_constrain[inside-inside-margin2-region2-container2-expected2] PASSED [ 51%]
tests/test_geometry.py::test_constrain[inside-inflect-margin3-region3-container3-expected3] PASSED [ 52%]
tests/test_header.py::test_screen_title_none_is_ignored PASSED           [ 52%]
tests/test_header.py::test_screen_title_overrides_app_title PASSED       [ 52%]
tests/test_header.py::test_screen_title_reactive_updates_title PASSED    [ 52%]
tests/test_header.py::test_app_title_reactive_does_not_update_title_when_screen_title_is_set PASSED [ 52%]
tests/test_header.py::test_screen_sub_title_none_is_ignored PASSED       [ 52%]
tests/test_header.py::test_screen_sub_title_overrides_app_sub_title PASSED [ 52%]
tests/test_header.py::test_screen_sub_title_reactive_updates_sub_title PASSED [ 52%]
tests/test_header.py::test_app_sub_title_reactive_does_not_update_sub_title_when_screen_sub_title_is_set PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_empty_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_non_empty_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_no_assign_to_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_no_del_from_iummutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_get_item_from_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_get_slice_from_immutable_sequence PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_immutable_sequence_contains PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_immutable_sequence_index PASSED [ 52%]
tests/test_immutable_sequence_view.py::test_reverse_immutable_sequence PASSED [ 52%]
tests/test_issue_4248.py::test_issue_4248 PASSED                         [ 52%]
tests/test_keymap.py::test_keymap_default_binding_replaces_old_binding PASSED [ 52%]
tests/test_keymap.py::test_keymap_sends_message_when_clash PASSED        [ 52%]
tests/test_keymap.py::test_keymap_with_unknown_id_is_noop PASSED         [ 52%]
tests/test_keymap.py::test_keymap_inherited_bindings_same_id PASSED      [ 52%]
tests/test_keymap.py::test_keymap_child_with_different_id_overridden PASSED [ 52%]
tests/test_keys.py::test_character_to_key[1-1] PASSED                    [ 52%]
tests/test_keys.py::test_character_to_key[2-2] PASSED                    [ 52%]
tests/test_keys.py::test_character_to_key[a-a] PASSED                    [ 52%]
tests/test_keys.py::test_character_to_key[z-z] PASSED                    [ 52%]
tests/test_keys.py::test_character_to_key[_-underscore] PASSED           [ 53%]
tests/test_keys.py::test_character_to_key[ -space] PASSED                [ 53%]
tests/test_keys.py::test_character_to_key[~-tilde] PASSED                [ 53%]
tests/test_keys.py::test_character_to_key[?-question_mark] PASSED        [ 53%]
tests/test_keys.py::test_character_to_key[\xa3-pound_sign] PASSED        [ 53%]
tests/test_keys.py::test_character_to_key[,-comma] PASSED                [ 53%]
tests/test_keys.py::test_character_bindings PASSED                       [ 53%]
tests/test_keys.py::test_format_key PASSED                               [ 53%]
tests/test_keys.py::test_get_key_display PASSED                          [ 53%]
tests/test_keys.py::test_key_to_character PASSED                         [ 53%]
tests/test_layout_resolve.py::test_empty PASSED                          [ 53%]
tests/test_layout_resolve.py::test_total_zero PASSED                     [ 53%]
tests/test_layout_resolve.py::test_single PASSED                         [ 53%]
tests/test_layout_resolve.py::test_two PASSED                            [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges0-result0] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges1-result1] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges2-result2] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges3-result3] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges4-result4] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges5-result5] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[10-edges6-result6] PASSED    [ 53%]
tests/test_layout_resolve.py::test_multiple[2-edges7-result7] PASSED     [ 53%]
tests/test_layout_resolve.py::test_multiple[2-edges8-result8] PASSED     [ 53%]
tests/test_layout_resolve.py::test_multiple[18-edges9-result9] PASSED    [ 53%]
tests/test_lazy.py::test_lazy PASSED                                     [ 53%]
tests/test_lazy.py::test_lazy_reveal PASSED                              [ 53%]
tests/test_line_filter.py::test_dim_apply PASSED                         [ 53%]
tests/test_line_split.py::test_split_string_to_lines_and_endings PASSED  [ 54%]
tests/test_links.py::test_links PASSED                                   [ 54%]
tests/test_loading.py::test_loading_disables_and_remove_scrollbars PASSED [ 54%]
tests/test_log.py::test_process_line PASSED                              [ 54%]
tests/test_log.py::test_disabled_log_no_attribute_error PASSED           [ 54%]
tests/test_loop.py::test_loop_first PASSED                               [ 54%]
tests/test_loop.py::test_loop_last PASSED                                [ 54%]
tests/test_loop.py::test_loop_first_last PASSED                          [ 54%]
tests/test_loop.py::test_loop_from_index PASSED                          [ 54%]
tests/test_markdown.py::test_markdown_nodes[-expected_nodes0] PASSED     [ 54%]
tests/test_markdown.py::test_markdown_nodes[# Hello-expected_nodes1] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[## Hello-expected_nodes2] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[### Hello-expected_nodes3] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[#### Hello-expected_nodes4] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[##### Hello-expected_nodes5] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[###### Hello-expected_nodes6] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[----expected_nodes7] PASSED  [ 54%]
tests/test_markdown.py::test_markdown_nodes[Hello-expected_nodes8] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[Hello\nWorld-expected_nodes9] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[> Hello-expected_nodes10] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[- One\n-Two-expected_nodes11] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[1. One\n2. Two-expected_nodes12] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[    1-expected_nodes13] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[```\n1\n```-expected_nodes14] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[```python\n1\n```-expected_nodes15] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[| One | Two |\n| :- | :- |\n| 1 | 2 |-expected_nodes16] PASSED [ 54%]
tests/test_markdown.py::test_markdown_nodes[- One\n```\nTwo\n```\n- Three\n-expected_nodes17] PASSED [ 54%]
tests/test_markdown.py::test_load_non_existing_file PASSED               [ 55%]
tests/test_markdown.py::test_goto_anchor[hello-world-False] PASSED       [ 55%]
tests/test_markdown.py::test_goto_anchor[hello-there-True] PASSED        [ 55%]
tests/test_markdown.py::test_update_of_document_posts_table_of_content_update_message PASSED [ 55%]
tests/test_markdown.py::test_link_in_markdown_table_posts_message_when_clicked PASSED [ 55%]
tests/test_markdown.py::test_markdown_quoting PASSED                     [ 55%]
tests/test_markdownviewer.py::test_markdown_file_viewer_anchor_link[0] PASSED [ 55%]
tests/test_markdownviewer.py::test_markdown_file_viewer_anchor_link[1] PASSED [ 55%]
tests/test_markdownviewer.py::test_markdown_string_viewer_anchor_link[0] PASSED [ 55%]
tests/test_markdownviewer.py::test_markdown_string_viewer_anchor_link[1] PASSED [ 55%]
tests/test_masked_input.py::test_missing_required PASSED                 [ 55%]
tests/test_masked_input.py::test_valid_required PASSED                   [ 55%]
tests/test_masked_input.py::test_missing_optional PASSED                 [ 55%]
tests/test_masked_input.py::test_editing PASSED                          [ 55%]
tests/test_masked_input.py::test_key_movement_actions PASSED             [ 55%]
tests/test_masked_input.py::test_key_modification_actions PASSED         [ 55%]
tests/test_masked_input.py::test_cursor_word_right_after_last_separator PASSED [ 55%]
tests/test_masked_input.py::test_case_conversion_meta_characters PASSED  [ 55%]
tests/test_masked_input.py::test_case_conversion_override PASSED         [ 55%]
tests/test_masked_input.py::test_case_conversion_cancel PASSED           [ 55%]
tests/test_masked_input.py::test_only_separators__raises_ValueError PASSED [ 55%]
tests/test_masked_input.py::test_custom_separator_escaping PASSED        [ 55%]
tests/test_masked_input.py::test_digits_not_required PASSED              [ 55%]
tests/test_masked_input.py::test_digits_required PASSED                  [ 55%]
tests/test_message_handling.py::test_message_inheritance_namespace PASSED [ 55%]
tests/test_message_pump.py::test_dispatch_key_valid_key PASSED           [ 55%]
tests/test_message_pump.py::test_dispatch_key_valid_key_alias PASSED     [ 55%]
tests/test_message_pump.py::test_dispatch_key_raises_when_conflicting_handler_aliases PASSED [ 56%]
tests/test_message_pump.py::test_message_queue_size PASSED               [ 56%]
tests/test_message_pump.py::test_prevent PASSED                          [ 56%]
tests/test_message_pump.py::test_prevent_with_call_next PASSED           [ 56%]
tests/test_message_pump.py::test_prevent_default PASSED                  [ 56%]
tests/test_modal.py::test_modal_pop_screen PASSED                        [ 56%]
tests/test_mount.py::test_render_only_after_mount PASSED                 [ 56%]
tests/test_node_list.py::test_empty_list PASSED                          [ 56%]
tests/test_node_list.py::test_add_one PASSED                             [ 56%]
tests/test_node_list.py::test_length_hint PASSED                         [ 56%]
tests/test_node_list.py::test_repeat_add_one PASSED                      [ 56%]
tests/test_node_list.py::test_insert PASSED                              [ 56%]
tests/test_node_list.py::test_truthy PASSED                              [ 56%]
tests/test_node_list.py::test_contains PASSED                            [ 56%]
tests/test_node_list.py::test_index PASSED                               [ 56%]
tests/test_node_list.py::test_remove PASSED                              [ 56%]
tests/test_node_list.py::test_clear PASSED                               [ 56%]
tests/test_node_list.py::test_listy PASSED                               [ 56%]
tests/test_on.py::test_on_button_pressed PASSED                          [ 56%]
tests/test_on.py::test_on_inheritance PASSED                             [ 56%]
tests/test_on.py::test_on_bad_selector PASSED                            [ 56%]
tests/test_on.py::test_on_no_control PASSED                              [ 56%]
tests/test_on.py::test_on_attribute_not_listed PASSED                    [ 56%]
tests/test_on.py::test_on_arbitrary_attributes PASSED                    [ 56%]
tests/test_on.py::test_fire_on_inherited_message PASSED                  [ 56%]
tests/test_on.py::test_fire_inherited_on_single_handler PASSED           [ 56%]
tests/test_on.py::test_fire_inherited_on_single_handler_multi_selector PASSED [ 56%]
tests/test_on.py::test_fire_inherited_and_on_methods PASSED              [ 56%]
tests/test_on.py::test_fire_on_inherited_message_plus_mixins PASSED      [ 57%]
tests/test_on.py::test_on_with_enter_and_leave_events PASSED             [ 57%]
tests/test_overflow_change.py::test_overflow_change_updates_virtual_size_appropriately PASSED [ 57%]
tests/test_parser.py::test_read1 PASSED                                  [ 57%]
tests/test_parser.py::test_read PASSED                                   [ 57%]
tests/test_partition.py::test_partition PASSED                           [ 57%]
tests/test_paste.py::test_paste_app PASSED                               [ 57%]
tests/test_paste.py::test_empty_paste PASSED                             [ 57%]
tests/test_path.py::test_css_paths_of_various_types[RelativePathObjectApp-expected_css_path_attribute0] PASSED [ 57%]
tests/test_path.py::test_css_paths_of_various_types[RelativePathStrApp-expected_css_path_attribute1] PASSED [ 57%]
tests/test_path.py::test_css_paths_of_various_types[AbsolutePathObjectApp-expected_css_path_attribute2] PASSED [ 57%]
tests/test_path.py::test_css_paths_of_various_types[AbsolutePathStrApp-expected_css_path_attribute3] PASSED [ 57%]
tests/test_path.py::test_css_paths_of_various_types[ListPathApp-expected_css_path_attribute4] PASSED [ 57%]
tests/test_pilot.py::test_pilot_press_ascii_chars PASSED                 [ 57%]
tests/test_pilot.py::test_pilot_exception_catching_app_compose PASSED    [ 57%]
tests/test_pilot.py::test_pilot_exception_catching_widget_compose PASSED [ 57%]
tests/test_pilot.py::test_pilot_exception_catching_action PASSED         [ 57%]
tests/test_pilot.py::test_pilot_exception_catching_worker PASSED         [ 57%]
tests/test_pilot.py::test_pilot_click_screen PASSED                      [ 57%]
tests/test_pilot.py::test_pilot_hover_screen PASSED                      [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size0-offset0] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size1-offset1] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size2-offset2] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size3-offset3] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size4-offset4] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size5-offset5] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size6-offset6] PASSED [ 57%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size7-offset7] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size8-offset8] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size9-offset9] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size10-offset10] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size11-offset11] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size12-offset12] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size13-offset13] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size14-offset14] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[click-screen_size15-offset15] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size16-offset16] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size17-offset17] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size18-offset18] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size19-offset19] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size20-offset20] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size21-offset21] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size22-offset22] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size23-offset23] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size24-offset24] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size25-offset25] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size26-offset26] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size27-offset27] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size28-offset28] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size29-offset29] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size30-offset30] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[hover-screen_size31-offset31] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size32-offset32] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size33-offset33] PASSED [ 58%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size34-offset34] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size35-offset35] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size36-offset36] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size37-offset37] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size38-offset38] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size39-offset39] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size40-offset40] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size41-offset41] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size42-offset42] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size43-offset43] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size44-offset44] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size45-offset45] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size46-offset46] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_down-screen_size47-offset47] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size48-offset48] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size49-offset49] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size50-offset50] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size51-offset51] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size52-offset52] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size53-offset53] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size54-offset54] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size55-offset55] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size56-offset56] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size57-offset57] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size58-offset58] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size59-offset59] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size60-offset60] PASSED [ 59%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size61-offset61] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size62-offset62] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_outside_screen_errors[mouse_up-screen_size63-offset63] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset0] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset1] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset2] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset3] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset4] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset5] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset6] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset7] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[click-offset8] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset9] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset10] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset11] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset12] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset13] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset14] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset15] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset16] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[hover-offset17] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset18] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset19] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset20] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset21] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset22] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset23] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset24] PASSED [ 60%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset25] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_down-offset26] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset27] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset28] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset29] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset30] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset31] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset32] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset33] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset34] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_inside_screen_is_fine_with_correct_coordinate_system[mouse_up-offset35] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-#label0] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-#label90] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[click-Button] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-#label0] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-#label90] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[hover-Button] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-#label0] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-#label90] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_down-Button] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-#label0] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-#label90] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_on_widget_that_is_not_visible_errors[mouse_up-Button] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_widget_under_another_widget[click] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_widget_under_another_widget[hover] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_widget_under_another_widget[mouse_down] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_widget_under_another_widget[mouse_up] PASSED [ 61%]
tests/test_pilot.py::test_pilot_target_visible_widget[click] PASSED      [ 62%]
tests/test_pilot.py::test_pilot_target_visible_widget[hover] PASSED      [ 62%]
tests/test_pilot.py::test_pilot_target_visible_widget[mouse_down] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_visible_widget[mouse_up] PASSED   [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset0] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset1] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset2] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[click-offset3] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset4] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset5] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset6] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[hover-offset7] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset8] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset9] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset10] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_down-offset11] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset12] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset13] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset14] PASSED [ 62%]
tests/test_pilot.py::test_pilot_target_screen_always_true[mouse_up-offset15] PASSED [ 62%]
tests/test_pilot.py::test_pilot_resize_terminal PASSED                   [ 62%]
tests/test_pilot.py::test_fail_early PASSED                              [ 62%]
tests/test_pilot.py::test_click_by_widget PASSED                         [ 62%]
tests/test_pipe.py::test_deadlock PASSED                                 [ 62%]
tests/test_placeholder.py::test_invalid_placeholder_variant PASSED       [ 62%]
tests/test_placeholder.py::test_invalid_reactive_variant_change PASSED   [ 62%]
tests/test_progress_bar.py::test_initial_status PASSED                   [ 62%]
tests/test_progress_bar.py::test_advance PASSED                          [ 63%]
tests/test_progress_bar.py::test_advance_backwards PASSED                [ 63%]
tests/test_progress_bar.py::test_progress_overflow PASSED                [ 63%]
tests/test_progress_bar.py::test_progress_underflow PASSED               [ 63%]
tests/test_progress_bar.py::test_non_negative_total PASSED               [ 63%]
tests/test_progress_bar.py::test_update_total PASSED                     [ 63%]
tests/test_progress_bar.py::test_update_progress PASSED                  [ 63%]
tests/test_progress_bar.py::test_update_advance PASSED                   [ 63%]
tests/test_progress_bar.py::test_update PASSED                           [ 63%]
tests/test_progress_bar.py::test_go_back_to_indeterminate PASSED         [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[True-True-True] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[True-True-False] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[True-False-True] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[True-False-False] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[False-True-True] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[False-True-False] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[False-False-True] PASSED [ 63%]
tests/test_progress_bar.py::test_show_sub_widgets[False-False-False] PASSED [ 63%]
tests/test_progress_bar.py::test_apply_gradient PASSED                   [ 63%]
tests/test_query.py::test_query_errors PASSED                            [ 63%]
tests/test_query.py::test_query PASSED                                   [ 63%]
tests/test_query.py::test_query_classes PASSED                           [ 63%]
tests/test_query.py::test_invalid_query PASSED                           [ 63%]
tests/test_query.py::test_universal_selector_doesnt_select_self PASSED   [ 63%]
tests/test_query.py::test_query_set_styles_invalid_css_raises_error PASSED [ 63%]
tests/test_query.py::test_query_set_styles_kwds PASSED                   [ 63%]
tests/test_query.py::test_query_set_styles_css_and_kwds PASSED           [ 63%]
tests/test_query.py::test_query_set_styles_css PASSED                    [ 64%]
tests/test_query.py::test_query_refresh[args0] PASSED                    [ 64%]
tests/test_query.py::test_query_refresh[args1] PASSED                    [ 64%]
tests/test_query.py::test_query_refresh[args2] PASSED                    [ 64%]
tests/test_query.py::test_query_refresh[args3] PASSED                    [ 64%]
tests/test_query.py::test_query_focus_blur PASSED                        [ 64%]
tests/test_reactive.py::test_watch PASSED                                [ 64%]
tests/test_reactive.py::test_watch_async_init_false PASSED               [ 64%]
tests/test_reactive.py::test_watch_async_init_true PASSED                [ 64%]
tests/test_reactive.py::test_watch_init_false_always_update_false PASSED [ 64%]
tests/test_reactive.py::test_watch_init_true PASSED                      [ 64%]
tests/test_reactive.py::test_reactive_always_update PASSED               [ 64%]
tests/test_reactive.py::test_reactive_with_callable_default PASSED       [ 64%]
tests/test_reactive.py::test_validate_init_true PASSED                   [ 64%]
tests/test_reactive.py::test_validate_init_true_set_before_dom_ready PASSED [ 64%]
tests/test_reactive.py::test_reactive_compute_first_time_set PASSED      [ 64%]
tests/test_reactive.py::test_reactive_method_call_order PASSED           [ 64%]
tests/test_reactive.py::test_premature_reactive_call PASSED              [ 64%]
tests/test_reactive.py::test_reactive_inheritance PASSED                 [ 64%]
tests/test_reactive.py::test_compute PASSED                              [ 64%]
tests/test_reactive.py::test_watch_compute PASSED                        [ 64%]
tests/test_reactive.py::test_public_and_private_watch PASSED             [ 64%]
tests/test_reactive.py::test_private_validate PASSED                     [ 64%]
tests/test_reactive.py::test_public_and_private_validate PASSED          [ 64%]
tests/test_reactive.py::test_public_and_private_validate_order PASSED    [ 64%]
tests/test_reactive.py::test_public_and_private_compute PASSED           [ 64%]
tests/test_reactive.py::test_private_compute PASSED                      [ 64%]
tests/test_reactive.py::test_async_reactive_watch_callbacks_go_on_the_watcher PASSED [ 65%]
tests/test_reactive.py::test_sync_reactive_watch_callbacks_go_on_the_watcher PASSED [ 65%]
tests/test_reactive.py::test_set_reactive PASSED                         [ 65%]
tests/test_reactive.py::test_no_duplicate_external_watchers PASSED       [ 65%]
tests/test_reactive.py::test_external_watch_init_does_not_propagate PASSED [ 65%]
tests/test_reactive.py::test_external_watch_init_does_not_propagate_to_externals PASSED [ 65%]
tests/test_reactive.py::test_message_sender_from_reactive PASSED         [ 65%]
tests/test_reactive.py::test_mutate_reactive PASSED                      [ 65%]
tests/test_reactive.py::test_mutate_reactive_data_bind PASSED            [ 65%]
tests/test_resolve.py::test_resolve_empty PASSED                         [ 65%]
tests/test_resolve.py::test_resolve[scalars0-100-0-result0] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars1-100-0-result1] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars2-100-1-result2] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars3-100-1-result3] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars4-100-0-result4] PASSED       [ 65%]
tests/test_resolve.py::test_resolve[scalars5-100-1-result5] PASSED       [ 65%]
tests/test_resolve.py::test_resolve_fraction_unit PASSED                 [ 65%]
tests/test_resolve.py::test_resolve_fraction_unit_stress_test PASSED     [ 65%]
tests/test_resolve.py::test_resolve_issue_2502 PASSED                    [ 65%]
tests/test_rlock.py::test_simple_lock PASSED                             [ 65%]
tests/test_rlock.py::test_multiple_tasks PASSED                          [ 65%]
tests/test_rule.py::test_invalid_rule_orientation PASSED                 [ 65%]
tests/test_rule.py::test_invalid_rule_line_style PASSED                  [ 65%]
tests/test_rule.py::test_invalid_reactive_rule_orientation_change PASSED [ 65%]
tests/test_rule.py::test_invalid_reactive_rule_line_style_change PASSED  [ 65%]
tests/test_screen_modes.py::test_mode_setup PASSED                       [ 65%]
tests/test_screen_modes.py::test_switch_mode PASSED                      [ 65%]
tests/test_screen_modes.py::test_switch_same_mode PASSED                 [ 65%]
tests/test_screen_modes.py::test_switch_unknown_mode PASSED              [ 66%]
tests/test_screen_modes.py::test_remove_mode PASSED                      [ 66%]
tests/test_screen_modes.py::test_remove_active_mode PASSED               [ 66%]
tests/test_screen_modes.py::test_add_mode PASSED                         [ 66%]
tests/test_screen_modes.py::test_add_mode_duplicated PASSED              [ 66%]
tests/test_screen_modes.py::test_multiple_mode_callbacks PASSED          [ 66%]
tests/test_screens.py::test_screen_walk_children PASSED                  [ 66%]
tests/test_screens.py::test_installed_screens PASSED                     [ 66%]
tests/test_screens.py::test_screens PASSED                               [ 66%]
tests/test_screens.py::test_auto_focus_on_screen_if_app_auto_focus_is_none PASSED [ 66%]
tests/test_screens.py::test_auto_focus_on_screen_if_app_auto_focus_is_disabled PASSED [ 66%]
tests/test_screens.py::test_auto_focus_inheritance PASSED                [ 66%]
tests/test_screens.py::test_auto_focus_skips_non_focusable_widgets PASSED [ 66%]
tests/test_screens.py::test_dismiss_non_top_screen PASSED                [ 66%]
tests/test_screens.py::test_dismiss_action PASSED                        [ 66%]
tests/test_screens.py::test_dismiss_action_no_argument PASSED            [ 66%]
tests/test_screens.py::test_switch_screen_no_op PASSED                   [ 66%]
tests/test_screens.py::test_switch_screen_updates_results_callback_stack PASSED [ 66%]
tests/test_screens.py::test_screen_receives_mouse_move_events PASSED     [ 66%]
tests/test_screens.py::test_mouse_move_event_bubbles_to_screen_from_widget PASSED [ 66%]
tests/test_screens.py::test_push_screen_wait_for_dismiss PASSED          [ 66%]
tests/test_screens.py::test_push_screen_wait_for_dismiss_no_worker PASSED [ 66%]
tests/test_screens.py::test_default_custom_screen PASSED                 [ 66%]
tests/test_screens.py::test_disallow_screen_instances PASSED             [ 66%]
tests/test_screens.py::test_worker_cancellation PASSED                   [ 66%]
tests/test_screens.py::test_get_screen_with_expected_type PASSED         [ 66%]
tests/test_segment_tools.py::test_line_crop PASSED                       [ 66%]
tests/test_segment_tools.py::test_line_crop_emoji PASSED                 [ 67%]
tests/test_segment_tools.py::test_line_crop_edge PASSED                  [ 67%]
tests/test_segment_tools.py::test_line_crop_edge_2 PASSED                [ 67%]
tests/test_segment_tools.py::test_line_trim_ascii PASSED                 [ 67%]
tests/test_segment_tools.py::test_line_pad PASSED                        [ 67%]
tests/test_segment_tools.py::test_align_lines_vertical_middle PASSED     [ 67%]
tests/test_segment_tools.py::test_align_lines_top_left PASSED            [ 67%]
tests/test_segment_tools.py::test_align_lines_top_right PASSED           [ 67%]
tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_left PASSED [ 67%]
tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_center PASSED [ 67%]
tests/test_segment_tools.py::test_align_lines_perfect_fit_horizontal_right PASSED [ 67%]
tests/test_shutdown.py::test_shutdown PASSED                             [ 67%]
tests/test_signal.py::test_signal PASSED                                 [ 67%]
tests/test_signal.py::test_signal_errors PASSED                          [ 67%]
tests/test_signal.py::test_repr PASSED                                   [ 67%]
tests/test_signal.py::test_signal_parameters PASSED                      [ 67%]
tests/test_slug.py::test_simple_slug[test-test] PASSED                   [ 67%]
tests/test_slug.py::test_simple_slug[Test-test] PASSED                   [ 67%]
tests/test_slug.py::test_simple_slug[ Test -test] PASSED                 [ 67%]
tests/test_slug.py::test_simple_slug[-test---test-] PASSED               [ 67%]
tests/test_slug.py::test_simple_slug[!test!-test] PASSED                 [ 67%]
tests/test_slug.py::test_simple_slug[test!!test-testtest] PASSED         [ 67%]
tests/test_slug.py::test_simple_slug[test! !test-test-test] PASSED       [ 67%]
tests/test_slug.py::test_simple_slug[test test-test-test] PASSED         [ 67%]
tests/test_slug.py::test_simple_slug[test  test-test--test] PASSED       [ 67%]
tests/test_slug.py::test_simple_slug[test          test-test----------test] PASSED [ 67%]
tests/test_slug.py::test_simple_slug[--test---test] PASSED               [ 67%]
tests/test_slug.py::test_simple_slug[test---test--] PASSED               [ 68%]
tests/test_slug.py::test_simple_slug[--test--test-----test--test--] PASSED [ 68%]
tests/test_slug.py::test_simple_slug[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test] PASSED [ 68%]
tests/test_slug.py::test_simple_slug[t\xebst-t%C3%ABst] PASSED           [ 68%]
tests/test_slug.py::test_simple_slug[test\U0001f642test-testtest] PASSED [ 68%]
tests/test_slug.py::test_simple_slug[test\U0001f937test-testtest] PASSED [ 68%]
tests/test_slug.py::test_simple_slug[test\U0001f937\U0001f3fb\u200d\u2640\ufe0ftest-testtest] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test] PASSED                 [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test-1] PASSED               [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test-2] PASSED               [ 68%]
tests/test_slug.py::test_tracked_slugs[-test---test-] PASSED             [ 68%]
tests/test_slug.py::test_tracked_slugs[-test---test--1] PASSED           [ 68%]
tests/test_slug.py::test_tracked_slugs[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test!"#$%&'()*+,-./:;<=>?@[]^_`{|}~test-test-_test-1] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst] PASSED         [ 68%]
tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst-1] PASSED       [ 68%]
tests/test_slug.py::test_tracked_slugs[t\xebst-t%C3%ABst-2] PASSED       [ 68%]
tests/test_slug.py::test_tracked_slugs[test\U0001f642test-testtest] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test\U0001f937test-testtest-1] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test\U0001f937\U0001f3fb\u200d\u2640\ufe0ftest-testtest-2] PASSED [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test-3] PASSED               [ 68%]
tests/test_slug.py::test_tracked_slugs[test-test-4] PASSED               [ 68%]
tests/test_slug.py::test_tracked_slugs[ test -test-5] PASSED             [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region0-grid0] PASSED     [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region1-grid1] PASSED     [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region2-grid2] PASSED     [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region3-grid3] PASSED     [ 68%]
tests/test_spatial_map.py::test_region_to_grid[region4-grid4] PASSED     [ 69%]
tests/test_spatial_map.py::test_get_values_in_region PASSED              [ 69%]
tests/test_strip.py::test_cell_length PASSED                             [ 69%]
tests/test_strip.py::test_repr PASSED                                    [ 69%]
tests/test_strip.py::test_join PASSED                                    [ 69%]
tests/test_strip.py::test_bool PASSED                                    [ 69%]
tests/test_strip.py::test_iter PASSED                                    [ 69%]
tests/test_strip.py::test_len PASSED                                     [ 69%]
tests/test_strip.py::test_reversed PASSED                                [ 69%]
tests/test_strip.py::test_eq PASSED                                      [ 69%]
tests/test_strip.py::test_adjust_cell_length PASSED                      [ 69%]
tests/test_strip.py::test_extend_cell_length PASSED                      [ 69%]
tests/test_strip.py::test_simplify PASSED                                [ 69%]
tests/test_strip.py::test_apply_filter PASSED                            [ 69%]
tests/test_strip.py::test_style_links PASSED                             [ 69%]
tests/test_strip.py::test_crop PASSED                                    [ 69%]
tests/test_strip.py::test_crop_out_of_bounds[foo-crop0-output0] PASSED   [ 69%]
tests/test_strip.py::test_crop_out_of_bounds[foo-crop1-output1] PASSED   [ 69%]
tests/test_strip.py::test_crop_out_of_bounds[foo-crop2-output2] PASSED   [ 69%]
tests/test_strip.py::test_crop_out_of_bounds[foo-crop3-output3] PASSED   [ 69%]
tests/test_strip.py::test_divide PASSED                                  [ 69%]
tests/test_strip.py::test_index_to_cell_position[0-0] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[1-1] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[2-2] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[3-3] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[4-4] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[5-6] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[6-8] PASSED             [ 69%]
tests/test_strip.py::test_index_to_cell_position[7-10] PASSED            [ 70%]
tests/test_strip.py::test_index_to_cell_position[8-11] PASSED            [ 70%]
tests/test_strip.py::test_index_to_cell_position[9-12] PASSED            [ 70%]
tests/test_strip.py::test_index_to_cell_position[10-13] PASSED           [ 70%]
tests/test_strip.py::test_index_to_cell_position[11-14] PASSED           [ 70%]
tests/test_strip.py::test_index_cell_position_no_segments PASSED         [ 70%]
tests/test_strip.py::test_index_cell_position_index_too_large PASSED     [ 70%]
tests/test_strip.py::test_text PASSED                                    [ 70%]
tests/test_style_importance.py::test_border_importance PASSED            [ 70%]
tests/test_style_importance.py::test_outline_importance PASSED           [ 70%]
tests/test_style_importance.py::test_align_importance PASSED             [ 70%]
tests/test_style_importance.py::test_content_align_importance PASSED     [ 70%]
tests/test_style_importance.py::test_offset_importance PASSED            [ 70%]
tests/test_style_importance.py::test_overflow_importance PASSED          [ 70%]
tests/test_style_importance.py::test_padding_importance PASSED           [ 70%]
tests/test_style_importance.py::test_scrollbar_size_importance PASSED    [ 70%]
tests/test_style_inheritance.py::test_text_style_inheritance PASSED      [ 70%]
tests/test_style_properties.py::test_box_normalization PASSED            [ 70%]
tests/test_style_properties.py::test_text_style_none_with_others[text_style] PASSED [ 70%]
tests/test_style_properties.py::test_text_style_none_with_others[link_style] PASSED [ 70%]
tests/test_style_properties.py::test_text_style_set_to_none[text_style] PASSED [ 70%]
tests/test_style_properties.py::test_text_style_set_to_none[link_style] PASSED [ 70%]
tests/test_styles_cache.py::test_set_dirty PASSED                        [ 70%]
tests/test_styles_cache.py::test_no_styles PASSED                        [ 70%]
tests/test_styles_cache.py::test_border PASSED                           [ 70%]
tests/test_styles_cache.py::test_padding PASSED                          [ 70%]
tests/test_styles_cache.py::test_padding_border PASSED                   [ 70%]
tests/test_styles_cache.py::test_outline PASSED                          [ 71%]
tests/test_styles_cache.py::test_crop PASSED                             [ 71%]
tests/test_styles_cache.py::test_dirty_cache PASSED                      [ 71%]
tests/test_suggestions.py::test_get_suggestion[background-possible_words0-background] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[backgroundu-possible_words1-background] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[bkgrund-possible_words2-background] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[llow-possible_words3-None] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[llow-possible_words4-yellow] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestion[yllow-possible_words5-yellow] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[background-possible_words0-1-expected_result0] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[backgroundu-possible_words1-1-expected_result1] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[bkgrund-possible_words2-1-expected_result2] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[llow-possible_words3-1-expected_result3] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[llow-possible_words4-1-expected_result4] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[yllow-possible_words5-1-expected_result5] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[yllow-possible_words6-2-expected_result6] PASSED [ 71%]
tests/test_suggestions.py::test_get_suggestions[yllow-possible_words7-2-expected_result7] PASSED [ 71%]
tests/test_suspend.py::test_suspend_not_supported PASSED                 [ 71%]
tests/test_suspend.py::test_suspend_supported PASSED                     [ 71%]
tests/test_switch.py::test_switch_click_doesnt_bubble_up PASSED          [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_switch_via_ui PASSED   [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_switch_via_code PASSED [ 71%]
tests/test_tabbed_content.py::test_unsetting_tabbed_content_active PASSED [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_initial PASSED         [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_messages PASSED        [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_add_later_from_empty PASSED [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_add_later_from_composed PASSED [ 71%]
tests/test_tabbed_content.py::test_tabbed_content_add_before_id PASSED   [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_before_pane PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_before_badly PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_after PASSED       [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_after_pane PASSED  [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_after_badly PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_add_before_and_after PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_removal PASSED         [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_reversed_removal PASSED [ 72%]
tests/test_tabbed_content.py::test_tabbed_content_clear PASSED           [ 72%]
tests/test_tabbed_content.py::test_disabling_does_not_deactivate_tab PASSED [ 72%]
tests/test_tabbed_content.py::test_disabled_tab_cannot_be_clicked PASSED [ 72%]
tests/test_tabbed_content.py::test_disabling_via_tabbed_content PASSED   [ 72%]
tests/test_tabbed_content.py::test_disabling_via_tab_pane PASSED         [ 72%]
tests/test_tabbed_content.py::test_creating_disabled_tab PASSED          [ 72%]
tests/test_tabbed_content.py::test_navigation_around_disabled_tabs PASSED [ 72%]
tests/test_tabbed_content.py::test_reenabling_tab PASSED                 [ 72%]
tests/test_tabbed_content.py::test_reenabling_via_tabbed_content PASSED  [ 72%]
tests/test_tabbed_content.py::test_reenabling_via_tab_pane PASSED        [ 72%]
tests/test_tabbed_content.py::test_disabling_unknown_tab PASSED          [ 72%]
tests/test_tabbed_content.py::test_enabling_unknown_tab PASSED           [ 72%]
tests/test_tabbed_content.py::test_hide_unknown_tab PASSED               [ 72%]
tests/test_tabbed_content.py::test_show_unknown_tab PASSED               [ 72%]
tests/test_tabbed_content.py::test_hide_show_messages PASSED             [ 72%]
tests/test_tabbed_content.py::test_hide_last_tab_means_no_tab_active PASSED [ 72%]
tests/test_tabbed_content.py::test_hiding_tabs_moves_active_to_next_tab PASSED [ 72%]
tests/test_tabbed_content.py::test_showing_tabs_does_not_change_active_tab PASSED [ 72%]
tests/test_tabbed_content.py::test_showing_first_tab_activates_tab[tab-1] PASSED [ 73%]
tests/test_tabbed_content.py::test_showing_first_tab_activates_tab[tab-2] PASSED [ 73%]
tests/test_tabbed_content.py::test_disabling_nested_tabs PASSED          [ 73%]
tests/test_tabbed_content.py::test_hiding_nested_tabs PASSED             [ 73%]
tests/test_tabbed_content.py::test_tabs_nested_in_tabbed_content_doesnt_crash PASSED [ 73%]
tests/test_tabbed_content.py::test_tabs_nested_doesnt_interfere_with_ancestor_tabbed_content PASSED [ 73%]
tests/test_tabbed_content.py::test_disabling_tab_within_tabbed_content_stays_isolated PASSED [ 73%]
tests/test_tabs.py::test_tab_label PASSED                                [ 73%]
tests/test_tabs.py::test_tab_relabel PASSED                              [ 73%]
tests/test_tabs.py::test_compose_empty_tabs PASSED                       [ 73%]
tests/test_tabs.py::test_compose_tabs_from_strings PASSED                [ 73%]
tests/test_tabs.py::test_compose_tabs_from_tabs PASSED                   [ 73%]
tests/test_tabs.py::test_add_tabs_later PASSED                           [ 73%]
tests/test_tabs.py::test_add_tab_before PASSED                           [ 73%]
tests/test_tabs.py::test_add_tab_before_badly PASSED                     [ 73%]
tests/test_tabs.py::test_add_tab_after PASSED                            [ 73%]
tests/test_tabs.py::test_add_tab_after_badly PASSED                      [ 73%]
tests/test_tabs.py::test_add_tab_before_and_after PASSED                 [ 73%]
tests/test_tabs.py::test_remove_tabs PASSED                              [ 73%]
tests/test_tabs.py::test_remove_tabs_reversed PASSED                     [ 73%]
tests/test_tabs.py::test_clear_tabs PASSED                               [ 73%]
tests/test_tabs.py::test_change_active_from_code PASSED                  [ 73%]
tests/test_tabs.py::test_navigate_tabs_with_keyboard PASSED              [ 73%]
tests/test_tabs.py::test_navigate_empty_tabs_with_keyboard PASSED        [ 73%]
tests/test_tabs.py::test_navigate_tabs_with_mouse PASSED                 [ 73%]
tests/test_tabs.py::test_startup_messages PASSED                         [ 73%]
tests/test_tabs.py::test_change_tab_with_code_messages PASSED            [ 73%]
tests/test_tabs.py::test_remove_tabs_messages PASSED                     [ 73%]
tests/test_tabs.py::test_reverse_remove_tabs_messages PASSED             [ 74%]
tests/test_tabs.py::test_keyboard_navigation_messages PASSED             [ 74%]
tests/test_tabs.py::test_mouse_navigation_messages PASSED                [ 74%]
tests/test_tabs.py::test_disabled_tab_is_not_activated_by_clicking_underline PASSED [ 74%]
tests/test_test_runner.py::test_run_test PASSED                          [ 74%]
tests/test_textlog.py::test_make_renderable_expand_tabs PASSED           [ 74%]
tests/test_tooltips.py::test_no_tip_gets_no_tooltip PASSED               [ 74%]
tests/test_tooltips.py::test_tip_gets_a_tooltip PASSED                   [ 74%]
tests/test_tooltips.py::test_mouse_move_removes_a_tooltip PASSED         [ 74%]
tests/test_tooltips.py::test_removing_tipper_should_remove_tooltip PASSED [ 74%]
tests/test_tooltips.py::test_making_tipper_invisible_should_remove_tooltip PASSED [ 74%]
tests/test_tooltips.py::test_making_tipper_not_displayed_should_remove_tooltip PASSED [ 74%]
tests/test_tooltips.py::test_making_tipper_shuffle_away_should_remove_tooltip PASSED [ 74%]
tests/test_two_way_dict.py::test_get PASSED                              [ 74%]
tests/test_two_way_dict.py::test_get_key PASSED                          [ 74%]
tests/test_two_way_dict.py::test_set_item PASSED                         [ 74%]
tests/test_two_way_dict.py::test_len PASSED                              [ 74%]
tests/test_two_way_dict.py::test_delitem PASSED                          [ 74%]
tests/test_two_way_dict.py::test_contains PASSED                         [ 74%]
tests/test_unmount.py::test_unmount PASSED                               [ 74%]
tests/test_validation.py::test_ValidationResult_merge_successes PASSED   [ 74%]
tests/test_validation.py::test_ValidationResult_merge_failures PASSED    [ 74%]
tests/test_validation.py::test_ValidationResult_failure_descriptions PASSED [ 74%]
tests/test_validation.py::test_Failure_description_priorities_parameter_only PASSED [ 74%]
tests/test_validation.py::test_Failure_description_priorities_parameter_and_describe_failure PASSED [ 74%]
tests/test_validation.py::test_Failure_description_priorities_describe_failure_only PASSED [ 74%]
tests/test_validation.py::test_Failure_description_parameter_and_description_inside_validate PASSED [ 74%]
tests/test_validation.py::test_Failure_description_describe_and_description_inside_validate PASSED [ 75%]
tests/test_validation.py::test_Number_validate[123-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[-123-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[123.45-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[1.23e-4-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[abc-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[123-100-200-True] PASSED  [ 75%]
tests/test_validation.py::test_Number_validate[99-100-200-False] PASSED  [ 75%]
tests/test_validation.py::test_Number_validate[201-100-200-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[1.23e4-0-50000-True] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[inf-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[nan-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[-inf-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Number_validate[-4-0-5-False] PASSED      [ 75%]
tests/test_validation.py::test_Number_validate[2--3-0-False] PASSED      [ 75%]
tests/test_validation.py::test_Number_validate[-2--3-0-True] PASSED      [ 75%]
tests/test_validation.py::test_Regex_validate[\\d+-123-True] PASSED      [ 75%]
tests/test_validation.py::test_Regex_validate[\\d+-abc-False] PASSED     [ 75%]
tests/test_validation.py::test_Regex_validate[[a-z]+-abc-True] PASSED    [ 75%]
tests/test_validation.py::test_Regex_validate[[a-z]+-ABC-False] PASSED   [ 75%]
tests/test_validation.py::test_Regex_validate[\\w+-abc123-True] PASSED   [ 75%]
tests/test_validation.py::test_Regex_validate[\\w+-!@#-False] PASSED     [ 75%]
tests/test_validation.py::test_Integer_validate[123-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[-123-None-None-True] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[123.45-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[1.23e-4-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[abc-None-None-False] PASSED [ 75%]
tests/test_validation.py::test_Integer_validate[123-100-200-True] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[99-100-200-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[201-100-200-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[1.23e4-None-None-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[123.-None-None-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[123_456-None-None-True] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[_123_456-None-None-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_validate[-123--123--123-True] PASSED [ 76%]
tests/test_validation.py::test_Length_validate[-None-None-True] PASSED   [ 76%]
tests/test_validation.py::test_Length_validate[test-None-None-True] PASSED [ 76%]
tests/test_validation.py::test_Length_validate[test-5-None-False] PASSED [ 76%]
tests/test_validation.py::test_Length_validate[test-None-3-False] PASSED [ 76%]
tests/test_validation.py::test_Length_validate[test-4-4-True] PASSED     [ 76%]
tests/test_validation.py::test_Length_validate[test-2-6-True] PASSED     [ 76%]
tests/test_validation.py::test_URL_validate[http://example.com-True] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[https://example.com-True] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[www.example.com-False] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[://example.com-False] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[https:///path-False] PASSED  [ 76%]
tests/test_validation.py::test_URL_validate[redis://username:pass[word@localhost:6379/0-False] PASSED [ 76%]
tests/test_validation.py::test_URL_validate[-False] PASSED               [ 76%]
tests/test_validation.py::test_Function_validate[<lambda>-None-True] PASSED [ 76%]
tests/test_validation.py::test_Function_validate[<lambda>-failure!-False] PASSED [ 76%]
tests/test_validation.py::test_Integer_failure_description_when_NotANumber PASSED [ 76%]
tests/test_version.py::test_version PASSED                               [ 76%]
tests/test_visible.py::test_visibility_changes PASSED                    [ 76%]
tests/test_visible.py::test_visible_is_inherited PASSED                  [ 76%]
tests/test_widget.py::test_widget_construct PASSED                       [ 77%]
tests/test_widget.py::test_widget_set_visible_true[True-True-visible] PASSED [ 77%]
tests/test_widget.py::test_widget_set_visible_true[False-False-hidden] PASSED [ 77%]
tests/test_widget.py::test_widget_set_visible_true[hidden-False-hidden] PASSED [ 77%]
tests/test_widget.py::test_widget_set_visible_true[visible-True-visible] PASSED [ 77%]
tests/test_widget.py::test_widget_set_visible_invalid_string PASSED      [ 77%]
tests/test_widget.py::test_widget_content_width PASSED                   [ 77%]
tests/test_widget.py::test_get_child_by_id_gets_first_child PASSED       [ 77%]
tests/test_widget.py::test_get_child_by_id_no_matching_child PASSED      [ 77%]
tests/test_widget.py::test_get_child_by_id_only_immediate_descendents PASSED [ 77%]
tests/test_widget.py::test_get_child_by_type PASSED                      [ 77%]
tests/test_widget.py::test_get_widget_by_id_no_matching_child PASSED     [ 77%]
tests/test_widget.py::test_get_widget_by_id_non_immediate_descendants PASSED [ 77%]
tests/test_widget.py::test_get_widget_by_id_immediate_descendants PASSED [ 77%]
tests/test_widget.py::test_get_widget_by_id_doesnt_return_self PASSED    [ 77%]
tests/test_widget.py::test_get_widgets_app_delegated PASSED              [ 77%]
tests/test_widget.py::test_widget_mount_ids_must_be_unique_mounting_all_in_one_go PASSED [ 77%]
tests/test_widget.py::test_widget_mount_ids_must_be_unique_mounting_multiple_calls PASSED [ 77%]
tests/test_widget.py::test_get_pseudo_class_state PASSED                 [ 77%]
tests/test_widget.py::test_get_pseudo_class_state_disabled PASSED        [ 77%]
tests/test_widget.py::test_get_pseudo_class_state_parent_disabled PASSED [ 77%]
tests/test_widget.py::test_get_pseudo_class_state_hover PASSED           [ 77%]
tests/test_widget.py::test_get_pseudo_class_state_focus PASSED           [ 77%]
tests/test_widget.py::test_remove PASSED                                 [ 77%]
tests/test_widget.py::test_remove_unmounted PASSED                       [ 77%]
tests/test_widget.py::test_render_str PASSED                             [ 77%]
tests/test_widget.py::test_compose_order PASSED                          [ 77%]
tests/test_widget.py::test_children_must_be_widgets PASSED               [ 78%]
tests/test_widget.py::test_orphan_widget_has_no_siblings PASSED          [ 78%]
tests/test_widget.py::test__allow_scroll_default PASSED                  [ 78%]
tests/test_widget.py::test__allow_scroll PASSED                          [ 78%]
tests/test_widget.py::test_offset_getter_setter PASSED                   [ 78%]
tests/test_widget.py::test_get_set_tooltip PASSED                        [ 78%]
tests/test_widget.py::test_loading PASSED                                [ 78%]
tests/test_widget.py::test_loading_button PASSED                         [ 78%]
tests/test_widget.py::test_is_mounted_property PASSED                    [ 78%]
tests/test_widget.py::test_mount_error_not_widget PASSED                 [ 78%]
tests/test_widget.py::test_mount_error_bad_widget PASSED                 [ 78%]
tests/test_widget.py::test_render_returns_text PASSED                    [ 78%]
tests/test_widget.py::test_sort_children PASSED                          [ 78%]
tests/test_widget.py::test_sort_children_no_key PASSED                   [ 78%]
tests/test_widget.py::test_bad_widget_name_raised PASSED                 [ 78%]
tests/test_widget.py::test_lazy_loading PASSED                           [ 78%]
tests/test_widget.py::test_of_type PASSED                                [ 78%]
tests/test_widget_child_moving.py::test_move_child_no_direction PASSED   [ 78%]
tests/test_widget_child_moving.py::test_move_child_both_directions PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_not_our_child PASSED  [ 78%]
tests/test_widget_child_moving.py::test_move_child_to_outside PASSED     [ 78%]
tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_index[before] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_index[after] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[before] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_index_in_relation_to_itself_widget[after] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_index[before] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_index[after] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_widget[before] PASSED [ 78%]
tests/test_widget_child_moving.py::test_move_child_widget_in_relation_to_itself_widget[after] PASSED [ 79%]
tests/test_widget_child_moving.py::test_move_past_end_of_child_list PASSED [ 79%]
tests/test_widget_child_moving.py::test_move_before_end_of_child_list PASSED [ 79%]
tests/test_widget_child_moving.py::test_move_before_permutations PASSED  [ 79%]
tests/test_widget_child_moving.py::test_move_after_permutations PASSED   [ 79%]
tests/test_widget_child_moving.py::test_move_child_after_last_child PASSED [ 79%]
tests/test_widget_child_moving.py::test_move_child_after_last_numeric_location PASSED [ 79%]
tests/test_widget_mount_point.py::test_find_dom_spot PASSED              [ 79%]
tests/test_widget_mounting.py::test_mount_via_app PASSED                 [ 79%]
tests/test_widget_mounting.py::test_mount_error PASSED                   [ 79%]
tests/test_widget_navigation.py::test_distance[2-8-1-10-4] PASSED        [ 79%]
tests/test_widget_navigation.py::test_distance[2-8--1-10-6] PASSED       [ 79%]
tests/test_widget_navigation.py::test_distance[8-2--1-10-4] PASSED       [ 79%]
tests/test_widget_navigation.py::test_distance[8-2-1-10-6] PASSED        [ 79%]
tests/test_widget_navigation.py::test_distance[8-2-1-1234123512-6] PASSED [ 79%]
tests/test_widget_navigation.py::test_distance[2-8-1-11-5] PASSED        [ 79%]
tests/test_widget_navigation.py::test_distance[2-8-1-12-6] PASSED        [ 79%]
tests/test_widget_navigation.py::test_distance[5-5-1-10-0] PASSED        [ 79%]
tests/test_widget_navigation.py::test_find_enabled_returns_none_on_empty[find_first_enabled] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_enabled_returns_none_on_empty[find_last_enabled] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates0-None-1-None] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates1-None--1-None] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates2-None-1-0] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates3-None-1-0] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates4-None-1-0] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates5-None-1-1] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates6-None-1-2] PASSED [ 79%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates7-None--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates8-None--1-1] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates9-None--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates10-None--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates11-0-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates12-1-1-1] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates13-1--1-1] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates14-None--1-None] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates15-0-1-3] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates16-0--1-4] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates17-1-1-3] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates18-1--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates19-2-1-3] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates20-2--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates21-3-1-4] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates22-3--1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates23-4-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates24-4--1-3] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates25-5-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled[candidates26-5--1-4] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates0-None-1-None] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates1-None--1-None] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates2-None-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates3-None-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates4-None-1-0] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates5-None-1-1] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates6-None-1-2] PASSED [ 80%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates7-None--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates8-None--1-1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates9-None--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates10-None--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates11-0-1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates12-1-1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates13-1--1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates14-None--1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates15-0-1-3] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates16-0--1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates17-1-1-3] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates18-1--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates19-2-1-3] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates20-2--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates21-3-1-4] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates22-3--1-0] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates23-4-1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates24-4--1-3] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates25-5-1-None] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_enabled_no_wrap[candidates26-5--1-4] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-0-1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-0--1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-1-1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-1--1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-2-1] PASSED [ 81%]
tests/test_widget_navigation.py::test_find_next_with_anchor[find_next_enabled_no_wrap-2--1] PASSED [ 81%]
tests/test_widget_removing.py::test_remove_single_widget PASSED          [ 81%]
tests/test_widget_removing.py::test_many_remove_all_widgets PASSED       [ 82%]
tests/test_widget_removing.py::test_many_remove_some_widgets PASSED      [ 82%]
tests/test_widget_removing.py::test_remove_branch PASSED                 [ 82%]
tests/test_widget_removing.py::test_remove_overlap PASSED                [ 82%]
tests/test_widget_removing.py::test_remove_move_focus PASSED             [ 82%]
tests/test_widget_removing.py::test_widget_remove_order PASSED           [ 82%]
tests/test_widget_removing.py::test_query_remove_order PASSED            [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_container PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_with_star_selector PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_with_string_selector PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_with_type_selector PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_with_selector_does_not_leak PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_no_children PASSED [ 82%]
tests/test_widget_removing.py::test_widget_remove_children_no_children_match_selector PASSED [ 82%]
tests/test_widget_visibility.py::test_hide PASSED                        [ 82%]
tests/test_win_sleep.py::test_win_sleep_timer_is_cancellable SKIPPED (We
only need to test this on Windows.)                                      [ 82%]
tests/test_wrap.py::test_chunks[-expected_output0] PASSED                [ 82%]
tests/test_wrap.py::test_chunks[    -expected_output1] PASSED            [ 82%]
tests/test_wrap.py::test_chunks[\t-expected_output2] PASSED              [ 82%]
tests/test_wrap.py::test_chunks[foo-expected_output3] PASSED             [ 82%]
tests/test_wrap.py::test_chunks[  foo  -expected_output4] PASSED         [ 82%]
tests/test_wrap.py::test_chunks[foo bar-expected_output5] PASSED         [ 82%]
tests/test_wrap.py::test_chunks[\tfoo bar-expected_output6] PASSED       [ 82%]
tests/test_wrap.py::test_chunks[ foo bar-expected_output7] PASSED        [ 82%]
tests/test_wrap.py::test_chunks[foo bar   -expected_output8] PASSED      [ 82%]
tests/test_wrap.py::test_chunks[foo\t  bar   -expected_output9] PASSED   [ 82%]
tests/test_wrap.py::test_chunks[\u6728\t  \u5ddd   -expected_output10] PASSED [ 82%]
tests/test_wrap.py::test_compute_wrap_offsets[-6-4-expected_output0] PASSED [ 82%]
tests/test_wrap.py::test_compute_wrap_offsets[\t-6-4-expected_output1] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[    -6-4-expected_output2] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[foo bar baz-6-4-expected_output3] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\tfoo bar baz-6-4-expected_output4] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz-6-4-expected_output5] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz-6-8-expected_output6] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\tfo bar baz\t-6-8-expected_output7] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\t\t\tfo bar baz\t-20-4-expected_output8] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\t\t\t\t\t\t\t\tfo bar bar-19-4-expected_output9] PASSED [ 83%]
tests/test_wrap.py::test_compute_wrap_offsets[\t\t\t\t\t-19-4-expected_output10] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[2] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[3] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[4] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[5] PASSED [ 83%]
tests/test_xterm_parser.py::test_varying_parser_chunk_sizes_no_missing_data[6] PASSED [ 83%]
tests/test_xterm_parser.py::test_bracketed_paste PASSED                  [ 83%]
tests/test_xterm_parser.py::test_bracketed_paste_content_contains_escape_codes PASSED [ 83%]
tests/test_xterm_parser.py::test_bracketed_paste_amongst_other_codes PASSED [ 83%]
tests/test_xterm_parser.py::test_cant_match_escape_sequence_too_long PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[2] PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[3] PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[4] PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[5] PASSED [ 83%]
tests/test_xterm_parser.py::test_unknown_sequence_followed_by_known_sequence[6] PASSED [ 83%]
tests/test_xterm_parser.py::test_simple_key_presses_all_delivered_correct_order PASSED [ 83%]
tests/test_xterm_parser.py::test_simple_keypress_non_character_key PASSED [ 83%]
tests/test_xterm_parser.py::test_key_presses_and_escape_sequence_mixed PASSED [ 83%]
tests/test_xterm_parser.py::test_single_escape PASSED                    [ 84%]
tests/test_xterm_parser.py::test_double_escape PASSED                    [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<0;50;25M-MouseDown-False-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<4;50;25M-MouseDown-True-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<8;50;25M-MouseDown-False-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<12;50;25M-MouseDown-True-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<0;50;25m-MouseUp-False-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<4;50;25m-MouseUp-True-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<8;50;25m-MouseUp-False-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_click[\x1b[<12;50;25m-MouseUp-True-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<32;15;38M-False-False-1] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<35;15;38M-False-False-0] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<39;15;38M-True-False-0] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<43;15;38M-False-True-0] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_move[\x1b[<3;15;38M-False-False-0] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<64;18;25M-False-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<68;18;25M-True-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_up[\x1b[<72;18;25M-False-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<65;18;25M-False-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<69;18;25M-True-False] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_scroll_down[\x1b[<73;18;25M-False-True] PASSED [ 84%]
tests/test_xterm_parser.py::test_mouse_event_detected_but_info_not_parsed PASSED [ 84%]
tests/test_xterm_parser.py::test_escape_sequence_resulting_in_multiple_keypresses XFAIL [ 84%]
tests/test_xterm_parser.py::test_terminal_mode_reporting_synchronized_output_supported PASSED [ 84%]
tests/test_xterm_parser.py::test_terminal_mode_reporting_synchronized_output_not_supported PASSED [ 84%]
tests/text_area/test_code_editor.py::test_code_editor_parameters_kept_up_to_date PASSED [ 84%]
tests/text_area/test_edit_via_api.py::test_insert_text_start_maintain_selection_offset PASSED [ 84%]
tests/text_area/test_edit_via_api.py::test_insert_text_start PASSED      [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_empty_string PASSED    [ 85%]
tests/text_area/test_edit_via_api.py::test_replace_empty_string PASSED   [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_character_near_cursor_maintain_selection_offset[cursor_location0-insert_location0-cursor_destination0] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_character_near_cursor_maintain_selection_offset[cursor_location1-insert_location1-cursor_destination1] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_character_near_cursor_maintain_selection_offset[cursor_location2-insert_location2-cursor_destination2] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_character_near_cursor_maintain_selection_offset[cursor_location3-insert_location3-cursor_destination3] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newline_around_cursor_maintain_selection_offset[cursor_location0-insert_location0-cursor_destination0] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newline_around_cursor_maintain_selection_offset[cursor_location1-insert_location1-cursor_destination1] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newline_around_cursor_maintain_selection_offset[cursor_location2-insert_location2-cursor_destination2] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newlines_start PASSED  [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_newlines_end PASSED    [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_windows_newlines PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_old_mac_newlines PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_text_non_cursor_location PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_text_non_cursor_location_dont_maintain_offset PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_multiline_text PASSED  [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_multiline_text_maintain_offset PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_replace_multiline_text PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_replace_multiline_text_maintain_selection PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_delete_within_line PASSED     [ 85%]
tests/text_area/test_edit_via_api.py::test_delete_within_line_dont_maintain_offset PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_delete_multiple_lines_selection_above PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_delete_empty_document PASSED  [ 85%]
tests/text_area/test_edit_via_api.py::test_clear PASSED                  [ 85%]
tests/text_area/test_edit_via_api.py::test_clear_empty_document PASSED   [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_text_multiline_selection_top[select_from0-select_to0] PASSED [ 85%]
tests/text_area/test_edit_via_api.py::test_insert_text_multiline_selection_top[select_from1-select_to1] PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_insert_text_multiline_selection_bottom[select_from0-select_to0] PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_insert_text_multiline_selection_bottom[select_from1-select_to1] PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_delete_fully_within_selection PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_replace_fully_within_selection PASSED [ 86%]
tests/text_area/test_edit_via_api.py::test_text_setter PASSED            [ 86%]
tests/text_area/test_edit_via_api.py::test_edits_on_read_only_mode PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_single_keypress_printable_character PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_single_keypress_enter PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[-0-4] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[x-0-4] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[x-1-4] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[xxx-3-4] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[xxxx-4-8] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[xxxxx-5-8] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[xxxxxx-6-8] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[\U0001f4a9-1-3] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_tab_with_spaces_goes_to_tab_stop[\U0001f4a9\U0001f4a9-2-6] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_left PASSED       [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_left_start PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_left_end PASSED   [ 86%]
tests/text_area/test_edit_via_bindings.py::test_deletion_with_non_empty_selection[delete-selection0] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_deletion_with_non_empty_selection[delete-selection1] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_deletion_with_non_empty_selection[backspace-selection2] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_deletion_with_non_empty_selection[backspace-selection3] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_right PASSED      [ 86%]
tests/text_area/test_edit_via_bindings.py::test_delete_right_end_of_line PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection0--0123456789-cursor_end_location0] PASSED [ 86%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection1--0123456789-cursor_end_location1] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection2--0123456789-cursor_end_location2] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection3-01456789-23-cursor_end_location3] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut[selection4-01456789-23-cursor_end_location4] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection0-345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection1-345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection2-012\n345\n678\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection3-012\n345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection4-012\n35\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_cut_multiline_document[selection5-012\n3478\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection0-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection1-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection2-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection3-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line[selection4-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection0-345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection1-345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection2-012\n345\n678\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection3-012\n345\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection4-012\n678\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection5-012\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection6-012\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection7-012\n9\n] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_line_multiline_document[selection8-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection0-] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection1-01234] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection2-012345678] PASSED [ 87%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection3-0123456789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection4-012345678] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection5-0123456789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection6-01234] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_end_of_line[selection7-01] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection0-0123456789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection1-56789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection2-9] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection3-] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection4-9] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection5-] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection6-56789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_to_start_of_line[selection7-23456789] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection0-  012 345 6789-final_selection0] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection1-  2 345 6789-final_selection1] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection2-   345 6789-final_selection2] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection3-  345 6789-final_selection3] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection4-  012 345 -final_selection4] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left[selection5-  01789-final_selection5] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection0-\t012 \t 345\t6789-final_selection0] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection1-\t \t 345\t6789-final_selection1] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection2-\t\t 345\t6789-final_selection2] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection3-\t 345\t6789-final_selection3] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection4-\t012 \t 345\t-final_selection4] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_with_tabs[selection5-\t0126789-final_selection5] PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_to_start_of_line PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_left_at_line_start PASSED [ 88%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection0-012 345 6789-final_selection0] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection1-  01 345 6789-final_selection1] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection2-  012345 6789-final_selection2] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection3-  012 345 6789-final_selection3] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right[selection4-  01789-final_selection4] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right_delete_to_end_of_line PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_delete_word_right_at_end_of_line PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[enter] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[backspace] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+u] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+f] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+w] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+k] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[ctrl+x] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[space] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[1] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_edit_read_only_mode_does_nothing[tab] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_replace_lines_with_fewer_lines[selection0] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_replace_lines_with_fewer_lines[selection1] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_paste[selection0] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_paste[selection1] PASSED [ 89%]
tests/text_area/test_edit_via_bindings.py::test_paste_read_only_does_nothing PASSED [ 89%]
tests/text_area/test_escape_binding.py::test_escape_key_when_tab_behavior_is_focus PASSED [ 89%]
tests/text_area/test_escape_binding.py::test_escape_key_when_tab_behavior_is_indent PASSED [ 89%]
tests/text_area/test_history.py::test_simple_undo_redo PASSED            [ 89%]
tests/text_area/test_history.py::test_undo_selection_retained PASSED     [ 89%]
tests/text_area/test_history.py::test_undo_checkpoint_created_on_cursor_move PASSED [ 89%]
tests/text_area/test_history.py::test_setting_text_property_resets_history PASSED [ 90%]
tests/text_area/test_history.py::test_edits_batched_by_time PASSED       [ 90%]
tests/text_area/test_history.py::test_undo_checkpoint_character_limit_reached PASSED [ 90%]
tests/text_area/test_history.py::test_redo_with_no_undo_is_noop PASSED   [ 90%]
tests/text_area/test_history.py::test_undo_with_empty_undo_stack_is_noop PASSED [ 90%]
tests/text_area/test_history.py::test_redo_stack_cleared_on_edit PASSED  [ 90%]
tests/text_area/test_history.py::test_inserts_not_batched_with_deletes PASSED [ 90%]
tests/text_area/test_history.py::test_paste_is_an_isolated_batch PASSED  [ 90%]
tests/text_area/test_history.py::test_focus_creates_checkpoint PASSED    [ 90%]
tests/text_area/test_history.py::test_undo_redo_deletions_batched PASSED [ 90%]
tests/text_area/test_history.py::test_max_checkpoints PASSED             [ 90%]
tests/text_area/test_history.py::test_redo_stack PASSED                  [ 90%]
tests/text_area/test_history.py::test_backward_selection_undo_redo PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection0-A] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection1-delete] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection2-backspace] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection3-A] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection4-delete] PASSED [ 90%]
tests/text_area/test_issue_4301.py::test_issue_4301_reproduction[selection5-backspace] PASSED [ 90%]
tests/text_area/test_languages.py::test_setting_builtin_language_via_constructor PASSED [ 90%]
tests/text_area/test_languages.py::test_setting_builtin_language_via_attribute PASSED [ 90%]
tests/text_area/test_languages.py::test_setting_language_to_none PASSED  [ 90%]
tests/text_area/test_messages.py::test_changed_message_edit_via_api PASSED [ 90%]
tests/text_area/test_messages.py::test_changed_message_via_typing PASSED [ 90%]
tests/text_area/test_messages.py::test_changed_message_edit_via_assignment PASSED [ 90%]
tests/text_area/test_messages.py::test_selection_changed_via_api PASSED  [ 90%]
tests/text_area/test_messages.py::test_selection_changed_via_typing PASSED [ 90%]
tests/text_area/test_selection.py::test_default_selection PASSED         [ 91%]
tests/text_area/test_selection.py::test_cursor_location_get PASSED       [ 91%]
tests/text_area/test_selection.py::test_cursor_location_set PASSED       [ 91%]
tests/text_area/test_selection.py::test_cursor_location_set_while_selecting PASSED [ 91%]
tests/text_area/test_selection.py::test_move_cursor_select PASSED        [ 91%]
tests/text_area/test_selection.py::test_move_cursor_relative PASSED      [ 91%]
tests/text_area/test_selection.py::test_selected_text_forward PASSED     [ 91%]
tests/text_area/test_selection.py::test_selected_text_backward PASSED    [ 91%]
tests/text_area/test_selection.py::test_selected_text_multibyte PASSED   [ 91%]
tests/text_area/test_selection.py::test_selection_clamp PASSED           [ 91%]
tests/text_area/test_selection.py::test_get_cursor_left_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_left_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_left_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_right_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_right_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_right_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_right_location[start3-end3] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_up_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_up_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_up_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_down_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_down_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_get_cursor_down_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start0-end0] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start1-end1] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start2-end2] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start3-end3] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start4-end4] PASSED [ 91%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start5-end5] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start6-end6] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start7-end7] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start8-end8] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start9-end9] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start10-end10] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start11-end11] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start12-end12] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start13-end13] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start14-end14] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_left_location[start15-end15] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start0-end0] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start1-end1] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start2-end2] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start3-end3] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start4-end4] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start5-end5] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start6-end6] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start7-end7] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start8-end8] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start9-end9] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start10-end10] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start11-end11] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start12-end12] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start13-end13] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start14-end14] PASSED [ 92%]
tests/text_area/test_selection.py::test_cursor_word_right_location[start15-end15] PASSED [ 92%]
tests/text_area/test_selection.py::test_select_all[123\n456\n789-expected_selection0] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_all[123\n456\n789\n-expected_selection1] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_all[-expected_selection2] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[1-123\n456\n789\n-expected_selection0] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[2-123\n456\n789\n-expected_selection1] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[3-123\n456\n789\n-expected_selection2] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[1000-123\n456\n789\n-expected_selection3] PASSED [ 93%]
tests/text_area/test_selection.py::test_select_line[0--expected_selection4] PASSED [ 93%]
tests/text_area/test_selection.py::test_cursor_screen_offset_and_terminal_cursor_position_update PASSED [ 93%]
tests/text_area/test_selection.py::test_cursor_screen_offset_and_terminal_cursor_position_scrolling PASSED [ 93%]
tests/text_area/test_selection.py::test_mouse_selection_with_tab_characters PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click_clamp_from_right[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click_clamp_from_right[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click_gutter_clamp[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_mouse_click_gutter_clamp[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_movement_basic PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_right[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_right[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_right_to_previous_line[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_right_to_previous_line[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_left[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_left[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_left_to_previous_line[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_left_to_previous_line[False] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_up[True] PASSED [ 93%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_up[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_up_when_cursor_on_first_line[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_up_when_cursor_on_first_line[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_down[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_down[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_down_when_cursor_on_last_line[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_selection_down_when_cursor_on_last_line[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_right[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_right[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_right_select[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_right_select[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_left[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_left[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_left_select[True] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_word_left_select[False] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_end[True-end] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_end[True-ctrl+e] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_end[False-end] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_end[False-ctrl+e] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_home_basic_behaviour[True-home] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_home_basic_behaviour[True-ctrl+a] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_home_basic_behaviour[False-home] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_to_line_home_basic_behaviour[False-ctrl+a] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start0-cursor_destination0] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start1-cursor_destination1] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start2-cursor_destination2] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start3-cursor_destination3] PASSED [ 94%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start4-cursor_destination4] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[True-cursor_start5-cursor_destination5] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start0-cursor_destination0] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start1-cursor_destination1] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start2-cursor_destination2] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start3-cursor_destination3] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start4-cursor_destination4] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_line_home_smart_home[False-cursor_start5-cursor_destination5] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_page_down[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_page_down[False] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_page_up[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_page_up[False] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_vertical_movement_visual_alignment_snapping[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_cursor_vertical_movement_visual_alignment_snapping[False] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_select_line_binding[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_select_line_binding[False] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_select_all_binding[True] PASSED [ 95%]
tests/text_area/test_selection_bindings.py::test_select_all_binding[False] PASSED [ 95%]
tests/text_area/test_setting_themes.py::test_default_theme PASSED        [ 95%]
tests/text_area/test_setting_themes.py::test_setting_builtin_themes PASSED [ 95%]
tests/text_area/test_setting_themes.py::test_setting_unknown_theme_raises_exception PASSED [ 95%]
tests/text_area/test_setting_themes.py::test_registering_and_setting_theme PASSED [ 95%]
tests/text_area/test_textarea_cut_copy_paste.py::test_cut PASSED         [ 95%]
tests/text_area/test_textarea_cut_copy_paste.py::test_copy PASSED        [ 95%]
tests/text_area/test_textarea_cut_copy_paste.py::test_paste PASSED       [ 95%]
tests/toggles/test_checkbox.py::test_checkbox_initial_state PASSED       [ 95%]
tests/toggles/test_checkbox.py::test_checkbox_toggle PASSED              [ 95%]
tests/toggles/test_labels.py::test_change_labels PASSED                  [ 95%]
tests/toggles/test_radiobutton.py::test_radio_button_initial_state PASSED [ 96%]
tests/toggles/test_radiobutton.py::test_radio_button_toggle PASSED       [ 96%]
tests/toggles/test_radioset.py::test_radio_sets_initial_state PASSED     [ 96%]
tests/toggles/test_radioset.py::test_click_sets_focus PASSED             [ 96%]
tests/toggles/test_radioset.py::test_radio_sets_toggle PASSED            [ 96%]
tests/toggles/test_radioset.py::test_radioset_same_button_mash PASSED    [ 96%]
tests/toggles/test_radioset.py::test_radioset_inner_navigation PASSED    [ 96%]
tests/toggles/test_radioset.py::test_radioset_inner_navigation_post_build PASSED [ 96%]
tests/toggles/test_radioset.py::test_radioset_breakout_navigation PASSED [ 96%]
tests/toggles/test_radioset.py::test_there_can_only_be_one PASSED        [ 96%]
tests/toggles/test_radioset.py::test_keyboard_navigation_with_disabled_buttons PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_file_selected_message PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_directory_selected_message PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_reload_node PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_reload_other_node PASSED [ 96%]
tests/tree/test_directory_tree.py::test_directory_tree_reloading_preserves_state PASSED [ 96%]
tests/tree/test_node_refresh.py::test_initial_state PASSED               [ 96%]
tests/tree/test_node_refresh.py::test_root_refresh PASSED                [ 96%]
tests/tree/test_node_refresh.py::test_child_refresh PASSED               [ 96%]
tests/tree/test_node_refresh.py::test_grandchild_refresh PASSED          [ 96%]
tests/tree/test_tree_availability.py::test_creating_disabled_tree PASSED [ 96%]
tests/tree/test_tree_availability.py::test_creating_enabled_tree PASSED  [ 96%]
tests/tree/test_tree_availability.py::test_disabled_tree_node_selected_message [('NodeHighlighted', 'test-tree'), ('NodeExpanded', 'test-tree')]
PASSED [ 96%]
tests/tree/test_tree_availability.py::test_enabled_tree_node_selected_message [('NodeHighlighted', 'test-tree'), ('NodeExpanded', 'test-tree')]
PASSED [ 96%]
tests/tree/test_tree_clearing.py::test_tree_simple_clear PASSED          [ 96%]
tests/tree/test_tree_clearing.py::test_tree_reset_with_label PASSED      [ 96%]
tests/tree/test_tree_clearing.py::test_tree_reset_with_label_and_data PASSED [ 96%]
tests/tree/test_tree_clearing.py::test_remove_node PASSED                [ 97%]
tests/tree/test_tree_clearing.py::test_remove_node_children PASSED       [ 97%]
tests/tree/test_tree_clearing.py::test_tree_remove_children_of_root PASSED [ 97%]
tests/tree/test_tree_clearing.py::test_attempt_to_remove_root PASSED     [ 97%]
tests/tree/test_tree_cursor.py::test_move_cursor PASSED                  [ 97%]
tests/tree/test_tree_cursor.py::test_move_cursor_reset PASSED            [ 97%]
tests/tree/test_tree_cursor.py::test_select_node PASSED                  [ 97%]
tests/tree/test_tree_cursor.py::test_select_node_reset PASSED            [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_expand PASSED         [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_expand_all PASSED     [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_collapse PASSED       [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_collapse_all PASSED   [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_toggle PASSED         [ 97%]
tests/tree/test_tree_expand_etc.py::test_tree_node_toggle_all PASSED     [ 97%]
tests/tree/test_tree_get_node_by_id.py::test_get_tree_node_by_id PASSED  [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_selected_message PASSED [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_selected_message_no_auto PASSED [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_expanded_message PASSED [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_collapsed_message PASSED [ 97%]
tests/tree/test_tree_messages.py::test_tree_node_highlighted_message PASSED [ 97%]
tests/tree/test_tree_messages.py::test_expand_node_from_code PASSED      [ 97%]
tests/tree/test_tree_messages.py::test_collapse_node_from_code PASSED    [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_before_and_after_raises_exception PASSED [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_before_or_after_with_invalid_type_raises_exception PASSED [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_before_index PASSED [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_after_index PASSED  [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_relative_to_unknown_node_raises_exception PASSED [ 97%]
tests/tree/test_tree_node_add.py::test_tree_node_add_before_node PASSED  [ 98%]
tests/tree/test_tree_node_add.py::test_tree_node_add_after_node PASSED   [ 98%]
tests/tree/test_tree_node_add.py::test_tree_node_add_leaf_before_or_after PASSED [ 98%]
tests/tree/test_tree_node_children.py::test_tree_node_children PASSED    [ 98%]
tests/tree/test_tree_node_label.py::test_tree_node_label PASSED          [ 98%]
tests/tree/test_tree_node_label.py::test_tree_node_label_via_tree PASSED [ 98%]
tests/tree/test_tree_node_parent.py::test_tree_node_parent PASSED        [ 98%]
tests/workers/test_work_decorator.py::test_async_work PASSED             [ 98%]
tests/workers/test_work_decorator.py::test_async_thread_work PASSED      [ 98%]
tests/workers/test_work_decorator.py::test_thread_work PASSED            [ 98%]
tests/workers/test_work_decorator.py::test_decorate_non_async_no_thread_argument PASSED [ 98%]
tests/workers/test_work_decorator.py::test_decorate_non_async_no_thread_is_false PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack0] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack1] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack2] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack3] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack4] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack5] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack6] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack7] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack8] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack9] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack10] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack11] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack12] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack13] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack14] PASSED [ 98%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack15] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack16] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack17] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack18] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack19] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack20] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack21] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack22] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack23] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack24] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack25] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack26] PASSED [ 99%]
tests/workers/test_work_decorator.py::test_calling_workers_from_within_workers[call_stack27] PASSED [ 99%]
tests/workers/test_worker.py::test_initialize PASSED                     [ 99%]
tests/workers/test_worker.py::test_run_success PASSED                    [ 99%]
tests/workers/test_worker.py::test_run_error PASSED                      [ 99%]
tests/workers/test_worker.py::test_run_cancel PASSED                     [ 99%]
tests/workers/test_worker.py::test_run_cancel_immediately PASSED         [ 99%]
tests/workers/test_worker.py::test_get_worker PASSED                     [ 99%]
tests/workers/test_worker.py::test_no_active_worker PASSED               [ 99%]
tests/workers/test_worker.py::test_progress_update PASSED                [ 99%]
tests/workers/test_worker.py::test_double_start PASSED                   [ 99%]
tests/workers/test_worker.py::test_self_referential_deadlock PASSED      [ 99%]
tests/workers/test_worker.py::test_wait_without_start PASSED             [ 99%]
tests/workers/test_worker_manager.py::test_worker_manager_init PASSED    [ 99%]
tests/workers/test_worker_manager.py::test_run_worker_async PASSED       [ 99%]
tests/workers/test_worker_manager.py::test_run_worker_thread_non_async PASSED [ 99%]
tests/workers/test_worker_manager.py::test_run_worker_thread_async PASSED [100%]

=============================== warnings summary ===============================
tests/test_screen_modes.py::test_switch_mode
  /build/reproducible-path/textual-1.0.0/.pybuild/cpython3_3.12_textual/build/textual/dom.py:845: RuntimeWarning: coroutine 'test_async_reactive_watch_callbacks_go_on_the_watcher.<locals>.MyApp.callback' was never awaited
    *(f".{class_name}" for class_name in self._classes),
  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
= 2718 passed, 1 skipped, 7 deselected, 4 xfailed, 1 warning in 379.64s (0:06:19) =
   create-stamp debian/debhelper-build-stamp
 fakeroot debian/rules binary
dh binary --with python3 --buildsystem=pybuild
   dh_testroot -O--buildsystem=pybuild
   dh_prep -O--buildsystem=pybuild
   dh_auto_install --destdir=debian/python3-textual/ -O--buildsystem=pybuild
I: pybuild plugin_pyproject:178: Copying package built for python3.13 to destdir
I: pybuild plugin_pyproject:178: Copying package built for python3.12 to destdir
   dh_installdocs -O--buildsystem=pybuild
   dh_installchangelogs -O--buildsystem=pybuild
   dh_installexamples -O--buildsystem=pybuild
   dh_python3 -O--buildsystem=pybuild
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_bash (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_css (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_go (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_html (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_java (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_javascript (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_json (>=0.24.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_markdown (>=0.3.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_python (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_regex (>=0.24.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_rust (>=0.23.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_sql (>=0.3.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_toml (>=0.6.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_xml (>=0.7.0) ; (python_version >= "3.9") and (extra == "syntax")
I: dh_python3 pydist:339: Ignoring complex environment marker: tree_sitter_yaml (>=0.6.0) ; (python_version >= "3.9") and (extra == "syntax")
   dh_installsystemduser -O--buildsystem=pybuild
   dh_perl -O--buildsystem=pybuild
   dh_link -O--buildsystem=pybuild
   dh_strip_nondeterminism -O--buildsystem=pybuild
   dh_compress -O--buildsystem=pybuild
   dh_fixperms -O--buildsystem=pybuild
   dh_missing -O--buildsystem=pybuild
   dh_installdeb -O--buildsystem=pybuild
   dh_gencontrol -O--buildsystem=pybuild
dpkg-gencontrol: warning: Recommends field of package python3-textual: substitution variable ${python3:Recommends} used, but is not defined
dpkg-gencontrol: warning: Suggests field of package python3-textual: substitution variable ${python3:Suggests} used, but is not defined
   dh_md5sums -O--buildsystem=pybuild
   dh_builddeb -O--buildsystem=pybuild
dpkg-deb: building package 'python3-textual' in '../python3-textual_1.0.0-1_all.deb'.
 dpkg-genbuildinfo --build=binary -O../textual_1.0.0-1_armhf.buildinfo
 dpkg-genchanges --build=binary -O../textual_1.0.0-1_armhf.changes
dpkg-genchanges: info: binary-only upload (no source code included)
 dpkg-source --after-build .
dpkg-source: info: using options from textual-1.0.0/debian/source/options: --extend-diff-ignore=^[^/]+.egg-info/
dpkg-buildpackage: info: binary-only upload (no source included)
dpkg-genchanges: info: including full source code in upload
I: copying local configuration
I: user script /srv/workspace/pbuilder/27118/tmp/hooks/B01_cleanup starting
I: user script /srv/workspace/pbuilder/27118/tmp/hooks/B01_cleanup finished
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/27118 and its subdirectories
I: Current time: Thu Dec 26 06:03:05 +14 2024
I: pbuilder-time-stamp: 1735142585