I: pbuilder: network access will be disabled during build I: Current time: Mon Mar 2 15:50:31 -12 2026 I: pbuilder-time-stamp: 1772509831 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 [python-directv_0.4.0-2.dsc] I: copying [./python-directv_0.4.0.orig.tar.gz] I: copying [./python-directv_0.4.0-2.debian.tar.xz] I: Extracting source dpkg-source: warning: cannot verify inline signature for ./python-directv_0.4.0-2.dsc: unsupported subcommand dpkg-source: info: extracting python-directv in python-directv-0.4.0 dpkg-source: info: unpacking python-directv_0.4.0.orig.tar.gz dpkg-source: info: unpacking python-directv_0.4.0-2.debian.tar.xz I: Not using root during the build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/4019535/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='amd64' DEBIAN_FRONTEND='noninteractive' DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='4efea82c49e04cc6b8f815f983737a46' 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='4019535' 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.BJX1SrxQ/pbuilderrc_CEoE --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.BJX1SrxQ/b1 --logfile b1/build.log python-directv_0.4.0-2.dsc' SUDO_GID='111' SUDO_UID='106' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' http_proxy='http://213.165.73.152:3128' I: uname -a Linux ionos15-amd64 6.12.9+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.9-1~bpo12+1 (2025-01-19) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Nov 22 2024 /bin -> usr/bin I: user script /srv/workspace/pbuilder/4019535/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: amd64 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-sequence-python3, python3-aiohttp, python3-all, python3-aresponses, python3-pytest, python3-pytest-asyncio, python3-pytest-cov, python3-setuptools, python3-yarl dpkg-deb: building package 'pbuilder-satisfydepends-dummy' in '/tmp/satisfydepends-aptitude/pbuilder-satisfydepends-dummy.deb'. Selecting previously unselected package pbuilder-satisfydepends-dummy. (Reading database ... 19843 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-sequence-python3; however: Package dh-sequence-python3 is not installed. pbuilder-satisfydepends-dummy depends on python3-aiohttp; however: Package python3-aiohttp is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-aresponses; however: Package python3-aresponses is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest; however: Package python3-pytest is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-asyncio; however: Package python3-pytest-asyncio is not installed. pbuilder-satisfydepends-dummy depends on python3-pytest-cov; however: Package python3-pytest-cov is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-yarl; however: Package python3-yarl 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} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} libarchive-zip-perl{a} libcom-err2{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libffi8{a} libfile-stripnondeterminism-perl{a} libgssapi-krb5-2{a} libicu72{a} libjs-jquery{a} libjs-jquery-hotkeys{a} libjs-jquery-isonscreen{a} libjs-jquery-metadata{a} libjs-jquery-tablesorter{a} libjs-jquery-throttle-debounce{a} libk5crypto3{a} libkeyutils1{a} libkrb5-3{a} libkrb5support0{a} libmagic-mgc{a} libmagic1t64{a} libnsl2{a} libpipeline1{a} libpython3-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libtirpc-common{a} libtirpc3t64{a} libtool{a} libuchardet0{a} libunistring5{a} libxml2{a} m4{a} man-db{a} media-types{a} netbase{a} po-debconf{a} python3{a} python3-aiohappyeyeballs{a} python3-aiohttp{a} python3-aiosignal{a} python3-all{a} python3-aresponses{a} python3-async-generator{a} python3-async-timeout{a} python3-attr{a} python3-autocommand{a} python3-coverage{a} python3-frozenlist{a} python3-idna{a} python3-inflect{a} python3-iniconfig{a} python3-jaraco.context{a} python3-jaraco.functools{a} python3-jaraco.text{a} python3-minimal{a} python3-more-itertools{a} python3-multidict{a} python3-packaging{a} python3-pkg-resources{a} python3-pluggy{a} python3-pytest{a} python3-pytest-asyncio{a} python3-pytest-cov{a} python3-setuptools{a} python3-typeguard{a} python3-typing-extensions{a} python3-yarl{a} python3-zipp{a} python3.12{a} python3.12-minimal{a} python3.13{a} python3.13-minimal{a} readline-common{a} sensible-utils{a} tzdata{a} The following packages are RECOMMENDED but will NOT be installed: ca-certificates curl javascript-common krb5-locales libarchive-cpio-perl libltdl-dev libmail-sendmail-perl lynx python3-aiodns python3-pygments wget 0 packages upgraded, 94 newly installed, 0 to remove and 0 not upgraded. Need to get 36.6 MB of archives. After unpacking 145 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main amd64 libpython3.13-minimal amd64 3.13.1-3 [858 kB] Get: 2 http://deb.debian.org/debian unstable/main amd64 libexpat1 amd64 2.6.4-1 [106 kB] Get: 3 http://deb.debian.org/debian unstable/main amd64 python3.13-minimal amd64 3.13.1-3 [2202 kB] Get: 4 http://deb.debian.org/debian unstable/main amd64 python3-minimal amd64 3.13.1-2 [27.0 kB] Get: 5 http://deb.debian.org/debian unstable/main amd64 media-types all 10.1.0 [26.9 kB] Get: 6 http://deb.debian.org/debian unstable/main amd64 netbase all 6.4 [12.8 kB] Get: 7 http://deb.debian.org/debian unstable/main amd64 tzdata all 2025a-1 [259 kB] Get: 8 http://deb.debian.org/debian unstable/main amd64 libffi8 amd64 3.4.6-1 [23.6 kB] Get: 9 http://deb.debian.org/debian unstable/main amd64 readline-common all 8.2-6 [69.4 kB] Get: 10 http://deb.debian.org/debian unstable/main amd64 libreadline8t64 amd64 8.2-6 [169 kB] Get: 11 http://deb.debian.org/debian unstable/main amd64 libpython3.13-stdlib amd64 3.13.1-3 [1973 kB] Get: 12 http://deb.debian.org/debian unstable/main amd64 python3.13 amd64 3.13.1-3 [740 kB] Get: 13 http://deb.debian.org/debian unstable/main amd64 libpython3-stdlib amd64 3.13.1-2 [9952 B] Get: 14 http://deb.debian.org/debian unstable/main amd64 python3 amd64 3.13.1-2 [28.0 kB] Get: 15 http://deb.debian.org/debian unstable/main amd64 libpython3.12-minimal amd64 3.12.8-5 [817 kB] Get: 16 http://deb.debian.org/debian unstable/main amd64 python3.12-minimal amd64 3.12.8-5 [2164 kB] Get: 17 http://deb.debian.org/debian unstable/main amd64 sensible-utils all 0.0.24 [24.8 kB] Get: 18 http://deb.debian.org/debian unstable/main amd64 libmagic-mgc amd64 1:5.45-3+b1 [314 kB] Get: 19 http://deb.debian.org/debian unstable/main amd64 libmagic1t64 amd64 1:5.45-3+b1 [108 kB] Get: 20 http://deb.debian.org/debian unstable/main amd64 file amd64 1:5.45-3+b1 [43.3 kB] Get: 21 http://deb.debian.org/debian unstable/main amd64 gettext-base amd64 0.23.1-1 [243 kB] Get: 22 http://deb.debian.org/debian unstable/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 23 http://deb.debian.org/debian unstable/main amd64 groff-base amd64 1.23.0-7 [1185 kB] Get: 24 http://deb.debian.org/debian unstable/main amd64 bsdextrautils amd64 2.40.4-2 [92.1 kB] Get: 25 http://deb.debian.org/debian unstable/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 26 http://deb.debian.org/debian unstable/main amd64 man-db amd64 2.13.0-1 [1420 kB] Get: 27 http://deb.debian.org/debian unstable/main amd64 m4 amd64 1.4.19-5 [294 kB] Get: 28 http://deb.debian.org/debian unstable/main amd64 autoconf all 2.72-3 [493 kB] Get: 29 http://deb.debian.org/debian unstable/main amd64 autotools-dev all 20220109.1 [51.6 kB] Get: 30 http://deb.debian.org/debian unstable/main amd64 automake all 1:1.17-2 [861 kB] Get: 31 http://deb.debian.org/debian unstable/main amd64 autopoint all 0.23.1-1 [770 kB] Get: 32 http://deb.debian.org/debian unstable/main amd64 libdebhelper-perl all 13.24.1 [90.9 kB] Get: 33 http://deb.debian.org/debian unstable/main amd64 libtool all 2.5.4-2 [539 kB] Get: 34 http://deb.debian.org/debian unstable/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 35 http://deb.debian.org/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 36 http://deb.debian.org/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.14.1-1 [19.6 kB] Get: 37 http://deb.debian.org/debian unstable/main amd64 dh-strip-nondeterminism all 1.14.1-1 [8584 B] Get: 38 http://deb.debian.org/debian unstable/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 39 http://deb.debian.org/debian unstable/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 40 http://deb.debian.org/debian unstable/main amd64 libunistring5 amd64 1.3-1 [476 kB] Get: 41 http://deb.debian.org/debian unstable/main amd64 libicu72 amd64 72.1-6 [9421 kB] Get: 42 http://deb.debian.org/debian unstable/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-0.2+b1 [699 kB] Get: 43 http://deb.debian.org/debian unstable/main amd64 gettext amd64 0.23.1-1 [1680 kB] Get: 44 http://deb.debian.org/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 45 http://deb.debian.org/debian unstable/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 46 http://deb.debian.org/debian unstable/main amd64 debhelper all 13.24.1 [920 kB] Get: 47 http://deb.debian.org/debian unstable/main amd64 python3-autocommand all 2.2.2-3 [13.6 kB] Get: 48 http://deb.debian.org/debian unstable/main amd64 python3-more-itertools all 10.6.0-1 [65.3 kB] Get: 49 http://deb.debian.org/debian unstable/main amd64 python3-typing-extensions all 4.12.2-2 [73.0 kB] Get: 50 http://deb.debian.org/debian unstable/main amd64 python3-typeguard all 4.4.1-1 [37.0 kB] Get: 51 http://deb.debian.org/debian unstable/main amd64 python3-inflect all 7.3.1-2 [32.4 kB] Get: 52 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.context all 6.0.0-1 [7984 B] Get: 53 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.functools all 4.1.0-1 [12.0 kB] Get: 54 http://deb.debian.org/debian unstable/main amd64 python3-pkg-resources all 75.6.0-1 [222 kB] Get: 55 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.text all 4.0.0-1 [11.4 kB] Get: 56 http://deb.debian.org/debian unstable/main amd64 python3-zipp all 3.21.0-1 [10.6 kB] Get: 57 http://deb.debian.org/debian unstable/main amd64 python3-setuptools all 75.6.0-1 [720 kB] Get: 58 http://deb.debian.org/debian unstable/main amd64 dh-python all 6.20250108 [113 kB] Get: 59 http://deb.debian.org/debian unstable/main amd64 libcom-err2 amd64 1.47.2-1 [24.0 kB] Get: 60 http://deb.debian.org/debian unstable/main amd64 libkrb5support0 amd64 1.21.3-4 [32.8 kB] Get: 61 http://deb.debian.org/debian unstable/main amd64 libk5crypto3 amd64 1.21.3-4 [80.9 kB] Get: 62 http://deb.debian.org/debian unstable/main amd64 libkeyutils1 amd64 1.6.3-4 [9092 B] Get: 63 http://deb.debian.org/debian unstable/main amd64 libkrb5-3 amd64 1.21.3-4 [326 kB] Get: 64 http://deb.debian.org/debian unstable/main amd64 libgssapi-krb5-2 amd64 1.21.3-4 [138 kB] Get: 65 http://deb.debian.org/debian unstable/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB] Get: 66 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-hotkeys all 0.2.0-1 [12.6 kB] Get: 67 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3196 B] Get: 68 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-metadata all 12-4 [6532 B] Get: 69 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [184 kB] Get: 70 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.2 kB] Get: 71 http://deb.debian.org/debian unstable/main amd64 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB] Get: 72 http://deb.debian.org/debian unstable/main amd64 libtirpc3t64 amd64 1.3.4+ds-1.3+b1 [83.1 kB] Get: 73 http://deb.debian.org/debian unstable/main amd64 libnsl2 amd64 1.3.0-3+b3 [40.6 kB] Get: 74 http://deb.debian.org/debian unstable/main amd64 libpython3.12-stdlib amd64 3.12.8-5 [1971 kB] Get: 75 http://deb.debian.org/debian unstable/main amd64 python3-aiohappyeyeballs all 2.4.4-2 [13.4 kB] Get: 76 http://deb.debian.org/debian unstable/main amd64 python3-idna all 3.8-2 [41.6 kB] Get: 77 http://deb.debian.org/debian unstable/main amd64 python3-multidict amd64 6.1.0-1+b1 [39.8 kB] Get: 78 http://deb.debian.org/debian unstable/main amd64 python3-yarl amd64 1.13.1-1+b1 [118 kB] Get: 79 http://deb.debian.org/debian unstable/main amd64 python3-async-timeout all 5.0.1-1 [8324 B] Get: 80 http://deb.debian.org/debian unstable/main amd64 python3-frozenlist amd64 1.5.0-1+b1 [58.6 kB] Get: 81 http://deb.debian.org/debian unstable/main amd64 python3-aiosignal all 1.3.2-1 [6100 B] Get: 82 http://deb.debian.org/debian unstable/main amd64 python3-attr all 24.3.0-1 [68.8 kB] Get: 83 http://deb.debian.org/debian unstable/main amd64 python3-aiohttp amd64 3.10.11-1 [368 kB] Get: 84 http://deb.debian.org/debian unstable/main amd64 python3.12 amd64 3.12.8-5 [677 kB] Get: 85 http://deb.debian.org/debian unstable/main amd64 python3-all amd64 3.13.1-2 [1056 B] Get: 86 http://deb.debian.org/debian unstable/main amd64 python3-async-generator all 1.10-4 [17.4 kB] Get: 87 http://deb.debian.org/debian unstable/main amd64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 88 http://deb.debian.org/debian unstable/main amd64 python3-packaging all 24.2-1 [55.3 kB] Get: 89 http://deb.debian.org/debian unstable/main amd64 python3-pluggy all 1.5.0-1 [26.9 kB] Get: 90 http://deb.debian.org/debian unstable/main amd64 python3-pytest all 8.3.4-1 [250 kB] Get: 91 http://deb.debian.org/debian unstable/main amd64 python3-pytest-asyncio all 0.25.1-1 [16.7 kB] Get: 92 http://deb.debian.org/debian unstable/main amd64 python3-aresponses all 3.0.0-2 [13.5 kB] Get: 93 http://deb.debian.org/debian unstable/main amd64 python3-coverage amd64 7.6.0+dfsg1-2+b1 [177 kB] Get: 94 http://deb.debian.org/debian unstable/main amd64 python3-pytest-cov all 5.0.0-1 [26.8 kB] Fetched 36.6 MB in 2s (15.3 MB/s) Preconfiguring packages ... Selecting previously unselected package libpython3.13-minimal:amd64. (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 ... 19843 files and directories currently installed.) Preparing to unpack .../libpython3.13-minimal_3.13.1-3_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.1-3) ... Selecting previously unselected package libexpat1:amd64. Preparing to unpack .../libexpat1_2.6.4-1_amd64.deb ... Unpacking libexpat1:amd64 (2.6.4-1) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../python3.13-minimal_3.13.1-3_amd64.deb ... Unpacking python3.13-minimal (3.13.1-3) ... Setting up libpython3.13-minimal:amd64 (3.13.1-3) ... Setting up libexpat1:amd64 (2.6.4-1) ... Setting up python3.13-minimal (3.13.1-3) ... Selecting previously unselected package python3-minimal. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 20177 files and directories currently installed.) Preparing to unpack .../0-python3-minimal_3.13.1-2_amd64.deb ... Unpacking python3-minimal (3.13.1-2) ... 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_2025a-1_all.deb ... Unpacking tzdata (2025a-1) ... Selecting previously unselected package libffi8:amd64. Preparing to unpack .../4-libffi8_3.4.6-1_amd64.deb ... Unpacking libffi8:amd64 (3.4.6-1) ... Selecting previously unselected package readline-common. Preparing to unpack .../5-readline-common_8.2-6_all.deb ... Unpacking readline-common (8.2-6) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../6-libreadline8t64_8.2-6_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8 to /lib/x86_64-linux-gnu/libhistory.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libhistory.so.8.2 to /lib/x86_64-linux-gnu/libhistory.so.8.2.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8 to /lib/x86_64-linux-gnu/libreadline.so.8.usr-is-merged by libreadline8t64' Adding 'diversion of /lib/x86_64-linux-gnu/libreadline.so.8.2 to /lib/x86_64-linux-gnu/libreadline.so.8.2.usr-is-merged by libreadline8t64' Unpacking libreadline8t64:amd64 (8.2-6) ... Selecting previously unselected package libpython3.13-stdlib:amd64. Preparing to unpack .../7-libpython3.13-stdlib_3.13.1-3_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.1-3) ... Selecting previously unselected package python3.13. Preparing to unpack .../8-python3.13_3.13.1-3_amd64.deb ... Unpacking python3.13 (3.13.1-3) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../9-libpython3-stdlib_3.13.1-2_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.13.1-2) ... Setting up python3-minimal (3.13.1-2) ... 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 ... 21187 files and directories currently installed.) Preparing to unpack .../00-python3_3.13.1-2_amd64.deb ... Unpacking python3 (3.13.1-2) ... Selecting previously unselected package libpython3.12-minimal:amd64. Preparing to unpack .../01-libpython3.12-minimal_3.12.8-5_amd64.deb ... Unpacking libpython3.12-minimal:amd64 (3.12.8-5) ... Selecting previously unselected package python3.12-minimal. Preparing to unpack .../02-python3.12-minimal_3.12.8-5_amd64.deb ... Unpacking python3.12-minimal (3.12.8-5) ... Selecting previously unselected package sensible-utils. Preparing to unpack .../03-sensible-utils_0.0.24_all.deb ... Unpacking sensible-utils (0.0.24) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../04-libmagic-mgc_1%3a5.45-3+b1_amd64.deb ... Unpacking libmagic-mgc (1:5.45-3+b1) ... Selecting previously unselected package libmagic1t64:amd64. Preparing to unpack .../05-libmagic1t64_1%3a5.45-3+b1_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.45-3+b1) ... Selecting previously unselected package file. Preparing to unpack .../06-file_1%3a5.45-3+b1_amd64.deb ... Unpacking file (1:5.45-3+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../07-gettext-base_0.23.1-1_amd64.deb ... Unpacking gettext-base (0.23.1-1) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../08-libuchardet0_0.0.8-1+b2_amd64.deb ... Unpacking libuchardet0:amd64 (0.0.8-1+b2) ... Selecting previously unselected package groff-base. Preparing to unpack .../09-groff-base_1.23.0-7_amd64.deb ... Unpacking groff-base (1.23.0-7) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../10-bsdextrautils_2.40.4-2_amd64.deb ... Unpacking bsdextrautils (2.40.4-2) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../11-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../12-man-db_2.13.0-1_amd64.deb ... Unpacking man-db (2.13.0-1) ... Selecting previously unselected package m4. Preparing to unpack .../13-m4_1.4.19-5_amd64.deb ... Unpacking m4 (1.4.19-5) ... Selecting previously unselected package autoconf. Preparing to unpack .../14-autoconf_2.72-3_all.deb ... Unpacking autoconf (2.72-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../15-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../16-automake_1%3a1.17-2_all.deb ... Unpacking automake (1:1.17-2) ... Selecting previously unselected package autopoint. Preparing to unpack .../17-autopoint_0.23.1-1_all.deb ... Unpacking autopoint (0.23.1-1) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../18-libdebhelper-perl_13.24.1_all.deb ... Unpacking libdebhelper-perl (13.24.1) ... Selecting previously unselected package libtool. Preparing to unpack .../19-libtool_2.5.4-2_all.deb ... Unpacking libtool (2.5.4-2) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../20-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../21-libarchive-zip-perl_1.68-1_all.deb ... Unpacking libarchive-zip-perl (1.68-1) ... Selecting previously unselected package libfile-stripnondeterminism-perl. Preparing to unpack .../22-libfile-stripnondeterminism-perl_1.14.1-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.1-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../23-dh-strip-nondeterminism_1.14.1-1_all.deb ... Unpacking dh-strip-nondeterminism (1.14.1-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../24-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../25-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libunistring5:amd64. Preparing to unpack .../26-libunistring5_1.3-1_amd64.deb ... Unpacking libunistring5:amd64 (1.3-1) ... Selecting previously unselected package libicu72:amd64. Preparing to unpack .../27-libicu72_72.1-6_amd64.deb ... Unpacking libicu72:amd64 (72.1-6) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../28-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_amd64.deb ... Unpacking libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2+b1) ... Selecting previously unselected package gettext. Preparing to unpack .../29-gettext_0.23.1-1_amd64.deb ... Unpacking gettext (0.23.1-1) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../30-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 .../31-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../32-debhelper_13.24.1_all.deb ... Unpacking debhelper (13.24.1) ... Selecting previously unselected package python3-autocommand. Preparing to unpack .../33-python3-autocommand_2.2.2-3_all.deb ... Unpacking python3-autocommand (2.2.2-3) ... Selecting previously unselected package python3-more-itertools. Preparing to unpack .../34-python3-more-itertools_10.6.0-1_all.deb ... Unpacking python3-more-itertools (10.6.0-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../35-python3-typing-extensions_4.12.2-2_all.deb ... Unpacking python3-typing-extensions (4.12.2-2) ... Selecting previously unselected package python3-typeguard. Preparing to unpack .../36-python3-typeguard_4.4.1-1_all.deb ... Unpacking python3-typeguard (4.4.1-1) ... Selecting previously unselected package python3-inflect. Preparing to unpack .../37-python3-inflect_7.3.1-2_all.deb ... Unpacking python3-inflect (7.3.1-2) ... Selecting previously unselected package python3-jaraco.context. Preparing to unpack .../38-python3-jaraco.context_6.0.0-1_all.deb ... Unpacking python3-jaraco.context (6.0.0-1) ... Selecting previously unselected package python3-jaraco.functools. Preparing to unpack .../39-python3-jaraco.functools_4.1.0-1_all.deb ... Unpacking python3-jaraco.functools (4.1.0-1) ... Selecting previously unselected package python3-pkg-resources. Preparing to unpack .../40-python3-pkg-resources_75.6.0-1_all.deb ... Unpacking python3-pkg-resources (75.6.0-1) ... Selecting previously unselected package python3-jaraco.text. Preparing to unpack .../41-python3-jaraco.text_4.0.0-1_all.deb ... Unpacking python3-jaraco.text (4.0.0-1) ... Selecting previously unselected package python3-zipp. Preparing to unpack .../42-python3-zipp_3.21.0-1_all.deb ... Unpacking python3-zipp (3.21.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../43-python3-setuptools_75.6.0-1_all.deb ... Unpacking python3-setuptools (75.6.0-1) ... Selecting previously unselected package dh-python. Preparing to unpack .../44-dh-python_6.20250108_all.deb ... Unpacking dh-python (6.20250108) ... Selecting previously unselected package libcom-err2:amd64. Preparing to unpack .../45-libcom-err2_1.47.2-1_amd64.deb ... Unpacking libcom-err2:amd64 (1.47.2-1) ... Selecting previously unselected package libkrb5support0:amd64. Preparing to unpack .../46-libkrb5support0_1.21.3-4_amd64.deb ... Unpacking libkrb5support0:amd64 (1.21.3-4) ... Selecting previously unselected package libk5crypto3:amd64. Preparing to unpack .../47-libk5crypto3_1.21.3-4_amd64.deb ... Unpacking libk5crypto3:amd64 (1.21.3-4) ... Selecting previously unselected package libkeyutils1:amd64. Preparing to unpack .../48-libkeyutils1_1.6.3-4_amd64.deb ... Unpacking libkeyutils1:amd64 (1.6.3-4) ... Selecting previously unselected package libkrb5-3:amd64. Preparing to unpack .../49-libkrb5-3_1.21.3-4_amd64.deb ... Unpacking libkrb5-3:amd64 (1.21.3-4) ... Selecting previously unselected package libgssapi-krb5-2:amd64. Preparing to unpack .../50-libgssapi-krb5-2_1.21.3-4_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.21.3-4) ... Selecting previously unselected package libjs-jquery. Preparing to unpack .../51-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-jquery-hotkeys. Preparing to unpack .../52-libjs-jquery-hotkeys_0.2.0-1_all.deb ... Unpacking libjs-jquery-hotkeys (0.2.0-1) ... Selecting previously unselected package libjs-jquery-isonscreen. Preparing to unpack .../53-libjs-jquery-isonscreen_1.2.0-1.1_all.deb ... Unpacking libjs-jquery-isonscreen (1.2.0-1.1) ... Selecting previously unselected package libjs-jquery-metadata. Preparing to unpack .../54-libjs-jquery-metadata_12-4_all.deb ... Unpacking libjs-jquery-metadata (12-4) ... Selecting previously unselected package libjs-jquery-tablesorter. Preparing to unpack .../55-libjs-jquery-tablesorter_1%3a2.31.3+dfsg1-4_all.deb ... Unpacking libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... Selecting previously unselected package libjs-jquery-throttle-debounce. Preparing to unpack .../56-libjs-jquery-throttle-debounce_1.1+dfsg.1-2_all.deb ... Unpacking libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... Selecting previously unselected package libtirpc-common. Preparing to unpack .../57-libtirpc-common_1.3.4+ds-1.3_all.deb ... Unpacking libtirpc-common (1.3.4+ds-1.3) ... Selecting previously unselected package libtirpc3t64:amd64. Preparing to unpack .../58-libtirpc3t64_1.3.4+ds-1.3+b1_amd64.deb ... Adding 'diversion of /lib/x86_64-linux-gnu/libtirpc.so.3 to /lib/x86_64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64' Adding 'diversion of /lib/x86_64-linux-gnu/libtirpc.so.3.0.0 to /lib/x86_64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64' Unpacking libtirpc3t64:amd64 (1.3.4+ds-1.3+b1) ... Selecting previously unselected package libnsl2:amd64. Preparing to unpack .../59-libnsl2_1.3.0-3+b3_amd64.deb ... Unpacking libnsl2:amd64 (1.3.0-3+b3) ... Selecting previously unselected package libpython3.12-stdlib:amd64. Preparing to unpack .../60-libpython3.12-stdlib_3.12.8-5_amd64.deb ... Unpacking libpython3.12-stdlib:amd64 (3.12.8-5) ... Selecting previously unselected package python3-aiohappyeyeballs. Preparing to unpack .../61-python3-aiohappyeyeballs_2.4.4-2_all.deb ... Unpacking python3-aiohappyeyeballs (2.4.4-2) ... Selecting previously unselected package python3-idna. Preparing to unpack .../62-python3-idna_3.8-2_all.deb ... Unpacking python3-idna (3.8-2) ... Selecting previously unselected package python3-multidict. Preparing to unpack .../63-python3-multidict_6.1.0-1+b1_amd64.deb ... Unpacking python3-multidict (6.1.0-1+b1) ... Selecting previously unselected package python3-yarl. Preparing to unpack .../64-python3-yarl_1.13.1-1+b1_amd64.deb ... Unpacking python3-yarl (1.13.1-1+b1) ... Selecting previously unselected package python3-async-timeout. Preparing to unpack .../65-python3-async-timeout_5.0.1-1_all.deb ... Unpacking python3-async-timeout (5.0.1-1) ... Selecting previously unselected package python3-frozenlist. Preparing to unpack .../66-python3-frozenlist_1.5.0-1+b1_amd64.deb ... Unpacking python3-frozenlist (1.5.0-1+b1) ... Selecting previously unselected package python3-aiosignal. Preparing to unpack .../67-python3-aiosignal_1.3.2-1_all.deb ... Unpacking python3-aiosignal (1.3.2-1) ... Selecting previously unselected package python3-attr. Preparing to unpack .../68-python3-attr_24.3.0-1_all.deb ... Unpacking python3-attr (24.3.0-1) ... Selecting previously unselected package python3-aiohttp. Preparing to unpack .../69-python3-aiohttp_3.10.11-1_amd64.deb ... Unpacking python3-aiohttp (3.10.11-1) ... Selecting previously unselected package python3.12. Preparing to unpack .../70-python3.12_3.12.8-5_amd64.deb ... Unpacking python3.12 (3.12.8-5) ... Selecting previously unselected package python3-all. Preparing to unpack .../71-python3-all_3.13.1-2_amd64.deb ... Unpacking python3-all (3.13.1-2) ... Selecting previously unselected package python3-async-generator. Preparing to unpack .../72-python3-async-generator_1.10-4_all.deb ... Unpacking python3-async-generator (1.10-4) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../73-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../74-python3-packaging_24.2-1_all.deb ... Unpacking python3-packaging (24.2-1) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../75-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../76-python3-pytest_8.3.4-1_all.deb ... Unpacking python3-pytest (8.3.4-1) ... Selecting previously unselected package python3-pytest-asyncio. Preparing to unpack .../77-python3-pytest-asyncio_0.25.1-1_all.deb ... Unpacking python3-pytest-asyncio (0.25.1-1) ... Selecting previously unselected package python3-aresponses. Preparing to unpack .../78-python3-aresponses_3.0.0-2_all.deb ... Unpacking python3-aresponses (3.0.0-2) ... Selecting previously unselected package python3-coverage. Preparing to unpack .../79-python3-coverage_7.6.0+dfsg1-2+b1_amd64.deb ... Unpacking python3-coverage (7.6.0+dfsg1-2+b1) ... Selecting previously unselected package python3-pytest-cov. Preparing to unpack .../80-python3-pytest-cov_5.0.0-1_all.deb ... Unpacking python3-pytest-cov (5.0.0-1) ... Setting up media-types (10.1.0) ... Setting up libpipeline1:amd64 (1.5.8-1) ... Setting up libkeyutils1:amd64 (1.6.3-4) ... Setting up libicu72:amd64 (72.1-6) ... Setting up bsdextrautils (2.40.4-2) ... Setting up libmagic-mgc (1:5.45-3+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libtirpc-common (1.3.4+ds-1.3) ... Setting up libdebhelper-perl (13.24.1) ... Setting up libmagic1t64:amd64 (1:5.45-3+b1) ... Setting up libpython3.12-minimal:amd64 (3.12.8-5) ... Setting up gettext-base (0.23.1-1) ... Setting up m4 (1.4.19-5) ... Setting up libcom-err2:amd64 (1.47.2-1) ... Setting up file (1:5.45-3+b1) ... Setting up libjs-jquery-throttle-debounce (1.1+dfsg.1-2) ... Setting up libelf1t64:amd64 (0.192-4) ... Setting up libkrb5support0:amd64 (1.21.3-4) ... Setting up tzdata (2025a-1) ... Current default time zone: 'Etc/UTC' Local time is now: Tue Mar 3 03:51:07 UTC 2026. Universal Time is now: Tue Mar 3 03:51:07 UTC 2026. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up autotools-dev (20220109.1) ... Setting up libunistring5:amd64 (1.3-1) ... Setting up autopoint (0.23.1-1) ... Setting up libk5crypto3:amd64 (1.21.3-4) ... Setting up autoconf (2.72-3) ... Setting up libffi8:amd64 (3.4.6-1) ... Setting up dwz (0.15-1+b1) ... Setting up sensible-utils (0.0.24) ... Setting up libuchardet0:amd64 (0.0.8-1+b2) ... Setting up netbase (6.4) ... Setting up libkrb5-3:amd64 (1.21.3-4) ... Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Setting up libjs-jquery-hotkeys (0.2.0-1) ... Setting up readline-common (8.2-6) ... Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2+b1) ... Setting up automake (1:1.17-2) ... update-alternatives: using /usr/bin/automake-1.17 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.14.1-1) ... Setting up python3.12-minimal (3.12.8-5) ... Setting up gettext (0.23.1-1) ... Setting up libtool (2.5.4-2) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up libjs-jquery-metadata (12-4) ... Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... Setting up libgssapi-krb5-2:amd64 (1.21.3-4) ... Setting up libreadline8t64:amd64 (8.2-6) ... Setting up dh-strip-nondeterminism (1.14.1-1) ... Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... Setting up groff-base (1.23.0-7) ... Setting up libpython3.13-stdlib:amd64 (3.13.1-3) ... Setting up libpython3-stdlib:amd64 (3.13.1-2) ... Setting up libtirpc3t64:amd64 (1.3.4+ds-1.3+b1) ... Setting up python3.13 (3.13.1-3) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up python3 (3.13.1-2) ... Setting up python3-zipp (3.21.0-1) ... Setting up python3-autocommand (2.2.2-3) ... Setting up man-db (2.13.0-1) ... Not building database; man-db/auto-update is not 'true'. Setting up python3-multidict (6.1.0-1+b1) ... Setting up python3-frozenlist (1.5.0-1+b1) ... Setting up python3-aiosignal (1.3.2-1) ... Setting up python3-async-timeout (5.0.1-1) ... Setting up python3-packaging (24.2-1) ... Setting up python3-idna (3.8-2) ... Setting up python3-typing-extensions (4.12.2-2) ... Setting up python3-aiohappyeyeballs (2.4.4-2) ... Setting up python3-pluggy (1.5.0-1) ... Setting up libnsl2:amd64 (1.3.0-3+b3) ... Setting up python3-yarl (1.13.1-1+b1) ... Setting up python3-more-itertools (10.6.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-attr (24.3.0-1) ... Setting up python3-jaraco.functools (4.1.0-1) ... Setting up libpython3.12-stdlib:amd64 (3.12.8-5) ... Setting up python3-async-generator (1.10-4) ... Setting up python3-jaraco.context (6.0.0-1) ... Setting up python3-pytest (8.3.4-1) ... Setting up python3.12 (3.12.8-5) ... Setting up python3-typeguard (4.4.1-1) ... Setting up python3-aiohttp (3.10.11-1) ... Setting up python3-all (3.13.1-2) ... Setting up python3-coverage (7.6.0+dfsg1-2+b1) ... Setting up debhelper (13.24.1) ... Setting up python3-pytest-cov (5.0.0-1) ... Setting up python3-inflect (7.3.1-2) ... Setting up python3-jaraco.text (4.0.0-1) ... Setting up python3-pytest-asyncio (0.25.1-1) ... Setting up python3-pkg-resources (75.6.0-1) ... Setting up python3-setuptools (75.6.0-1) ... Setting up python3-aresponses (3.0.0-2) ... Setting up dh-python (6.20250108) ... Processing triggers for libc-bin (2.40-6) ... 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/python-directv-0.4.0/ && 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 > ../python-directv_0.4.0-2_source.changes dpkg-buildpackage: info: source package python-directv dpkg-buildpackage: info: source version 0.4.0-2 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Edward Betts dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 debian/rules clean dh clean --buildsystem=pybuild debian/rules override_dh_auto_clean make[1]: Entering directory '/build/reproducible-path/python-directv-0.4.0' dh_auto_clean I: pybuild base:311: python3.12 setup.py clean /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /build/reproducible-path/python-directv-0.4.0/directv/__version__.pyrunning clean removing '/build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build' (and everything under it) 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.12' does not exist -- can't clean it I: pybuild base:311: python3.13 setup.py clean /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /build/reproducible-path/python-directv-0.4.0/directv/__version__.pyrunning clean removing '/build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build' (and everything under it) 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.13' does not exist -- can't clean it rm -rf directv.egg-info/ make[1]: Leaving directory '/build/reproducible-path/python-directv-0.4.0' dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild I: pybuild base:311: python3.12 setup.py config /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /build/reproducible-path/python-directv-0.4.0/directv/__version__.pyrunning config I: pybuild base:311: python3.13 setup.py config /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /build/reproducible-path/python-directv-0.4.0/directv/__version__.pyrunning config dh_auto_build -O--buildsystem=pybuild I: pybuild base:311: /usr/bin/python3.12 setup.py build /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /build/reproducible-path/python-directv-0.4.0/directv/__version__.pyrunning build running build_py creating /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv copying directv/utils.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv copying directv/directv.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv copying directv/models.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv copying directv/__init__.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv copying directv/const.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv copying directv/exceptions.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv copying directv/__version__.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv running egg_info creating directv.egg-info writing directv.egg-info/PKG-INFO writing dependency_links to directv.egg-info/dependency_links.txt writing requirements to directv.egg-info/requires.txt writing top-level names to directv.egg-info/top_level.txt writing manifest file 'directv.egg-info/SOURCES.txt' reading manifest file 'directv.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'LICENSE.md' warning: no previously-included files matching '*.py[co]' found under directory '*' adding license file 'LICENSE' writing manifest file 'directv.egg-info/SOURCES.txt' I: pybuild base:311: /usr/bin/python3 setup.py build /usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:261: UserWarning: Unknown distribution option: 'test_suite' warnings.warn(msg) /build/reproducible-path/python-directv-0.4.0/directv/__version__.pyrunning build running build_py creating /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv copying directv/utils.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv copying directv/directv.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv copying directv/models.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv copying directv/__init__.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv copying directv/const.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv copying directv/exceptions.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv copying directv/__version__.py -> /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv running egg_info writing directv.egg-info/PKG-INFO writing dependency_links to directv.egg-info/dependency_links.txt writing requirements to directv.egg-info/requires.txt writing top-level names to directv.egg-info/top_level.txt reading manifest file 'directv.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'LICENSE.md' warning: no previously-included files matching '*.py[co]' found under directory '*' adding license file 'LICENSE' writing manifest file 'directv.egg-info/SOURCES.txt' dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build; python3.12 -m pytest --no-cov /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) ============================= test session starts ============================== platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 rootdir: /build/reproducible-path/python-directv-0.4.0 plugins: cov-5.0.0, aresponses-3.0.0, typeguard-4.4.1, asyncio-0.25.1 asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None collected 36 items tests/test_directv.py FFFFFFFFFFF [ 30%] tests/test_interface.py FF.FFFFFFFFFFFF [ 72%] tests/test_models.py ........ [ 94%] tests/test_utils.py .. [100%] =================================== FAILURES =================================== ______________________________ test_json_request _______________________________ aresponses = @pytest.mark.asyncio async def test_json_request(aresponses): """Test DIRECTV response is handled correctly.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text='{"status": {"code": 200, "commandResult": 0}}', ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv._request("/info/getVersion") tests/test_directv.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________ test_authenticated_request __________________________ aresponses = @pytest.mark.asyncio async def test_authenticated_request(aresponses): """Test authenticated JSON response is handled correctly.""" aresponses.add( MATCH_HOST, "/", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text='{"status": "ok"}', ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, username="you", password="socool", session=session,) > response = await dtv._request("/") tests/test_directv.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = '/' method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_text_request _______________________________ aresponses = @pytest.mark.asyncio async def test_text_request(aresponses): """Test non JSON response is handled correctly.""" aresponses.add( MATCH_HOST, "/", "GET", aresponses.Response(status=200, text="OK"), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv._request("/") tests/test_directv.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = '/' method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ____________________________ test_internal_session _____________________________ aresponses = @pytest.mark.asyncio async def test_internal_session(aresponses): """Test DIRECTV response is handled correctly.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text='{"status": {"code": 200, "commandResult": 0}}', ), ) async with DIRECTV(HOST) as dtv: > response = await dtv._request("/info/getVersion") tests/test_directv.py:89: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_request_port _______________________________ aresponses = @pytest.mark.asyncio async def test_request_port(aresponses): """Test the DIRECTV server running on non-standard port.""" aresponses.add( f"{HOST}:{NON_STANDARD_PORT}", "/info/getVersion", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text='{"status": {"code": 200, "commandResult": 0}}', ), ) async with ClientSession() as session: dtv = DIRECTV(host=HOST, port=NON_STANDARD_PORT, session=session,) > response = await dtv._request("/info/getVersion") tests/test_directv.py:110: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________________ test_timeout _________________________________ aresponses = @pytest.mark.asyncio async def test_timeout(aresponses): """Test request timeout from the DIRECTV server.""" # Faking a timeout by sleeping async def response_handler(_): await asyncio.sleep(2) return aresponses.Response(body="Timeout!") aresponses.add( MATCH_HOST, "/info/getVersion", "GET", response_handler, ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session, request_timeout=1) with pytest.raises(DIRECTVConnectionError): > assert await dtv._request("/info/getVersion") tests/test_directv.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_client_error _______________________________ @pytest.mark.asyncio async def test_client_error(): """Test http client error.""" async with ClientSession() as session: dtv = DIRECTV("#", session=session) with pytest.raises(DIRECTVConnectionError): > assert await dtv._request("/info/getVersion") tests/test_directv.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:59: in _request url = URL.build( /usr/lib/python3/dist-packages/yarl/_url.py:385: in build netloc = cls._make_netloc( /usr/lib/python3/dist-packages/yarl/_url.py:1057: in _make_netloc ret = cls._encode_host(host) /usr/lib/python3/dist-packages/yarl/_url.py:1038: in _encode_host _host_validate(host) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = '#' @lru_cache(_MAXCACHE) def _host_validate(host: str) -> None: """Validate an ascii host name.""" invalid = _not_reg_name.search(host) if invalid is None: return value, pos, extra = invalid.group(), invalid.start(), "" if value == "@" or (value == ":" and "@" in host[pos:]): # this looks like an authority string extra = ( ", if the value includes a username or password, " "use 'authority' instead of 'host'" ) > raise ValueError( f"Host {host!r} cannot contain {value!r} (at position " f"{pos}){extra}" ) from None E ValueError: Host '#' cannot contain '#' (at position 0) /usr/lib/python3/dist-packages/yarl/_url.py:1607: ValueError ______________________________ test_http_error403 ______________________________ aresponses = @pytest.mark.asyncio async def test_http_error403(aresponses): """Test HTTP 403 response handling.""" aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response(text="Forbidden", status=403), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) with pytest.raises(DIRECTVAccessRestricted): > assert await dtv._request("/tv/getTuned") tests/test_directv.py:155: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = '/tv/getTuned' method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_http_error404 ______________________________ aresponses = @pytest.mark.asyncio async def test_http_error404(aresponses): """Test HTTP 404 response handling.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response(text="Not Found!", status=404), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) with pytest.raises(DIRECTVError): > assert await dtv._request("/info/getVersion") tests/test_directv.py:171: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_http_error500 ______________________________ aresponses = @pytest.mark.asyncio async def test_http_error500(aresponses): """Test HTTP 500 response handling.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response(text="Internal Server Error", status=500), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) with pytest.raises(DIRECTVError): > assert await dtv._request("/info/getVersion") tests/test_directv.py:187: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ___________________________ test_http_error500_json ____________________________ aresponses = @pytest.mark.asyncio async def test_http_error500_json(aresponses): """Test HTTP 500 json response handling.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response( status=500, headers={"Content-Type": "application/json"}, body=load_fixture("info-get-version-error.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) with pytest.raises(DIRECTVError): > response = await dtv._request("/info/getVersion") tests/test_directv.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________________ test_update __________________________________ aresponses = @pytest.mark.asyncio async def test_update(aresponses): """Test update is handled correctly.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-get-version.json"), ), ) aresponses.add( MATCH_HOST, "/info/getLocations", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-get-locations.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.update() tests/test_interface.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:130: in update info = await self._request("info/getVersion") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = 'info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________________ test_remote __________________________________ aresponses = @pytest.mark.asyncio async def test_remote(aresponses): """Test remote is handled correctly.""" aresponses.add( MATCH_HOST, "/remote/processKey", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("remote-process-key.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > await dtv.remote("info") tests/test_interface.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:163: in remote await self._request("remote/processKey", params=keypress) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = 'remote/processKey', method = 'GET', data = None params = {'clientAddr': '0', 'hold': 'keyPress', 'key': 'info'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________________ test_state __________________________________ aresponses = @pytest.mark.asyncio async def test_state(aresponses): """Test active state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode.json"), ), ) aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("tv-get-tuned.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ____________________________ test_state_error_mode _____________________________ aresponses = @pytest.mark.asyncio async def test_state_error_mode(aresponses): """Test state with generic mode error is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=500, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-error.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:137: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ____________________________ test_state_error_tuned ____________________________ aresponses = @pytest.mark.asyncio async def test_state_error_tuned(aresponses): """Test state with generic tuned error is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode.json"), ), ) aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response( status=500, headers={"Content-Type": "application/json"}, text=load_fixture("tv-get-tuned-error.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:175: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________ test_state_restricted_mode __________________________ aresponses = @pytest.mark.asyncio async def test_state_restricted_mode(aresponses): """Test standby state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=403, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-restricted.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:202: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________ test_state_restricted_tuned __________________________ aresponses = @pytest.mark.asyncio async def test_state_restricted_tuned(aresponses): """Test standby state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode.json"), ), ) aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response( status=403, headers={"Content-Type": "application/json"}, text=load_fixture("tv-get-tuned-restricted.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:240: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_state_standby ______________________________ aresponses = @pytest.mark.asyncio async def test_state_standby(aresponses): """Test restricted state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-standby.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________________ test_status __________________________________ aresponses = @pytest.mark.asyncio async def test_status(aresponses): """Test active state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.status() tests/test_interface.py:293: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:202: in status mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ________________________ test_status_access_restricted _________________________ aresponses = @pytest.mark.asyncio async def test_status_access_restricted(aresponses): """Test unauthorized state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=403, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-restricted.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.status() tests/test_interface.py:314: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:202: in status mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _____________________________ test_status_standby ______________________________ aresponses = @pytest.mark.asyncio async def test_status_standby(aresponses): """Test standby status is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-standby.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.status() tests/test_interface.py:335: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:202: in status mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ___________________________ test_status_unavailable ____________________________ aresponses = @pytest.mark.asyncio async def test_status_unavailable(aresponses): """Test unavailable status is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=500, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-error.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.status() tests/test_interface.py:356: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:202: in status mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________________ test_tune ___________________________________ aresponses = @pytest.mark.asyncio async def test_tune(aresponses): """Test tune is handled correctly.""" aresponses.add( MATCH_HOST, "/tv/tune", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("tv-tune.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > await dtv.tune("231") tests/test_interface.py:377: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:219: in tune await self._request("tv/tune", params=tune) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'tv/tune' method = 'GET', data = None params = {'clientAddr': '0', 'major': '231', 'minor': '65535'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________________ test_tuned __________________________________ aresponses = @pytest.mark.asyncio async def test_tuned(aresponses): """Test tuned is handled correctly.""" aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("tv-get-tuned.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.tuned() tests/test_interface.py:396: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:223: in tuned tuned = await self._request("tv/getTuned", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'tv/getTuned' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError =============================== warnings summary =============================== directv/models.py:128 /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build/directv/models.py:128: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). at: datetime = datetime.utcnow() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_directv.py::test_json_request - TypeError: 'Timeout' object... FAILED tests/test_directv.py::test_authenticated_request - TypeError: 'Timeou... FAILED tests/test_directv.py::test_text_request - TypeError: 'Timeout' object... FAILED tests/test_directv.py::test_internal_session - TypeError: 'Timeout' ob... FAILED tests/test_directv.py::test_request_port - TypeError: 'Timeout' object... FAILED tests/test_directv.py::test_timeout - TypeError: 'Timeout' object does... FAILED tests/test_directv.py::test_client_error - ValueError: Host '#' cannot... FAILED tests/test_directv.py::test_http_error403 - TypeError: 'Timeout' objec... FAILED tests/test_directv.py::test_http_error404 - TypeError: 'Timeout' objec... FAILED tests/test_directv.py::test_http_error500 - TypeError: 'Timeout' objec... FAILED tests/test_directv.py::test_http_error500_json - TypeError: 'Timeout' ... FAILED tests/test_interface.py::test_update - TypeError: 'Timeout' object doe... FAILED tests/test_interface.py::test_remote - TypeError: 'Timeout' object doe... FAILED tests/test_interface.py::test_state - TypeError: 'Timeout' object does... FAILED tests/test_interface.py::test_state_error_mode - TypeError: 'Timeout' ... FAILED tests/test_interface.py::test_state_error_tuned - TypeError: 'Timeout'... FAILED tests/test_interface.py::test_state_restricted_mode - TypeError: 'Time... FAILED tests/test_interface.py::test_state_restricted_tuned - TypeError: 'Tim... FAILED tests/test_interface.py::test_state_standby - TypeError: 'Timeout' obj... FAILED tests/test_interface.py::test_status - TypeError: 'Timeout' object doe... FAILED tests/test_interface.py::test_status_access_restricted - TypeError: 'T... FAILED tests/test_interface.py::test_status_standby - TypeError: 'Timeout' ob... FAILED tests/test_interface.py::test_status_unavailable - TypeError: 'Timeout... FAILED tests/test_interface.py::test_tune - TypeError: 'Timeout' object does ... FAILED tests/test_interface.py::test_tuned - TypeError: 'Timeout' object does... =================== 25 failed, 11 passed, 1 warning in 1.29s =================== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.12_directv/build; python3.12 -m pytest --no-cov I: pybuild base:311: cd /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build; python3.13 -m pytest --no-cov /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:207: PytestDeprecationWarning: The configuration option "asyncio_default_fixture_loop_scope" is unset. The event loop scope for asynchronous fixtures will default to the fixture caching scope. Future versions of pytest-asyncio will default the loop scope for asynchronous fixtures to function scope. Set the default fixture loop scope explicitly in order to avoid unexpected behavior in the future. Valid fixture loop scopes are: "function", "class", "module", "package", "session" warnings.warn(PytestDeprecationWarning(_DEFAULT_FIXTURE_LOOP_SCOPE_UNSET)) ============================= test session starts ============================== platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 rootdir: /build/reproducible-path/python-directv-0.4.0 plugins: cov-5.0.0, aresponses-3.0.0, typeguard-4.4.1, asyncio-0.25.1 asyncio: mode=Mode.STRICT, asyncio_default_fixture_loop_scope=None collected 36 items tests/test_directv.py FFFFFFFFFFF [ 30%] tests/test_interface.py FF.FFFFFFFFFFFF [ 72%] tests/test_models.py ........ [ 94%] tests/test_utils.py .. [100%] =================================== FAILURES =================================== ______________________________ test_json_request _______________________________ aresponses = @pytest.mark.asyncio async def test_json_request(aresponses): """Test DIRECTV response is handled correctly.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text='{"status": {"code": 200, "commandResult": 0}}', ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv._request("/info/getVersion") tests/test_directv.py:38: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________ test_authenticated_request __________________________ aresponses = @pytest.mark.asyncio async def test_authenticated_request(aresponses): """Test authenticated JSON response is handled correctly.""" aresponses.add( MATCH_HOST, "/", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text='{"status": "ok"}', ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, username="you", password="socool", session=session,) > response = await dtv._request("/") tests/test_directv.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = '/' method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_text_request _______________________________ aresponses = @pytest.mark.asyncio async def test_text_request(aresponses): """Test non JSON response is handled correctly.""" aresponses.add( MATCH_HOST, "/", "GET", aresponses.Response(status=200, text="OK"), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv._request("/") tests/test_directv.py:70: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = '/' method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ____________________________ test_internal_session _____________________________ aresponses = @pytest.mark.asyncio async def test_internal_session(aresponses): """Test DIRECTV response is handled correctly.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text='{"status": {"code": 200, "commandResult": 0}}', ), ) async with DIRECTV(HOST) as dtv: > response = await dtv._request("/info/getVersion") tests/test_directv.py:89: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_request_port _______________________________ aresponses = @pytest.mark.asyncio async def test_request_port(aresponses): """Test the DIRECTV server running on non-standard port.""" aresponses.add( f"{HOST}:{NON_STANDARD_PORT}", "/info/getVersion", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text='{"status": {"code": 200, "commandResult": 0}}', ), ) async with ClientSession() as session: dtv = DIRECTV(host=HOST, port=NON_STANDARD_PORT, session=session,) > response = await dtv._request("/info/getVersion") tests/test_directv.py:110: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________________ test_timeout _________________________________ aresponses = @pytest.mark.asyncio async def test_timeout(aresponses): """Test request timeout from the DIRECTV server.""" # Faking a timeout by sleeping async def response_handler(_): await asyncio.sleep(2) return aresponses.Response(body="Timeout!") aresponses.add( MATCH_HOST, "/info/getVersion", "GET", response_handler, ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session, request_timeout=1) with pytest.raises(DIRECTVConnectionError): > assert await dtv._request("/info/getVersion") tests/test_directv.py:130: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_client_error _______________________________ @pytest.mark.asyncio async def test_client_error(): """Test http client error.""" async with ClientSession() as session: dtv = DIRECTV("#", session=session) with pytest.raises(DIRECTVConnectionError): > assert await dtv._request("/info/getVersion") tests/test_directv.py:139: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:59: in _request url = URL.build( /usr/lib/python3/dist-packages/yarl/_url.py:385: in build netloc = cls._make_netloc( /usr/lib/python3/dist-packages/yarl/_url.py:1057: in _make_netloc ret = cls._encode_host(host) /usr/lib/python3/dist-packages/yarl/_url.py:1038: in _encode_host _host_validate(host) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ host = '#' @lru_cache(_MAXCACHE) def _host_validate(host: str) -> None: """Validate an ascii host name.""" invalid = _not_reg_name.search(host) if invalid is None: return value, pos, extra = invalid.group(), invalid.start(), "" if value == "@" or (value == ":" and "@" in host[pos:]): # this looks like an authority string extra = ( ", if the value includes a username or password, " "use 'authority' instead of 'host'" ) > raise ValueError( f"Host {host!r} cannot contain {value!r} (at position " f"{pos}){extra}" ) from None E ValueError: Host '#' cannot contain '#' (at position 0) /usr/lib/python3/dist-packages/yarl/_url.py:1607: ValueError ______________________________ test_http_error403 ______________________________ aresponses = @pytest.mark.asyncio async def test_http_error403(aresponses): """Test HTTP 403 response handling.""" aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response(text="Forbidden", status=403), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) with pytest.raises(DIRECTVAccessRestricted): > assert await dtv._request("/tv/getTuned") tests/test_directv.py:155: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = '/tv/getTuned' method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_http_error404 ______________________________ aresponses = @pytest.mark.asyncio async def test_http_error404(aresponses): """Test HTTP 404 response handling.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response(text="Not Found!", status=404), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) with pytest.raises(DIRECTVError): > assert await dtv._request("/info/getVersion") tests/test_directv.py:171: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_http_error500 ______________________________ aresponses = @pytest.mark.asyncio async def test_http_error500(aresponses): """Test HTTP 500 response handling.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response(text="Internal Server Error", status=500), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) with pytest.raises(DIRECTVError): > assert await dtv._request("/info/getVersion") tests/test_directv.py:187: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ___________________________ test_http_error500_json ____________________________ aresponses = @pytest.mark.asyncio async def test_http_error500_json(aresponses): """Test HTTP 500 json response handling.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response( status=500, headers={"Content-Type": "application/json"}, body=load_fixture("info-get-version-error.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) with pytest.raises(DIRECTVError): > response = await dtv._request("/info/getVersion") tests/test_directv.py:207: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = '/info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________________ test_update __________________________________ aresponses = @pytest.mark.asyncio async def test_update(aresponses): """Test update is handled correctly.""" aresponses.add( MATCH_HOST, "/info/getVersion", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-get-version.json"), ), ) aresponses.add( MATCH_HOST, "/info/getLocations", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-get-locations.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.update() tests/test_interface.py:44: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:130: in update info = await self._request("info/getVersion") _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = 'info/getVersion', method = 'GET', data = None, params = None async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________________ test_remote __________________________________ aresponses = @pytest.mark.asyncio async def test_remote(aresponses): """Test remote is handled correctly.""" aresponses.add( MATCH_HOST, "/remote/processKey", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("remote-process-key.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > await dtv.remote("info") tests/test_interface.py:72: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:163: in remote await self._request("remote/processKey", params=keypress) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = uri = 'remote/processKey', method = 'GET', data = None params = {'clientAddr': '0', 'hold': 'keyPress', 'key': 'info'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________________ test_state __________________________________ aresponses = @pytest.mark.asyncio async def test_state(aresponses): """Test active state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode.json"), ), ) aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("tv-get-tuned.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:111: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ____________________________ test_state_error_mode _____________________________ aresponses = @pytest.mark.asyncio async def test_state_error_mode(aresponses): """Test state with generic mode error is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=500, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-error.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:137: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ____________________________ test_state_error_tuned ____________________________ aresponses = @pytest.mark.asyncio async def test_state_error_tuned(aresponses): """Test state with generic tuned error is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode.json"), ), ) aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response( status=500, headers={"Content-Type": "application/json"}, text=load_fixture("tv-get-tuned-error.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:175: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________ test_state_restricted_mode __________________________ aresponses = @pytest.mark.asyncio async def test_state_restricted_mode(aresponses): """Test standby state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=403, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-restricted.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:202: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________ test_state_restricted_tuned __________________________ aresponses = @pytest.mark.asyncio async def test_state_restricted_tuned(aresponses): """Test standby state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode.json"), ), ) aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response( status=403, headers={"Content-Type": "application/json"}, text=load_fixture("tv-get-tuned-restricted.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:240: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ______________________________ test_state_standby ______________________________ aresponses = @pytest.mark.asyncio async def test_state_standby(aresponses): """Test restricted state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-standby.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.state() tests/test_interface.py:267: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:171: in state mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _________________________________ test_status __________________________________ aresponses = @pytest.mark.asyncio async def test_status(aresponses): """Test active state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.status() tests/test_interface.py:293: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:202: in status mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ________________________ test_status_access_restricted _________________________ aresponses = @pytest.mark.asyncio async def test_status_access_restricted(aresponses): """Test unauthorized state is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=403, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-restricted.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.status() tests/test_interface.py:314: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:202: in status mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError _____________________________ test_status_standby ______________________________ aresponses = @pytest.mark.asyncio async def test_status_standby(aresponses): """Test standby status is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-standby.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.status() tests/test_interface.py:335: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:202: in status mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError ___________________________ test_status_unavailable ____________________________ aresponses = @pytest.mark.asyncio async def test_status_unavailable(aresponses): """Test unavailable status is handled correctly.""" aresponses.add( MATCH_HOST, "/info/mode", "GET", aresponses.Response( status=500, headers={"Content-Type": "application/json"}, text=load_fixture("info-mode-error.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.status() tests/test_interface.py:356: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:202: in status mode = await self._request("info/mode", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'info/mode' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________________ test_tune ___________________________________ aresponses = @pytest.mark.asyncio async def test_tune(aresponses): """Test tune is handled correctly.""" aresponses.add( MATCH_HOST, "/tv/tune", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("tv-tune.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > await dtv.tune("231") tests/test_interface.py:377: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:219: in tune await self._request("tv/tune", params=tune) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'tv/tune' method = 'GET', data = None params = {'clientAddr': '0', 'major': '231', 'minor': '65535'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError __________________________________ test_tuned __________________________________ aresponses = @pytest.mark.asyncio async def test_tuned(aresponses): """Test tuned is handled correctly.""" aresponses.add( MATCH_HOST, "/tv/getTuned", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixture("tv-get-tuned.json"), ), ) async with ClientSession() as session: dtv = DIRECTV(HOST, session=session) > response = await dtv.tuned() tests/test_interface.py:396: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ directv/directv.py:223: in tuned tuned = await self._request("tv/getTuned", params={"clientAddr": client}) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = , uri = 'tv/getTuned' method = 'GET', data = None, params = {'clientAddr': '0'} async def _request( self, uri: str = "", method: str = "GET", data: Optional[Any] = None, params: Optional[Mapping[str, str]] = None, ) -> Any: """Handle a request to a receiver.""" scheme = "http" url = URL.build( scheme=scheme, host=self.host, port=self.port, path=self.base_path ).join(URL(uri)) auth = None if self.username and self.password: auth = aiohttp.BasicAuth(self.username, self.password) headers = { "User-Agent": self.user_agent, "Accept": "application/json, text/plain, */*", } if self._session is None: self._session = aiohttp.ClientSession() self._close_session = True try: > with async_timeout.timeout(self.request_timeout): E TypeError: 'Timeout' object does not support the context manager protocol directv/directv.py:77: TypeError =============================== warnings summary =============================== directv/models.py:128 /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build/directv/models.py:128: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). at: datetime = datetime.utcnow() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_directv.py::test_json_request - TypeError: 'Timeout' object... FAILED tests/test_directv.py::test_authenticated_request - TypeError: 'Timeou... FAILED tests/test_directv.py::test_text_request - TypeError: 'Timeout' object... FAILED tests/test_directv.py::test_internal_session - TypeError: 'Timeout' ob... FAILED tests/test_directv.py::test_request_port - TypeError: 'Timeout' object... FAILED tests/test_directv.py::test_timeout - TypeError: 'Timeout' object does... FAILED tests/test_directv.py::test_client_error - ValueError: Host '#' cannot... FAILED tests/test_directv.py::test_http_error403 - TypeError: 'Timeout' objec... FAILED tests/test_directv.py::test_http_error404 - TypeError: 'Timeout' objec... FAILED tests/test_directv.py::test_http_error500 - TypeError: 'Timeout' objec... FAILED tests/test_directv.py::test_http_error500_json - TypeError: 'Timeout' ... FAILED tests/test_interface.py::test_update - TypeError: 'Timeout' object doe... FAILED tests/test_interface.py::test_remote - TypeError: 'Timeout' object doe... FAILED tests/test_interface.py::test_state - TypeError: 'Timeout' object does... FAILED tests/test_interface.py::test_state_error_mode - TypeError: 'Timeout' ... FAILED tests/test_interface.py::test_state_error_tuned - TypeError: 'Timeout'... FAILED tests/test_interface.py::test_state_restricted_mode - TypeError: 'Time... FAILED tests/test_interface.py::test_state_restricted_tuned - TypeError: 'Tim... FAILED tests/test_interface.py::test_state_standby - TypeError: 'Timeout' obj... FAILED tests/test_interface.py::test_status - TypeError: 'Timeout' object doe... FAILED tests/test_interface.py::test_status_access_restricted - TypeError: 'T... FAILED tests/test_interface.py::test_status_standby - TypeError: 'Timeout' ob... FAILED tests/test_interface.py::test_status_unavailable - TypeError: 'Timeout... FAILED tests/test_interface.py::test_tune - TypeError: 'Timeout' object does ... FAILED tests/test_interface.py::test_tuned - TypeError: 'Timeout' object does... =================== 25 failed, 11 passed, 1 warning in 1.19s =================== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /build/reproducible-path/python-directv-0.4.0/.pybuild/cpython3_3.13_directv/build; python3.13 -m pytest --no-cov dh_auto_test: error: pybuild --test -i python{version} -p "3.12 3.13" returned exit code 13 make: *** [debian/rules:8: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 I: copying local configuration E: Failed autobuilding of package I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/4019535 and its subdirectories