I: pbuilder: network access will be disabled during build I: Current time: Mon May 19 00:40:02 +14 2025 I: pbuilder-time-stamp: 1747564802 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: using eatmydata during job I: Copying source file I: copying [terminaltables_3.1.10-4.dsc] I: copying [./terminaltables_3.1.10.orig.tar.xz] I: copying [./terminaltables_3.1.10-4.debian.tar.xz] I: Extracting source gpgv: Signature made Wed Mar 13 18:14:30 2024 gpgv: using RSA key 8136ED25C7D67E92C74A429255CF1BF986ABB9C7 gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./terminaltables_3.1.10-4.dsc: no acceptable signature found dpkg-source: info: extracting terminaltables in terminaltables-3.1.10 dpkg-source: info: unpacking terminaltables_3.1.10.orig.tar.xz dpkg-source: info: unpacking terminaltables_3.1.10-4.debian.tar.xz dpkg-source: info: using patch list from debian/patches/series dpkg-source: info: applying debian/0001-google-analytics.patch dpkg-source: info: applying debian/0002-html-output.patch dpkg-source: info: applying debian/0003-python-shebang.patch dpkg-source: info: applying debian/0004-quiet-stdout.patch dpkg-source: info: applying debian/0005-sphinx-meta.patch dpkg-source: info: applying debian/0006-sphinx-extlinks.patch I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/57679/tmp/hooks/D01_modify_environment starting debug: Running on ionos6-i386. 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 May 18 10:40 /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/57679/tmp/hooks/D01_modify_environment finished I: user script /srv/workspace/pbuilder/57679/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]="21" [3]="1" [4]="release" [5]="i686-pc-linux-gnu") BASH_VERSION='5.2.21(1)-release' BUILDDIR=/build/reproducible-path BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' BUILDUSERNAME=pbuilder2 BUILD_ARCH=i386 DEBIAN_FRONTEND=noninteractive DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=21 ' DIRSTACK=() DISTRIBUTION=trixie EUID=0 FUNCNAME=([0]="Echo" [1]="main") GROUPS=() HOME=/root HOSTNAME=i-capture-the-hostname HOSTTYPE=i686 HOST_ARCH=i386 IFS=' ' INVOCATION_ID=c94bfb60a08f4917a691b8205bf425fc LANG=C LANGUAGE=de_CH:de LC_ALL=C LD_LIBRARY_PATH=/usr/lib/libeatmydata LD_PRELOAD=libeatmydata.so MACHTYPE=i686-pc-linux-gnu MAIL=/var/mail/root OPTERR=1 OPTIND=1 OSTYPE=linux-gnu 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=57679 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.KClT5kck/pbuilderrc_55YF --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.KClT5kck/b2 --logfile b2/build.log terminaltables_3.1.10-4.dsc' SUDO_GID=112 SUDO_UID=107 SUDO_USER=jenkins TERM=unknown TZ=/usr/share/zoneinfo/Etc/GMT-14 UID=0 USER=root _='I: set' http_proxy=http://85.184.249.68:3128 I: uname -a Linux i-capture-the-hostname 6.1.0-20-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.85-1 (2024-04-11) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 May 17 17:48 /bin -> usr/bin I: user script /srv/workspace/pbuilder/57679/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: i386 Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), dh-python, pybuild-plugin-pyproject, python3-all, python3-colorama, python3-colorclass, python3-poetry, python3-pytest, python3-setuptools, python3-sphinx, python3-sphinx-rtd-theme, python3-termcolor dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19874 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 dh-python; however: Package dh-python 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-colorama; however: Package python3-colorama is not installed. pbuilder-satisfydepends-dummy depends on python3-colorclass; however: Package python3-colorclass is not installed. pbuilder-satisfydepends-dummy depends on python3-poetry; however: Package python3-poetry is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinx; however: Package python3-sphinx is not installed. pbuilder-satisfydepends-dummy depends on python3-sphinx-rtd-theme; however: Package python3-sphinx-rtd-theme is not installed. pbuilder-satisfydepends-dummy depends on python3-termcolor; however: Package python3-termcolor 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} docutils-common{a} dwz{a} file{a} fonts-font-awesome{a} fonts-lato{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libdebhelper-perl{a} libelf1{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libicu72{a} libjs-jquery{a} libjs-sphinxdoc{a} libjs-underscore{a} libjson-perl{a} libmagic-mgc{a} libmagic1{a} libpipeline1{a} libpython3-stdlib{a} libpython3.11-minimal{a} libpython3.11-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libreadline8{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} po-debconf{a} pybuild-plugin-pyproject{a} python-babel-localedata{a} python3{a} python3-alabaster{a} python3-all{a} python3-babel{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-colorama{a} python3-colorclass{a} python3-crashtest{a} python3-cryptography{a} python3-distlib{a} python3-distutils{a} python3-docutils{a} python3-dulwich{a} python3-fastjsonschema{a} python3-filelock{a} python3-idna{a} python3-imagesize{a} python3-importlib-metadata{a} python3-iniconfig{a} python3-installer{a} python3-jaraco.classes{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jeepney{a} python3-jinja2{a} python3-keyring{a} python3-lib2to3{a} python3-lockfile{a} python3-markupsafe{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-requests{a} python3-requests-toolbelt{a} python3-roman{a} python3-secretstorage{a} python3-setuptools{a} python3-setuptools-whl{a} python3-shellingham{a} python3-six{a} python3-snowballstemmer{a} python3-sphinx{a} python3-sphinx-rtd-theme{a} python3-sphinxcontrib.jquery{a} python3-termcolor{a} python3-toml{a} python3-tomlkit{a} python3-trove-classifiers{a} python3-tz{a} python3-urllib3{a} python3-virtualenv{a} python3-wheel{a} python3-wheel-whl{a} python3-zipp{a} python3.11{a} python3.11-minimal{a} python3.12{a} python3.12-minimal{a} readline-common{a} sensible-utils{a} sgml-base{a} sphinx-common{a} sphinx-rtd-theme-common{a} tzdata{a} xml-core{a} The following packages are RECOMMENDED but will NOT be installed: curl javascript-common libarchive-cpio-perl libjson-xs-perl libltdl-dev libmail-sendmail-perl libpaper-utils lynx python-pkginfo-doc python3-dev python3-fastimport python3-pil wget 0 packages upgraded, 136 newly installed, 0 to remove and 0 not upgraded. Need to get 53.8 MB of archives. After unpacking 210 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian trixie/main i386 fonts-lato all 2.015-1 [2780 kB] Get: 2 http://deb.debian.org/debian trixie/main i386 libpython3.11-minimal i386 3.11.8-1 [817 kB] Get: 3 http://deb.debian.org/debian trixie/main i386 libexpat1 i386 2.5.0-2+b2 [104 kB] Get: 4 http://deb.debian.org/debian trixie/main i386 python3.11-minimal i386 3.11.8-1 [2087 kB] Get: 5 http://deb.debian.org/debian trixie/main i386 python3-minimal i386 3.11.6-1 [26.2 kB] Get: 6 http://deb.debian.org/debian trixie/main i386 media-types all 10.1.0 [26.9 kB] Get: 7 http://deb.debian.org/debian trixie/main i386 netbase all 6.4 [12.8 kB] Get: 8 http://deb.debian.org/debian trixie/main i386 tzdata all 2024a-1 [255 kB] Get: 9 http://deb.debian.org/debian trixie/main i386 readline-common all 8.2-3 [69.1 kB] Get: 10 http://deb.debian.org/debian trixie/main i386 libreadline8 i386 8.2-3+b1 [171 kB] Get: 11 http://deb.debian.org/debian trixie/main i386 libpython3.11-stdlib i386 3.11.8-1 [1821 kB] Get: 12 http://deb.debian.org/debian trixie/main i386 python3.11 i386 3.11.8-1 [597 kB] Get: 13 http://deb.debian.org/debian trixie/main i386 libpython3-stdlib i386 3.11.6-1 [9224 B] Get: 14 http://deb.debian.org/debian trixie/main i386 python3 i386 3.11.6-1 [26.2 kB] Get: 15 http://deb.debian.org/debian trixie/main i386 libpython3.12-minimal i386 3.12.2-1 [807 kB] Get: 16 http://deb.debian.org/debian trixie/main i386 python3.12-minimal i386 3.12.2-1 [2244 kB] Get: 17 http://deb.debian.org/debian trixie/main i386 sgml-base all 1.31 [15.4 kB] Get: 18 http://deb.debian.org/debian trixie/main i386 sensible-utils all 0.0.22 [22.4 kB] Get: 19 http://deb.debian.org/debian trixie/main i386 openssl i386 3.1.5-1 [1246 kB] Get: 20 http://deb.debian.org/debian trixie/main i386 ca-certificates all 20240203 [158 kB] Get: 21 http://deb.debian.org/debian trixie/main i386 libmagic-mgc i386 1:5.45-2+b1 [314 kB] Get: 22 http://deb.debian.org/debian trixie/main i386 libmagic1 i386 1:5.45-2+b1 [114 kB] Get: 23 http://deb.debian.org/debian trixie/main i386 file i386 1:5.45-2+b1 [43.0 kB] Get: 24 http://deb.debian.org/debian trixie/main i386 gettext-base i386 0.21-14+b1 [162 kB] Get: 25 http://deb.debian.org/debian trixie/main i386 libuchardet0 i386 0.0.8-1+b1 [69.1 kB] Get: 26 http://deb.debian.org/debian trixie/main i386 groff-base i386 1.23.0-3 [1195 kB] Get: 27 http://deb.debian.org/debian trixie/main i386 bsdextrautils i386 2.39.3-6 [93.3 kB] Get: 28 http://deb.debian.org/debian trixie/main i386 libpipeline1 i386 1.5.7-2 [39.7 kB] Get: 29 http://deb.debian.org/debian trixie/main i386 man-db i386 2.12.0-3 [1413 kB] Get: 30 http://deb.debian.org/debian trixie/main i386 m4 i386 1.4.19-4 [293 kB] Get: 31 http://deb.debian.org/debian trixie/main i386 autoconf all 2.71-3 [332 kB] Get: 32 http://deb.debian.org/debian trixie/main i386 autotools-dev all 20220109.1 [51.6 kB] Get: 33 http://deb.debian.org/debian trixie/main i386 automake all 1:1.16.5-1.3 [823 kB] Get: 34 http://deb.debian.org/debian trixie/main i386 autopoint all 0.21-14 [496 kB] Get: 35 http://deb.debian.org/debian trixie/main i386 libdebhelper-perl all 13.15.3 [88.0 kB] Get: 36 http://deb.debian.org/debian trixie/main i386 libtool all 2.4.7-7 [517 kB] Get: 37 http://deb.debian.org/debian trixie/main i386 dh-autoreconf all 20 [17.1 kB] Get: 38 http://deb.debian.org/debian trixie/main i386 libarchive-zip-perl all 1.68-1 [104 kB] Get: 39 http://deb.debian.org/debian trixie/main i386 libsub-override-perl all 0.10-1 [10.6 kB] Get: 40 http://deb.debian.org/debian trixie/main i386 libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 41 http://deb.debian.org/debian trixie/main i386 dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 42 http://deb.debian.org/debian trixie/main i386 libelf1 i386 0.190-1+b1 [182 kB] Get: 43 http://deb.debian.org/debian trixie/main i386 dwz i386 0.15-1 [118 kB] Get: 44 http://deb.debian.org/debian trixie/main i386 libicu72 i386 72.1-4+b1 [9549 kB] Get: 45 http://deb.debian.org/debian trixie/main i386 libxml2 i386 2.9.14+dfsg-1.3+b2 [727 kB] Get: 46 http://deb.debian.org/debian trixie/main i386 gettext i386 0.21-14+b1 [1311 kB] Get: 47 http://deb.debian.org/debian trixie/main i386 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 48 http://deb.debian.org/debian trixie/main i386 po-debconf all 1.0.21+nmu1 [248 kB] Get: 49 http://deb.debian.org/debian trixie/main i386 debhelper all 13.15.3 [901 kB] Get: 50 http://deb.debian.org/debian trixie/main i386 python3-pkg-resources all 68.1.2-2 [241 kB] Get: 51 http://deb.debian.org/debian trixie/main i386 python3-lib2to3 all 3.11.5-1 [77.5 kB] Get: 52 http://deb.debian.org/debian trixie/main i386 python3-distutils all 3.11.5-1 [131 kB] Get: 53 http://deb.debian.org/debian trixie/main i386 python3-setuptools all 68.1.2-2 [468 kB] Get: 54 http://deb.debian.org/debian trixie/main i386 dh-python all 6.20240401 [107 kB] Get: 55 http://deb.debian.org/debian trixie/main i386 xml-core all 0.19 [20.1 kB] Get: 56 http://deb.debian.org/debian trixie/main i386 docutils-common all 0.20.1+dfsg-3 [128 kB] Get: 57 http://deb.debian.org/debian trixie/main i386 fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [517 kB] Get: 58 http://deb.debian.org/debian trixie/main i386 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB] Get: 59 http://deb.debian.org/debian trixie/main i386 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [116 kB] Get: 60 http://deb.debian.org/debian trixie/main i386 libjs-sphinxdoc all 7.2.6-6 [150 kB] Get: 61 http://deb.debian.org/debian trixie/main i386 libjson-perl all 4.10000-1 [87.5 kB] Get: 62 http://deb.debian.org/debian trixie/main i386 libpython3.12-stdlib i386 3.12.2-1 [1927 kB] Get: 63 http://deb.debian.org/debian trixie/main i386 python3-more-itertools all 10.2.0-1 [59.9 kB] Get: 64 http://deb.debian.org/debian trixie/main i386 python3-zipp all 1.0.0-6 [6696 B] Get: 65 http://deb.debian.org/debian trixie/main i386 python3-importlib-metadata all 4.12.0-1 [24.9 kB] Get: 66 http://deb.debian.org/debian trixie/main i386 python3-packaging all 24.0-1 [45.5 kB] Get: 67 http://deb.debian.org/debian trixie/main i386 python3-pyproject-hooks all 1.0.0-2 [10.6 kB] Get: 68 http://deb.debian.org/debian trixie/main i386 python3-toml all 0.10.2-1 [16.2 kB] Get: 69 http://deb.debian.org/debian trixie/main i386 python3-wheel all 0.43.0-1 [52.5 kB] Get: 70 http://deb.debian.org/debian trixie/main i386 python3-build all 1.1.1-1 [32.5 kB] Get: 71 http://deb.debian.org/debian trixie/main i386 python3-installer all 0.7.0+dfsg1-3 [18.6 kB] Get: 72 http://deb.debian.org/debian trixie/main i386 pybuild-plugin-pyproject all 6.20240401 [11.0 kB] Get: 73 http://deb.debian.org/debian trixie/main i386 python-babel-localedata all 2.10.3-3 [5611 kB] Get: 74 http://deb.debian.org/debian trixie/main i386 python3-alabaster all 0.7.12-1 [20.8 kB] Get: 75 http://deb.debian.org/debian trixie/main i386 python3.12 i386 3.12.2-1 [653 kB] Get: 76 http://deb.debian.org/debian trixie/main i386 python3-all i386 3.11.6-1 [1060 B] Get: 77 http://deb.debian.org/debian trixie/main i386 python3-tz all 2024.1-2 [30.9 kB] Get: 78 http://deb.debian.org/debian trixie/main i386 python3-babel all 2.10.3-3 [100.0 kB] Get: 79 http://deb.debian.org/debian trixie/main i386 python3-certifi all 2023.11.17-1 [155 kB] Get: 80 http://deb.debian.org/debian trixie/main i386 python3-charset-normalizer all 3.3.2-1 [51.6 kB] Get: 81 http://deb.debian.org/debian trixie/main i386 python3-idna all 3.6-2 [37.0 kB] Get: 82 http://deb.debian.org/debian trixie/main i386 python3-six all 1.16.0-6 [16.3 kB] Get: 83 http://deb.debian.org/debian trixie/main i386 python3-urllib3 all 1.26.18-2 [116 kB] Get: 84 http://deb.debian.org/debian trixie/main i386 python3-chardet all 5.2.0+dfsg-1 [107 kB] Get: 85 http://deb.debian.org/debian trixie/main i386 python3-requests all 2.31.0+dfsg-1 [68.6 kB] Get: 86 http://deb.debian.org/debian trixie/main i386 python3-msgpack i386 1.0.3-3+b1 [101 kB] Get: 87 http://deb.debian.org/debian trixie/main i386 python3-cachecontrol all 0.14.0-1 [18.6 kB] Get: 88 http://deb.debian.org/debian trixie/main i386 python3-cffi-backend i386 1.16.0-2+b1 [114 kB] Get: 89 http://deb.debian.org/debian trixie/main i386 python3-crashtest all 0.4.1-1 [6740 B] Get: 90 http://deb.debian.org/debian trixie/main i386 python3-pylev all 1.4.0-1 [6496 B] Get: 91 http://deb.debian.org/debian trixie/main i386 python3-cleo all 2.1.0-2 [54.4 kB] Get: 92 http://deb.debian.org/debian trixie/main i386 python3-colorama all 0.4.6-4 [36.2 kB] Get: 93 http://deb.debian.org/debian trixie/main i386 python3-colorclass all 2.2.2-2 [468 kB] Get: 94 http://deb.debian.org/debian trixie/main i386 python3-cryptography i386 41.0.7-4 [809 kB] Get: 95 http://deb.debian.org/debian trixie/main i386 python3-distlib all 0.3.8-1 [257 kB] Get: 96 http://deb.debian.org/debian trixie/main i386 python3-roman all 3.3-3 [9880 B] Get: 97 http://deb.debian.org/debian trixie/main i386 python3-docutils all 0.20.1+dfsg-3 [389 kB] Get: 98 http://deb.debian.org/debian trixie/main i386 python3-dulwich i386 0.21.6-1+b1 [329 kB] Get: 99 http://deb.debian.org/debian trixie/main i386 python3-fastjsonschema all 2.19.1-1 [21.3 kB] Get: 100 http://deb.debian.org/debian trixie/main i386 python3-filelock all 3.13.3-1 [10.7 kB] Get: 101 http://deb.debian.org/debian trixie/main i386 python3-imagesize all 1.4.1-1 [6688 B] Get: 102 http://deb.debian.org/debian trixie/main i386 python3-iniconfig all 1.1.1-2 [6396 B] Get: 103 http://deb.debian.org/debian trixie/main i386 python3-jaraco.classes all 3.2.1-4 [7232 B] Get: 104 http://deb.debian.org/debian trixie/main i386 python3-jaraco.context all 4.3.0-1 [7616 B] Get: 105 http://deb.debian.org/debian trixie/main i386 python3-jaraco.functools all 4.0.0-1 [10.6 kB] Get: 106 http://deb.debian.org/debian trixie/main i386 python3-jeepney all 0.8.0-3 [34.0 kB] Get: 107 http://deb.debian.org/debian trixie/main i386 python3-markupsafe i386 2.1.5-1 [14.4 kB] Get: 108 http://deb.debian.org/debian trixie/main i386 python3-jinja2 all 3.1.3-1 [119 kB] Get: 109 http://deb.debian.org/debian trixie/main i386 python3-secretstorage all 3.3.3-3 [16.1 kB] Get: 110 http://deb.debian.org/debian trixie/main i386 python3-keyring all 25.1.0-1 [53.7 kB] Get: 111 http://deb.debian.org/debian trixie/main i386 python3-lockfile all 1:0.12.2-3 [15.7 kB] Get: 112 http://deb.debian.org/debian trixie/main i386 python3-ptyprocess all 0.7.0-5 [14.7 kB] Get: 113 http://deb.debian.org/debian trixie/main i386 python3-pexpect all 4.9-2 [55.5 kB] Get: 114 http://deb.debian.org/debian trixie/main i386 python3-pip-whl all 24.0+dfsg-2 [1774 kB] Get: 115 http://deb.debian.org/debian trixie/main i386 python3-pkginfo all 1.9.6-1 [18.9 kB] Get: 116 http://deb.debian.org/debian trixie/main i386 python3-platformdirs all 4.2.0-1 [15.9 kB] Get: 117 http://deb.debian.org/debian trixie/main i386 python3-pluggy all 1.4.0-1 [26.2 kB] Get: 118 http://deb.debian.org/debian trixie/main i386 python3-poetry-core all 1.9.0-1 [209 kB] Get: 119 http://deb.debian.org/debian trixie/main i386 python3-poetry-plugin-export all 1.6.0-2 [11.6 kB] Get: 120 http://deb.debian.org/debian trixie/main i386 python3-requests-toolbelt all 1.0.0-2 [40.0 kB] Get: 121 http://deb.debian.org/debian trixie/main i386 python3-shellingham all 1.5.4-1 [11.0 kB] Get: 122 http://deb.debian.org/debian trixie/main i386 python3-tomlkit all 0.12.4-1 [41.7 kB] Get: 123 http://deb.debian.org/debian trixie/main i386 python3-trove-classifiers all 2024.1.31-1 [9968 B] Get: 124 http://deb.debian.org/debian trixie/main i386 python3-setuptools-whl all 68.1.2-2 [797 kB] Get: 125 http://deb.debian.org/debian trixie/main i386 python3-wheel-whl all 0.43.0-1 [68.8 kB] Get: 126 http://deb.debian.org/debian trixie/main i386 python3-virtualenv all 20.25.1+ds-1 [70.1 kB] Get: 127 http://deb.debian.org/debian trixie/main i386 python3-poetry all 1.8.2+dfsg-1 [179 kB] Get: 128 http://deb.debian.org/debian trixie/main i386 python3-pygments all 2.17.2+dfsg-1 [818 kB] Get: 129 http://deb.debian.org/debian trixie/main i386 python3-pytest all 7.4.4-3 [239 kB] Get: 130 http://deb.debian.org/debian trixie/main i386 python3-snowballstemmer all 2.2.0-4 [58.0 kB] Get: 131 http://deb.debian.org/debian trixie/main i386 sphinx-common all 7.2.6-6 [702 kB] Get: 132 http://deb.debian.org/debian trixie/main i386 python3-sphinx all 7.2.6-6 [552 kB] Get: 133 http://deb.debian.org/debian trixie/main i386 sphinx-rtd-theme-common all 2.0.0+dfsg-1 [1021 kB] Get: 134 http://deb.debian.org/debian trixie/main i386 python3-sphinxcontrib.jquery all 4.1-5 [7348 B] Get: 135 http://deb.debian.org/debian trixie/main i386 python3-sphinx-rtd-theme all 2.0.0+dfsg-1 [28.3 kB] Get: 136 http://deb.debian.org/debian trixie/main i386 python3-termcolor all 2.4.0-1 [9612 B] Fetched 53.8 MB in 2s (26.5 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package fonts-lato. (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 ... 19874 files and directories currently installed.) Preparing to unpack .../fonts-lato_2.015-1_all.deb ... Unpacking fonts-lato (2.015-1) ... Selecting previously unselected package libpython3.11-minimal:i386. Preparing to unpack .../libpython3.11-minimal_3.11.8-1_i386.deb ... Unpacking libpython3.11-minimal:i386 (3.11.8-1) ... Selecting previously unselected package libexpat1:i386. Preparing to unpack .../libexpat1_2.5.0-2+b2_i386.deb ... Unpacking libexpat1:i386 (2.5.0-2+b2) ... Selecting previously unselected package python3.11-minimal. Preparing to unpack .../python3.11-minimal_3.11.8-1_i386.deb ... Unpacking python3.11-minimal (3.11.8-1) ... Setting up libpython3.11-minimal:i386 (3.11.8-1) ... Setting up libexpat1:i386 (2.5.0-2+b2) ... Setting up python3.11-minimal (3.11.8-1) ... Selecting previously unselected package python3-minimal. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20217 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.11.6-1_i386.deb ... Unpacking python3-minimal (3.11.6-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2024a-1_all.deb ... Unpacking tzdata (2024a-1) ... Selecting previously unselected package readline-common. Preparing to unpack .../4-readline-common_8.2-3_all.deb ... Unpacking readline-common (8.2-3) ... Selecting previously unselected package libreadline8:i386. Preparing to unpack .../5-libreadline8_8.2-3+b1_i386.deb ... Unpacking libreadline8:i386 (8.2-3+b1) ... Selecting previously unselected package libpython3.11-stdlib:i386. Preparing to unpack .../6-libpython3.11-stdlib_3.11.8-1_i386.deb ... Unpacking libpython3.11-stdlib:i386 (3.11.8-1) ... Selecting previously unselected package python3.11. Preparing to unpack .../7-python3.11_3.11.8-1_i386.deb ... Unpacking python3.11 (3.11.8-1) ... Selecting previously unselected package libpython3-stdlib:i386. Preparing to unpack .../8-libpython3-stdlib_3.11.6-1_i386.deb ... Unpacking libpython3-stdlib:i386 (3.11.6-1) ... Setting up python3-minimal (3.11.6-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 ... 21205 files and directories currently installed.) Preparing to unpack .../000-python3_3.11.6-1_i386.deb ... Unpacking python3 (3.11.6-1) ... Selecting previously unselected package libpython3.12-minimal:i386. Preparing to unpack .../001-libpython3.12-minimal_3.12.2-1_i386.deb ... Unpacking libpython3.12-minimal:i386 (3.12.2-1) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../002-python3.12-minimal_3.12.2-1_i386.deb ... Unpacking python3.12-minimal (3.12.2-1) ... Selecting previously unselected package sgml-base. Preparing to unpack .../003-sgml-base_1.31_all.deb ... Unpacking sgml-base (1.31) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../004-sensible-utils_0.0.22_all.deb ... Unpacking sensible-utils (0.0.22) ... Selecting previously unselected package openssl. Preparing to unpack .../005-openssl_3.1.5-1_i386.deb ... Unpacking openssl (3.1.5-1) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../006-ca-certificates_20240203_all.deb ... Unpacking ca-certificates (20240203) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../007-libmagic-mgc_1%3a5.45-2+b1_i386.deb ... Unpacking libmagic-mgc (1:5.45-2+b1) ... Selecting previously unselected package libmagic1:i386. Preparing to unpack .../008-libmagic1_1%3a5.45-2+b1_i386.deb ... Unpacking libmagic1:i386 (1:5.45-2+b1) ... Selecting previously unselected package file. Preparing to unpack .../009-file_1%3a5.45-2+b1_i386.deb ... Unpacking file (1:5.45-2+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../010-gettext-base_0.21-14+b1_i386.deb ... Unpacking gettext-base (0.21-14+b1) ... Selecting previously unselected package libuchardet0:i386. Preparing to unpack .../011-libuchardet0_0.0.8-1+b1_i386.deb ... Unpacking libuchardet0:i386 (0.0.8-1+b1) ... Selecting previously unselected package groff-base. Preparing to unpack .../012-groff-base_1.23.0-3_i386.deb ... Unpacking groff-base (1.23.0-3) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../013-bsdextrautils_2.39.3-6_i386.deb ... Unpacking bsdextrautils (2.39.3-6) ... Selecting previously unselected package libpipeline1:i386. Preparing to unpack .../014-libpipeline1_1.5.7-2_i386.deb ... Unpacking libpipeline1:i386 (1.5.7-2) ... Selecting previously unselected package man-db. Preparing to unpack .../015-man-db_2.12.0-3_i386.deb ... Unpacking man-db (2.12.0-3) ... Selecting previously unselected package m4. Preparing to unpack .../016-m4_1.4.19-4_i386.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../017-autoconf_2.71-3_all.deb ... Unpacking autoconf (2.71-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../018-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../019-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 .../020-autopoint_0.21-14_all.deb ... Unpacking autopoint (0.21-14) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../021-libdebhelper-perl_13.15.3_all.deb ... Unpacking libdebhelper-perl (13.15.3) ... Selecting previously unselected package libtool. Preparing to unpack .../022-libtool_2.4.7-7_all.deb ... Unpacking libtool (2.4.7-7) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../023-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../024-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libsub-override-perl. Preparing to unpack .../025-libsub-override-perl_0.10-1_all.deb ... Unpacking libsub-override-perl (0.10-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../026-libfile-stripnondeterminism-perl_1.13.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.13.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../027-dh-strip-nondeterminism_1.13.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.13.1-1) ... Selecting previously unselected package libelf1:i386. Preparing to unpack .../028-libelf1_0.190-1+b1_i386.deb ... Unpacking libelf1:i386 (0.190-1+b1) ... Selecting previously unselected package dwz. Preparing to unpack .../029-dwz_0.15-1_i386.deb ... Unpacking dwz (0.15-1) ... Selecting previously unselected package libicu72:i386. Preparing to unpack .../030-libicu72_72.1-4+b1_i386.deb ... Unpacking libicu72:i386 (72.1-4+b1) ... Selecting previously unselected package libxml2:i386. Preparing to unpack .../031-libxml2_2.9.14+dfsg-1.3+b2_i386.deb ... Unpacking libxml2:i386 (2.9.14+dfsg-1.3+b2) ... Selecting previously unselected package gettext. Preparing to unpack .../032-gettext_0.21-14+b1_i386.deb ... Unpacking gettext (0.21-14+b1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../033-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 .../034-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../035-debhelper_13.15.3_all.deb ... Unpacking debhelper (13.15.3) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../036-python3-pkg-resources_68.1.2-2_all.deb ... Unpacking python3-pkg-resources (68.1.2-2) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../037-python3-lib2to3_3.11.5-1_all.deb ... Unpacking python3-lib2to3 (3.11.5-1) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../038-python3-distutils_3.11.5-1_all.deb ... Unpacking python3-distutils (3.11.5-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../039-python3-setuptools_68.1.2-2_all.deb ... Unpacking python3-setuptools (68.1.2-2) ... Selecting previously unselected package dh-python. Preparing to unpack .../040-dh-python_6.20240401_all.deb ... Unpacking dh-python (6.20240401) ... Selecting previously unselected package xml-core. Preparing to unpack .../041-xml-core_0.19_all.deb ... Unpacking xml-core (0.19) ... Selecting previously unselected package docutils-common. Preparing to unpack .../042-docutils-common_0.20.1+dfsg-3_all.deb ... Unpacking docutils-common (0.20.1+dfsg-3) ... Selecting previously unselected package fonts-font-awesome. Preparing to unpack .../043-fonts-font-awesome_5.0.10+really4.7.0~dfsg-4.1_all.deb ... Unpacking fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... Selecting previously unselected package libjs-jquery. Preparing to unpack .../044-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Selecting previously unselected package libjs-underscore. Preparing to unpack .../045-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... Selecting previously unselected package libjs-sphinxdoc. Preparing to unpack .../046-libjs-sphinxdoc_7.2.6-6_all.deb ... Unpacking libjs-sphinxdoc (7.2.6-6) ... Selecting previously unselected package libjson-perl. Preparing to unpack .../047-libjson-perl_4.10000-1_all.deb ... Unpacking libjson-perl (4.10000-1) ... Selecting previously unselected package libpython3.12-stdlib:i386. Preparing to unpack .../048-libpython3.12-stdlib_3.12.2-1_i386.deb ... Unpacking libpython3.12-stdlib:i386 (3.12.2-1) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../049-python3-more-itertools_10.2.0-1_all.deb ... Unpacking python3-more-itertools (10.2.0-1) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../050-python3-zipp_1.0.0-6_all.deb ... Unpacking python3-zipp (1.0.0-6) ... Selecting previously unselected package python3-importlib-metadata. Preparing to unpack .../051-python3-importlib-metadata_4.12.0-1_all.deb ... Unpacking python3-importlib-metadata (4.12.0-1) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../052-python3-packaging_24.0-1_all.deb ... Unpacking python3-packaging (24.0-1) ... Selecting previously unselected package python3-pyproject-hooks. Preparing to unpack .../053-python3-pyproject-hooks_1.0.0-2_all.deb ... Unpacking python3-pyproject-hooks (1.0.0-2) ... Selecting previously unselected package python3-toml. Preparing to unpack .../054-python3-toml_0.10.2-1_all.deb ... Unpacking python3-toml (0.10.2-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../055-python3-wheel_0.43.0-1_all.deb ... Unpacking python3-wheel (0.43.0-1) ... Selecting previously unselected package python3-build. Preparing to unpack .../056-python3-build_1.1.1-1_all.deb ... Unpacking python3-build (1.1.1-1) ... Selecting previously unselected package python3-installer. Preparing to unpack .../057-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 .../058-pybuild-plugin-pyproject_6.20240401_all.deb ... Unpacking pybuild-plugin-pyproject (6.20240401) ... Selecting previously unselected package python-babel-localedata. Preparing to unpack .../059-python-babel-localedata_2.10.3-3_all.deb ... Unpacking python-babel-localedata (2.10.3-3) ... Selecting previously unselected package python3-alabaster. Preparing to unpack .../060-python3-alabaster_0.7.12-1_all.deb ... Unpacking python3-alabaster (0.7.12-1) ... Selecting previously unselected package python3.12. Preparing to unpack .../061-python3.12_3.12.2-1_i386.deb ... Unpacking python3.12 (3.12.2-1) ... Selecting previously unselected package python3-all. Preparing to unpack .../062-python3-all_3.11.6-1_i386.deb ... Unpacking python3-all (3.11.6-1) ... Selecting previously unselected package python3-tz. Preparing to unpack .../063-python3-tz_2024.1-2_all.deb ... Unpacking python3-tz (2024.1-2) ... Selecting previously unselected package python3-babel. Preparing to unpack .../064-python3-babel_2.10.3-3_all.deb ... Unpacking python3-babel (2.10.3-3) ... Selecting previously unselected package python3-certifi. Preparing to unpack .../065-python3-certifi_2023.11.17-1_all.deb ... Unpacking python3-certifi (2023.11.17-1) ... Selecting previously unselected package python3-charset-normalizer. Preparing to unpack .../066-python3-charset-normalizer_3.3.2-1_all.deb ... Unpacking python3-charset-normalizer (3.3.2-1) ... Selecting previously unselected package python3-idna. Preparing to unpack .../067-python3-idna_3.6-2_all.deb ... Unpacking python3-idna (3.6-2) ... Selecting previously unselected package python3-six. Preparing to unpack .../068-python3-six_1.16.0-6_all.deb ... Unpacking python3-six (1.16.0-6) ... Selecting previously unselected package python3-urllib3. Preparing to unpack .../069-python3-urllib3_1.26.18-2_all.deb ... Unpacking python3-urllib3 (1.26.18-2) ... Selecting previously unselected package python3-chardet. Preparing to unpack .../070-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 .../071-python3-requests_2.31.0+dfsg-1_all.deb ... Unpacking python3-requests (2.31.0+dfsg-1) ... Selecting previously unselected package python3-msgpack. Preparing to unpack .../072-python3-msgpack_1.0.3-3+b1_i386.deb ... Unpacking python3-msgpack (1.0.3-3+b1) ... Selecting previously unselected package python3-cachecontrol. Preparing to unpack .../073-python3-cachecontrol_0.14.0-1_all.deb ... Unpacking python3-cachecontrol (0.14.0-1) ... Selecting previously unselected package python3-cffi-backend:i386. Preparing to unpack .../074-python3-cffi-backend_1.16.0-2+b1_i386.deb ... Unpacking python3-cffi-backend:i386 (1.16.0-2+b1) ... Selecting previously unselected package python3-crashtest. Preparing to unpack .../075-python3-crashtest_0.4.1-1_all.deb ... Unpacking python3-crashtest (0.4.1-1) ... Selecting previously unselected package python3-pylev. Preparing to unpack .../076-python3-pylev_1.4.0-1_all.deb ... Unpacking python3-pylev (1.4.0-1) ... Selecting previously unselected package python3-cleo. Preparing to unpack .../077-python3-cleo_2.1.0-2_all.deb ... Unpacking python3-cleo (2.1.0-2) ... Selecting previously unselected package python3-colorama. Preparing to unpack .../078-python3-colorama_0.4.6-4_all.deb ... Unpacking python3-colorama (0.4.6-4) ... Selecting previously unselected package python3-colorclass. Preparing to unpack .../079-python3-colorclass_2.2.2-2_all.deb ... Unpacking python3-colorclass (2.2.2-2) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../080-python3-cryptography_41.0.7-4_i386.deb ... Unpacking python3-cryptography (41.0.7-4) ... Selecting previously unselected package python3-distlib. Preparing to unpack .../081-python3-distlib_0.3.8-1_all.deb ... Unpacking python3-distlib (0.3.8-1) ... Selecting previously unselected package python3-roman. Preparing to unpack .../082-python3-roman_3.3-3_all.deb ... Unpacking python3-roman (3.3-3) ... Selecting previously unselected package python3-docutils. Preparing to unpack .../083-python3-docutils_0.20.1+dfsg-3_all.deb ... Unpacking python3-docutils (0.20.1+dfsg-3) ... Selecting previously unselected package python3-dulwich. Preparing to unpack .../084-python3-dulwich_0.21.6-1+b1_i386.deb ... Unpacking python3-dulwich (0.21.6-1+b1) ... Selecting previously unselected package python3-fastjsonschema. Preparing to unpack .../085-python3-fastjsonschema_2.19.1-1_all.deb ... Unpacking python3-fastjsonschema (2.19.1-1) ... Selecting previously unselected package python3-filelock. Preparing to unpack .../086-python3-filelock_3.13.3-1_all.deb ... Unpacking python3-filelock (3.13.3-1) ... Selecting previously unselected package python3-imagesize. Preparing to unpack .../087-python3-imagesize_1.4.1-1_all.deb ... Unpacking python3-imagesize (1.4.1-1) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../088-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 .../089-python3-jaraco.classes_3.2.1-4_all.deb ... Unpacking python3-jaraco.classes (3.2.1-4) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../090-python3-jaraco.context_4.3.0-1_all.deb ... Unpacking python3-jaraco.context (4.3.0-1) ... Selecting previously unselected package python3-jaraco.functools. Preparing to unpack .../091-python3-jaraco.functools_4.0.0-1_all.deb ... Unpacking python3-jaraco.functools (4.0.0-1) ... Selecting previously unselected package python3-jeepney. Preparing to unpack .../092-python3-jeepney_0.8.0-3_all.deb ... Unpacking python3-jeepney (0.8.0-3) ... Selecting previously unselected package python3-markupsafe. Preparing to unpack .../093-python3-markupsafe_2.1.5-1_i386.deb ... Unpacking python3-markupsafe (2.1.5-1) ... Selecting previously unselected package python3-jinja2. Preparing to unpack .../094-python3-jinja2_3.1.3-1_all.deb ... Unpacking python3-jinja2 (3.1.3-1) ... Selecting previously unselected package python3-secretstorage. Preparing to unpack .../095-python3-secretstorage_3.3.3-3_all.deb ... Unpacking python3-secretstorage (3.3.3-3) ... Selecting previously unselected package python3-keyring. Preparing to unpack .../096-python3-keyring_25.1.0-1_all.deb ... Unpacking python3-keyring (25.1.0-1) ... Selecting previously unselected package python3-lockfile. Preparing to unpack .../097-python3-lockfile_1%3a0.12.2-3_all.deb ... Unpacking python3-lockfile (1:0.12.2-3) ... Selecting previously unselected package python3-ptyprocess. Preparing to unpack .../098-python3-ptyprocess_0.7.0-5_all.deb ... Unpacking python3-ptyprocess (0.7.0-5) ... Selecting previously unselected package python3-pexpect. Preparing to unpack .../099-python3-pexpect_4.9-2_all.deb ... Unpacking python3-pexpect (4.9-2) ... Selecting previously unselected package python3-pip-whl. Preparing to unpack .../100-python3-pip-whl_24.0+dfsg-2_all.deb ... Unpacking python3-pip-whl (24.0+dfsg-2) ... Selecting previously unselected package python3-pkginfo. Preparing to unpack .../101-python3-pkginfo_1.9.6-1_all.deb ... Unpacking python3-pkginfo (1.9.6-1) ... Selecting previously unselected package python3-platformdirs. Preparing to unpack .../102-python3-platformdirs_4.2.0-1_all.deb ... Unpacking python3-platformdirs (4.2.0-1) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../103-python3-pluggy_1.4.0-1_all.deb ... Unpacking python3-pluggy (1.4.0-1) ... Selecting previously unselected package python3-poetry-core. Preparing to unpack .../104-python3-poetry-core_1.9.0-1_all.deb ... Unpacking python3-poetry-core (1.9.0-1) ... Selecting previously unselected package python3-poetry-plugin-export. Preparing to unpack .../105-python3-poetry-plugin-export_1.6.0-2_all.deb ... Unpacking python3-poetry-plugin-export (1.6.0-2) ... Selecting previously unselected package python3-requests-toolbelt. Preparing to unpack .../106-python3-requests-toolbelt_1.0.0-2_all.deb ... Unpacking python3-requests-toolbelt (1.0.0-2) ... Selecting previously unselected package python3-shellingham. Preparing to unpack .../107-python3-shellingham_1.5.4-1_all.deb ... Unpacking python3-shellingham (1.5.4-1) ... Selecting previously unselected package python3-tomlkit. Preparing to unpack .../108-python3-tomlkit_0.12.4-1_all.deb ... Unpacking python3-tomlkit (0.12.4-1) ... Selecting previously unselected package python3-trove-classifiers. Preparing to unpack .../109-python3-trove-classifiers_2024.1.31-1_all.deb ... Unpacking python3-trove-classifiers (2024.1.31-1) ... Selecting previously unselected package python3-setuptools-whl. Preparing to unpack .../110-python3-setuptools-whl_68.1.2-2_all.deb ... Unpacking python3-setuptools-whl (68.1.2-2) ... Selecting previously unselected package python3-wheel-whl. Preparing to unpack .../111-python3-wheel-whl_0.43.0-1_all.deb ... Unpacking python3-wheel-whl (0.43.0-1) ... Selecting previously unselected package python3-virtualenv. Preparing to unpack .../112-python3-virtualenv_20.25.1+ds-1_all.deb ... Unpacking python3-virtualenv (20.25.1+ds-1) ... Selecting previously unselected package python3-poetry. Preparing to unpack .../113-python3-poetry_1.8.2+dfsg-1_all.deb ... Unpacking python3-poetry (1.8.2+dfsg-1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../114-python3-pygments_2.17.2+dfsg-1_all.deb ... Unpacking python3-pygments (2.17.2+dfsg-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../115-python3-pytest_7.4.4-3_all.deb ... Unpacking python3-pytest (7.4.4-3) ... Selecting previously unselected package python3-snowballstemmer. Preparing to unpack .../116-python3-snowballstemmer_2.2.0-4_all.deb ... Unpacking python3-snowballstemmer (2.2.0-4) ... Selecting previously unselected package sphinx-common. Preparing to unpack .../117-sphinx-common_7.2.6-6_all.deb ... Unpacking sphinx-common (7.2.6-6) ... Selecting previously unselected package python3-sphinx. Preparing to unpack .../118-python3-sphinx_7.2.6-6_all.deb ... Unpacking python3-sphinx (7.2.6-6) ... Selecting previously unselected package sphinx-rtd-theme-common. Preparing to unpack .../119-sphinx-rtd-theme-common_2.0.0+dfsg-1_all.deb ... Unpacking sphinx-rtd-theme-common (2.0.0+dfsg-1) ... Selecting previously unselected package python3-sphinxcontrib.jquery. Preparing to unpack .../120-python3-sphinxcontrib.jquery_4.1-5_all.deb ... Unpacking python3-sphinxcontrib.jquery (4.1-5) ... Selecting previously unselected package python3-sphinx-rtd-theme. Preparing to unpack .../121-python3-sphinx-rtd-theme_2.0.0+dfsg-1_all.deb ... Unpacking python3-sphinx-rtd-theme (2.0.0+dfsg-1) ... Selecting previously unselected package python3-termcolor. Preparing to unpack .../122-python3-termcolor_2.4.0-1_all.deb ... Unpacking python3-termcolor (2.4.0-1) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:i386 (1.5.7-2) ... Setting up python3-setuptools-whl (68.1.2-2) ... Setting up fonts-lato (2.015-1) ... Setting up libicu72:i386 (72.1-4+b1) ... Setting up bsdextrautils (2.39.3-6) ... Setting up libmagic-mgc (1:5.45-2+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.15.3) ... Setting up libpython3.12-minimal:i386 (3.12.2-1) ... Setting up libmagic1:i386 (1:5.45-2+b1) ... Setting up gettext-base (0.21-14+b1) ... Setting up m4 (1.4.19-4) ... Setting up file (1:5.45-2+b1) ... Setting up python-babel-localedata (2.10.3-3) ... Setting up tzdata (2024a-1) ... Current default time zone: 'Etc/UTC' Local time is now: Sun May 18 10:40:27 UTC 2025. Universal Time is now: Sun May 18 10:40:27 UTC 2025. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.21-14) ... Setting up autoconf (2.71-3) ... Setting up sensible-utils (0.0.22) ... Setting up libuchardet0:i386 (0.0.8-1+b1) ... Setting up libjson-perl (4.10000-1) ... Setting up libsub-override-perl (0.10-1) ... Setting up netbase (6.4) ... Setting up sgml-base (1.31) ... Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Setting up openssl (3.1.5-1) ... Setting up python3-wheel-whl (0.43.0-1) ... Setting up libelf1:i386 (0.190-1+b1) ... Setting up readline-common (8.2-3) ... Setting up libxml2:i386 (2.9.14+dfsg-1.3+b2) ... Setting up fonts-font-awesome (5.0.10+really4.7.0~dfsg-4.1) ... Setting up sphinx-rtd-theme-common (2.0.0+dfsg-1) ... Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.13.1-1) ... Setting up python3.12-minimal (3.12.2-1) ... Setting up gettext (0.21-14+b1) ... Setting up libtool (2.4.7-7) ... Setting up libreadline8:i386 (8.2-3+b1) ... 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 libjs-sphinxdoc (7.2.6-6) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up dwz (0.15-1) ... Setting up groff-base (1.23.0-3) ... Setting up xml-core (0.19) ... Setting up libpython3.12-stdlib:i386 (3.12.2-1) ... Setting up python3-pip-whl (24.0+dfsg-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpython3.11-stdlib:i386 (3.11.8-1) ... Setting up python3.12 (3.12.2-1) ... Setting up man-db (2.12.0-3) ... Not building database; man-db/auto-update is not 'true'. Setting up sphinx-common (7.2.6-6) ... Setting up libpython3-stdlib:i386 (3.11.6-1) ... Setting up python3.11 (3.11.8-1) ... Setting up debhelper (13.15.3) ... Setting up python3 (3.11.6-1) ... Setting up python3-distlib (0.3.8-1) ... Setting up python3-markupsafe (2.1.5-1) ... Setting up python3-wheel (0.43.0-1) ... Setting up python3-platformdirs (4.2.0-1) ... Setting up python3-tz (2024.1-2) ... Setting up python3-six (1.16.0-6) ... Setting up python3-roman (3.3-3) ... Setting up python3-jinja2 (3.1.3-1) ... Setting up python3-packaging (24.0-1) ... Setting up python3-pyproject-hooks (1.0.0-2) ... Setting up python3-certifi (2023.11.17-1) ... Setting up python3-snowballstemmer (2.2.0-4) ... Setting up python3-poetry-core (1.9.0-1) ... Setting up python3-crashtest (0.4.1-1) ... Setting up python3-idna (3.6-2) ... Setting up python3-colorclass (2.2.2-2) ... Setting up python3-toml (0.10.2-1) ... Setting up python3-jeepney (0.8.0-3) ... Setting up python3-installer (0.7.0+dfsg1-3) ... Setting up python3-urllib3 (1.26.18-2) ... Setting up python3-pluggy (1.4.0-1) ... Setting up python3-fastjsonschema (2.19.1-1) ... Setting up python3-trove-classifiers (2024.1.31-1) ... Setting up python3-dulwich (0.21.6-1+b1) ... Setting up python3-msgpack (1.0.3-3+b1) ... Setting up python3-build (1.1.1-1) ... Setting up python3-shellingham (1.5.4-1) ... Setting up python3-tomlkit (0.12.4-1) ... Setting up python3-lib2to3 (3.11.5-1) ... Setting up python3-cffi-backend:i386 (1.16.0-2+b1) ... Setting up python3-imagesize (1.4.1-1) ... Setting up python3-ptyprocess (0.7.0-5) ... Setting up python3-pkg-resources (68.1.2-2) ... Setting up python3-distutils (3.11.5-1) ... python3.12: can't get files for byte-compilation Setting up python3-termcolor (2.4.0-1) ... Setting up python3-more-itertools (10.2.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-lockfile (1:0.12.2-3) ... Setting up python3-filelock (3.13.3-1) ... Setting up python3-jaraco.classes (3.2.1-4) ... Setting up python3-jaraco.functools (4.0.0-1) ... Setting up python3-setuptools (68.1.2-2) ... Setting up python3-jaraco.context (4.3.0-1) ... Setting up python3-babel (2.10.3-3) ... update-alternatives: using /usr/bin/pybabel-python3 to provide /usr/bin/pybabel (pybabel) in auto mode Setting up python3-pkginfo (1.9.6-1) ... Setting up python3-colorama (0.4.6-4) ... Setting up python3-charset-normalizer (3.3.2-1) ... Setting up python3-pytest (7.4.4-3) ... Setting up python3-alabaster (0.7.12-1) ... Setting up python3-pylev (1.4.0-1) ... Setting up python3-virtualenv (20.25.1+ds-1) ... Setting up python3-all (3.11.6-1) ... Setting up python3-zipp (1.0.0-6) ... Setting up python3-pygments (2.17.2+dfsg-1) ... Setting up python3-chardet (5.2.0+dfsg-1) ... Setting up python3-pexpect (4.9-2) ... Setting up python3-cryptography (41.0.7-4) ... Setting up python3-requests (2.31.0+dfsg-1) ... Setting up python3-cleo (2.1.0-2) ... Setting up python3-cachecontrol (0.14.0-1) ... Setting up dh-python (6.20240401) ... Setting up python3-requests-toolbelt (1.0.0-2) ... Setting up python3-importlib-metadata (4.12.0-1) ... Setting up pybuild-plugin-pyproject (6.20240401) ... Setting up python3-secretstorage (3.3.3-3) ... Setting up python3-keyring (25.1.0-1) ... Setting up python3-poetry-plugin-export (1.6.0-2) ... Setting up python3-poetry (1.8.2+dfsg-1) ... Processing triggers for libc-bin (2.37-15) ... Processing triggers for sgml-base (1.31) ... Setting up docutils-common (0.20.1+dfsg-3) ... Processing triggers for sgml-base (1.31) ... Setting up python3-docutils (0.20.1+dfsg-3) ... Setting up python3-sphinx (7.2.6-6) ... Setting up python3-sphinxcontrib.jquery (4.1-5) ... Setting up python3-sphinx-rtd-theme (2.0.0+dfsg-1) ... 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 I: Building the package I: user script /srv/workspace/pbuilder/57679/tmp/hooks/A99_set_merged_usr starting Not re-configuring usrmerge for trixie I: user script /srv/workspace/pbuilder/57679/tmp/hooks/A99_set_merged_usr finished hostname: Name or service not known I: Running cd /build/reproducible-path/terminaltables-3.1.10/ && 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 > ../terminaltables_3.1.10-4_source.changes dpkg-buildpackage: info: source package terminaltables dpkg-buildpackage: info: source version 3.1.10-4 dpkg-buildpackage: info: source distribution sid dpkg-buildpackage: info: source changed by Daniel Baumann dpkg-source --before-build . dpkg-buildpackage: info: host architecture i386 dpkg-source: info: using options from terminaltables-3.1.10/debian/source/options: --extend-diff-ignore=^[^/]+\.egg-info/ debian/rules clean dh clean --buildsystem pybuild --with python3,sphinxdoc dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem pybuild --with python3,sphinxdoc dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" module I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.12_terminaltables * Building wheel... Successfully built terminaltables-3.1.10-py2.py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with "installer" module I: pybuild plugin_pyproject:129: Building wheel for python3.11 with "build" module I: pybuild base:311: python3.11 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.11_terminaltables * Building wheel... Successfully built terminaltables-3.1.10-py2.py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.11 with "installer" module debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/terminaltables-3.1.10' dh_auto_test I: pybuild pybuild:308: cp example*.py /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.12_terminaltables/build I: pybuild base:311: cd /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.12_terminaltables/build; python3.12 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.12.2, pytest-7.4.4, pluggy-1.4.0 rootdir: /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.12_terminaltables/build collected 801 items tests/test_ascii_table.py ...................... [ 2%] tests/test_examples.py ... [ 3%] tests/test_all_tables_e2e/test_ascii_table.py ..s [ 3%] tests/test_all_tables_e2e/test_double_table.py ..s [ 3%] tests/test_all_tables_e2e/test_github_table.py .. [ 4%] tests/test_all_tables_e2e/test_porcelain_table.py .. [ 4%] tests/test_all_tables_e2e/test_single_table.py .. [ 4%] tests/test_all_tables_e2e/test_single_table_windows.py sss [ 4%] tests/test_base_table/test_gen_row_lines.py ............... [ 6%] tests/test_base_table/test_gen_table.py .................... [ 9%] tests/test_base_table/test_horizontal_border.py ................ [ 11%] tests/test_base_table/test_table.py .......F [ 12%] tests/test_build/test_build_border.py .................................. [ 16%] ........................................................................ [ 25%] ........................................................................ [ 34%] ........................................................................ [ 43%] ........................................................................ [ 52%] ........................................................................ [ 61%] ...................................FFFFFFFFFFFFFFFFFF.FFFFFFFFFFFFFF.FFF [ 70%] FFFFFFFFFFFFFFF.FFFFFFFFFFFFFF..... [ 74%] tests/test_build/test_build_row.py ...... [ 75%] tests/test_build/test_combine.py ...... [ 76%] tests/test_build/test_flatten.py .. [ 76%] tests/test_terminal_io/test_get_console_info.py . [ 76%] tests/test_terminal_io/test_set_terminal_title.py sssssssss [ 77%] tests/test_terminal_io/test_terminal_size.py ..... [ 78%] tests/test_width_and_alignment/test_align_and_pad_cell.py ........F..... [ 80%] ......F...........F...........F...........F......F......F......F......F. [ 89%] .....F................................F [ 94%] tests/test_width_and_alignment/test_column_max_width.py ... [ 94%] tests/test_width_and_alignment/test_max_dimensions.py ........... [ 95%] tests/test_width_and_alignment/test_table_width.py ... [ 96%] tests/test_width_and_alignment/test_visible_width.py ................... [ 98%] ........... [100%] =================================== FAILURES =================================== __________________________________ test_color __________________________________ def test_color(): """Test with color characters.""" table_data = [ ['ansi', '\033[31mRed\033[39m', '\033[32mGreen\033[39m', '\033[34mBlue\033[39m'], ['colorclass', Color('{red}Red{/red}'), Color('{green}Green{/green}'), Color('{blue}Blue{/blue}')], ['colorama', Fore.RED + 'Red' + Fore.RESET, Fore.GREEN + 'Green' + Fore.RESET, Fore.BLUE + 'Blue' + Fore.RESET], ['termcolor', colored('Red', 'red'), colored('Green', 'green'), colored('Blue', 'blue')], ] table = BaseTable(table_data) table.inner_heading_row_border = False actual = table.table expected = ( u'+------------+-----+-------+------+\n' u'| ansi | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n' u'| colorclass | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n' u'| colorama | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n' u'| termcolor | \033[31mRed\033[0m | \033[32mGreen\033[0m | \033[34mBlue\033[0m |\n' u'+------------+-----+-------+------+' ) > assert actual == expected E AssertionError: assert '+-----------...-----+------+' == '+-----------...-----+------+' E Skipping 239 identical leading characters in diff, use -v to show E - mcolor | Red | Green | Blue | E + mcolor | Red | Green | Blue | E +------------+-----+-------+------+ tests/test_base_table/test_table.py:196: AssertionError _______ test_colors[TEST---outer_widths0-+-\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [12], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST---outer_widths1--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [12], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths2-+-\x1b[34mTEST\x1b[0m---+-----] _______ outer_widths = [7, 5], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m---+-----' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST---+-----' == '\x1b[34mTEST\x1b[0m---+-----' E - TEST---+----- E + TEST---+----- tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST---outer_widths3--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [7, 5], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths4-+-\x1b[34mTEST\x1b[0m] ____________ outer_widths = [4], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST' == '\x1b[34mTEST\x1b[0m' E - TEST E + TEST tests/test_build/test_build_border.py:295: AssertionError ____________ test_colors[TEST---outer_widths5--\x1b[34mTEST\x1b[0m] ____________ outer_widths = [4], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST' == '\x1b[34mTEST\x1b[0m' E - TEST E + TEST tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST---outer_widths6-+-\x1b[34mTEST\x1b[0m+-] ___________ outer_widths = [4, 1], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m+-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST+-' == '\x1b[34mTEST\x1b[0m+-' E - TEST+- E + TEST+- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths7--\x1b[34mTEST\x1b[0m-] ____________ outer_widths = [4, 1], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-' == '\x1b[34mTEST\x1b[0m-' E - TEST- E + TEST- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths8-+-\x1b[34mTEST\x1b[0m+] ___________ outer_widths = [4, 0], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m+' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST+' == '\x1b[34mTEST\x1b[0m+' E - TEST+ E + TEST+ tests/test_build/test_build_border.py:295: AssertionError ____________ test_colors[TEST---outer_widths9--\x1b[34mTEST\x1b[0m] ____________ outer_widths = [4, 0], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST' == '\x1b[34mTEST\x1b[0m' E - TEST E + TEST tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths10--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [12], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths11--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [6, 6], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths12--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [3, 3, 3, 3], left = '', intersect = '', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths13--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [2, 1, 2, 1, 2, 1, ...], left = '', intersect = '', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths14--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [1, 1, 1, 1, 1, 1, ...], left = '', intersect = '', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST---outer_widths15--\x1b[34mTEST\x1b[0m--] ___________ outer_widths = [2, 4], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--' == '\x1b[34mTEST\x1b[0m--' E - TEST-- E + TEST-- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths16--\x1b[34mTEST\x1b[0m-] ___________ outer_widths = [1, 4], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-' == '\x1b[34mTEST\x1b[0m-' E - TEST- E + TEST- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths17--\x1b[34mTEST\x1b[0m] ____________ outer_widths = [1, 3], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST' == '\x1b[34mTEST\x1b[0m' E - TEST E + TEST tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths19-+-\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [12], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST---outer_widths20-+-\x1b[34mTEST\x1b[0m---------] _______ outer_widths = [0, 12], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m---------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST---------' == '\x1b[34mTEST\x1b[0m---------' E - TEST--------- E + TEST--------- tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST---outer_widths21-+-\x1b[34mTEST\x1b[0m--------+] _______ outer_widths = [12, 0], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------+' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------+' == '\x1b[34mTEST\x1b[0m--------+' E - TEST--------+ E + TEST--------+ tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST---outer_widths22-+-\x1b[34mTEST\x1b[0m----------] ______ outer_widths = [0, 0, 12], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m----------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST----------' == '\x1b[34mTEST...[0m----------' E - TEST---------- E ? ----- ---- E + TEST---------- tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST---outer_widths23-+-\x1b[34mTEST\x1b[0m--------++] ______ outer_widths = [12, 0, 0], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m--------++' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------++' == '\x1b[34mTEST...[0m--------++' E - TEST--------++ E ? ----- ---- E + TEST--------++ tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST---outer_widths24-+-\x1b[34mTEST\x1b[0m---] __________ outer_widths = [3, 3], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m---' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST---' == '\x1b[34mTEST\x1b[0m---' E - TEST--- E + TEST--- tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST---outer_widths25-+-\x1b[34mTEST\x1b[0m+--] __________ outer_widths = [4, 2], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m+--' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST+--' == '\x1b[34mTEST\x1b[0m+--' E - TEST+-- E + TEST+-- tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST---outer_widths26-+-\x1b[34mTEST\x1b[0m-+-] __________ outer_widths = [5, 1], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m-+-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-+-' == '\x1b[34mTEST\x1b[0m-+-' E - TEST-+- E + TEST-+- tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST---outer_widths27-+-\x1b[34mTEST\x1b[0m---+---+---] ______ outer_widths = [3, 3, 3, 3], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m---+---+---' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST---+---+---' == '\x1b[34mTEST...0m---+---+---' E - TEST---+---+--- E ? ----- ---- E + TEST---+---+--- tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST---outer_widths28-+-\x1b[34mTEST\x1b[0m-+----+----] ______ outer_widths = [2, 2, 4, 4], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m-+----+----' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-+----+----' == '\x1b[34mTEST...0m-+----+----' E - TEST-+----+---- E ? ----- ---- E + TEST-+----+---- tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST---outer_widths29-+-\x1b[34mTEST\x1b[0m-----+-----] ______ outer_widths = [1, 1, 5, 5], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m-----+-----' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-----+-----' == '\x1b[34mTEST...0m-----+-----' E - TEST-----+----- E ? ----- ---- E + TEST-----+----- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths30-+-\x1b[34mTEST\x1b[0m-+--+--] ________ outer_widths = [2, 2, 2, 2], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m-+--+--' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-+--+--' == '\x1b[34mTEST\x1b[0m-+--+--' E - TEST-+--+-- E + TEST-+--+-- tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST---outer_widths31-+-\x1b[34mTEST\x1b[0m-+-+-] _________ outer_widths = [1, 1, 1, 1, 1], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m-+-+-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-+-+-' == '\x1b[34mTEST\x1b[0m-+-+-' E - TEST-+-+- E + TEST-+-+- tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST---outer_widths32-+-\x1b[34mTEST\x1b[0m++] __________ outer_widths = [0, 0, 0, 0, 0, 0, ...], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m++' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST++' == '\x1b[34mTEST\x1b[0m++' E - TEST++ E + TEST++ tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths0-+-\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [12], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST-<->-outer_widths1--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [12], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths2-+-\x1b[34mTEST\x1b[0m---+-----] ______ outer_widths = [7, 5], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m---+----->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...[0m---+----->' E - <TEST---+-----> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST-<->-outer_widths3--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [7, 5], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths4-+-\x1b[34mTEST\x1b[0m] ___________ outer_widths = [4], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m>' E - <TEST> E + tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST-<->-outer_widths5--\x1b[34mTEST\x1b[0m] ___________ outer_widths = [4], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m>' E - <TEST> E + tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST-<->-outer_widths6-+-\x1b[34mTEST\x1b[0m+-] __________ outer_widths = [4, 1], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m+->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m+->' E - <TEST+-> E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths7--\x1b[34mTEST\x1b[0m-] ___________ outer_widths = [4, 1], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m->' E - <TEST-> E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths8-+-\x1b[34mTEST\x1b[0m+] __________ outer_widths = [4, 0], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m+>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m+>' E - <TEST+> E + tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST-<->-outer_widths9--\x1b[34mTEST\x1b[0m] ___________ outer_widths = [4, 0], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m>' E - <TEST> E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths10--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [12], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths11--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [6, 6], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths12--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [3, 3, 3, 3], left = '<', intersect = '', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths13--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [2, 1, 2, 1, 2, 1, ...], left = '<', intersect = '', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths14--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [1, 1, 1, 1, 1, 1, ...], left = '<', intersect = '', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST-<->-outer_widths15--\x1b[34mTEST\x1b[0m--] __________ outer_widths = [2, 4], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m-->' E - <TEST--> E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths16--\x1b[34mTEST\x1b[0m-] __________ outer_widths = [1, 4], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m->' E - <TEST-> E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths17--\x1b[34mTEST\x1b[0m] ___________ outer_widths = [1, 3], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m>' E - <TEST> E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths19-+-\x1b[34mTEST\x1b[0m--------] ______ outer_widths = [12], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST-<->-outer_widths20-+-\x1b[34mTEST\x1b[0m---------] ______ outer_widths = [0, 12], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m--------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...[0m--------->' E - <TEST---------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST-<->-outer_widths21-+-\x1b[34mTEST\x1b[0m--------+] ______ outer_widths = [12, 0], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m--------+>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...[0m--------+>' E - <TEST--------+> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST-<->-outer_widths22-+-\x1b[34mTEST\x1b[0m----------] _____ outer_widths = [0, 0, 12], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m---------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...0m---------->' E - <TEST----------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST-<->-outer_widths23-+-\x1b[34mTEST\x1b[0m--------++] _____ outer_widths = [12, 0, 0], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m--------++>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...0m--------++>' E - <TEST--------++> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST-<->-outer_widths24-+-\x1b[34mTEST\x1b[0m---] _________ outer_widths = [3, 3], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m--->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m--->' E - <TEST---> E + tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST-<->-outer_widths25-+-\x1b[34mTEST\x1b[0m+--] _________ outer_widths = [4, 2], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m+-->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m+-->' E - <TEST+--> E + tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST-<->-outer_widths26-+-\x1b[34mTEST\x1b[0m-+-] _________ outer_widths = [5, 1], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-+->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m-+->' E - <TEST-+-> E + tests/test_build/test_build_border.py:295: AssertionError ____ test_colors[TEST-<->-outer_widths27-+-\x1b[34mTEST\x1b[0m---+---+---] _____ outer_widths = [3, 3, 3, 3], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m---+---+--->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...m---+---+--->' E - <TEST---+---+---> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ____ test_colors[TEST-<->-outer_widths28-+-\x1b[34mTEST\x1b[0m-+----+----] _____ outer_widths = [2, 2, 4, 4], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-+----+---->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...m-+----+---->' E - <TEST-+----+----> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ____ test_colors[TEST-<->-outer_widths29-+-\x1b[34mTEST\x1b[0m-----+-----] _____ outer_widths = [1, 1, 5, 5], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-----+----->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...m-----+----->' E - <TEST-----+-----> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths30-+-\x1b[34mTEST\x1b[0m-+--+--] _______ outer_widths = [2, 2, 2, 2], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-+--+-->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m-+--+-->' E - <TEST-+--+--> E + tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST-<->-outer_widths31-+-\x1b[34mTEST\x1b[0m-+-+-] ________ outer_widths = [1, 1, 1, 1, 1], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-+-+->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m-+-+->' E - <TEST-+-+-> E + tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST-<->-outer_widths32-+-\x1b[34mTEST\x1b[0m++] _________ outer_widths = [0, 0, 0, 0, 0, 0, ...], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m++>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m++>' E - <TEST++> E + tests/test_build/test_build_border.py:295: AssertionError ________________________ test_width[Test--4-expected8] _________________________ string = 'Test', align = '', width = 4, expected = ['\x1b[34mTest\x1b[0m'] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test'] == ['\x1b[34mTest\x1b[0m'] E At index 0 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError ________________________ test_width[Test--5-expected20] ________________________ string = 'Test', align = '', width = 5, expected = ['\x1b[34mTest\x1b[0m '] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test '] == ['\x1b[34mTest\x1b[0m '] E At index 0 diff: 'Test ' != '\x1b[34mTest\x1b[0m ' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError ______________________ test_width[Test-left-5-expected32] ______________________ string = 'Test', align = 'left', width = 5, expected = ['\x1b[34mTest\x1b[0m '] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test '] == ['\x1b[34mTest\x1b[0m '] E At index 0 diff: 'Test ' != '\x1b[34mTest\x1b[0m ' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError _____________________ test_width[Test-right-5-expected44] ______________________ string = 'Test', align = 'right', width = 5, expected = [' \x1b[34mTest\x1b[0m'] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert [' Test'] == [' \x1b[34mTest\x1b[0m'] E At index 0 diff: ' Test' != ' \x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError _____________________ test_width[Test-center-6-expected56] _____________________ string = 'Test', align = 'center', width = 6 expected = [' \x1b[34mTest\x1b[0m '] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert [' Test '] == [' \x1b[34mTest\x1b[0m '] E At index 0 diff: ' Test ' != ' \x1b[34mTest\x1b[0m ' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError ________________________ test_height[Test--1-expected3] ________________________ string = 'Test', align = '', height = 1, expected = ['\x1b[34mTest\x1b[0m'] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test'] == ['\x1b[34mTest\x1b[0m'] E At index 0 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError _______________________ test_height[Test--2-expected10] ________________________ string = 'Test', align = '', height = 2 expected = ['\x1b[34mTest\x1b[0m', ' '] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test', ' '] == ['\x1b[34mTes...b[0m', ' '] E At index 0 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError ______________________ test_height[Test-top-2-expected17] ______________________ string = 'Test', align = 'top', height = 2 expected = ['\x1b[34mTest\x1b[0m', ' '] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test', ' '] == ['\x1b[34mTes...b[0m', ' '] E At index 0 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError ____________________ test_height[Test-bottom-2-expected24] _____________________ string = 'Test', align = 'bottom', height = 2 expected = [' ', '\x1b[34mTest\x1b[0m'] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert [' ', 'Test'] == [' ', '\x1...mTest\x1b[0m'] E At index 1 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError ____________________ test_height[Test-middle-3-expected31] _____________________ string = 'Test', align = 'middle', height = 3 expected = [' ', '\x1b[34mTest\x1b[0m', ' '] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert [' ', 'Test', ' '] == [' ', '\x1...b[0m', ' '] E At index 1 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError _ test_odd_width_height_pad_space[\x1b[34mTest\x1b[39m\n\x1b[34mTest\x1b[39m\nTest--expected29] _ string = '\x1b[34mTest\x1b[39m\n\x1b[34mTest\x1b[39m\nTest', align = '' expected = ['.......', '.\x1b[34mTest\x1b[39m..', '.\x1b[34mTest\x1b[39m..', '.\x1b[34mTest\x1b[0m..', '.......'] @pytest.mark.parametrize('string,align,expected', [ ('', '', ['.......', '.......', '.......', '.......', '.......']), ('\n', '', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', '', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', '', ['.......', '.test..', '.......', '.......', '.......']), ('', 'left', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'left', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'left', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', 'left', ['.......', '.test..', '.......', '.......', '.......']), ('', 'right', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'right', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'right', ['.......', '.....a.', '.....b.', '.....c.', '.......']), ('test', 'right', ['.......', '..test.', '.......', '.......', '.......']), ('', 'center', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'center', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'center', ['.......', '...a...', '...b...', '...c...', '.......']), ('test', 'center', ['.......', '..test.', '.......', '.......', '.......']), ('', 'top', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'top', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'top', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', 'top', ['.......', '.test..', '.......', '.......', '.......']), ('', 'bottom', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'bottom', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'bottom', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', 'bottom', ['.......', '.......', '.......', '.test..', '.......']), ('', 'middle', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'middle', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'middle', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', 'middle', ['.......', '.......', '.test..', '.......', '.......']), ( u'蓝色\nשלום\nمعرب', '', ['.......', u'.蓝色..', u'.\u05e9\u05dc\u05d5\u05dd..', u'.\u0645\u0639\u0631\u0628..', '.......'] ), ( '\n'.join((Color('{blue}Test{/blue}'), Fore.BLUE + 'Test' + Fore.RESET, colored('Test', 'blue'))), '', ['.......', '.\x1b[34mTest\x1b[39m..', '.\x1b[34mTest\x1b[39m..', '.\x1b[34mTest\x1b[0m..', '.......'] ), # (Color('{blue}A\nB{/blue}'), '', '.......\n.\x1b[34mA\x1b[39m.....\n.\x1b[34mB\x1b[39m.....\n.......\n.......'), ]) def test_odd_width_height_pad_space(string, align, expected): """Test odd number width, height, padding, and dots for whitespaces. :param str string: String to test. :param str align: Alignment in any dimension but one at a time. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (5, 3), (1, 1, 1, 1), '.') > assert actual == expected E AssertionError: assert ['.......', '....', '.......'] == ['.......', '....', '.......'] E At index 3 diff: '.Test..' != '.\x1b[34mTest\x1b[0m..' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:202: AssertionError =========================== short test summary info ============================ FAILED tests/test_base_table/test_table.py::test_color - AssertionError: asse... FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths0-+-\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths1--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths2-+-\x1b[34mTEST\x1b[0m---+-----] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths3--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths4-+-\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths5--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths6-+-\x1b[34mTEST\x1b[0m+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths7--\x1b[34mTEST\x1b[0m-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths8-+-\x1b[34mTEST\x1b[0m+] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths9--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths10--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths11--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths12--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths13--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths14--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths15--\x1b[34mTEST\x1b[0m--] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths16--\x1b[34mTEST\x1b[0m-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths17--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths19-+-\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths20-+-\x1b[34mTEST\x1b[0m---------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths21-+-\x1b[34mTEST\x1b[0m--------+] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths22-+-\x1b[34mTEST\x1b[0m----------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths23-+-\x1b[34mTEST\x1b[0m--------++] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths24-+-\x1b[34mTEST\x1b[0m---] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths25-+-\x1b[34mTEST\x1b[0m+--] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths26-+-\x1b[34mTEST\x1b[0m-+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths27-+-\x1b[34mTEST\x1b[0m---+---+---] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths28-+-\x1b[34mTEST\x1b[0m-+----+----] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths29-+-\x1b[34mTEST\x1b[0m-----+-----] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths30-+-\x1b[34mTEST\x1b[0m-+--+--] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths31-+-\x1b[34mTEST\x1b[0m-+-+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths32-+-\x1b[34mTEST\x1b[0m++] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths0-+-\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths1--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths2-+-\x1b[34mTEST\x1b[0m---+-----] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths3--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths4-+-\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths5--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths6-+-\x1b[34mTEST\x1b[0m+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths7--\x1b[34mTEST\x1b[0m-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths8-+-\x1b[34mTEST\x1b[0m+] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths9--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths10--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths11--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths12--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths13--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths14--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths15--\x1b[34mTEST\x1b[0m--] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths16--\x1b[34mTEST\x1b[0m-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths17--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths19-+-\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths20-+-\x1b[34mTEST\x1b[0m---------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths21-+-\x1b[34mTEST\x1b[0m--------+] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths22-+-\x1b[34mTEST\x1b[0m----------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths23-+-\x1b[34mTEST\x1b[0m--------++] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths24-+-\x1b[34mTEST\x1b[0m---] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths25-+-\x1b[34mTEST\x1b[0m+--] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths26-+-\x1b[34mTEST\x1b[0m-+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths27-+-\x1b[34mTEST\x1b[0m---+---+---] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths28-+-\x1b[34mTEST\x1b[0m-+----+----] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths29-+-\x1b[34mTEST\x1b[0m-----+-----] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths30-+-\x1b[34mTEST\x1b[0m-+--+--] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths31-+-\x1b[34mTEST\x1b[0m-+-+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths32-+-\x1b[34mTEST\x1b[0m++] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test--4-expected8] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test--5-expected20] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test-left-5-expected32] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test-right-5-expected44] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test-center-6-expected56] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test--1-expected3] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test--2-expected10] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test-top-2-expected17] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test-bottom-2-expected24] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test-middle-3-expected31] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_odd_width_height_pad_space[\x1b[34mTest\x1b[39m\n\x1b[34mTest\x1b[39m\nTest--expected29] ================== 76 failed, 711 passed, 14 skipped in 2.62s ================== E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.12_terminaltables/build; python3.12 -m pytest tests I: pybuild pybuild:308: cp example*.py /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.11_terminaltables/build I: pybuild base:311: cd /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.11_terminaltables/build; python3.11 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.11.8, pytest-7.4.4, pluggy-1.4.0 rootdir: /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.11_terminaltables/build collected 801 items tests/test_ascii_table.py ...................... [ 2%] tests/test_examples.py ... [ 3%] tests/test_all_tables_e2e/test_ascii_table.py ..s [ 3%] tests/test_all_tables_e2e/test_double_table.py ..s [ 3%] tests/test_all_tables_e2e/test_github_table.py .. [ 4%] tests/test_all_tables_e2e/test_porcelain_table.py .. [ 4%] tests/test_all_tables_e2e/test_single_table.py .. [ 4%] tests/test_all_tables_e2e/test_single_table_windows.py sss [ 4%] tests/test_base_table/test_gen_row_lines.py ............... [ 6%] tests/test_base_table/test_gen_table.py .................... [ 9%] tests/test_base_table/test_horizontal_border.py ................ [ 11%] tests/test_base_table/test_table.py .......F [ 12%] tests/test_build/test_build_border.py .................................. [ 16%] ........................................................................ [ 25%] ........................................................................ [ 34%] ........................................................................ [ 43%] ........................................................................ [ 52%] ........................................................................ [ 61%] ...................................FFFFFFFFFFFFFFFFFF.FFFFFFFFFFFFFF.FFF [ 70%] FFFFFFFFFFFFFFF.FFFFFFFFFFFFFF..... [ 74%] tests/test_build/test_build_row.py ...... [ 75%] tests/test_build/test_combine.py ...... [ 76%] tests/test_build/test_flatten.py .. [ 76%] tests/test_terminal_io/test_get_console_info.py . [ 76%] tests/test_terminal_io/test_set_terminal_title.py sssssssss [ 77%] tests/test_terminal_io/test_terminal_size.py ..... [ 78%] tests/test_width_and_alignment/test_align_and_pad_cell.py ........F..... [ 80%] ......F...........F...........F...........F......F......F......F......F. [ 89%] .....F................................F [ 94%] tests/test_width_and_alignment/test_column_max_width.py ... [ 94%] tests/test_width_and_alignment/test_max_dimensions.py ........... [ 95%] tests/test_width_and_alignment/test_table_width.py ... [ 96%] tests/test_width_and_alignment/test_visible_width.py ................... [ 98%] ........... [100%] =================================== FAILURES =================================== __________________________________ test_color __________________________________ def test_color(): """Test with color characters.""" table_data = [ ['ansi', '\033[31mRed\033[39m', '\033[32mGreen\033[39m', '\033[34mBlue\033[39m'], ['colorclass', Color('{red}Red{/red}'), Color('{green}Green{/green}'), Color('{blue}Blue{/blue}')], ['colorama', Fore.RED + 'Red' + Fore.RESET, Fore.GREEN + 'Green' + Fore.RESET, Fore.BLUE + 'Blue' + Fore.RESET], ['termcolor', colored('Red', 'red'), colored('Green', 'green'), colored('Blue', 'blue')], ] table = BaseTable(table_data) table.inner_heading_row_border = False actual = table.table expected = ( u'+------------+-----+-------+------+\n' u'| ansi | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n' u'| colorclass | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n' u'| colorama | \033[31mRed\033[39m | \033[32mGreen\033[39m | \033[34mBlue\033[39m |\n' u'| termcolor | \033[31mRed\033[0m | \033[32mGreen\033[0m | \033[34mBlue\033[0m |\n' u'+------------+-----+-------+------+' ) > assert actual == expected E AssertionError: assert '+-----------...-----+------+' == '+-----------...-----+------+' E Skipping 239 identical leading characters in diff, use -v to show E - mcolor | Red | Green | Blue | E + mcolor | Red | Green | Blue | E +------------+-----+-------+------+ tests/test_base_table/test_table.py:196: AssertionError _______ test_colors[TEST---outer_widths0-+-\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [12], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST---outer_widths1--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [12], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths2-+-\x1b[34mTEST\x1b[0m---+-----] _______ outer_widths = [7, 5], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m---+-----' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST---+-----' == '\x1b[34mTEST\x1b[0m---+-----' E - TEST---+----- E + TEST---+----- tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST---outer_widths3--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [7, 5], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths4-+-\x1b[34mTEST\x1b[0m] ____________ outer_widths = [4], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST' == '\x1b[34mTEST\x1b[0m' E - TEST E + TEST tests/test_build/test_build_border.py:295: AssertionError ____________ test_colors[TEST---outer_widths5--\x1b[34mTEST\x1b[0m] ____________ outer_widths = [4], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST' == '\x1b[34mTEST\x1b[0m' E - TEST E + TEST tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST---outer_widths6-+-\x1b[34mTEST\x1b[0m+-] ___________ outer_widths = [4, 1], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m+-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST+-' == '\x1b[34mTEST\x1b[0m+-' E - TEST+- E + TEST+- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths7--\x1b[34mTEST\x1b[0m-] ____________ outer_widths = [4, 1], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-' == '\x1b[34mTEST\x1b[0m-' E - TEST- E + TEST- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths8-+-\x1b[34mTEST\x1b[0m+] ___________ outer_widths = [4, 0], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m+' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST+' == '\x1b[34mTEST\x1b[0m+' E - TEST+ E + TEST+ tests/test_build/test_build_border.py:295: AssertionError ____________ test_colors[TEST---outer_widths9--\x1b[34mTEST\x1b[0m] ____________ outer_widths = [4, 0], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST' == '\x1b[34mTEST\x1b[0m' E - TEST E + TEST tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths10--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [12], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths11--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [6, 6], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths12--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [3, 3, 3, 3], left = '', intersect = '', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths13--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [2, 1, 2, 1, 2, 1, ...], left = '', intersect = '', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths14--\x1b[34mTEST\x1b[0m--------] ________ outer_widths = [1, 1, 1, 1, 1, 1, ...], left = '', intersect = '', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST---outer_widths15--\x1b[34mTEST\x1b[0m--] ___________ outer_widths = [2, 4], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--' == '\x1b[34mTEST\x1b[0m--' E - TEST-- E + TEST-- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths16--\x1b[34mTEST\x1b[0m-] ___________ outer_widths = [1, 4], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-' == '\x1b[34mTEST\x1b[0m-' E - TEST- E + TEST- tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST---outer_widths17--\x1b[34mTEST\x1b[0m] ____________ outer_widths = [1, 3], left = '', intersect = '', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST' == '\x1b[34mTEST\x1b[0m' E - TEST E + TEST tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths19-+-\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [12], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------' == '\x1b[34mTEST\x1b[0m--------' E - TEST-------- E + TEST-------- tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST---outer_widths20-+-\x1b[34mTEST\x1b[0m---------] _______ outer_widths = [0, 12], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m---------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST---------' == '\x1b[34mTEST\x1b[0m---------' E - TEST--------- E + TEST--------- tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST---outer_widths21-+-\x1b[34mTEST\x1b[0m--------+] _______ outer_widths = [12, 0], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m--------+' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------+' == '\x1b[34mTEST\x1b[0m--------+' E - TEST--------+ E + TEST--------+ tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST---outer_widths22-+-\x1b[34mTEST\x1b[0m----------] ______ outer_widths = [0, 0, 12], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m----------' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST----------' == '\x1b[34mTEST...[0m----------' E - TEST---------- E ? ----- ---- E + TEST---------- tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST---outer_widths23-+-\x1b[34mTEST\x1b[0m--------++] ______ outer_widths = [12, 0, 0], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m--------++' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST--------++' == '\x1b[34mTEST...[0m--------++' E - TEST--------++ E ? ----- ---- E + TEST--------++ tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST---outer_widths24-+-\x1b[34mTEST\x1b[0m---] __________ outer_widths = [3, 3], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m---' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST---' == '\x1b[34mTEST\x1b[0m---' E - TEST--- E + TEST--- tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST---outer_widths25-+-\x1b[34mTEST\x1b[0m+--] __________ outer_widths = [4, 2], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m+--' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST+--' == '\x1b[34mTEST\x1b[0m+--' E - TEST+-- E + TEST+-- tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST---outer_widths26-+-\x1b[34mTEST\x1b[0m-+-] __________ outer_widths = [5, 1], left = '', intersect = '+', right = '', title = 'TEST' expected = '\x1b[34mTEST\x1b[0m-+-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-+-' == '\x1b[34mTEST\x1b[0m-+-' E - TEST-+- E + TEST-+- tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST---outer_widths27-+-\x1b[34mTEST\x1b[0m---+---+---] ______ outer_widths = [3, 3, 3, 3], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m---+---+---' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST---+---+---' == '\x1b[34mTEST...0m---+---+---' E - TEST---+---+--- E ? ----- ---- E + TEST---+---+--- tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST---outer_widths28-+-\x1b[34mTEST\x1b[0m-+----+----] ______ outer_widths = [2, 2, 4, 4], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m-+----+----' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-+----+----' == '\x1b[34mTEST...0m-+----+----' E - TEST-+----+---- E ? ----- ---- E + TEST-+----+---- tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST---outer_widths29-+-\x1b[34mTEST\x1b[0m-----+-----] ______ outer_widths = [1, 1, 5, 5], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m-----+-----' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-----+-----' == '\x1b[34mTEST...0m-----+-----' E - TEST-----+----- E ? ----- ---- E + TEST-----+----- tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST---outer_widths30-+-\x1b[34mTEST\x1b[0m-+--+--] ________ outer_widths = [2, 2, 2, 2], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m-+--+--' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-+--+--' == '\x1b[34mTEST\x1b[0m-+--+--' E - TEST-+--+-- E + TEST-+--+-- tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST---outer_widths31-+-\x1b[34mTEST\x1b[0m-+-+-] _________ outer_widths = [1, 1, 1, 1, 1], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m-+-+-' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST-+-+-' == '\x1b[34mTEST\x1b[0m-+-+-' E - TEST-+-+- E + TEST-+-+- tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST---outer_widths32-+-\x1b[34mTEST\x1b[0m++] __________ outer_widths = [0, 0, 0, 0, 0, 0, ...], left = '', intersect = '+', right = '' title = 'TEST', expected = '\x1b[34mTEST\x1b[0m++' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert 'TEST++' == '\x1b[34mTEST\x1b[0m++' E - TEST++ E + TEST++ tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths0-+-\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [12], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST-<->-outer_widths1--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [12], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths2-+-\x1b[34mTEST\x1b[0m---+-----] ______ outer_widths = [7, 5], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m---+----->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...[0m---+----->' E - <TEST---+-----> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST-<->-outer_widths3--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [7, 5], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths4-+-\x1b[34mTEST\x1b[0m] ___________ outer_widths = [4], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m>' E - <TEST> E + tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST-<->-outer_widths5--\x1b[34mTEST\x1b[0m] ___________ outer_widths = [4], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m>' E - <TEST> E + tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST-<->-outer_widths6-+-\x1b[34mTEST\x1b[0m+-] __________ outer_widths = [4, 1], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m+->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m+->' E - <TEST+-> E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths7--\x1b[34mTEST\x1b[0m-] ___________ outer_widths = [4, 1], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m->' E - <TEST-> E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths8-+-\x1b[34mTEST\x1b[0m+] __________ outer_widths = [4, 0], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m+>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m+>' E - <TEST+> E + tests/test_build/test_build_border.py:295: AssertionError ___________ test_colors[TEST-<->-outer_widths9--\x1b[34mTEST\x1b[0m] ___________ outer_widths = [4, 0], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m>' E - <TEST> E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths10--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [12], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths11--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [6, 6], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths12--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [3, 3, 3, 3], left = '<', intersect = '', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths13--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [2, 1, 2, 1, 2, 1, ...], left = '<', intersect = '', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths14--\x1b[34mTEST\x1b[0m--------] _______ outer_widths = [1, 1, 1, 1, 1, 1, ...], left = '<', intersect = '', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST-<->-outer_widths15--\x1b[34mTEST\x1b[0m--] __________ outer_widths = [2, 4], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m-->' E - <TEST--> E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths16--\x1b[34mTEST\x1b[0m-] __________ outer_widths = [1, 4], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m->' E - <TEST-> E + tests/test_build/test_build_border.py:295: AssertionError __________ test_colors[TEST-<->-outer_widths17--\x1b[34mTEST\x1b[0m] ___________ outer_widths = [1, 3], left = '<', intersect = '', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m>' E - <TEST> E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths19-+-\x1b[34mTEST\x1b[0m--------] ______ outer_widths = [12], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...b[0m-------->' E - <TEST--------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST-<->-outer_widths20-+-\x1b[34mTEST\x1b[0m---------] ______ outer_widths = [0, 12], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m--------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...[0m--------->' E - <TEST---------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST-<->-outer_widths21-+-\x1b[34mTEST\x1b[0m--------+] ______ outer_widths = [12, 0], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m--------+>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...[0m--------+>' E - <TEST--------+> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST-<->-outer_widths22-+-\x1b[34mTEST\x1b[0m----------] _____ outer_widths = [0, 0, 12], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m---------->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...0m---------->' E - <TEST----------> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError _____ test_colors[TEST-<->-outer_widths23-+-\x1b[34mTEST\x1b[0m--------++] _____ outer_widths = [12, 0, 0], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m--------++>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...0m--------++>' E - <TEST--------++> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST-<->-outer_widths24-+-\x1b[34mTEST\x1b[0m---] _________ outer_widths = [3, 3], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m--->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m--->' E - <TEST---> E + tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST-<->-outer_widths25-+-\x1b[34mTEST\x1b[0m+--] _________ outer_widths = [4, 2], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m+-->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m+-->' E - <TEST+--> E + tests/test_build/test_build_border.py:295: AssertionError ________ test_colors[TEST-<->-outer_widths26-+-\x1b[34mTEST\x1b[0m-+-] _________ outer_widths = [5, 1], left = '<', intersect = '+', right = '>', title = 'TEST' expected = '<\x1b[34mTEST\x1b[0m-+->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m-+->' E - <TEST-+-> E + tests/test_build/test_build_border.py:295: AssertionError ____ test_colors[TEST-<->-outer_widths27-+-\x1b[34mTEST\x1b[0m---+---+---] _____ outer_widths = [3, 3, 3, 3], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m---+---+--->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...m---+---+--->' E - <TEST---+---+---> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ____ test_colors[TEST-<->-outer_widths28-+-\x1b[34mTEST\x1b[0m-+----+----] _____ outer_widths = [2, 2, 4, 4], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-+----+---->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...m-+----+---->' E - <TEST-+----+----> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ____ test_colors[TEST-<->-outer_widths29-+-\x1b[34mTEST\x1b[0m-----+-----] _____ outer_widths = [1, 1, 5, 5], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-----+----->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTES...m-----+----->' E - <TEST-----+-----> E ? ----- ---- E + tests/test_build/test_build_border.py:295: AssertionError ______ test_colors[TEST-<->-outer_widths30-+-\x1b[34mTEST\x1b[0m-+--+--] _______ outer_widths = [2, 2, 2, 2], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-+--+-->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m-+--+-->' E - <TEST-+--+--> E + tests/test_build/test_build_border.py:295: AssertionError _______ test_colors[TEST-<->-outer_widths31-+-\x1b[34mTEST\x1b[0m-+-+-] ________ outer_widths = [1, 1, 1, 1, 1], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m-+-+->' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m-+-+->' E - <TEST-+-+-> E + tests/test_build/test_build_border.py:295: AssertionError _________ test_colors[TEST-<->-outer_widths32-+-\x1b[34mTEST\x1b[0m++] _________ outer_widths = [0, 0, 0, 0, 0, 0, ...], left = '<', intersect = '+', right = '>' title = 'TEST', expected = '<\x1b[34mTEST\x1b[0m++>' @pytest.mark.parametrize('outer_widths,intersect,expected', [ ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([7, 5], '+', '\x1b[34mTEST\x1b[0m---+-----'), ([7, 5], '', '\x1b[34mTEST\x1b[0m--------'), ([4], '+', '\x1b[34mTEST\x1b[0m'), ([4], '', '\x1b[34mTEST\x1b[0m'), ([4, 1], '+', '\x1b[34mTEST\x1b[0m+-'), ([4, 1], '', '\x1b[34mTEST\x1b[0m-'), ([4, 0], '+', '\x1b[34mTEST\x1b[0m+'), ([4, 0], '', '\x1b[34mTEST\x1b[0m'), ([12], '', '\x1b[34mTEST\x1b[0m--------'), ([6, 6], '', '\x1b[34mTEST\x1b[0m--------'), ([3, 3, 3, 3], '', '\x1b[34mTEST\x1b[0m--------'), ([2, 1, 2, 1, 2, 1, 2, 1], '', '\x1b[34mTEST\x1b[0m--------'), ([1] * 12, '', '\x1b[34mTEST\x1b[0m--------'), ([2, 4], '', '\x1b[34mTEST\x1b[0m--'), ([1, 4], '', '\x1b[34mTEST\x1b[0m-'), ([1, 3], '', '\x1b[34mTEST\x1b[0m'), ([1, 2], '', '---'), ([12], '+', '\x1b[34mTEST\x1b[0m--------'), ([0, 12], '+', '\x1b[34mTEST\x1b[0m---------'), ([12, 0], '+', '\x1b[34mTEST\x1b[0m--------+'), ([0, 0, 12], '+', '\x1b[34mTEST\x1b[0m----------'), ([12, 0, 0], '+', '\x1b[34mTEST\x1b[0m--------++'), ([3, 3], '+', '\x1b[34mTEST\x1b[0m---'), ([4, 2], '+', '\x1b[34mTEST\x1b[0m+--'), ([5, 1], '+', '\x1b[34mTEST\x1b[0m-+-'), ([3, 3, 3, 3], '+', '\x1b[34mTEST\x1b[0m---+---+---'), ([2, 2, 4, 4], '+', '\x1b[34mTEST\x1b[0m-+----+----'), ([1, 1, 5, 5], '+', '\x1b[34mTEST\x1b[0m-----+-----'), ([2, 2, 2, 2], '+', '\x1b[34mTEST\x1b[0m-+--+--'), ([1, 1, 1, 1, 1], '+', '\x1b[34mTEST\x1b[0m-+-+-'), ([0, 0, 0, 0, 0, 0, 0], '+', '\x1b[34mTEST\x1b[0m++'), ([1, 1], '+', '-+-'), ]) @pytest.mark.parametrize('left,right', [('', ''), ('<', '>')]) @pytest.mark.parametrize('title', [ '\x1b[34mTEST\x1b[0m', Color('{blue}TEST{/all}'), Fore.BLUE + 'TEST' + Style.RESET_ALL, colored('TEST', 'blue'), ]) def test_colors(outer_widths, left, intersect, right, title, expected): """Test with color title characters. :param iter outer_widths: List of integers representing column widths with padding. :param str left: Left border. :param str intersect: Column separator. :param str right: Right border. :param title: Title in border with color codes. :param str expected: Expected output. """ if left and right: expected = left + expected + right actual = build_border(outer_widths, '-', left, intersect, right, title=title) > assert ''.join(actual) == expected E AssertionError: assert '' == '<\x1b[34mTEST\x1b[0m++>' E - <TEST++> E + tests/test_build/test_build_border.py:295: AssertionError ________________________ test_width[Test--4-expected8] _________________________ string = 'Test', align = '', width = 4, expected = ['\x1b[34mTest\x1b[0m'] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test'] == ['\x1b[34mTest\x1b[0m'] E At index 0 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError ________________________ test_width[Test--5-expected20] ________________________ string = 'Test', align = '', width = 5, expected = ['\x1b[34mTest\x1b[0m '] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test '] == ['\x1b[34mTest\x1b[0m '] E At index 0 diff: 'Test ' != '\x1b[34mTest\x1b[0m ' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError ______________________ test_width[Test-left-5-expected32] ______________________ string = 'Test', align = 'left', width = 5, expected = ['\x1b[34mTest\x1b[0m '] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test '] == ['\x1b[34mTest\x1b[0m '] E At index 0 diff: 'Test ' != '\x1b[34mTest\x1b[0m ' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError _____________________ test_width[Test-right-5-expected44] ______________________ string = 'Test', align = 'right', width = 5, expected = [' \x1b[34mTest\x1b[0m'] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert [' Test'] == [' \x1b[34mTest\x1b[0m'] E At index 0 diff: ' Test' != ' \x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError _____________________ test_width[Test-center-6-expected56] _____________________ string = 'Test', align = 'center', width = 6 expected = [' \x1b[34mTest\x1b[0m '] @pytest.mark.parametrize('string,align,width,expected', [ ('test', '', 4, ['test']), (123, '', 3, ['123']), (0.9, '', 3, ['0.9']), (None, '', 4, ['None']), (True, '', 4, ['True']), (False, '', 5, ['False']), (Color('{blue}Test{/blue}'), '', 4, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 4, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 4, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 4, ['蓝色']), (u'שלום', '', 4, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 4, [u'\u0645\u0639\u0631\u0628']), ('test', '', 5, ['test ']), (123, '', 4, ['123 ']), (0.9, '', 4, ['0.9 ']), (None, '', 5, ['None ']), (True, '', 5, ['True ']), (False, '', 6, ['False ']), (Color('{blue}Test{/blue}'), '', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), '', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', '', 5, ['蓝色 ']), (u'שלום', '', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', '', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'left', 5, ['test ']), (123, 'left', 4, ['123 ']), (0.9, 'left', 4, ['0.9 ']), (None, 'left', 5, ['None ']), (True, 'left', 5, ['True ']), (False, 'left', 6, ['False ']), (Color('{blue}Test{/blue}'), 'left', 5, ['\x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'left', 5, ['\x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'left', 5, ['\x1b[34mTest\x1b[0m ']), ('蓝色', 'left', 5, ['蓝色 ']), (u'שלום', 'left', 5, [u'\u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'left', 5, [u'\u0645\u0639\u0631\u0628 ']), ('test', 'right', 5, [' test']), (123, 'right', 4, [' 123']), (0.9, 'right', 4, [' 0.9']), (None, 'right', 5, [' None']), (True, 'right', 5, [' True']), (False, 'right', 6, [' False']), (Color('{blue}Test{/blue}'), 'right', 5, [' \x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'right', 5, [' \x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'right', 5, [' \x1b[34mTest\x1b[0m']), ('蓝色', 'right', 5, [' 蓝色']), (u'שלום', 'right', 5, [u' \u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'right', 5, [u' \u0645\u0639\u0631\u0628']), ('test', 'center', 6, [' test ']), (123, 'center', 5, [' 123 ']), (0.9, 'center', 5, [' 0.9 ']), (None, 'center', 6, [' None ']), (True, 'center', 6, [' True ']), (False, 'center', 7, [' False ']), (Color('{blue}Test{/blue}'), 'center', 6, [' \x1b[34mTest\x1b[39m ']), (Fore.BLUE + 'Test' + Fore.RESET, 'center', 6, [' \x1b[34mTest\x1b[39m ']), (colored('Test', 'blue'), 'center', 6, [' \x1b[34mTest\x1b[0m ']), ('蓝色', 'center', 6, [' 蓝色 ']), (u'שלום', 'center', 6, [u' \u05e9\u05dc\u05d5\u05dd ']), (u'معرب', 'center', 6, [u' \u0645\u0639\u0631\u0628 ']), ]) def test_width(string, align, width, expected): """Test width and horizontal alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int width: Expand string to this width without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (width, 1), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert [' Test '] == [' \x1b[34mTest\x1b[0m '] E At index 0 diff: ' Test ' != ' \x1b[34mTest\x1b[0m ' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:87: AssertionError ________________________ test_height[Test--1-expected3] ________________________ string = 'Test', align = '', height = 1, expected = ['\x1b[34mTest\x1b[0m'] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test'] == ['\x1b[34mTest\x1b[0m'] E At index 0 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError _______________________ test_height[Test--2-expected10] ________________________ string = 'Test', align = '', height = 2 expected = ['\x1b[34mTest\x1b[0m', ' '] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test', ' '] == ['\x1b[34mTes...b[0m', ' '] E At index 0 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError ______________________ test_height[Test-top-2-expected17] ______________________ string = 'Test', align = 'top', height = 2 expected = ['\x1b[34mTest\x1b[0m', ' '] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert ['Test', ' '] == ['\x1b[34mTes...b[0m', ' '] E At index 0 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError ____________________ test_height[Test-bottom-2-expected24] _____________________ string = 'Test', align = 'bottom', height = 2 expected = [' ', '\x1b[34mTest\x1b[0m'] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert [' ', 'Test'] == [' ', '\x1...mTest\x1b[0m'] E At index 1 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError ____________________ test_height[Test-middle-3-expected31] _____________________ string = 'Test', align = 'middle', height = 3 expected = [' ', '\x1b[34mTest\x1b[0m', ' '] @pytest.mark.parametrize('string,align,height,expected', [ ('test', '', 1, ['test']), (Color('{blue}Test{/blue}'), '', 1, ['\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, '', 1, ['\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), '', 1, ['\x1b[34mTest\x1b[0m']), ('蓝色', '', 1, ['蓝色']), (u'שלום', '', 1, [u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', '', 1, [u'\u0645\u0639\u0631\u0628']), ('test', '', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, '', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), '', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', '', 2, ['蓝色', ' ']), (u'שלום', '', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', '', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'top', 2, ['test', ' ']), (Color('{blue}Test{/blue}'), 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'top', 2, ['\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'top', 2, ['\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'top', 2, ['蓝色', ' ']), (u'שלום', 'top', 2, [u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'top', 2, [u'\u0645\u0639\u0631\u0628', ' ']), ('test', 'bottom', 2, [' ', 'test']), (Color('{blue}Test{/blue}'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (Fore.BLUE + 'Test' + Fore.RESET, 'bottom', 2, [' ', '\x1b[34mTest\x1b[39m']), (colored('Test', 'blue'), 'bottom', 2, [' ', '\x1b[34mTest\x1b[0m']), ('蓝色', 'bottom', 2, [' ', '蓝色']), (u'שלום', 'bottom', 2, [' ', u'\u05e9\u05dc\u05d5\u05dd']), (u'معرب', 'bottom', 2, [' ', u'\u0645\u0639\u0631\u0628']), ('test', 'middle', 3, [' ', 'test', ' ']), (Color('{blue}Test{/blue}'), 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (Fore.BLUE + 'Test' + Fore.RESET, 'middle', 3, [' ', '\x1b[34mTest\x1b[39m', ' ']), (colored('Test', 'blue'), 'middle', 3, [' ', '\x1b[34mTest\x1b[0m', ' ']), ('蓝色', 'middle', 3, [' ', '蓝色', ' ']), (u'שלום', 'middle', 3, [' ', u'\u05e9\u05dc\u05d5\u05dd', ' ']), (u'معرب', 'middle', 3, [' ', u'\u0645\u0639\u0631\u0628', ' ']), ]) def test_height(string, align, height, expected): """Test height and vertical alignment. :param str string: String to test. :param str align: Horizontal alignment. :param int height: Expand string to this height without padding. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (4, height), (0, 0, 0, 0)) > assert actual == expected E AssertionError: assert [' ', 'Test', ' '] == [' ', '\x1...b[0m', ' '] E At index 1 diff: 'Test' != '\x1b[34mTest\x1b[0m' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:140: AssertionError _ test_odd_width_height_pad_space[\x1b[34mTest\x1b[39m\n\x1b[34mTest\x1b[39m\nTest--expected29] _ string = '\x1b[34mTest\x1b[39m\n\x1b[34mTest\x1b[39m\nTest', align = '' expected = ['.......', '.\x1b[34mTest\x1b[39m..', '.\x1b[34mTest\x1b[39m..', '.\x1b[34mTest\x1b[0m..', '.......'] @pytest.mark.parametrize('string,align,expected', [ ('', '', ['.......', '.......', '.......', '.......', '.......']), ('\n', '', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', '', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', '', ['.......', '.test..', '.......', '.......', '.......']), ('', 'left', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'left', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'left', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', 'left', ['.......', '.test..', '.......', '.......', '.......']), ('', 'right', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'right', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'right', ['.......', '.....a.', '.....b.', '.....c.', '.......']), ('test', 'right', ['.......', '..test.', '.......', '.......', '.......']), ('', 'center', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'center', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'center', ['.......', '...a...', '...b...', '...c...', '.......']), ('test', 'center', ['.......', '..test.', '.......', '.......', '.......']), ('', 'top', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'top', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'top', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', 'top', ['.......', '.test..', '.......', '.......', '.......']), ('', 'bottom', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'bottom', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'bottom', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', 'bottom', ['.......', '.......', '.......', '.test..', '.......']), ('', 'middle', ['.......', '.......', '.......', '.......', '.......']), ('\n', 'middle', ['.......', '.......', '.......', '.......', '.......']), ('a\nb\nc', 'middle', ['.......', '.a.....', '.b.....', '.c.....', '.......']), ('test', 'middle', ['.......', '.......', '.test..', '.......', '.......']), ( u'蓝色\nשלום\nمعرب', '', ['.......', u'.蓝色..', u'.\u05e9\u05dc\u05d5\u05dd..', u'.\u0645\u0639\u0631\u0628..', '.......'] ), ( '\n'.join((Color('{blue}Test{/blue}'), Fore.BLUE + 'Test' + Fore.RESET, colored('Test', 'blue'))), '', ['.......', '.\x1b[34mTest\x1b[39m..', '.\x1b[34mTest\x1b[39m..', '.\x1b[34mTest\x1b[0m..', '.......'] ), # (Color('{blue}A\nB{/blue}'), '', '.......\n.\x1b[34mA\x1b[39m.....\n.\x1b[34mB\x1b[39m.....\n.......\n.......'), ]) def test_odd_width_height_pad_space(string, align, expected): """Test odd number width, height, padding, and dots for whitespaces. :param str string: String to test. :param str align: Alignment in any dimension but one at a time. :param list expected: Expected output string. """ actual = align_and_pad_cell(string, (align,), (5, 3), (1, 1, 1, 1), '.') > assert actual == expected E AssertionError: assert ['.......', '....', '.......'] == ['.......', '....', '.......'] E At index 3 diff: '.Test..' != '.\x1b[34mTest\x1b[0m..' E Use -v to get more diff tests/test_width_and_alignment/test_align_and_pad_cell.py:202: AssertionError =========================== short test summary info ============================ FAILED tests/test_base_table/test_table.py::test_color - AssertionError: asse... FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths0-+-\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths1--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths2-+-\x1b[34mTEST\x1b[0m---+-----] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths3--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths4-+-\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths5--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths6-+-\x1b[34mTEST\x1b[0m+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths7--\x1b[34mTEST\x1b[0m-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths8-+-\x1b[34mTEST\x1b[0m+] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths9--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths10--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths11--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths12--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths13--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths14--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths15--\x1b[34mTEST\x1b[0m--] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths16--\x1b[34mTEST\x1b[0m-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths17--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths19-+-\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths20-+-\x1b[34mTEST\x1b[0m---------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths21-+-\x1b[34mTEST\x1b[0m--------+] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths22-+-\x1b[34mTEST\x1b[0m----------] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths23-+-\x1b[34mTEST\x1b[0m--------++] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths24-+-\x1b[34mTEST\x1b[0m---] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths25-+-\x1b[34mTEST\x1b[0m+--] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths26-+-\x1b[34mTEST\x1b[0m-+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths27-+-\x1b[34mTEST\x1b[0m---+---+---] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths28-+-\x1b[34mTEST\x1b[0m-+----+----] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths29-+-\x1b[34mTEST\x1b[0m-----+-----] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths30-+-\x1b[34mTEST\x1b[0m-+--+--] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths31-+-\x1b[34mTEST\x1b[0m-+-+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST---outer_widths32-+-\x1b[34mTEST\x1b[0m++] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths0-+-\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths1--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths2-+-\x1b[34mTEST\x1b[0m---+-----] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths3--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths4-+-\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths5--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths6-+-\x1b[34mTEST\x1b[0m+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths7--\x1b[34mTEST\x1b[0m-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths8-+-\x1b[34mTEST\x1b[0m+] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths9--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths10--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths11--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths12--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths13--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths14--\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths15--\x1b[34mTEST\x1b[0m--] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths16--\x1b[34mTEST\x1b[0m-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths17--\x1b[34mTEST\x1b[0m] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths19-+-\x1b[34mTEST\x1b[0m--------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths20-+-\x1b[34mTEST\x1b[0m---------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths21-+-\x1b[34mTEST\x1b[0m--------+] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths22-+-\x1b[34mTEST\x1b[0m----------] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths23-+-\x1b[34mTEST\x1b[0m--------++] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths24-+-\x1b[34mTEST\x1b[0m---] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths25-+-\x1b[34mTEST\x1b[0m+--] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths26-+-\x1b[34mTEST\x1b[0m-+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths27-+-\x1b[34mTEST\x1b[0m---+---+---] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths28-+-\x1b[34mTEST\x1b[0m-+----+----] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths29-+-\x1b[34mTEST\x1b[0m-----+-----] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths30-+-\x1b[34mTEST\x1b[0m-+--+--] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths31-+-\x1b[34mTEST\x1b[0m-+-+-] FAILED tests/test_build/test_build_border.py::test_colors[TEST-<->-outer_widths32-+-\x1b[34mTEST\x1b[0m++] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test--4-expected8] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test--5-expected20] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test-left-5-expected32] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test-right-5-expected44] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_width[Test-center-6-expected56] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test--1-expected3] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test--2-expected10] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test-top-2-expected17] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test-bottom-2-expected24] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_height[Test-middle-3-expected31] FAILED tests/test_width_and_alignment/test_align_and_pad_cell.py::test_odd_width_height_pad_space[\x1b[34mTest\x1b[39m\n\x1b[34mTest\x1b[39m\nTest--expected29] ================== 76 failed, 711 passed, 14 skipped in 2.36s ================== E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.11_terminaltables/build; python3.11 -m pytest tests dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.12 3.11" returned exit code 13 make[1]: [debian/rules:12: override_dh_auto_test] Error 25 (ignored) make[1]: Leaving directory '/build/reproducible-path/terminaltables-3.1.10' create-stamp debian/debhelper-build-stamp dh_testroot -O--buildsystem=pybuild dh_prep -O--buildsystem=pybuild dh_auto_install -O--buildsystem=pybuild I: pybuild plugin_pyproject:178: Copying package built for python3.12 to destdir I: pybuild plugin_pyproject:178: Copying package built for python3.11 to destdir dh_installdocs -O--buildsystem=pybuild dh_installdocs: warning: Cannot auto-detect main package for python-terminaltables-doc. If the default is wrong, please use --doc-main-package debian/rules override_dh_sphinxdoc make[1]: Entering directory '/build/reproducible-path/terminaltables-3.1.10' PYTHONPATH=. /usr/share/sphinx/scripts/python3/sphinx-build -N -q -E -b html docs/ debian/python-terminaltables-doc/usr/share/doc/python-terminaltables-doc/html/ /build/reproducible-path/terminaltables-3.1.10/docs/changelog.rst:3: CRITICAL: Problems with "include" directive path: InputError: [Errno 2] No such file or directory: 'README.rst'. /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:29: ERROR: Unknown interpreted text role "github". /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:29: ERROR: Unknown interpreted text role "github". /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:29: ERROR: Unknown interpreted text role "github". /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated /build/reproducible-path/terminaltables-3.1.10/docs/index.rst:68: WARNING: toctree contains reference to document 'changelog' that doesn't have a title: no link will be generated dh_sphinxdoc make[1]: Leaving directory '/build/reproducible-path/terminaltables-3.1.10' debian/rules override_dh_installchangelogs make[1]: Entering directory '/build/reproducible-path/terminaltables-3.1.10' dh_installchangelogs CHANGELOG.md make[1]: Leaving directory '/build/reproducible-path/terminaltables-3.1.10' dh_installexamples -O--buildsystem=pybuild dh_installexamples: warning: Cannot auto-detect main package for python-terminaltables-doc. If the default is wrong, please use --doc-main-package dh_python3 -O--buildsystem=pybuild dh_installsystemduser -O--buildsystem=pybuild dh_perl -O--buildsystem=pybuild dh_link -O--buildsystem=pybuild dh_strip_nondeterminism -O--buildsystem=pybuild debian/rules override_dh_compress make[1]: Entering directory '/build/reproducible-path/terminaltables-3.1.10' dh_compress -X example1.py -X example2.py -X example3.py -X html/ make[1]: Leaving directory '/build/reproducible-path/terminaltables-3.1.10' dh_fixperms -O--buildsystem=pybuild dh_missing -O--buildsystem=pybuild dh_installdeb -O--buildsystem=pybuild dh_gencontrol -O--buildsystem=pybuild dh_md5sums -O--buildsystem=pybuild dh_builddeb -O--buildsystem=pybuild dpkg-deb: building package 'python-terminaltables-doc' in '../python-terminaltables-doc_3.1.10-4_all.deb'. dpkg-deb: building package 'python3-terminaltables' in '../python3-terminaltables_3.1.10-4_all.deb'. dpkg-genbuildinfo --build=binary -O../terminaltables_3.1.10-4_i386.buildinfo dpkg-genchanges --build=binary -O../terminaltables_3.1.10-4_i386.changes dpkg-genchanges: info: binary-only upload (no source code included) dpkg-source --after-build . dpkg-source: info: using options from terminaltables-3.1.10/debian/source/options: --extend-diff-ignore=^[^/]+\.egg-info/ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: not including original source code in upload I: copying local configuration I: user script /srv/workspace/pbuilder/57679/tmp/hooks/B01_cleanup starting I: user script /srv/workspace/pbuilder/57679/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/57679 and its subdirectories I: Current time: Mon May 19 00:41:05 +14 2025 I: pbuilder-time-stamp: 1747564865