Sat Mar 30 05:34:14 UTC 2024 I: starting to build terminaltables/unstable/armhf on jenkins on '2024-03-30 05:33' Sat Mar 30 05:34:14 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/armhf_29/4648/console.log Sat Mar 30 05:34:14 UTC 2024 I: Downloading source for unstable/terminaltables=3.1.10-4 --2024-03-30 05:34:15-- http://deb.debian.org/debian/pool/main/t/terminaltables/terminaltables_3.1.10-4.dsc Connecting to 78.137.99.97:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2329 (2.3K) [text/prs.lines.tag] Saving to: ‘terminaltables_3.1.10-4.dsc’ 0K .. 100% 290M=0s 2024-03-30 05:34:15 (290 MB/s) - ‘terminaltables_3.1.10-4.dsc’ saved [2329/2329] Sat Mar 30 05:34:15 UTC 2024 I: terminaltables_3.1.10-4.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 Format: 3.0 (quilt) Source: terminaltables Binary: python-terminaltables-doc, python3-terminaltables Architecture: all Version: 3.1.10-4 Maintainer: Daniel Baumann Homepage: https://github.com/matthewdeanmartin/terminaltables Standards-Version: 4.6.2 Vcs-Browser: https://git.progress-linux.org/users/daniel.baumann/debian/packages/terminaltables Vcs-Git: https://git.progress-linux.org/users/daniel.baumann/debian/packages/terminaltables Testsuite: autopkgtest-pkg-python Build-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 Package-List: python-terminaltables-doc deb doc optional arch=all python3-terminaltables deb python optional arch=all Checksums-Sha1: db075b2aafc4b14b302538191839f0ac9a71b761 243872 terminaltables_3.1.10.orig.tar.xz 3a9cd04eca8bd0635b872772155629a6b7c925f4 5488 terminaltables_3.1.10-4.debian.tar.xz Checksums-Sha256: 69e6771f9442bd9c5452a3b8ff2b05dd2b5f3b661d1641de25c0d598d106fe73 243872 terminaltables_3.1.10.orig.tar.xz 50df683d877b9df1a6f307a736b321f6efbb3d54c5428ba8c47ff87d57b041d1 5488 terminaltables_3.1.10-4.debian.tar.xz Files: 82950ec544b521f1bd9edd417104714a 243872 terminaltables_3.1.10.orig.tar.xz dd1d904a86b85c801c4b01f6034373f7 5488 terminaltables_3.1.10-4.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCgAdFiEEgTbtJcfWfpLHSkKSVc8b+YaruccFAmXx7QYACgkQVc8b+Yar ucfobg//fUVLzyMYW7mMS/qgvxNdJxEf8G1JKbjDxD9jfT9XTLSHvOhPXepfVX3P 6jf5W92oFcLXu1suc4CsQk0E2XteiGJiDnpHTgPtqF4NLB/mVdZQ2fD2Bp1jERTv CTsn/CkpFLF876RZlBf4Hd0j5OK3+fKbP8hSwE7HoC0R55LKjBGy0n83Dp6d5aVy 72p7MbK6LTeZ9yXvbv8i3qPS79eJEy1y6EDOFiEPbLvhg8lbCy0CBJlXFTyMKkvE h5cxnk23mgRaYtDbtJVCZ4q/yK1uZDT48Fcstm7oZoygcz4VMZI6UQzyibZQa5pT PfrkkDS4N+rQMft1C56E9ZLrYn9sTHhdo2Ow4EjQ0zMqFiak6jKW1A1OQcelmXfV WghN9aXxesAQMrHd0WqMzpntv0EpDsRnGoN3ePUP3062pyTNQSMiUQaoWUXT6Kn+ vOwFV7PWvF5iE9hl8BiUtSfv6uwCqzEPmrng4krPCMCPNu3vSnbviEAU9z2b9OBv RY3LoJUFViVvg0zxKjkVxj8CNlIHE93UgFxiKUXJkSiaYfxbozQNRMsKLrpgZ4Fy EEhE/L9x3innFA8vBVpXk3zMnO3WBZ3padO6lxWg74HCvCY+efTft6o5t9APq4Mi s/Z7JJFzoDrU/wIsXwNTpgLHYDvdSq7/7UYmnPdsqSn3+h/stwQ= =Q4gA -----END PGP SIGNATURE----- Sat Mar 30 05:34:15 UTC 2024 I: Checking whether the package is not for us Sat Mar 30 05:34:15 UTC 2024 I: Starting 1st build on remote node virt32z-armhf-rb.debian.net. Sat Mar 30 05:34:15 UTC 2024 I: Preparing to do remote build '1' on virt32z-armhf-rb.debian.net. Sat Mar 30 05:39:47 UTC 2024 I: Deleting $TMPDIR on virt32z-armhf-rb.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Fri Mar 29 17:34:21 -12 2024 I: pbuilder-time-stamp: 1711776861 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration W: --override-config is not set; not updating apt.conf Read the manpage for details. I: mounting /proc filesystem I: mounting /sys filesystem I: creating /{dev,run}/shm I: mounting /dev/pts filesystem I: redirecting /dev/ptmx to /dev/pts/ptmx I: policy-rc.d already exists I: Copying source file I: copying [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/19116/tmp/hooks/D02_print_environment starting I: set BUILDDIR='/build/reproducible-path' BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' BUILDUSERNAME='pbuilder1' BUILD_ARCH='armhf' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=3 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='armhf' IFS=' ' INVOCATION_ID='3f552fabcb114fd7bd2d3a98dbbacd5b' LANG='C' LANGUAGE='en_US:en' LC_ALL='C' MAIL='/var/mail/root' OPTIND='1' PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' PBCURRENTCOMMANDLINEOPERATION='build' PBUILDER_OPERATION='build' PBUILDER_PKGDATADIR='/usr/share/pbuilder' PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' PBUILDER_SYSCONFDIR='/etc' PPID='19116' PS1='# ' PS2='> ' PS4='+ ' PWD='/' SHELL='/bin/bash' SHLVL='2' SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.MJdCtkOW/pbuilderrc_nsoe --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.MJdCtkOW/b1 --logfile b1/build.log terminaltables_3.1.10-4.dsc' SUDO_GID='110' SUDO_UID='103' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://10.0.0.15:3142/' I: uname -a Linux virt32z 6.1.0-18-armmp-lpae #1 SMP Debian 6.1.76-1 (2024-02-01) armv7l GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Mar 28 07:43 /bin -> usr/bin I: user script /srv/workspace/pbuilder/19116/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy Version: 0.invalid.0 Architecture: armhf Maintainer: Debian Pbuilder Team Description: Dummy package to satisfy dependencies with aptitude - created by pbuilder This package was created automatically by pbuilder to satisfy the build-dependencies of the package being currently built. Depends: debhelper-compat (= 13), 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 ... 19467 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} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libicu72{a} libjs-jquery{a} libjs-sphinxdoc{a} libjs-underscore{a} libjson-perl{a} libmagic-mgc{a} libmagic1t64{a} libpipeline1{a} libpython3-stdlib{a} libpython3.11-minimal{a} libpython3.11-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libreadline8t64{a} libsub-override-perl{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} po-debconf{a} pybuild-plugin-pyproject{a} 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 51.7 MB of archives. After unpacking 201 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main armhf fonts-lato all 2.015-1 [2780 kB] Get: 2 http://deb.debian.org/debian unstable/main armhf libpython3.11-minimal armhf 3.11.8-3+b3 [804 kB] Get: 3 http://deb.debian.org/debian unstable/main armhf libexpat1 armhf 2.6.2-1 [83.5 kB] Get: 4 http://deb.debian.org/debian unstable/main armhf python3.11-minimal armhf 3.11.8-3+b3 [1600 kB] Get: 5 http://deb.debian.org/debian unstable/main armhf python3-minimal armhf 3.11.8-1 [26.3 kB] Get: 6 http://deb.debian.org/debian unstable/main armhf media-types all 10.1.0 [26.9 kB] Get: 7 http://deb.debian.org/debian unstable/main armhf netbase all 6.4 [12.8 kB] Get: 8 http://deb.debian.org/debian unstable/main armhf tzdata all 2024a-1 [255 kB] Get: 9 http://deb.debian.org/debian unstable/main armhf readline-common all 8.2-4 [69.3 kB] Get: 10 http://deb.debian.org/debian unstable/main armhf libreadline8t64 armhf 8.2-4 [145 kB] Get: 11 http://deb.debian.org/debian unstable/main armhf libpython3.11-stdlib armhf 3.11.8-3+b3 [1703 kB] Get: 12 http://deb.debian.org/debian unstable/main armhf python3.11 armhf 3.11.8-3+b3 [597 kB] Get: 13 http://deb.debian.org/debian unstable/main armhf libpython3-stdlib armhf 3.11.8-1 [9332 B] Get: 14 http://deb.debian.org/debian unstable/main armhf python3 armhf 3.11.8-1 [27.4 kB] Get: 15 http://deb.debian.org/debian unstable/main armhf libpython3.12-minimal armhf 3.12.2-4+b2 [794 kB] Get: 16 http://deb.debian.org/debian unstable/main armhf python3.12-minimal armhf 3.12.2-4+b2 [1739 kB] Get: 17 http://deb.debian.org/debian unstable/main armhf sgml-base all 1.31 [15.4 kB] Get: 18 http://deb.debian.org/debian unstable/main armhf sensible-utils all 0.0.22 [22.4 kB] Get: 19 http://deb.debian.org/debian unstable/main armhf openssl armhf 3.1.5-1.1 [1208 kB] Get: 20 http://deb.debian.org/debian unstable/main armhf ca-certificates all 20240203 [158 kB] Get: 21 http://deb.debian.org/debian unstable/main armhf libmagic-mgc armhf 1:5.45-3 [314 kB] Get: 22 http://deb.debian.org/debian unstable/main armhf libmagic1t64 armhf 1:5.45-3 [98.1 kB] Get: 23 http://deb.debian.org/debian unstable/main armhf file armhf 1:5.45-3 [42.0 kB] Get: 24 http://deb.debian.org/debian unstable/main armhf gettext-base armhf 0.21-14+b1 [157 kB] Get: 25 http://deb.debian.org/debian unstable/main armhf libuchardet0 armhf 0.0.8-1+b1 [65.7 kB] Get: 26 http://deb.debian.org/debian unstable/main armhf groff-base armhf 1.23.0-3+b1 [1091 kB] Get: 27 http://deb.debian.org/debian unstable/main armhf bsdextrautils armhf 2.39.3-11 [82.5 kB] Get: 28 http://deb.debian.org/debian unstable/main armhf libpipeline1 armhf 1.5.7-2 [33.3 kB] Get: 29 http://deb.debian.org/debian unstable/main armhf man-db armhf 2.12.0-4 [1373 kB] Get: 30 http://deb.debian.org/debian unstable/main armhf m4 armhf 1.4.19-4 [264 kB] Get: 31 http://deb.debian.org/debian unstable/main armhf autoconf all 2.71-3 [332 kB] Get: 32 http://deb.debian.org/debian unstable/main armhf autotools-dev all 20220109.1 [51.6 kB] Get: 33 http://deb.debian.org/debian unstable/main armhf automake all 1:1.16.5-1.3 [823 kB] Get: 34 http://deb.debian.org/debian unstable/main armhf autopoint all 0.21-14 [496 kB] Get: 35 http://deb.debian.org/debian unstable/main armhf libdebhelper-perl all 13.15.3 [88.0 kB] Get: 36 http://deb.debian.org/debian unstable/main armhf libtool all 2.4.7-7 [517 kB] Get: 37 http://deb.debian.org/debian unstable/main armhf dh-autoreconf all 20 [17.1 kB] Get: 38 http://deb.debian.org/debian unstable/main armhf libarchive-zip-perl all 1.68-1 [104 kB] Get: 39 http://deb.debian.org/debian unstable/main armhf libsub-override-perl all 0.10-1 [10.6 kB] Get: 40 http://deb.debian.org/debian unstable/main armhf libfile-stripnondeterminism-perl all 1.13.1-1 [19.4 kB] Get: 41 http://deb.debian.org/debian unstable/main armhf dh-strip-nondeterminism all 1.13.1-1 [8620 B] Get: 42 http://deb.debian.org/debian unstable/main armhf libelf1t64 armhf 0.191-1 [183 kB] Get: 43 http://deb.debian.org/debian unstable/main armhf dwz armhf 0.15-1+b1 [106 kB] Get: 44 http://deb.debian.org/debian unstable/main armhf libicu72 armhf 72.1-4+b1 [9070 kB] Get: 45 http://deb.debian.org/debian unstable/main armhf libxml2 armhf 2.9.14+dfsg-1.3+b2 [599 kB] Get: 46 http://deb.debian.org/debian unstable/main armhf gettext armhf 0.21-14+b1 [1230 kB] Get: 47 http://deb.debian.org/debian unstable/main armhf intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 48 http://deb.debian.org/debian unstable/main armhf po-debconf all 1.0.21+nmu1 [248 kB] Get: 49 http://deb.debian.org/debian unstable/main armhf debhelper all 13.15.3 [901 kB] Get: 50 http://deb.debian.org/debian unstable/main armhf python3-lib2to3 all 3.12.2-3 [77.6 kB] Get: 51 http://deb.debian.org/debian unstable/main armhf python3-distutils all 3.12.2-3 [131 kB] Get: 52 http://deb.debian.org/debian unstable/main armhf python3-pkg-resources all 68.1.2-2 [241 kB] Get: 53 http://deb.debian.org/debian unstable/main armhf python3-setuptools all 68.1.2-2 [468 kB] Get: 54 http://deb.debian.org/debian unstable/main armhf dh-python all 6.20240310 [106 kB] Get: 55 http://deb.debian.org/debian unstable/main armhf xml-core all 0.19 [20.1 kB] Get: 56 http://deb.debian.org/debian unstable/main armhf docutils-common all 0.20.1+dfsg-3 [128 kB] Get: 57 http://deb.debian.org/debian unstable/main armhf fonts-font-awesome all 5.0.10+really4.7.0~dfsg-4.1 [517 kB] Get: 58 http://deb.debian.org/debian unstable/main armhf libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB] Get: 59 http://deb.debian.org/debian unstable/main armhf libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [116 kB] Get: 60 http://deb.debian.org/debian unstable/main armhf libjs-sphinxdoc all 7.2.6-6 [150 kB] Get: 61 http://deb.debian.org/debian unstable/main armhf libjson-perl all 4.10000-1 [87.5 kB] Get: 62 http://deb.debian.org/debian unstable/main armhf libpython3.12-stdlib armhf 3.12.2-4+b2 [1790 kB] Get: 63 http://deb.debian.org/debian unstable/main armhf python3-more-itertools all 10.2.0-1 [59.9 kB] Get: 64 http://deb.debian.org/debian unstable/main armhf python3-zipp all 1.0.0-6 [6696 B] Get: 65 http://deb.debian.org/debian unstable/main armhf python3-importlib-metadata all 4.12.0-1 [24.9 kB] Get: 66 http://deb.debian.org/debian unstable/main armhf python3-packaging all 23.2-1 [44.8 kB] Get: 67 http://deb.debian.org/debian unstable/main armhf python3-pyproject-hooks all 1.0.0-2 [10.6 kB] Get: 68 http://deb.debian.org/debian unstable/main armhf python3-toml all 0.10.2-1 [16.2 kB] Get: 69 http://deb.debian.org/debian unstable/main armhf python3-wheel all 0.43.0-1 [52.5 kB] Get: 70 http://deb.debian.org/debian unstable/main armhf python3-build all 1.1.1-1 [32.5 kB] Get: 71 http://deb.debian.org/debian unstable/main armhf python3-installer all 0.7.0+dfsg1-3 [18.6 kB] Get: 72 http://deb.debian.org/debian unstable/main armhf pybuild-plugin-pyproject all 6.20240310 [10.9 kB] Get: 73 http://deb.debian.org/debian unstable/main armhf python-babel-localedata all 2.10.3-3 [5611 kB] Get: 74 http://deb.debian.org/debian unstable/main armhf python3-alabaster all 0.7.12-1 [20.8 kB] Get: 75 http://deb.debian.org/debian unstable/main armhf python3.12 armhf 3.12.2-4+b2 [653 kB] Get: 76 http://deb.debian.org/debian unstable/main armhf python3-all armhf 3.11.8-1 [1056 B] Get: 77 http://deb.debian.org/debian unstable/main armhf python3-tz all 2024.1-2 [30.9 kB] Get: 78 http://deb.debian.org/debian unstable/main armhf python3-babel all 2.10.3-3 [100.0 kB] Get: 79 http://deb.debian.org/debian unstable/main armhf python3-certifi all 2023.11.17-1 [155 kB] Get: 80 http://deb.debian.org/debian unstable/main armhf python3-charset-normalizer all 3.3.2-1 [51.6 kB] Get: 81 http://deb.debian.org/debian unstable/main armhf python3-idna all 3.6-2 [37.0 kB] Get: 82 http://deb.debian.org/debian unstable/main armhf python3-six all 1.16.0-6 [16.3 kB] Get: 83 http://deb.debian.org/debian unstable/main armhf python3-urllib3 all 1.26.18-2 [116 kB] Get: 84 http://deb.debian.org/debian unstable/main armhf python3-chardet all 5.2.0+dfsg-1 [107 kB] Get: 85 http://deb.debian.org/debian unstable/main armhf python3-requests all 2.31.0+dfsg-1 [68.6 kB] Get: 86 http://deb.debian.org/debian unstable/main armhf python3-msgpack armhf 1.0.3-3+b1 [89.1 kB] Get: 87 http://deb.debian.org/debian unstable/main armhf python3-cachecontrol all 0.14.0-1 [18.6 kB] Get: 88 http://deb.debian.org/debian unstable/main armhf python3-cffi-backend armhf 1.16.0-2+b1 [98.9 kB] Get: 89 http://deb.debian.org/debian unstable/main armhf python3-crashtest all 0.4.1-1 [6740 B] Get: 90 http://deb.debian.org/debian unstable/main armhf python3-pylev all 1.4.0-1 [6496 B] Get: 91 http://deb.debian.org/debian unstable/main armhf python3-cleo all 2.1.0-2 [54.4 kB] Get: 92 http://deb.debian.org/debian unstable/main armhf python3-colorama all 0.4.6-4 [36.2 kB] Get: 93 http://deb.debian.org/debian unstable/main armhf python3-colorclass all 2.2.2-2 [468 kB] Get: 94 http://deb.debian.org/debian unstable/main armhf python3-cryptography armhf 42.0.5-2 [1002 kB] Get: 95 http://deb.debian.org/debian unstable/main armhf python3-distlib all 0.3.8-1 [257 kB] Get: 96 http://deb.debian.org/debian unstable/main armhf python3-roman all 3.3-3 [9880 B] Get: 97 http://deb.debian.org/debian unstable/main armhf python3-docutils all 0.20.1+dfsg-3 [389 kB] Get: 98 http://deb.debian.org/debian unstable/main armhf python3-dulwich armhf 0.21.6-1+b1 [326 kB] Get: 99 http://deb.debian.org/debian unstable/main armhf python3-fastjsonschema all 2.19.1-1 [21.3 kB] Get: 100 http://deb.debian.org/debian unstable/main armhf python3-filelock all 3.13.1-1 [10.5 kB] Get: 101 http://deb.debian.org/debian unstable/main armhf python3-imagesize all 1.4.1-1 [6688 B] Get: 102 http://deb.debian.org/debian unstable/main armhf python3-iniconfig all 1.1.1-2 [6396 B] Get: 103 http://deb.debian.org/debian unstable/main armhf python3-jaraco.classes all 3.2.1-4 [7232 B] Get: 104 http://deb.debian.org/debian unstable/main armhf python3-jaraco.context all 4.3.0-1 [7616 B] Get: 105 http://deb.debian.org/debian unstable/main armhf python3-jaraco.functools all 4.0.0-1 [10.6 kB] Get: 106 http://deb.debian.org/debian unstable/main armhf python3-jeepney all 0.8.0-3 [34.0 kB] Get: 107 http://deb.debian.org/debian unstable/main armhf python3-markupsafe armhf 2.1.5-1 [13.9 kB] Get: 108 http://deb.debian.org/debian unstable/main armhf python3-jinja2 all 3.1.3-1 [119 kB] Get: 109 http://deb.debian.org/debian unstable/main armhf python3-secretstorage all 3.3.3-3 [16.1 kB] Get: 110 http://deb.debian.org/debian unstable/main armhf python3-keyring all 25.0.0-1 [53.5 kB] Get: 111 http://deb.debian.org/debian unstable/main armhf python3-lockfile all 1:0.12.2-3 [15.7 kB] Get: 112 http://deb.debian.org/debian unstable/main armhf python3-ptyprocess all 0.7.0-5 [14.7 kB] Get: 113 http://deb.debian.org/debian unstable/main armhf python3-pexpect all 4.9-2 [55.5 kB] Get: 114 http://deb.debian.org/debian unstable/main armhf python3-pip-whl all 24.0+dfsg-2 [1774 kB] Get: 115 http://deb.debian.org/debian unstable/main armhf python3-pkginfo all 1.9.6-1 [18.9 kB] Get: 116 http://deb.debian.org/debian unstable/main armhf python3-platformdirs all 4.2.0-1 [15.9 kB] Get: 117 http://deb.debian.org/debian unstable/main armhf python3-pluggy all 1.4.0-1 [26.2 kB] Get: 118 http://deb.debian.org/debian unstable/main armhf python3-poetry-core all 1.9.0-1 [209 kB] Get: 119 http://deb.debian.org/debian unstable/main armhf python3-poetry-plugin-export all 1.6.0-2 [11.6 kB] Get: 120 http://deb.debian.org/debian unstable/main armhf python3-requests-toolbelt all 1.0.0-2 [40.0 kB] Get: 121 http://deb.debian.org/debian unstable/main armhf python3-shellingham all 1.5.4-1 [11.0 kB] Get: 122 http://deb.debian.org/debian unstable/main armhf python3-tomlkit all 0.12.4-1 [41.7 kB] Get: 123 http://deb.debian.org/debian unstable/main armhf python3-trove-classifiers all 2024.1.31-1 [9968 B] Get: 124 http://deb.debian.org/debian unstable/main armhf python3-setuptools-whl all 68.1.2-2 [797 kB] Get: 125 http://deb.debian.org/debian unstable/main armhf python3-wheel-whl all 0.43.0-1 [68.8 kB] Get: 126 http://deb.debian.org/debian unstable/main armhf python3-virtualenv all 20.25.1+ds-1 [70.1 kB] Get: 127 http://deb.debian.org/debian unstable/main armhf python3-poetry all 1.8.2+dfsg-1 [179 kB] Get: 128 http://deb.debian.org/debian unstable/main armhf python3-pygments all 2.17.2+dfsg-1 [818 kB] Get: 129 http://deb.debian.org/debian unstable/main armhf python3-pytest all 8.1.1-1 [245 kB] Get: 130 http://deb.debian.org/debian unstable/main armhf python3-snowballstemmer all 2.2.0-4 [58.0 kB] Get: 131 http://deb.debian.org/debian unstable/main armhf sphinx-common all 7.2.6-6 [702 kB] Get: 132 http://deb.debian.org/debian unstable/main armhf python3-sphinx all 7.2.6-6 [552 kB] Get: 133 http://deb.debian.org/debian unstable/main armhf sphinx-rtd-theme-common all 2.0.0+dfsg-1 [1021 kB] Get: 134 http://deb.debian.org/debian unstable/main armhf python3-sphinxcontrib.jquery all 4.1-5 [7348 B] Get: 135 http://deb.debian.org/debian unstable/main armhf python3-sphinx-rtd-theme all 2.0.0+dfsg-1 [28.3 kB] Get: 136 http://deb.debian.org/debian unstable/main armhf python3-termcolor all 2.4.0-1 [9612 B] Fetched 51.7 MB in 1s (38.2 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 ... 19467 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:armhf. Preparing to unpack .../libpython3.11-minimal_3.11.8-3+b3_armhf.deb ... Unpacking libpython3.11-minimal:armhf (3.11.8-3+b3) ... Selecting previously unselected package libexpat1:armhf. Preparing to unpack .../libexpat1_2.6.2-1_armhf.deb ... Unpacking libexpat1:armhf (2.6.2-1) ... Selecting previously unselected package python3.11-minimal. Preparing to unpack .../python3.11-minimal_3.11.8-3+b3_armhf.deb ... Unpacking python3.11-minimal (3.11.8-3+b3) ... Setting up libpython3.11-minimal:armhf (3.11.8-3+b3) ... Setting up libexpat1:armhf (2.6.2-1) ... Setting up python3.11-minimal (3.11.8-3+b3) ... 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 ... 19811 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.11.8-1_armhf.deb ... Unpacking python3-minimal (3.11.8-1) ... Selecting previously unselected package media-types. Preparing to unpack .../1-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../2-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../3-tzdata_2024a-1_all.deb ... Unpacking tzdata (2024a-1) ... Selecting previously unselected package readline-common. Preparing to unpack .../4-readline-common_8.2-4_all.deb ... Unpacking readline-common (8.2-4) ... Selecting previously unselected package libreadline8t64:armhf. Preparing to unpack .../5-libreadline8t64_8.2-4_armhf.deb ... Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8 to /lib/arm-linux-gnueabihf/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libhistory.so.8.2 to /lib/arm-linux-gnueabihf/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8 to /lib/arm-linux-gnueabihf/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/arm-linux-gnueabihf/libreadline.so.8.2 to /lib/arm-linux-gnueabihf/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:armhf (8.2-4) ... Selecting previously unselected package libpython3.11-stdlib:armhf. Preparing to unpack .../6-libpython3.11-stdlib_3.11.8-3+b3_armhf.deb ... Unpacking libpython3.11-stdlib:armhf (3.11.8-3+b3) ... Selecting previously unselected package python3.11. Preparing to unpack .../7-python3.11_3.11.8-3+b3_armhf.deb ... Unpacking python3.11 (3.11.8-3+b3) ... Selecting previously unselected package libpython3-stdlib:armhf. Preparing to unpack .../8-libpython3-stdlib_3.11.8-1_armhf.deb ... Unpacking libpython3-stdlib:armhf (3.11.8-1) ... Setting up python3-minimal (3.11.8-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20805 files and directories currently installed.) Preparing to unpack .../000-python3_3.11.8-1_armhf.deb ... Unpacking python3 (3.11.8-1) ... Selecting previously unselected package libpython3.12-minimal:armhf. Preparing to unpack .../001-libpython3.12-minimal_3.12.2-4+b2_armhf.deb ... Unpacking libpython3.12-minimal:armhf (3.12.2-4+b2) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../002-python3.12-minimal_3.12.2-4+b2_armhf.deb ... Unpacking python3.12-minimal (3.12.2-4+b2) ... 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.1_armhf.deb ... Unpacking openssl (3.1.5-1.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-3_armhf.deb ... Unpacking libmagic-mgc (1:5.45-3) ... Selecting previously unselected package libmagic1t64:armhf. Preparing to unpack .../008-libmagic1t64_1%3a5.45-3_armhf.deb ... Unpacking libmagic1t64:armhf (1:5.45-3) ... Selecting previously unselected package file. Preparing to unpack .../009-file_1%3a5.45-3_armhf.deb ... Unpacking file (1:5.45-3) ... Selecting previously unselected package gettext-base. Preparing to unpack .../010-gettext-base_0.21-14+b1_armhf.deb ... Unpacking gettext-base (0.21-14+b1) ... Selecting previously unselected package libuchardet0:armhf. Preparing to unpack .../011-libuchardet0_0.0.8-1+b1_armhf.deb ... Unpacking libuchardet0:armhf (0.0.8-1+b1) ... Selecting previously unselected package groff-base. Preparing to unpack .../012-groff-base_1.23.0-3+b1_armhf.deb ... Unpacking groff-base (1.23.0-3+b1) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../013-bsdextrautils_2.39.3-11_armhf.deb ... Unpacking bsdextrautils (2.39.3-11) ... Selecting previously unselected package libpipeline1:armhf. Preparing to unpack .../014-libpipeline1_1.5.7-2_armhf.deb ... Unpacking libpipeline1:armhf (1.5.7-2) ... Selecting previously unselected package man-db. Preparing to unpack .../015-man-db_2.12.0-4_armhf.deb ... Unpacking man-db (2.12.0-4) ... Selecting previously unselected package m4. Preparing to unpack .../016-m4_1.4.19-4_armhf.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 libelf1t64:armhf. Preparing to unpack .../028-libelf1t64_0.191-1_armhf.deb ... Unpacking libelf1t64:armhf (0.191-1) ... Selecting previously unselected package dwz. Preparing to unpack .../029-dwz_0.15-1+b1_armhf.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libicu72:armhf. Preparing to unpack .../030-libicu72_72.1-4+b1_armhf.deb ... Unpacking libicu72:armhf (72.1-4+b1) ... Selecting previously unselected package libxml2:armhf. Preparing to unpack .../031-libxml2_2.9.14+dfsg-1.3+b2_armhf.deb ... Unpacking libxml2:armhf (2.9.14+dfsg-1.3+b2) ... Selecting previously unselected package gettext. Preparing to unpack .../032-gettext_0.21-14+b1_armhf.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-lib2to3. Preparing to unpack .../036-python3-lib2to3_3.12.2-3_all.deb ... Unpacking python3-lib2to3 (3.12.2-3) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../037-python3-distutils_3.12.2-3_all.deb ... Unpacking python3-distutils (3.12.2-3) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../038-python3-pkg-resources_68.1.2-2_all.deb ... Unpacking python3-pkg-resources (68.1.2-2) ... 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.20240310_all.deb ... Unpacking dh-python (6.20240310) ... 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:armhf. Preparing to unpack .../048-libpython3.12-stdlib_3.12.2-4+b2_armhf.deb ... Unpacking libpython3.12-stdlib:armhf (3.12.2-4+b2) ... 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_23.2-1_all.deb ... Unpacking python3-packaging (23.2-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.20240310_all.deb ... Unpacking pybuild-plugin-pyproject (6.20240310) ... 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-4+b2_armhf.deb ... Unpacking python3.12 (3.12.2-4+b2) ... Selecting previously unselected package python3-all. Preparing to unpack .../062-python3-all_3.11.8-1_armhf.deb ... Unpacking python3-all (3.11.8-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_armhf.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:armhf. Preparing to unpack .../074-python3-cffi-backend_1.16.0-2+b1_armhf.deb ... Unpacking python3-cffi-backend:armhf (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_42.0.5-2_armhf.deb ... Unpacking python3-cryptography (42.0.5-2) ... 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_armhf.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.1-1_all.deb ... Unpacking python3-filelock (3.13.1-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_armhf.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.0.0-1_all.deb ... Unpacking python3-keyring (25.0.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_8.1.1-1_all.deb ... Unpacking python3-pytest (8.1.1-1) ... 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:armhf (1.5.7-2) ... Setting up python3-setuptools-whl (68.1.2-2) ... Setting up fonts-lato (2.015-1) ... Setting up libicu72:armhf (72.1-4+b1) ... Setting up bsdextrautils (2.39.3-11) ... Setting up libmagic-mgc (1:5.45-3) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libdebhelper-perl (13.15.3) ... Setting up libmagic1t64:armhf (1:5.45-3) ... Setting up libpython3.12-minimal:armhf (3.12.2-4+b2) ... Setting up gettext-base (0.21-14+b1) ... Setting up m4 (1.4.19-4) ... Setting up file (1:5.45-3) ... Setting up libelf1t64:armhf (0.191-1) ... Setting up python-babel-localedata (2.10.3-3) ... Setting up tzdata (2024a-1) ... Current default time zone: 'Etc/UTC' Local time is now: Sat Mar 30 05:35:56 UTC 2024. Universal Time is now: Sat Mar 30 05:35:56 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... Setting up autopoint (0.21-14) ... Setting up autoconf (2.71-3) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.22) ... Setting up libuchardet0:armhf (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.1) ... Setting up python3-wheel-whl (0.43.0-1) ... Setting up readline-common (8.2-4) ... Setting up libxml2:armhf (2.9.14+dfsg-1.3+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-4+b2) ... Setting up gettext (0.21-14+b1) ... Setting up libtool (2.4.7-7) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 146 added, 0 removed; done. Setting up libjs-sphinxdoc (7.2.6-6) ... Setting up libreadline8t64:armhf (8.2-4) ... Setting up dh-strip-nondeterminism (1.13.1-1) ... Setting up groff-base (1.23.0-3+b1) ... Setting up xml-core (0.19) ... Setting up libpython3.12-stdlib:armhf (3.12.2-4+b2) ... Setting up python3-pip-whl (24.0+dfsg-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up libpython3.11-stdlib:armhf (3.11.8-3+b3) ... Setting up python3.12 (3.12.2-4+b2) ... Setting up man-db (2.12.0-4) ... Not building database; man-db/auto-update is not 'true'. Setting up sphinx-common (7.2.6-6) ... Setting up libpython3-stdlib:armhf (3.11.8-1) ... Setting up python3.11 (3.11.8-3+b3) ... Setting up debhelper (13.15.3) ... Setting up python3 (3.11.8-1) ... Setting up python3-distlib (0.3.8-1) ... Setting up python3-markupsafe (2.1.5-1) ... Setting up python3-wheel (0.43.0-1) ... Setting up python3-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 (23.2-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.12.2-3) ... Setting up python3-cffi-backend:armhf (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.12.2-3) ... 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.1-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 (8.1.1-1) ... 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.8-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 (42.0.5-2) ... 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.20240310) ... Setting up python3-requests-toolbelt (1.0.0-2) ... Setting up python3-importlib-metadata (4.12.0-1) ... Setting up pybuild-plugin-pyproject (6.20240310) ... Setting up python3-secretstorage (3.3.3-3) ... Setting up python3-keyring (25.0.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.1) ... 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: Running cd /build/reproducible-path/terminaltables-3.1.10/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../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 armhf 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:305: 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:305: 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:305: 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-8.1.1, pluggy-1.4.0 rootdir: /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.12_terminaltables/build configfile: pyproject.toml collected 801 items tests/test_all_tables_e2e/test_ascii_table.py ..s [ 0%] tests/test_all_tables_e2e/test_double_table.py ..s [ 0%] tests/test_all_tables_e2e/test_github_table.py .. [ 0%] tests/test_all_tables_e2e/test_porcelain_table.py .. [ 1%] tests/test_all_tables_e2e/test_single_table.py .. [ 1%] tests/test_all_tables_e2e/test_single_table_windows.py sss [ 1%] tests/test_ascii_table.py ...................... [ 4%] tests/test_base_table/test_gen_row_lines.py ............... [ 6%] tests/test_base_table/test_gen_table.py .................... [ 8%] tests/test_base_table/test_horizontal_border.py ................ [ 10%] tests/test_base_table/test_table.py .......F [ 11%] 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_examples.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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 11.08s ================== 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:305: 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-8.1.1, pluggy-1.4.0 rootdir: /build/reproducible-path/terminaltables-3.1.10/.pybuild/cpython3_3.11_terminaltables/build configfile: pyproject.toml collected 801 items tests/test_all_tables_e2e/test_ascii_table.py ..s [ 0%] tests/test_all_tables_e2e/test_double_table.py ..s [ 0%] tests/test_all_tables_e2e/test_github_table.py .. [ 0%] tests/test_all_tables_e2e/test_porcelain_table.py .. [ 1%] tests/test_all_tables_e2e/test_single_table.py .. [ 1%] tests/test_all_tables_e2e/test_single_table_windows.py sss [ 1%] tests/test_ascii_table.py ...................... [ 4%] tests/test_base_table/test_gen_row_lines.py ............... [ 6%] tests/test_base_table/test_gen_table.py .................... [ 8%] tests/test_base_table/test_horizontal_border.py ................ [ 10%] tests/test_base_table/test_table.py .......F [ 11%] 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_examples.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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 10.23s ================== 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 'python3-terminaltables' in '../python3-terminaltables_3.1.10-4_all.deb'. dpkg-deb: building package 'python-terminaltables-doc' in '../python-terminaltables-doc_3.1.10-4_all.deb'. dpkg-genbuildinfo --build=binary -O../terminaltables_3.1.10-4_armhf.buildinfo dpkg-genchanges --build=binary -O../terminaltables_3.1.10-4_armhf.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: 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/19116 and its subdirectories I: Current time: Fri Mar 29 17:39:33 -12 2024 I: pbuilder-time-stamp: 1711777173 Sat Mar 30 05:39:51 UTC 2024 I: 1st build successful. Starting 2nd build on remote node virt64a-armhf-rb.debian.net. Sat Mar 30 05:39:51 UTC 2024 I: Preparing to do remote build '2' on virt64a-armhf-rb.debian.net. Sat Mar 30 05:45:45 UTC 2024 I: Deleting $TMPDIR on virt64a-armhf-rb.debian.net. Sat Mar 30 05:45:47 UTC 2024 I: terminaltables_3.1.10-4_armhf.changes: Format: 1.8 Date: Wed, 13 Mar 2024 19:08:01 +0100 Source: terminaltables Binary: python-terminaltables-doc python3-terminaltables Architecture: all Version: 3.1.10-4 Distribution: sid Urgency: medium Maintainer: Daniel Baumann Changed-By: Daniel Baumann Description: python-terminaltables-doc - Documentation for terminaltables table printer python3-terminaltables - Python library for printing tables to the console Closes: 1066729 Changes: terminaltables (3.1.10-4) sid; urgency=medium . * Uploading to sid. * Updating copyright for 2024. * Temporarily disabling failing on test suite errors with python 3.12 as terminaltables is mostly only used by the dbcli programs (pgcli, mycli) and they don't seem to have an issue with it (Closes: #1066729). Checksums-Sha1: 0a879049d9d9533d637470952e9ebf008831583b 227128 python-terminaltables-doc_3.1.10-4_all.deb 8dec11a0991e19921874f2b9015db6bdbba74963 15712 python3-terminaltables_3.1.10-4_all.deb 0bccde6b20f177b30160d79a039770a2e25b581c 8703 terminaltables_3.1.10-4_armhf.buildinfo Checksums-Sha256: fda926680f25486408326f83d11f9090a2dec05f65d3574e9cdf0ba7132f3a43 227128 python-terminaltables-doc_3.1.10-4_all.deb 3a257549e8ad535c9397e9804c6008f1d5c3fb73f34a07497abaa84625ed5ef2 15712 python3-terminaltables_3.1.10-4_all.deb a9c842ced670a729419daaf562cd86f5257342bbc2f66a3ebc30f1790de748be 8703 terminaltables_3.1.10-4_armhf.buildinfo Files: 0b7010fc3ce0d096b742c7b07ed80267 227128 doc optional python-terminaltables-doc_3.1.10-4_all.deb 7f7480501faf376e8d2a959370d95487 15712 python optional python3-terminaltables_3.1.10-4_all.deb b3e0009dfa362612253889576b39969b 8703 python optional terminaltables_3.1.10-4_armhf.buildinfo Sat Mar 30 05:45:48 UTC 2024 I: diffoscope 261 will be used to compare the two builds: Running as unit: rb-diffoscope-armhf_29-4648.service # Profiling output for: /usr/bin/diffoscope --timeout 7200 --html /srv/reproducible-results/rbuild-debian/r-b-build.MJdCtkOW/terminaltables_3.1.10-4.diffoscope.html --text /srv/reproducible-results/rbuild-debian/r-b-build.MJdCtkOW/terminaltables_3.1.10-4.diffoscope.txt --json /srv/reproducible-results/rbuild-debian/r-b-build.MJdCtkOW/terminaltables_3.1.10-4.diffoscope.json --profile=- /srv/reproducible-results/rbuild-debian/r-b-build.MJdCtkOW/b1/terminaltables_3.1.10-4_armhf.changes /srv/reproducible-results/rbuild-debian/r-b-build.MJdCtkOW/b2/terminaltables_3.1.10-4_armhf.changes ## close_archive (total time: 0.000s) 0.000s 4 calls diffoscope.comparators.xz.XzContainer 0.000s 4 calls diffoscope.comparators.tar.TarContainer ## command (total time: 0.339s) 0.243s 24 calls diff 0.044s 6 calls xz 0.041s 88 calls html2text 0.004s 2 calls cmp 0.004s 2 calls cmp (external) 0.003s 49 calls cmp (internal) ## compare_files (cumulative) (total time: 2.919s) 0.679s 1 call abc.DotChangesFile 0.664s 1 call abc.DebFile 0.637s 2 calls abc.XzFile 0.560s 1 call abc.DebDataTarFile 0.304s 8 calls abc.HtmlFile 0.041s 3 calls abc.TextFile 0.029s 1 call abc.TarFile 0.006s 1 call abc.Md5sumsFile ## container_extract (total time: 0.080s) 0.044s 6 calls diffoscope.comparators.xz.XzContainer 0.029s 86 calls diffoscope.comparators.deb.DebTarContainer 0.004s 8 calls diffoscope.comparators.deb.DebContainer 0.003s 6 calls diffoscope.comparators.tar.TarContainer ## diff (total time: 0.004s) 0.004s 20 calls linediff ## has_same_content_as (total time: 0.011s) 0.003s 27 calls diffoscope.comparators.utils.libarchive.LibarchiveSymlink 0.002s 2 calls abc.XzFile 0.002s 1 call abc.DebDataTarFile 0.001s 8 calls abc.HtmlFile 0.001s 5 calls abc.TextFile 0.000s 2 calls abc.DebFile 0.000s 2 calls abc.Md5sumsFile 0.000s 1 call abc.DotChangesFile 0.000s 1 call abc.TarFile ## main (total time: 1.218s) 1.212s 2 calls outputs 0.006s 1 call cleanup ## open_archive (total time: 0.000s) 0.000s 6 calls diffoscope.comparators.xz.XzContainer 0.000s 4 calls diffoscope.comparators.tar.TarContainer 0.000s 2 calls diffoscope.comparators.deb.DebContainer 0.000s 2 calls diffoscope.comparators.deb.DebTarContainer ## output (total time: 0.178s) 0.176s 1 call html 0.001s 1 call text 0.001s 1 call json ## recognizes (total time: 0.126s) 0.091s 1010 calls diffoscope.comparators.utils.libarchive.LibarchiveMember 0.018s 12 calls diffoscope.comparators.binary.FilesystemFile 0.012s 260 calls diffoscope.comparators.utils.archive.ArchiveMember 0.004s 108 calls diffoscope.comparators.debian.DebControlMember ## specialize (total time: 0.102s) 0.102s 49 calls specialize Finished with result: success Main processes terminated with: code=exited/status=1 Service runtime: 1.560s CPU time consumed: 1.714s Sat Mar 30 05:45:50 UTC 2024 W: Diffoscope claims the build is reproducible, but there is a diffoscope file. Please investigate. Sat Mar 30 05:45:50 UTC 2024 E: terminaltables failed to build reproducibly in unstable on armhf. Sat Mar 30 05:45:52 UTC 2024 I: Submitting .buildinfo files to external archives: Sat Mar 30 05:45:52 UTC 2024 I: Submitting 12K b1/terminaltables_3.1.10-4_armhf.buildinfo.asc Sat Mar 30 05:45:52 UTC 2024 I: Submitting 12K b2/terminaltables_3.1.10-4_armhf.buildinfo.asc Sat Mar 30 05:45:53 UTC 2024 I: Done submitting .buildinfo files to http://buildinfo.debian.net/api/submit. Sat Mar 30 05:45:53 UTC 2024 I: Done submitting .buildinfo files. Sat Mar 30 05:45:53 UTC 2024 I: Removing signed terminaltables_3.1.10-4_armhf.buildinfo.asc files: removed './b1/terminaltables_3.1.10-4_armhf.buildinfo.asc' removed './b2/terminaltables_3.1.10-4_armhf.buildinfo.asc'