Tue Dec 3 16:24:57 UTC 2024 I: starting to build python-easyenergy/unstable/amd64 on jenkins on '2024-12-03 16:24' Tue Dec 3 16:24:57 UTC 2024 I: The jenkins build log is/was available at https://jenkins.debian.net/userContent/reproducible/debian/build_service/amd64_37/40039/console.log Tue Dec 3 16:24:57 UTC 2024 I: Downloading source for unstable/python-easyenergy=2.1.2-1 --2024-12-03 16:24:57-- http://deb.debian.org/debian/pool/main/p/python-easyenergy/python-easyenergy_2.1.2-1.dsc Connecting to 46.16.76.132:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2445 (2.4K) [text/prs.lines.tag] Saving to: ‘python-easyenergy_2.1.2-1.dsc’ 0K .. 100% 372M=0s 2024-12-03 16:24:57 (372 MB/s) - ‘python-easyenergy_2.1.2-1.dsc’ saved [2445/2445] Tue Dec 3 16:24:57 UTC 2024 I: python-easyenergy_2.1.2-1.dsc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Format: 3.0 (quilt) Source: python-easyenergy Binary: python3-easyenergy Architecture: all Version: 2.1.2-1 Maintainer: Home Assistant Team Uploaders: Thomas Goirand , Homepage: https://github.com/klaasnicolaas/python-easyenergy Standards-Version: 4.6.1 Vcs-Browser: https://salsa.debian.org/homeassistant-team/deps/python-easyenergy Vcs-Git: https://salsa.debian.org/homeassistant-team/deps/python-easyenergy.git Testsuite: autopkgtest Testsuite-Triggers: @builddeps@, pybuild-plugin-autopkgtest Build-Depends: debhelper-compat (= 11), dh-python, openstack-pkg-tools, pybuild-plugin-pyproject, python3-all, python3-poetry-core, python3-setuptools Build-Depends-Indep: python3-aiodns, python3-aiohttp, python3-aresponses, python3-covdefaults, python3-pytest, python3-pytest-asyncio, python3-pytest-cov, python3-pytest-freezer, python3-tz, python3-yarl Package-List: python3-easyenergy deb python optional arch=all Checksums-Sha1: 5df8fd456084dd1b63cf1b5da4d30ea193523787 494956 python-easyenergy_2.1.2.orig.tar.xz 09fd1a603e0eea72ccf2a6304eabc0c348fee141 2044 python-easyenergy_2.1.2-1.debian.tar.xz Checksums-Sha256: f0de5cf7b83ceeb37151eca4a99625f6c0d848401e6f46cbfd328778dbbfba4e 494956 python-easyenergy_2.1.2.orig.tar.xz 8ea2ad9049b2f17de8f38aa2fdc7c57b3acc45ccc430a638f2ea367cf09cb3cb 2044 python-easyenergy_2.1.2-1.debian.tar.xz Files: 6d8ac4de2569346aaf7aff7706e0d83e 494956 python-easyenergy_2.1.2.orig.tar.xz c9144b764c3fe574630f4cbf50cbd910 2044 python-easyenergy_2.1.2-1.debian.tar.xz -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEEoLGp81CJVhMOekJc1BatFaxrQ/4FAmdI+HYACgkQ1BatFaxr Q/5gQQ/+PmVFKnuKnBvNlJqtc4btSVIxBGUO3g5ZTpiX+HCEhJ/jpunM1e+Geawl fvmYcWhX//X8XbZhGYxyebAW/YRGIabIhUy/bOHCQTFYbXIa3A9Nstlg6HX7WN/Y uqcFv2WTj6nMrh2h6rT3goYIIZlecB6fgKzfeSaESsUzgild7irO4S3xESuyqE3Y oiZWohOB9gyVwVuy5z9w7Yhdru377LVdPtOX+jRI4SLlEnVEVaBVwzTkZcVigzDx TZtEC+eurzrouzY87w4WzbqBAI1szudsqnDmxZALwZvs3gu9xY1mn4XyhW9GxEdl na7WRkF68FUoJ4ea9wGwqRpk6rHYGEoFQWK//Dub2cbPzsHl0nwNNZAWYJjY5jUn kG/VmOlQCusadyQMVixBQ6uzZEbXq4qPS2UMs7SltM/0l9XOIUeaonygsXrLyBF9 MRsRHtYxUmICnSY9dtaMkWz+fpdUGEN0ukNnVu21xoFdMYkRTkc66ihTBsE07AWS ny/AaJt1O4mDIwk2unHqwKsVJZB88TEfit58XHL3D6HFMlWT95h0EnmuyAoKO40z Z+ax19mpdJteKayiyR/JnGNxMAyab1zEHQFulcak8VKrLrMqnBQrsAowc12hNpb/ V3bFKtGWHhA8yUxnfvDBJ2fV/lh2ot8cwBo+7BRHpT9YEI6fQSA= =lMLM -----END PGP SIGNATURE----- Tue Dec 3 16:24:57 UTC 2024 I: Checking whether the package is not for us Tue Dec 3 16:24:57 UTC 2024 I: Starting 1st build on remote node infom01-amd64.debian.net. Tue Dec 3 16:24:57 UTC 2024 I: Preparing to do remote build '1' on infom01-amd64.debian.net. Tue Dec 3 16:27:44 UTC 2024 I: Deleting $TMPDIR on infom01-amd64.debian.net. I: pbuilder: network access will be disabled during build I: Current time: Tue Dec 3 04:24:59 -12 2024 I: pbuilder-time-stamp: 1733243099 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-easyenergy_2.1.2-1.dsc] I: copying [./python-easyenergy_2.1.2.orig.tar.xz] I: copying [./python-easyenergy_2.1.2-1.debian.tar.xz] I: Extracting source gpgv: Signature made Thu Nov 28 23:10:46 2024 gpgv: using RSA key A0B1A9F3508956130E7A425CD416AD15AC6B43FE gpgv: Can't check signature: No public key dpkg-source: warning: cannot verify inline signature for ./python-easyenergy_2.1.2-1.dsc: no acceptable signature found dpkg-source: info: extracting python-easyenergy in python-easyenergy-2.1.2 dpkg-source: info: unpacking python-easyenergy_2.1.2.orig.tar.xz dpkg-source: info: unpacking python-easyenergy_2.1.2-1.debian.tar.xz I: using fakeroot in build. I: Installing the build-deps I: user script /srv/workspace/pbuilder/1237472/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=12 ' DISTRIBUTION='unstable' HOME='/root' HOST_ARCH='amd64' IFS=' ' INVOCATION_ID='dae43c8224b14fc8a6c55c181301dd6a' 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='1237472' 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.ynLEuwSS/pbuilderrc_PpPc --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.ynLEuwSS/b1 --logfile b1/build.log python-easyenergy_2.1.2-1.dsc' SUDO_GID='109' SUDO_UID='104' SUDO_USER='jenkins' TERM='unknown' TZ='/usr/share/zoneinfo/Etc/GMT+12' USER='root' _='/usr/bin/systemd-run' I: uname -a Linux infom01-amd64 6.1.0-28-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.119-1 (2024-11-22) x86_64 GNU/Linux I: ls -l /bin lrwxrwxrwx 1 root root 7 Nov 22 14:40 /bin -> usr/bin I: user script /srv/workspace/pbuilder/1237472/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 (= 11), dh-python, openstack-pkg-tools, pybuild-plugin-pyproject, python3-all, python3-poetry-core, python3-setuptools, python3-aiodns, python3-aiohttp, python3-aresponses, python3-covdefaults, python3-pytest, python3-pytest-asyncio, python3-pytest-cov, python3-pytest-freezer, python3-tz, 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 ... 19968 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 (= 11); however: Package debhelper-compat is not installed. pbuilder-satisfydepends-dummy depends on dh-python; however: Package dh-python is not installed. pbuilder-satisfydepends-dummy depends on openstack-pkg-tools; however: Package openstack-pkg-tools is not installed. pbuilder-satisfydepends-dummy depends on pybuild-plugin-pyproject; however: Package pybuild-plugin-pyproject is not installed. pbuilder-satisfydepends-dummy depends on python3-all; however: Package python3-all is not installed. pbuilder-satisfydepends-dummy depends on python3-poetry-core; however: Package python3-poetry-core is not installed. pbuilder-satisfydepends-dummy depends on python3-setuptools; however: Package python3-setuptools is not installed. pbuilder-satisfydepends-dummy depends on python3-aiodns; however: Package python3-aiodns is not installed. pbuilder-satisfydepends-dummy depends on python3-aiohttp; however: Package python3-aiohttp is not installed. pbuilder-satisfydepends-dummy depends on python3-aresponses; however: Package python3-aresponses is not installed. pbuilder-satisfydepends-dummy depends on python3-covdefaults; however: Package python3-covdefaults 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-pytest-freezer; however: Package python3-pytest-freezer is not installed. pbuilder-satisfydepends-dummy depends on python3-tz; however: Package python3-tz 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} ca-certificates{a} debhelper{a} dh-autoreconf{a} dh-python{a} dh-strip-nondeterminism{a} dwz{a} file{a} gettext{a} gettext-base{a} groff-base{a} intltool-debian{a} jq{a} libarchive-zip-perl{a} libcares2{a} libcom-err2{a} libdebhelper-perl{a} libelf1t64{a} libexpat1{a} libfile-stripnondeterminism-perl{a} libgssapi-krb5-2{a} libicu72{a} libjq1{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} libonig5{a} libpipeline1{a} libpython3-stdlib{a} libpython3.12-minimal{a} libpython3.12-stdlib{a} libpython3.13-minimal{a} libpython3.13-stdlib{a} libreadline8t64{a} libtirpc-common{a} libtirpc3t64{a} libtool{a} libuchardet0{a} libxml2{a} m4{a} man-db{a} media-types{a} netbase{a} openssl{a} openstack-pkg-tools{a} po-debconf{a} pybuild-plugin-pyproject{a} python3{a} python3-aiodns{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-build{a} python3-cffi-backend{a} python3-covdefaults{a} python3-coverage{a} python3-dateutil{a} python3-freezegun{a} python3-frozenlist{a} python3-idna{a} python3-inflect{a} python3-iniconfig{a} python3-installer{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-pip{a} python3-pkg-resources{a} python3-pluggy{a} python3-poetry-core{a} python3-pycares{a} python3-pyproject-hooks{a} python3-pytest{a} python3-pytest-asyncio{a} python3-pytest-cov{a} python3-pytest-freezer{a} python3-setuptools{a} python3-toml{a} python3-typeguard{a} python3-typing-extensions{a} python3-tz{a} python3-wheel{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: autopkgtest curl javascript-common krb5-locales libarchive-cpio-perl libjs-sphinxdoc libltdl-dev libmail-sendmail-perl lynx madison-lite pristine-tar python3-dev python3-pygments wget 0 packages upgraded, 115 newly installed, 0 to remove and 0 not upgraded. Need to get 39.9 MB of archives. After unpacking 160 MB will be used. Writing extended state information... Get: 1 http://deb.debian.org/debian unstable/main amd64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB] Get: 2 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-hotkeys all 0~20130707+git2d51e3a9+dfsg-2.1 [11.5 kB] Get: 3 http://deb.debian.org/debian unstable/main amd64 libpython3.12-minimal amd64 3.12.7-3 [815 kB] Get: 4 http://deb.debian.org/debian unstable/main amd64 libexpat1 amd64 2.6.4-1 [106 kB] Get: 5 http://deb.debian.org/debian unstable/main amd64 python3.12-minimal amd64 3.12.7-3 [2162 kB] Get: 6 http://deb.debian.org/debian unstable/main amd64 python3-minimal amd64 3.12.7-1 [26.8 kB] Get: 7 http://deb.debian.org/debian unstable/main amd64 media-types all 10.1.0 [26.9 kB] Get: 8 http://deb.debian.org/debian unstable/main amd64 netbase all 6.4 [12.8 kB] Get: 9 http://deb.debian.org/debian unstable/main amd64 tzdata all 2024b-4 [256 kB] Get: 10 http://deb.debian.org/debian unstable/main amd64 libkrb5support0 amd64 1.21.3-3 [32.5 kB] Get: 11 http://deb.debian.org/debian unstable/main amd64 libcom-err2 amd64 1.47.2~rc1-1 [23.6 kB] Get: 12 http://deb.debian.org/debian unstable/main amd64 libk5crypto3 amd64 1.21.3-3 [79.9 kB] Get: 13 http://deb.debian.org/debian unstable/main amd64 libkeyutils1 amd64 1.6.3-4 [9092 B] Get: 14 http://deb.debian.org/debian unstable/main amd64 libkrb5-3 amd64 1.21.3-3 [324 kB] Get: 15 http://deb.debian.org/debian unstable/main amd64 libgssapi-krb5-2 amd64 1.21.3-3 [136 kB] Get: 16 http://deb.debian.org/debian unstable/main amd64 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB] Get: 17 http://deb.debian.org/debian unstable/main amd64 libtirpc3t64 amd64 1.3.4+ds-1.3+b1 [83.1 kB] Get: 18 http://deb.debian.org/debian unstable/main amd64 libnsl2 amd64 1.3.0-3+b3 [40.6 kB] Get: 19 http://deb.debian.org/debian unstable/main amd64 readline-common all 8.2-5 [69.3 kB] Get: 20 http://deb.debian.org/debian unstable/main amd64 libreadline8t64 amd64 8.2-5 [169 kB] Get: 21 http://deb.debian.org/debian unstable/main amd64 libpython3.12-stdlib amd64 3.12.7-3 [1966 kB] Get: 22 http://deb.debian.org/debian unstable/main amd64 python3.12 amd64 3.12.7-3 [671 kB] Get: 23 http://deb.debian.org/debian unstable/main amd64 libpython3-stdlib amd64 3.12.7-1 [9712 B] Get: 24 http://deb.debian.org/debian unstable/main amd64 python3 amd64 3.12.7-1 [27.8 kB] Get: 25 http://deb.debian.org/debian unstable/main amd64 libpython3.13-minimal amd64 3.13.0-2 [856 kB] Get: 26 http://deb.debian.org/debian unstable/main amd64 python3.13-minimal amd64 3.13.0-2 [2038 kB] Get: 27 http://deb.debian.org/debian unstable/main amd64 sensible-utils all 0.0.24 [24.8 kB] Get: 28 http://deb.debian.org/debian unstable/main amd64 openssl amd64 3.3.2-2 [1382 kB] Get: 29 http://deb.debian.org/debian unstable/main amd64 ca-certificates all 20240203 [158 kB] Get: 30 http://deb.debian.org/debian unstable/main amd64 libmagic-mgc amd64 1:5.45-3+b1 [314 kB] Get: 31 http://deb.debian.org/debian unstable/main amd64 libmagic1t64 amd64 1:5.45-3+b1 [108 kB] Get: 32 http://deb.debian.org/debian unstable/main amd64 file amd64 1:5.45-3+b1 [43.3 kB] Get: 33 http://deb.debian.org/debian unstable/main amd64 gettext-base amd64 0.22.5-2 [200 kB] Get: 34 http://deb.debian.org/debian unstable/main amd64 libuchardet0 amd64 0.0.8-1+b2 [68.9 kB] Get: 35 http://deb.debian.org/debian unstable/main amd64 groff-base amd64 1.23.0-5 [1181 kB] Get: 36 http://deb.debian.org/debian unstable/main amd64 bsdextrautils amd64 2.40.2-11 [91.5 kB] Get: 37 http://deb.debian.org/debian unstable/main amd64 libpipeline1 amd64 1.5.8-1 [42.0 kB] Get: 38 http://deb.debian.org/debian unstable/main amd64 man-db amd64 2.13.0-1 [1420 kB] Get: 39 http://deb.debian.org/debian unstable/main amd64 m4 amd64 1.4.19-4 [287 kB] Get: 40 http://deb.debian.org/debian unstable/main amd64 autoconf all 2.72-3 [493 kB] Get: 41 http://deb.debian.org/debian unstable/main amd64 autotools-dev all 20220109.1 [51.6 kB] Get: 42 http://deb.debian.org/debian unstable/main amd64 automake all 1:1.16.5-1.3 [823 kB] Get: 43 http://deb.debian.org/debian unstable/main amd64 autopoint all 0.22.5-2 [723 kB] Get: 44 http://deb.debian.org/debian unstable/main amd64 libdebhelper-perl all 13.20 [89.7 kB] Get: 45 http://deb.debian.org/debian unstable/main amd64 libtool all 2.4.7-8 [517 kB] Get: 46 http://deb.debian.org/debian unstable/main amd64 dh-autoreconf all 20 [17.1 kB] Get: 47 http://deb.debian.org/debian unstable/main amd64 libarchive-zip-perl all 1.68-1 [104 kB] Get: 48 http://deb.debian.org/debian unstable/main amd64 libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB] Get: 49 http://deb.debian.org/debian unstable/main amd64 dh-strip-nondeterminism all 1.14.0-1 [8448 B] Get: 50 http://deb.debian.org/debian unstable/main amd64 libelf1t64 amd64 0.192-4 [189 kB] Get: 51 http://deb.debian.org/debian unstable/main amd64 dwz amd64 0.15-1+b1 [110 kB] Get: 52 http://deb.debian.org/debian unstable/main amd64 libicu72 amd64 72.1-5+b1 [9423 kB] Get: 53 http://deb.debian.org/debian unstable/main amd64 libxml2 amd64 2.12.7+dfsg+really2.9.14-0.2+b1 [699 kB] Get: 54 http://deb.debian.org/debian unstable/main amd64 gettext amd64 0.22.5-2 [1601 kB] Get: 55 http://deb.debian.org/debian unstable/main amd64 intltool-debian all 0.35.0+20060710.6 [22.9 kB] Get: 56 http://deb.debian.org/debian unstable/main amd64 po-debconf all 1.0.21+nmu1 [248 kB] Get: 57 http://deb.debian.org/debian unstable/main amd64 debhelper all 13.20 [915 kB] Get: 58 http://deb.debian.org/debian unstable/main amd64 python3-autocommand all 2.2.2-3 [13.6 kB] Get: 59 http://deb.debian.org/debian unstable/main amd64 python3-more-itertools all 10.5.0-1 [63.8 kB] Get: 60 http://deb.debian.org/debian unstable/main amd64 python3-typing-extensions all 4.12.2-2 [73.0 kB] Get: 61 http://deb.debian.org/debian unstable/main amd64 python3-typeguard all 4.4.1-1 [37.0 kB] Get: 62 http://deb.debian.org/debian unstable/main amd64 python3-inflect all 7.3.1-2 [32.4 kB] Get: 63 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.context all 6.0.0-1 [7984 B] Get: 64 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.functools all 4.1.0-1 [12.0 kB] Get: 65 http://deb.debian.org/debian unstable/main amd64 python3-pkg-resources all 75.2.0-1 [213 kB] Get: 66 http://deb.debian.org/debian unstable/main amd64 python3-jaraco.text all 4.0.0-1 [11.4 kB] Get: 67 http://deb.debian.org/debian unstable/main amd64 python3-zipp all 3.21.0-1 [10.6 kB] Get: 68 http://deb.debian.org/debian unstable/main amd64 python3-setuptools all 75.2.0-1 [731 kB] Get: 69 http://deb.debian.org/debian unstable/main amd64 dh-python all 6.20241024 [109 kB] Get: 70 http://deb.debian.org/debian unstable/main amd64 libonig5 amd64 6.9.9-1+b1 [189 kB] Get: 71 http://deb.debian.org/debian unstable/main amd64 libjq1 amd64 1.7.1-3+b1 [164 kB] Get: 72 http://deb.debian.org/debian unstable/main amd64 jq amd64 1.7.1-3+b1 [77.8 kB] Get: 73 http://deb.debian.org/debian unstable/main amd64 libcares2 amd64 1.34.2-1 [92.7 kB] Get: 74 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-isonscreen all 1.2.0-1.1 [3196 B] Get: 75 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-metadata all 12-4 [6532 B] Get: 76 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-tablesorter all 1:2.31.3+dfsg1-4 [184 kB] Get: 77 http://deb.debian.org/debian unstable/main amd64 libjs-jquery-throttle-debounce all 1.1+dfsg.1-2 [12.2 kB] Get: 78 http://deb.debian.org/debian unstable/main amd64 libpython3.13-stdlib amd64 3.13.0-2 [1992 kB] Get: 79 http://deb.debian.org/debian unstable/main amd64 python3-wheel all 0.45.1-1 [56.7 kB] Get: 80 http://deb.debian.org/debian unstable/main amd64 python3-pip all 24.3.1+dfsg-1 [1441 kB] Get: 81 http://deb.debian.org/debian unstable/main amd64 openstack-pkg-tools all 130 [96.4 kB] Get: 82 http://deb.debian.org/debian unstable/main amd64 python3-packaging all 24.2-1 [55.3 kB] Get: 83 http://deb.debian.org/debian unstable/main amd64 python3-pyproject-hooks all 1.2.0-1 [11.7 kB] Get: 84 http://deb.debian.org/debian unstable/main amd64 python3-toml all 0.10.2-1 [16.2 kB] Get: 85 http://deb.debian.org/debian unstable/main amd64 python3-build all 1.2.2-1 [36.0 kB] Get: 86 http://deb.debian.org/debian unstable/main amd64 python3-installer all 0.7.0+dfsg1-3 [18.6 kB] Get: 87 http://deb.debian.org/debian unstable/main amd64 pybuild-plugin-pyproject all 6.20241024 [11.4 kB] Get: 88 http://deb.debian.org/debian unstable/main amd64 python3-idna all 3.8-2 [41.6 kB] Get: 89 http://deb.debian.org/debian unstable/main amd64 python3-cffi-backend amd64 1.17.1-2+b1 [96.2 kB] Get: 90 http://deb.debian.org/debian unstable/main amd64 python3-pycares amd64 4.4.0-2+b2 [31.3 kB] Get: 91 http://deb.debian.org/debian unstable/main amd64 python3-aiodns all 3.2.0-2 [8216 B] Get: 92 http://deb.debian.org/debian unstable/main amd64 python3-aiohappyeyeballs all 2.4.3-1 [13.3 kB] Get: 93 http://deb.debian.org/debian unstable/main amd64 python3-multidict amd64 6.1.0-1+b1 [39.8 kB] Get: 94 http://deb.debian.org/debian unstable/main amd64 python3-yarl amd64 1.13.1-1+b1 [118 kB] Get: 95 http://deb.debian.org/debian unstable/main amd64 python3-async-timeout all 5.0.1-1 [8324 B] Get: 96 http://deb.debian.org/debian unstable/main amd64 python3-frozenlist amd64 1.5.0-1+b1 [58.6 kB] Get: 97 http://deb.debian.org/debian unstable/main amd64 python3-aiosignal all 1.3.1-1 [6016 B] Get: 98 http://deb.debian.org/debian unstable/main amd64 python3-attr all 24.2.0-1 [68.4 kB] Get: 99 http://deb.debian.org/debian unstable/main amd64 python3-aiohttp amd64 3.10.10-2 [364 kB] Get: 100 http://deb.debian.org/debian unstable/main amd64 python3.13 amd64 3.13.0-2 [730 kB] Get: 101 http://deb.debian.org/debian unstable/main amd64 python3-all amd64 3.12.7-1 [1052 B] Get: 102 http://deb.debian.org/debian unstable/main amd64 python3-async-generator all 1.10-4 [17.4 kB] Get: 103 http://deb.debian.org/debian unstable/main amd64 python3-iniconfig all 1.1.1-2 [6396 B] Get: 104 http://deb.debian.org/debian unstable/main amd64 python3-pluggy all 1.5.0-1 [26.9 kB] Get: 105 http://deb.debian.org/debian unstable/main amd64 python3-pytest all 8.3.3-1 [249 kB] Get: 106 http://deb.debian.org/debian unstable/main amd64 python3-pytest-asyncio all 0.24.0a1-1 [15.6 kB] Get: 107 http://deb.debian.org/debian unstable/main amd64 python3-aresponses all 3.0.0-2 [13.5 kB] Get: 108 http://deb.debian.org/debian unstable/main amd64 python3-coverage amd64 7.6.0+dfsg1-2+b1 [177 kB] Get: 109 http://deb.debian.org/debian unstable/main amd64 python3-covdefaults all 2.3.0-2 [7692 B] Get: 110 http://deb.debian.org/debian unstable/main amd64 python3-dateutil all 2.9.0-3 [79.3 kB] Get: 111 http://deb.debian.org/debian unstable/main amd64 python3-freezegun all 1.5.1-1.1 [17.1 kB] Get: 112 http://deb.debian.org/debian unstable/main amd64 python3-poetry-core all 1.9.0-2 [210 kB] Get: 113 http://deb.debian.org/debian unstable/main amd64 python3-pytest-cov all 5.0.0-1 [26.8 kB] Get: 114 http://deb.debian.org/debian unstable/main amd64 python3-pytest-freezer all 0.4.8-2 [4456 B] Get: 115 http://deb.debian.org/debian unstable/main amd64 python3-tz all 2024.1-2 [30.9 kB] Fetched 39.9 MB in 1s (56.9 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package libjs-jquery. (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 ... 19968 files and directories currently installed.) Preparing to unpack .../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 .../libjs-jquery-hotkeys_0~20130707+git2d51e3a9+dfsg-2.1_all.deb ... Unpacking libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... Selecting previously unselected package libpython3.12-minimal:amd64. Preparing to unpack .../libpython3.12-minimal_3.12.7-3_amd64.deb ... Unpacking libpython3.12-minimal:amd64 (3.12.7-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.12-minimal. Preparing to unpack .../python3.12-minimal_3.12.7-3_amd64.deb ... Unpacking python3.12-minimal (3.12.7-3) ... Setting up libpython3.12-minimal:amd64 (3.12.7-3) ... Setting up libexpat1:amd64 (2.6.4-1) ... Setting up python3.12-minimal (3.12.7-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 ... 20314 files and directories currently installed.) Preparing to unpack .../00-python3-minimal_3.12.7-1_amd64.deb ... Unpacking python3-minimal (3.12.7-1) ... Selecting previously unselected package media-types. Preparing to unpack .../01-media-types_10.1.0_all.deb ... Unpacking media-types (10.1.0) ... Selecting previously unselected package netbase. Preparing to unpack .../02-netbase_6.4_all.deb ... Unpacking netbase (6.4) ... Selecting previously unselected package tzdata. Preparing to unpack .../03-tzdata_2024b-4_all.deb ... Unpacking tzdata (2024b-4) ... Selecting previously unselected package libkrb5support0:amd64. Preparing to unpack .../04-libkrb5support0_1.21.3-3_amd64.deb ... Unpacking libkrb5support0:amd64 (1.21.3-3) ... Selecting previously unselected package libcom-err2:amd64. Preparing to unpack .../05-libcom-err2_1.47.2~rc1-1_amd64.deb ... Unpacking libcom-err2:amd64 (1.47.2~rc1-1) ... Selecting previously unselected package libk5crypto3:amd64. Preparing to unpack .../06-libk5crypto3_1.21.3-3_amd64.deb ... Unpacking libk5crypto3:amd64 (1.21.3-3) ... Selecting previously unselected package libkeyutils1:amd64. Preparing to unpack .../07-libkeyutils1_1.6.3-4_amd64.deb ... Unpacking libkeyutils1:amd64 (1.6.3-4) ... Selecting previously unselected package libkrb5-3:amd64. Preparing to unpack .../08-libkrb5-3_1.21.3-3_amd64.deb ... Unpacking libkrb5-3:amd64 (1.21.3-3) ... Selecting previously unselected package libgssapi-krb5-2:amd64. Preparing to unpack .../09-libgssapi-krb5-2_1.21.3-3_amd64.deb ... Unpacking libgssapi-krb5-2:amd64 (1.21.3-3) ... Selecting previously unselected package libtirpc-common. Preparing to unpack .../10-libtirpc-common_1.3.4+ds-1.3_all.deb ... Unpacking libtirpc-common (1.3.4+ds-1.3) ... Selecting previously unselected package libtirpc3t64:amd64. Preparing to unpack .../11-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 .../12-libnsl2_1.3.0-3+b3_amd64.deb ... Unpacking libnsl2:amd64 (1.3.0-3+b3) ... Selecting previously unselected package readline-common. Preparing to unpack .../13-readline-common_8.2-5_all.deb ... Unpacking readline-common (8.2-5) ... Selecting previously unselected package libreadline8t64:amd64. Preparing to unpack .../14-libreadline8t64_8.2-5_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-5) ... Selecting previously unselected package libpython3.12-stdlib:amd64. Preparing to unpack .../15-libpython3.12-stdlib_3.12.7-3_amd64.deb ... Unpacking libpython3.12-stdlib:amd64 (3.12.7-3) ... Selecting previously unselected package python3.12. Preparing to unpack .../16-python3.12_3.12.7-3_amd64.deb ... Unpacking python3.12 (3.12.7-3) ... Selecting previously unselected package libpython3-stdlib:amd64. Preparing to unpack .../17-libpython3-stdlib_3.12.7-1_amd64.deb ... Unpacking libpython3-stdlib:amd64 (3.12.7-1) ... Setting up python3-minimal (3.12.7-1) ... Selecting previously unselected package python3. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 21375 files and directories currently installed.) Preparing to unpack .../00-python3_3.12.7-1_amd64.deb ... Unpacking python3 (3.12.7-1) ... Selecting previously unselected package libpython3.13-minimal:amd64. Preparing to unpack .../01-libpython3.13-minimal_3.13.0-2_amd64.deb ... Unpacking libpython3.13-minimal:amd64 (3.13.0-2) ... Selecting previously unselected package python3.13-minimal. Preparing to unpack .../02-python3.13-minimal_3.13.0-2_amd64.deb ... Unpacking python3.13-minimal (3.13.0-2) ... 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 openssl. Preparing to unpack .../04-openssl_3.3.2-2_amd64.deb ... Unpacking openssl (3.3.2-2) ... Selecting previously unselected package ca-certificates. Preparing to unpack .../05-ca-certificates_20240203_all.deb ... Unpacking ca-certificates (20240203) ... Selecting previously unselected package libmagic-mgc. Preparing to unpack .../06-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 .../07-libmagic1t64_1%3a5.45-3+b1_amd64.deb ... Unpacking libmagic1t64:amd64 (1:5.45-3+b1) ... Selecting previously unselected package file. Preparing to unpack .../08-file_1%3a5.45-3+b1_amd64.deb ... Unpacking file (1:5.45-3+b1) ... Selecting previously unselected package gettext-base. Preparing to unpack .../09-gettext-base_0.22.5-2_amd64.deb ... Unpacking gettext-base (0.22.5-2) ... Selecting previously unselected package libuchardet0:amd64. Preparing to unpack .../10-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 .../11-groff-base_1.23.0-5_amd64.deb ... Unpacking groff-base (1.23.0-5) ... Selecting previously unselected package bsdextrautils. Preparing to unpack .../12-bsdextrautils_2.40.2-11_amd64.deb ... Unpacking bsdextrautils (2.40.2-11) ... Selecting previously unselected package libpipeline1:amd64. Preparing to unpack .../13-libpipeline1_1.5.8-1_amd64.deb ... Unpacking libpipeline1:amd64 (1.5.8-1) ... Selecting previously unselected package man-db. Preparing to unpack .../14-man-db_2.13.0-1_amd64.deb ... Unpacking man-db (2.13.0-1) ... Selecting previously unselected package m4. Preparing to unpack .../15-m4_1.4.19-4_amd64.deb ... Unpacking m4 (1.4.19-4) ... Selecting previously unselected package autoconf. Preparing to unpack .../16-autoconf_2.72-3_all.deb ... Unpacking autoconf (2.72-3) ... Selecting previously unselected package autotools-dev. Preparing to unpack .../17-autotools-dev_20220109.1_all.deb ... Unpacking autotools-dev (20220109.1) ... Selecting previously unselected package automake. Preparing to unpack .../18-automake_1%3a1.16.5-1.3_all.deb ... Unpacking automake (1:1.16.5-1.3) ... Selecting previously unselected package autopoint. Preparing to unpack .../19-autopoint_0.22.5-2_all.deb ... Unpacking autopoint (0.22.5-2) ... Selecting previously unselected package libdebhelper-perl. Preparing to unpack .../20-libdebhelper-perl_13.20_all.deb ... Unpacking libdebhelper-perl (13.20) ... Selecting previously unselected package libtool. Preparing to unpack .../21-libtool_2.4.7-8_all.deb ... Unpacking libtool (2.4.7-8) ... Selecting previously unselected package dh-autoreconf. Preparing to unpack .../22-dh-autoreconf_20_all.deb ... Unpacking dh-autoreconf (20) ... Selecting previously unselected package libarchive-zip-perl. Preparing to unpack .../23-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 .../24-libfile-stripnondeterminism-perl_1.14.0-1_all.deb ... Unpacking libfile-stripnondeterminism-perl (1.14.0-1) ... Selecting previously unselected package dh-strip-nondeterminism. Preparing to unpack .../25-dh-strip-nondeterminism_1.14.0-1_all.deb ... Unpacking dh-strip-nondeterminism (1.14.0-1) ... Selecting previously unselected package libelf1t64:amd64. Preparing to unpack .../26-libelf1t64_0.192-4_amd64.deb ... Unpacking libelf1t64:amd64 (0.192-4) ... Selecting previously unselected package dwz. Preparing to unpack .../27-dwz_0.15-1+b1_amd64.deb ... Unpacking dwz (0.15-1+b1) ... Selecting previously unselected package libicu72:amd64. Preparing to unpack .../28-libicu72_72.1-5+b1_amd64.deb ... Unpacking libicu72:amd64 (72.1-5+b1) ... Selecting previously unselected package libxml2:amd64. Preparing to unpack .../29-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 .../30-gettext_0.22.5-2_amd64.deb ... Unpacking gettext (0.22.5-2) ... Selecting previously unselected package intltool-debian. Preparing to unpack .../31-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 .../32-po-debconf_1.0.21+nmu1_all.deb ... Unpacking po-debconf (1.0.21+nmu1) ... Selecting previously unselected package debhelper. Preparing to unpack .../33-debhelper_13.20_all.deb ... Unpacking debhelper (13.20) ... Selecting previously unselected package python3-autocommand. Preparing to unpack .../34-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 .../35-python3-more-itertools_10.5.0-1_all.deb ... Unpacking python3-more-itertools (10.5.0-1) ... Selecting previously unselected package python3-typing-extensions. Preparing to unpack .../36-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 .../37-python3-typeguard_4.4.1-1_all.deb ... Unpacking python3-typeguard (4.4.1-1) ... Selecting previously unselected package python3-inflect. Preparing to unpack .../38-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 .../39-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 .../40-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 .../41-python3-pkg-resources_75.2.0-1_all.deb ... Unpacking python3-pkg-resources (75.2.0-1) ... Selecting previously unselected package python3-jaraco.text. Preparing to unpack .../42-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 .../43-python3-zipp_3.21.0-1_all.deb ... Unpacking python3-zipp (3.21.0-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../44-python3-setuptools_75.2.0-1_all.deb ... Unpacking python3-setuptools (75.2.0-1) ... Selecting previously unselected package dh-python. Preparing to unpack .../45-dh-python_6.20241024_all.deb ... Unpacking dh-python (6.20241024) ... Selecting previously unselected package libonig5:amd64. Preparing to unpack .../46-libonig5_6.9.9-1+b1_amd64.deb ... Unpacking libonig5:amd64 (6.9.9-1+b1) ... Selecting previously unselected package libjq1:amd64. Preparing to unpack .../47-libjq1_1.7.1-3+b1_amd64.deb ... Unpacking libjq1:amd64 (1.7.1-3+b1) ... Selecting previously unselected package jq. Preparing to unpack .../48-jq_1.7.1-3+b1_amd64.deb ... Unpacking jq (1.7.1-3+b1) ... Selecting previously unselected package libcares2:amd64. Preparing to unpack .../49-libcares2_1.34.2-1_amd64.deb ... Unpacking libcares2:amd64 (1.34.2-1) ... Selecting previously unselected package libjs-jquery-isonscreen. Preparing to unpack .../50-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 .../51-libjs-jquery-metadata_12-4_all.deb ... Unpacking libjs-jquery-metadata (12-4) ... Selecting previously unselected package libjs-jquery-tablesorter. Preparing to unpack .../52-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 .../53-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 libpython3.13-stdlib:amd64. Preparing to unpack .../54-libpython3.13-stdlib_3.13.0-2_amd64.deb ... Unpacking libpython3.13-stdlib:amd64 (3.13.0-2) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../55-python3-wheel_0.45.1-1_all.deb ... Unpacking python3-wheel (0.45.1-1) ... Selecting previously unselected package python3-pip. Preparing to unpack .../56-python3-pip_24.3.1+dfsg-1_all.deb ... Unpacking python3-pip (24.3.1+dfsg-1) ... Selecting previously unselected package openstack-pkg-tools. Preparing to unpack .../57-openstack-pkg-tools_130_all.deb ... Unpacking openstack-pkg-tools (130) ... Selecting previously unselected package python3-packaging. Preparing to unpack .../58-python3-packaging_24.2-1_all.deb ... Unpacking python3-packaging (24.2-1) ... Selecting previously unselected package python3-pyproject-hooks. Preparing to unpack .../59-python3-pyproject-hooks_1.2.0-1_all.deb ... Unpacking python3-pyproject-hooks (1.2.0-1) ... Selecting previously unselected package python3-toml. Preparing to unpack .../60-python3-toml_0.10.2-1_all.deb ... Unpacking python3-toml (0.10.2-1) ... Selecting previously unselected package python3-build. Preparing to unpack .../61-python3-build_1.2.2-1_all.deb ... Unpacking python3-build (1.2.2-1) ... Selecting previously unselected package python3-installer. Preparing to unpack .../62-python3-installer_0.7.0+dfsg1-3_all.deb ... Unpacking python3-installer (0.7.0+dfsg1-3) ... Selecting previously unselected package pybuild-plugin-pyproject. Preparing to unpack .../63-pybuild-plugin-pyproject_6.20241024_all.deb ... Unpacking pybuild-plugin-pyproject (6.20241024) ... Selecting previously unselected package python3-idna. Preparing to unpack .../64-python3-idna_3.8-2_all.deb ... Unpacking python3-idna (3.8-2) ... Selecting previously unselected package python3-cffi-backend:amd64. Preparing to unpack .../65-python3-cffi-backend_1.17.1-2+b1_amd64.deb ... Unpacking python3-cffi-backend:amd64 (1.17.1-2+b1) ... Selecting previously unselected package python3-pycares. Preparing to unpack .../66-python3-pycares_4.4.0-2+b2_amd64.deb ... Unpacking python3-pycares (4.4.0-2+b2) ... Selecting previously unselected package python3-aiodns. Preparing to unpack .../67-python3-aiodns_3.2.0-2_all.deb ... Unpacking python3-aiodns (3.2.0-2) ... Selecting previously unselected package python3-aiohappyeyeballs. Preparing to unpack .../68-python3-aiohappyeyeballs_2.4.3-1_all.deb ... Unpacking python3-aiohappyeyeballs (2.4.3-1) ... Selecting previously unselected package python3-multidict. Preparing to unpack .../69-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 .../70-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 .../71-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 .../72-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 .../73-python3-aiosignal_1.3.1-1_all.deb ... Unpacking python3-aiosignal (1.3.1-1) ... Selecting previously unselected package python3-attr. Preparing to unpack .../74-python3-attr_24.2.0-1_all.deb ... Unpacking python3-attr (24.2.0-1) ... Selecting previously unselected package python3-aiohttp. Preparing to unpack .../75-python3-aiohttp_3.10.10-2_amd64.deb ... Unpacking python3-aiohttp (3.10.10-2) ... Selecting previously unselected package python3.13. Preparing to unpack .../76-python3.13_3.13.0-2_amd64.deb ... Unpacking python3.13 (3.13.0-2) ... Selecting previously unselected package python3-all. Preparing to unpack .../77-python3-all_3.12.7-1_amd64.deb ... Unpacking python3-all (3.12.7-1) ... Selecting previously unselected package python3-async-generator. Preparing to unpack .../78-python3-async-generator_1.10-4_all.deb ... Unpacking python3-async-generator (1.10-4) ... Selecting previously unselected package python3-iniconfig. Preparing to unpack .../79-python3-iniconfig_1.1.1-2_all.deb ... Unpacking python3-iniconfig (1.1.1-2) ... Selecting previously unselected package python3-pluggy. Preparing to unpack .../80-python3-pluggy_1.5.0-1_all.deb ... Unpacking python3-pluggy (1.5.0-1) ... Selecting previously unselected package python3-pytest. Preparing to unpack .../81-python3-pytest_8.3.3-1_all.deb ... Unpacking python3-pytest (8.3.3-1) ... Selecting previously unselected package python3-pytest-asyncio. Preparing to unpack .../82-python3-pytest-asyncio_0.24.0a1-1_all.deb ... Unpacking python3-pytest-asyncio (0.24.0a1-1) ... Selecting previously unselected package python3-aresponses. Preparing to unpack .../83-python3-aresponses_3.0.0-2_all.deb ... Unpacking python3-aresponses (3.0.0-2) ... Selecting previously unselected package python3-coverage. Preparing to unpack .../84-python3-coverage_7.6.0+dfsg1-2+b1_amd64.deb ... Unpacking python3-coverage (7.6.0+dfsg1-2+b1) ... Selecting previously unselected package python3-covdefaults. Preparing to unpack .../85-python3-covdefaults_2.3.0-2_all.deb ... Unpacking python3-covdefaults (2.3.0-2) ... Selecting previously unselected package python3-dateutil. Preparing to unpack .../86-python3-dateutil_2.9.0-3_all.deb ... Unpacking python3-dateutil (2.9.0-3) ... Selecting previously unselected package python3-freezegun. Preparing to unpack .../87-python3-freezegun_1.5.1-1.1_all.deb ... Unpacking python3-freezegun (1.5.1-1.1) ... Selecting previously unselected package python3-poetry-core. Preparing to unpack .../88-python3-poetry-core_1.9.0-2_all.deb ... Unpacking python3-poetry-core (1.9.0-2) ... Selecting previously unselected package python3-pytest-cov. Preparing to unpack .../89-python3-pytest-cov_5.0.0-1_all.deb ... Unpacking python3-pytest-cov (5.0.0-1) ... Selecting previously unselected package python3-pytest-freezer. Preparing to unpack .../90-python3-pytest-freezer_0.4.8-2_all.deb ... Unpacking python3-pytest-freezer (0.4.8-2) ... Selecting previously unselected package python3-tz. Preparing to unpack .../91-python3-tz_2024.1-2_all.deb ... Unpacking python3-tz (2024.1-2) ... 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-5+b1) ... Setting up bsdextrautils (2.40.2-11) ... Setting up libmagic-mgc (1:5.45-3+b1) ... Setting up libarchive-zip-perl (1.68-1) ... Setting up libtirpc-common (1.3.4+ds-1.3) ... Setting up libdebhelper-perl (13.20) ... Setting up libmagic1t64:amd64 (1:5.45-3+b1) ... Setting up gettext-base (0.22.5-2) ... Setting up m4 (1.4.19-4) ... Setting up libcom-err2:amd64 (1.47.2~rc1-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-3) ... Setting up tzdata (2024b-4) ... Current default time zone: 'Etc/UTC' Local time is now: Tue Dec 3 16:26:50 UTC 2024. Universal Time is now: Tue Dec 3 16:26:50 UTC 2024. Run 'dpkg-reconfigure tzdata' if you wish to change it. Setting up libpython3.13-minimal:amd64 (3.13.0-2) ... Setting up autotools-dev (20220109.1) ... Setting up libcares2:amd64 (1.34.2-1) ... Setting up autopoint (0.22.5-2) ... Setting up libk5crypto3:amd64 (1.21.3-3) ... Setting up autoconf (2.72-3) ... 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 python3.13-minimal (3.13.0-2) ... Setting up netbase (6.4) ... Setting up libkrb5-3:amd64 (1.21.3-3) ... Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Setting up libjs-jquery-hotkeys (0~20130707+git2d51e3a9+dfsg-2.1) ... Setting up openssl (3.3.2-2) ... Setting up readline-common (8.2-5) ... Setting up libxml2:amd64 (2.12.7+dfsg+really2.9.14-0.2+b1) ... Setting up libonig5:amd64 (6.9.9-1+b1) ... Setting up automake (1:1.16.5-1.3) ... update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode Setting up libfile-stripnondeterminism-perl (1.14.0-1) ... Setting up gettext (0.22.5-2) ... Setting up libtool (2.4.7-8) ... Setting up libjq1:amd64 (1.7.1-3+b1) ... Setting up intltool-debian (0.35.0+20060710.6) ... Setting up dh-autoreconf (20) ... Setting up ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 146 added, 0 removed; done. Setting up libjs-jquery-metadata (12-4) ... Setting up libjs-jquery-isonscreen (1.2.0-1.1) ... Setting up libgssapi-krb5-2:amd64 (1.21.3-3) ... Setting up libreadline8t64:amd64 (8.2-5) ... Setting up dh-strip-nondeterminism (1.14.0-1) ... Setting up libjs-jquery-tablesorter (1:2.31.3+dfsg1-4) ... Setting up groff-base (1.23.0-5) ... Setting up jq (1.7.1-3+b1) ... Setting up libpython3.13-stdlib:amd64 (3.13.0-2) ... Setting up libtirpc3t64:amd64 (1.3.4+ds-1.3+b1) ... Setting up python3.13 (3.13.0-2) ... Setting up po-debconf (1.0.21+nmu1) ... Setting up man-db (2.13.0-1) ... Not building database; man-db/auto-update is not 'true'. Setting up libnsl2:amd64 (1.3.0-3+b3) ... Setting up libpython3.12-stdlib:amd64 (3.12.7-3) ... Setting up python3.12 (3.12.7-3) ... Setting up debhelper (13.20) ... Setting up libpython3-stdlib:amd64 (3.12.7-1) ... Setting up python3 (3.12.7-1) ... Setting up python3-zipp (3.21.0-1) ... Setting up python3-autocommand (2.2.2-3) ... Setting up python3-wheel (0.45.1-1) ... Setting up python3-multidict (6.1.0-1+b1) ... Setting up python3-tz (2024.1-2) ... Setting up python3-frozenlist (1.5.0-1+b1) ... Setting up python3-aiosignal (1.3.1-1) ... Setting up python3-async-timeout (5.0.1-1) ... Setting up python3-packaging (24.2-1) ... Setting up python3-pyproject-hooks (1.2.0-1) ... Setting up python3-poetry-core (1.9.0-2) ... Setting up python3-idna (3.8-2) ... Setting up python3-typing-extensions (4.12.2-2) ... Setting up python3-aiohappyeyeballs (2.4.3-1) ... Setting up python3-pip (24.3.1+dfsg-1) ... Setting up python3-toml (0.10.2-1) ... Setting up python3-installer (0.7.0+dfsg1-3) ... Setting up python3-pluggy (1.5.0-1) ... Setting up python3-dateutil (2.9.0-3) ... Setting up python3-build (1.2.2-1) ... Setting up python3-yarl (1.13.1-1+b1) ... Setting up python3-freezegun (1.5.1-1.1) ... Setting up python3-cffi-backend:amd64 (1.17.1-2+b1) ... Setting up python3-more-itertools (10.5.0-1) ... Setting up python3-iniconfig (1.1.1-2) ... Setting up python3-attr (24.2.0-1) ... Setting up python3-jaraco.functools (4.1.0-1) ... Setting up python3-async-generator (1.10-4) ... Setting up python3-jaraco.context (6.0.0-1) ... Setting up python3-pytest (8.3.3-1) ... Setting up python3-typeguard (4.4.1-1) ... Setting up python3-aiohttp (3.10.10-2) ... Setting up python3-all (3.12.7-1) ... Setting up python3-coverage (7.6.0+dfsg1-2+b1) ... Setting up python3-pytest-cov (5.0.0-1) ... Setting up openstack-pkg-tools (130) ... Setting up python3-inflect (7.3.1-2) ... Setting up python3-jaraco.text (4.0.0-1) ... Setting up python3-pytest-freezer (0.4.8-2) ... Setting up python3-pytest-asyncio (0.24.0a1-1) ... Setting up python3-pycares (4.4.0-2+b2) ... Setting up python3-pkg-resources (75.2.0-1) ... Setting up python3-setuptools (75.2.0-1) ... Setting up python3-aresponses (3.0.0-2) ... Setting up python3-covdefaults (2.3.0-2) ... Setting up python3-aiodns (3.2.0-2) ... Setting up dh-python (6.20241024) ... Setting up pybuild-plugin-pyproject (6.20241024) ... Processing triggers for libc-bin (2.40-4) ... Processing triggers for ca-certificates (20240203) ... Updating certificates in /etc/ssl/certs... 0 added, 0 removed; done. Running hooks in /etc/ca-certificates/update.d... done. Reading package lists... Building dependency tree... Reading state information... Reading extended state information... Initializing package states... Writing extended state information... Building tag database... -> Finished parsing the build-deps Reading package lists... Building dependency tree... Reading state information... fakeroot is already the newest version (1.36-1). 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. I: Building the package I: Running cd /build/reproducible-path/python-easyenergy-2.1.2/ && 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-easyenergy_2.1.2-1_source.changes dpkg-buildpackage: info: source package python-easyenergy dpkg-buildpackage: info: source version 2.1.2-1 dpkg-buildpackage: info: source distribution unstable dpkg-buildpackage: info: source changed by Thomas Goirand dpkg-source --before-build . dpkg-buildpackage: info: host architecture amd64 dpkg-source: info: using options from python-easyenergy-2.1.2/debian/source/options: --extend-diff-ignore=^[^/]*[.]egg-info/ fakeroot debian/rules clean make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh clean --buildsystem=pybuild --with python3 dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules build make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh build --buildsystem=pybuild --with python3 dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" module I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/python-easyenergy-2.1.2/.pybuild/cpython3_3.13 * Building wheel... Successfully built easyenergy-0.0.0-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" module I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation --wheel --outdir /build/reproducible-path/python-easyenergy-2.1.2/.pybuild/cpython3_3.12 * Building wheel... Successfully built easyenergy-0.0.0-py3-none-any.whl I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with "installer" module dh_auto_test -O--buildsystem=pybuild I: pybuild base:311: cd /build/reproducible-path/python-easyenergy-2.1.2/.pybuild/cpython3_3.13/build; python3.13 -m pytest -v tests /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: 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.0, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.13 cachedir: .pytest_cache rootdir: /build/reproducible-path/python-easyenergy-2.1.2/.pybuild/cpython3_3.13/build configfile: pyproject.toml plugins: pytest_freezer-0.4.8, asyncio-0.24.0a1, cov-5.0.0, typeguard-4.4.1, aresponses-3.0.0 asyncio: mode=Mode.AUTO, default_loop_scope=None collecting ... collected 16 items tests/test_easyenergy.py::test_json_request FAILED [ 6%] tests/test_easyenergy.py::test_internal_session FAILED [ 12%] tests/test_easyenergy.py::test_timeout PASSED [ 18%] tests/test_easyenergy.py::test_content_type PASSED [ 25%] tests/test_easyenergy.py::test_client_error PASSED [ 31%] tests/test_easyenergy.py::test_dns_error PASSED [ 37%] tests/test_easyenergy.py::test_empty_dns_error PASSED [ 43%] tests/test_models.py::test_electricity_model_usage FAILED [ 50%] tests/test_models.py::test_electricity_model_return FAILED [ 56%] tests/test_models.py::test_electricity_midnight FAILED [ 62%] tests/test_models.py::test_electricity_none_data FAILED [ 68%] tests/test_models.py::test_no_electricity_data FAILED [ 75%] tests/test_models.py::test_gas_model FAILED [ 81%] tests/test_models.py::test_gas_morning_model FAILED [ 87%] tests/test_models.py::test_gas_none_data FAILED [ 93%] tests/test_models.py::test_no_gas_data FAILED [100%] =================================== FAILURES =================================== ______________________________ test_json_request _______________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'test' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_json_request(aresponses: ResponsesMockServer) -> None: """Test JSON response is handled correctly.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/test", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: client = EasyEnergy(session=session) > response = await client._request("test") tests/test_easyenergy.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'test' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ____________________________ test_internal_session _____________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=None, _close_session=False) uri = 'test' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_internal_session(aresponses: ResponsesMockServer) -> None: """Test internal session is handled correctly.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/test", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with EasyEnergy() as client: > await client._request("test") tests/test_easyenergy.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=None, _close_session=False) uri = 'test' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError _________________________ test_electricity_model_usage _________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-29 15:00:00+01:00") async def test_electricity_model_usage(aresponses: ResponsesMockServer) -> None: """Test the electricity model for usage at 15:00:00 CET.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 29) client = EasyEnergy(session=session) > energy: Electricity = await client.energy_prices( start_date=today, end_date=today, vat=VatOption.INCLUDE, ) tests/test_models.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ________________________ test_electricity_model_return _________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-29 15:00:00+01:00") async def test_electricity_model_return(aresponses: ResponsesMockServer) -> None: """Test the electricity model for return at 15:00:00 CET.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 29) client = EasyEnergy(session=session) > energy: Electricity = await client.energy_prices( start_date=today, end_date=today, vat=VatOption.INCLUDE, ) tests/test_models.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError __________________________ test_electricity_midnight ___________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-29 00:30:00+02:00") async def test_electricity_midnight(aresponses: ResponsesMockServer) -> None: """Test the electricity model between 00:00 and 01:00 with in CEST.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 29) client = EasyEnergy(session=session) > energy: Electricity = await client.energy_prices( start_date=today, end_date=today, ) tests/test_models.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError __________________________ test_electricity_none_data __________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_electricity_none_data(aresponses: ResponsesMockServer) -> None: """Test when there is no data for the current datetime.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 29) client = EasyEnergy(session=session) > energy: Electricity = await client.energy_prices( start_date=today, end_date=today, ) tests/test_models.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ___________________________ test_no_electricity_data ___________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_no_electricity_data(aresponses: ResponsesMockServer) -> None: """Test when there is no electricity data.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text="[]", ), ) async with ClientSession() as session: today = date(2022, 12, 16) client = EasyEnergy(session=session) with pytest.raises(EasyEnergyNoDataError): > await client.energy_prices(start_date=today, end_date=today) tests/test_models.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ________________________________ test_gas_model ________________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-14 15:00:00+01:00") async def test_gas_model(aresponses: ResponsesMockServer) -> None: """Test the gas model - easyEnergy at 15:00:00 CET.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getlebatariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("gas.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 14) client = EasyEnergy(session=session) > gas: Gas = await client.gas_prices( start_date=today, end_date=today, vat=VatOption.INCLUDE, ) tests/test_models.py:185: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:193: in gas_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ____________________________ test_gas_morning_model ____________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-14 04:00:00+01:00") async def test_gas_morning_model(aresponses: ResponsesMockServer) -> None: """Test the gas model in the morning - easyEnergy at 04:00:00 CET.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getlebatariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("gas.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 14) client = EasyEnergy(session=session) > gas: Gas = await client.gas_prices( start_date=today, end_date=today, vat=VatOption.INCLUDE, ) tests/test_models.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:193: in gas_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ______________________________ test_gas_none_data ______________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_gas_none_data(aresponses: ResponsesMockServer) -> None: """Test when there is no data for the current datetime.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getlebatariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("gas.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 14) client = EasyEnergy(session=session) > gas: Gas = await client.gas_prices(start_date=today, end_date=today) tests/test_models.py:243: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:193: in gas_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError _______________________________ test_no_gas_data _______________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_no_gas_data(aresponses: ResponsesMockServer) -> None: """Test when there is no gas data.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getlebatariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text="[]", ), ) async with ClientSession() as session: today = date(2022, 12, 16) client = EasyEnergy(session=session) with pytest.raises(EasyEnergyNoDataError): > await client.gas_prices(start_date=today, end_date=today) tests/test_models.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:193: in gas_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ---------- coverage: platform linux, python 3.13.0-final-0 ----------- Name Stmts Miss Branch BrPart Cover Missing ---------------------------------------------------------------------- easyenergy/easyenergy.py 82 30 20 2 57% 81-123, 202-205, 259-262, 267 easyenergy/models.py 115 53 64 0 61% 26-31, 50, 67, 89, 100, 111, 125, 139, 150, 161, 172, 183, 194, 205-206, 217-218, 229, 240, 251-252, 263-264, 274, 291-297, 312-321, 342, 353, 364, 375, 385, 399-402, 417-423 ---------------------------------------------------------------------- TOTAL 212 83 84 2 62% 3 files skipped due to complete coverage. FAIL Required test coverage of 90.0% not reached. Total coverage: 61.82% =========================== short test summary info ============================ FAILED tests/test_easyenergy.py::test_json_request - easyenergy.exceptions.Ea... FAILED tests/test_easyenergy.py::test_internal_session - easyenergy.exception... FAILED tests/test_models.py::test_electricity_model_usage - easyenergy.except... FAILED tests/test_models.py::test_electricity_model_return - easyenergy.excep... FAILED tests/test_models.py::test_electricity_midnight - easyenergy.exception... FAILED tests/test_models.py::test_electricity_none_data - easyenergy.exceptio... FAILED tests/test_models.py::test_no_electricity_data - easyenergy.exceptions... FAILED tests/test_models.py::test_gas_model - easyenergy.exceptions.EasyEnerg... FAILED tests/test_models.py::test_gas_morning_model - easyenergy.exceptions.E... FAILED tests/test_models.py::test_gas_none_data - easyenergy.exceptions.EasyE... FAILED tests/test_models.py::test_no_gas_data - easyenergy.exceptions.EasyEne... ========================= 11 failed, 5 passed in 0.66s ========================= E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/python-easyenergy-2.1.2/.pybuild/cpython3_3.13/build; python3.13 -m pytest -v tests I: pybuild base:311: cd /build/reproducible-path/python-easyenergy-2.1.2/.pybuild/cpython3_3.12/build; python3.12 -m pytest -v tests /usr/lib/python3/dist-packages/pytest_asyncio/plugin.py:208: 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.7, pytest-8.3.3, pluggy-1.5.0 -- /usr/bin/python3.12 cachedir: .pytest_cache rootdir: /build/reproducible-path/python-easyenergy-2.1.2/.pybuild/cpython3_3.12/build configfile: pyproject.toml plugins: pytest_freezer-0.4.8, asyncio-0.24.0a1, cov-5.0.0, typeguard-4.4.1, aresponses-3.0.0 asyncio: mode=Mode.AUTO, default_loop_scope=None collecting ... collected 16 items tests/test_easyenergy.py::test_json_request FAILED [ 6%] tests/test_easyenergy.py::test_internal_session FAILED [ 12%] tests/test_easyenergy.py::test_timeout PASSED [ 18%] tests/test_easyenergy.py::test_content_type PASSED [ 25%] tests/test_easyenergy.py::test_client_error PASSED [ 31%] tests/test_easyenergy.py::test_dns_error PASSED [ 37%] tests/test_easyenergy.py::test_empty_dns_error PASSED [ 43%] tests/test_models.py::test_electricity_model_usage FAILED [ 50%] tests/test_models.py::test_electricity_model_return FAILED [ 56%] tests/test_models.py::test_electricity_midnight FAILED [ 62%] tests/test_models.py::test_electricity_none_data FAILED [ 68%] tests/test_models.py::test_no_electricity_data FAILED [ 75%] tests/test_models.py::test_gas_model FAILED [ 81%] tests/test_models.py::test_gas_morning_model FAILED [ 87%] tests/test_models.py::test_gas_none_data FAILED [ 93%] tests/test_models.py::test_no_gas_data FAILED [100%] =================================== FAILURES =================================== ______________________________ test_json_request _______________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'test' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_json_request(aresponses: ResponsesMockServer) -> None: """Test JSON response is handled correctly.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/test", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: client = EasyEnergy(session=session) > response = await client._request("test") tests/test_easyenergy.py:34: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'test' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ____________________________ test_internal_session _____________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=None, _close_session=False) uri = 'test' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_internal_session(aresponses: ResponsesMockServer) -> None: """Test internal session is handled correctly.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/test", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with EasyEnergy() as client: > await client._request("test") tests/test_easyenergy.py:52: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=None, _close_session=False) uri = 'test' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError _________________________ test_electricity_model_usage _________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-29 15:00:00+01:00") async def test_electricity_model_usage(aresponses: ResponsesMockServer) -> None: """Test the electricity model for usage at 15:00:00 CET.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 29) client = EasyEnergy(session=session) > energy: Electricity = await client.energy_prices( start_date=today, end_date=today, vat=VatOption.INCLUDE, ) tests/test_models.py:30: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ________________________ test_electricity_model_return _________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-29 15:00:00+01:00") async def test_electricity_model_return(aresponses: ResponsesMockServer) -> None: """Test the electricity model for return at 15:00:00 CET.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 29) client = EasyEnergy(session=session) > energy: Electricity = await client.energy_prices( start_date=today, end_date=today, vat=VatOption.INCLUDE, ) tests/test_models.py:74: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError __________________________ test_electricity_midnight ___________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-29 00:30:00+02:00") async def test_electricity_midnight(aresponses: ResponsesMockServer) -> None: """Test the electricity model between 00:00 and 01:00 with in CEST.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 29) client = EasyEnergy(session=session) > energy: Electricity = await client.energy_prices( start_date=today, end_date=today, ) tests/test_models.py:116: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError __________________________ test_electricity_none_data __________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_electricity_none_data(aresponses: ResponsesMockServer) -> None: """Test when there is no data for the current datetime.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("energy.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 29) client = EasyEnergy(session=session) > energy: Electricity = await client.energy_prices( start_date=today, end_date=today, ) tests/test_models.py:140: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ___________________________ test_no_electricity_data ___________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_no_electricity_data(aresponses: ResponsesMockServer) -> None: """Test when there is no electricity data.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getapxtariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text="[]", ), ) async with ClientSession() as session: today = date(2022, 12, 16) client = EasyEnergy(session=session) with pytest.raises(EasyEnergyNoDataError): > await client.energy_prices(start_date=today, end_date=today) tests/test_models.py:166: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:250: in energy_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getapxtariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ________________________________ test_gas_model ________________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-14 15:00:00+01:00") async def test_gas_model(aresponses: ResponsesMockServer) -> None: """Test the gas model - easyEnergy at 15:00:00 CET.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getlebatariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("gas.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 14) client = EasyEnergy(session=session) > gas: Gas = await client.gas_prices( start_date=today, end_date=today, vat=VatOption.INCLUDE, ) tests/test_models.py:185: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:193: in gas_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ____________________________ test_gas_morning_model ____________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = @pytest.mark.freeze_time("2022-12-14 04:00:00+01:00") async def test_gas_morning_model(aresponses: ResponsesMockServer) -> None: """Test the gas model in the morning - easyEnergy at 04:00:00 CET.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getlebatariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("gas.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 14) client = EasyEnergy(session=session) > gas: Gas = await client.gas_prices( start_date=today, end_date=today, vat=VatOption.INCLUDE, ) tests/test_models.py:215: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:193: in gas_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ______________________________ test_gas_none_data ______________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_gas_none_data(aresponses: ResponsesMockServer) -> None: """Test when there is no data for the current datetime.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getlebatariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text=load_fixtures("gas.json"), ), ) async with ClientSession() as session: today = date(2022, 12, 14) client = EasyEnergy(session=session) > gas: Gas = await client.gas_prices(start_date=today, end_date=today) tests/test_models.py:243: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:193: in gas_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError _______________________________ test_no_gas_data _______________________________ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: > result = await dns.query(API_HOST, "A") E aiodns.error.DNSError: (11, 'Could not contact DNS servers') easyenergy/easyenergy.py:72: DNSError The above exception was the direct cause of the following exception: aresponses = async def test_no_gas_data(aresponses: ResponsesMockServer) -> None: """Test when there is no gas data.""" aresponses.add( "mijn.easyenergy.com", "/nl/api/tariff/getlebatariffs", "GET", aresponses.Response( status=200, headers={"Content-Type": "application/json"}, text="[]", ), ) async with ClientSession() as session: today = date(2022, 12, 16) client = EasyEnergy(session=session) with pytest.raises(EasyEnergyNoDataError): > await client.gas_prices(start_date=today, end_date=today) tests/test_models.py:266: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ easyenergy/easyenergy.py:193: in gas_prices data = await self._request( _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = EasyEnergy(vat=, request_timeout=10.0, session=, _close_session=False) uri = 'getlebatariffs' async def _request( self, uri: str, *, method: str = METH_GET, params: dict[str, Any] | None = None, ) -> Any: """Handle a request to the API of easyEnergy. Args: ---- uri: Request URI, without '/', for example, 'status' method: HTTP method to use, for example, 'GET' params: Extra options to improve or limit the response. Returns: ------- A Python dictionary (json) with the response from easyEnergy. Raises: ------ EasyEnergyConnectionError: An error occurred while communicating with the API. EasyEnergyError: Received an unexpected response from the API. """ # EasyEnergy is experiencing IPv6 connection issues. # DNS returns an AAAA record with an IPv6 address, but # there doesn't appear to be something listening at that. # Workaround is to resolve the IPv4 address and use that. dns = DNSResolver() try: result = await dns.query(API_HOST, "A") except DNSError as err: msg = "Error while resolving EasyEnergy API IPv4 address" > raise EasyEnergyConnectionError(msg) from err E easyenergy.exceptions.EasyEnergyConnectionError: Error while resolving EasyEnergy API IPv4 address easyenergy/easyenergy.py:75: EasyEnergyConnectionError ---------- coverage: platform linux, python 3.12.7-final-0 ----------- Name Stmts Miss Branch BrPart Cover Missing ---------------------------------------------------------------------- easyenergy/easyenergy.py 82 30 20 2 57% 81-123, 202-205, 259-262, 267 easyenergy/models.py 115 53 64 0 61% 26-31, 50, 67, 89, 100, 111, 125, 139, 150, 161, 172, 183, 194, 205-206, 217-218, 229, 240, 251-252, 263-264, 274, 291-297, 312-321, 342, 353, 364, 375, 385, 399-402, 417-423 ---------------------------------------------------------------------- TOTAL 212 83 84 2 62% 3 files skipped due to complete coverage. FAIL Required test coverage of 90.0% not reached. Total coverage: 61.82% =========================== short test summary info ============================ FAILED tests/test_easyenergy.py::test_json_request - easyenergy.exceptions.Ea... FAILED tests/test_easyenergy.py::test_internal_session - easyenergy.exception... FAILED tests/test_models.py::test_electricity_model_usage - easyenergy.except... FAILED tests/test_models.py::test_electricity_model_return - easyenergy.excep... FAILED tests/test_models.py::test_electricity_midnight - easyenergy.exception... FAILED tests/test_models.py::test_electricity_none_data - easyenergy.exceptio... FAILED tests/test_models.py::test_no_electricity_data - easyenergy.exceptions... FAILED tests/test_models.py::test_gas_model - easyenergy.exceptions.EasyEnerg... FAILED tests/test_models.py::test_gas_morning_model - easyenergy.exceptions.E... FAILED tests/test_models.py::test_gas_none_data - easyenergy.exceptions.EasyE... FAILED tests/test_models.py::test_no_gas_data - easyenergy.exceptions.EasyEne... ========================= 11 failed, 5 passed in 0.50s ========================= E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /build/reproducible-path/python-easyenergy-2.1.2/.pybuild/cpython3_3.12/build; python3.12 -m pytest -v tests dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13 make: *** [debian/rules:9: build] Error 25 dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2 I: copying local configuration E: Failed autobuilding of package I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env I: removing directory /srv/workspace/pbuilder/1237472 and its subdirectories Tue Dec 3 16:27:45 UTC 2024 W: No second build log, what happened?