sbuild (Debian sbuild) 0.86.3~bpo12+1 (03 November 2024) on debusine-worker-arm64-demeter-06.freexian.com
+==============================================================================+
| cloud-init 24.3.1-2 (arm64) Fri, 15 Nov 2024 22:06:53 +0000 |
+==============================================================================+
Package: cloud-init
Version: 24.3.1-2
Source Version: 24.3.1-2
Distribution: sid
Machine Architecture: arm64
Host Architecture: arm64
Build Architecture: arm64
Build Type: binary
I: No tarballs found in /var/lib/debusine/worker/.cache/sbuild
Unpacking /var/lib/debusine/worker/system-images/957781/system.tar.xz to /tmp/tmp.sbuild.rs1iAUnzNz...
I: NOTICE: Log filtering will replace 'sbuild-unshare-dummy-location' with '<<CHROOT>>'
+------------------------------------------------------------------------------+
| Chroot Setup Commands |
+------------------------------------------------------------------------------+
rm -f /etc/resolv.conf
----------------------
I: Finished running 'rm -f /etc/resolv.conf'.
Finished processing commands.
--------------------------------------------------------------------------------
Copying /tmp/debusine-fetch-exec-upload-76m8sxld/dpkg-dbgsym_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-76m8sxld/dpkg_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-76m8sxld/dselect-dbgsym_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-76m8sxld/dselect_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-76m8sxld/libdpkg-dev_1.22.12~1.gbp82cafd_arm64.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-76m8sxld/dpkg-dev_1.22.12~1.gbp82cafd_all.deb to /<<CHROOT>>...
Copying /tmp/debusine-fetch-exec-upload-76m8sxld/libdpkg-perl_1.22.12~1.gbp82cafd_all.deb to /<<CHROOT>>...
I: NOTICE: Log filtering will replace 'build/cloud-init-p5oTXl/resolver-ZWvpVR' with '<<RESOLVERDIR>>'
+------------------------------------------------------------------------------+
| Update chroot |
+------------------------------------------------------------------------------+
Get:1 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ InRelease
Ign:1 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ InRelease
Get:2 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ Release [606 B]
Get:3 http://deb.debian.org/debian sid InRelease [202 kB]
Get:2 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ Release [606 B]
Get:4 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ Release.gpg
Ign:4 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ Release.gpg
Get:5 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ Packages [9246 B]
Get:6 http://deb.debian.org/debian sid/main arm64 Packages [9951 kB]
Get:7 http://deb.debian.org/debian sid/main arm64 Components [4908 kB]
Fetched 15.1 MB in 2s (6309 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
The following packages will be upgraded:
apt bsdextrautils bsdutils debianutils dpkg dpkg-dev libapt-pkg6.0t64
libaudit-common libaudit1 libblkid1 libbrotli1 libcap-ng0 libdpkg-perl
libglib2.0-0t64 libmarkdown2 libmount1 libpcre2-8-0 libseccomp2 libselinux1
libsemanage2 libsmartcols1 libuuid1 libxml2 login mount util-linux
26 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 7324 kB/10.8 MB of archives.
After this operation, 604 kB disk space will be freed.
Get:1 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ dpkg 1.22.12~1.gbp82cafd [1513 kB]
Get:2 http://deb.debian.org/debian sid/main arm64 bsdutils arm64 1:2.40.2-11 [104 kB]
Get:3 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ dpkg-dev 1.22.12~1.gbp82cafd [1337 kB]
Get:4 http://deb.debian.org/debian sid/main arm64 debianutils arm64 5.21 [92.1 kB]
Get:5 http://deb.debian.org/debian sid/main arm64 libapt-pkg6.0t64 arm64 2.9.11 [921 kB]
Get:6 file:/build/cloud-init-p5oTXl/resolver-5PeqJY/apt_archive ./ libdpkg-perl 1.22.12~1.gbp82cafd [647 kB]
Get:7 http://deb.debian.org/debian sid/main arm64 bsdextrautils arm64 2.40.2-11 [91.2 kB]
Get:8 http://deb.debian.org/debian sid/main arm64 libblkid1 arm64 2.40.2-11 [162 kB]
Get:9 http://deb.debian.org/debian sid/main arm64 libmount1 arm64 2.40.2-11 [190 kB]
Get:10 http://deb.debian.org/debian sid/main arm64 libsmartcols1 arm64 2.40.2-11 [135 kB]
Get:11 http://deb.debian.org/debian sid/main arm64 mount arm64 2.40.2-11 [153 kB]
Get:12 http://deb.debian.org/debian sid/main arm64 libuuid1 arm64 2.40.2-11 [35.7 kB]
Get:13 http://deb.debian.org/debian sid/main arm64 util-linux arm64 2.40.2-11 [1170 kB]
Get:14 http://deb.debian.org/debian sid/main arm64 libpcre2-8-0 arm64 10.44-4 [243 kB]
Get:15 http://deb.debian.org/debian sid/main arm64 libselinux1 arm64 3.7-3+b1 [72.1 kB]
Get:16 http://deb.debian.org/debian sid/main arm64 libseccomp2 arm64 2.5.5-1+b3 [46.8 kB]
Get:17 http://deb.debian.org/debian sid/main arm64 apt arm64 2.9.11 [1287 kB]
Get:18 http://deb.debian.org/debian sid/main arm64 libaudit-common all 1:4.0.2-2 [12.7 kB]
Get:19 http://deb.debian.org/debian sid/main arm64 libcap-ng0 arm64 0.8.5-3+b1 [17.0 kB]
Get:20 http://deb.debian.org/debian sid/main arm64 libaudit1 arm64 1:4.0.2-2 [54.2 kB]
Get:21 http://deb.debian.org/debian sid/main arm64 login arm64 1:4.16.0-2+really2.40.2-11 [80.0 kB]
Get:22 http://deb.debian.org/debian sid/main arm64 libbrotli1 arm64 1.1.0-2+b6 [297 kB]
Get:23 http://deb.debian.org/debian sid/main arm64 libglib2.0-0t64 arm64 2.82.2-3 [1411 kB]
Get:24 http://deb.debian.org/debian sid/main arm64 libmarkdown2 arm64 2.2.7-2.1 [33.1 kB]
Get:25 http://deb.debian.org/debian sid/main arm64 libsemanage2 arm64 3.7-2+b1 [84.5 kB]
Get:26 http://deb.debian.org/debian sid/main arm64 libxml2 arm64 2.12.7+dfsg+really2.9.14-0.2+b1 [630 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 7324 kB in 0s (50.4 MB/s)
(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 ... 17129 files and directories currently installed.)
Preparing to unpack .../bsdutils_1%3a2.40.2-11_arm64.deb ...
Unpacking bsdutils (1:2.40.2-11) over (1:2.40.2-10) ...
Setting up bsdutils (1:2.40.2-11) ...
(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 ... 17129 files and directories currently installed.)
Preparing to unpack .../debianutils_5.21_arm64.deb ...
Unpacking debianutils (5.21) over (5.20+b1) ...
Setting up debianutils (5.21) ...
(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 ... 17128 files and directories currently installed.)
Preparing to unpack .../libapt-pkg6.0t64_2.9.11_arm64.deb ...
Unpacking libapt-pkg6.0t64:arm64 (2.9.11) over (2.9.10) ...
Setting up libapt-pkg6.0t64:arm64 (2.9.11) ...
(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 ... 17128 files and directories currently installed.)
Preparing to unpack .../dpkg_1.22.12~1.gbp82cafd_arm64.deb ...
Unpacking dpkg (1.22.12~1.gbp82cafd) over (1.22.11) ...
Setting up dpkg (1.22.12~1.gbp82cafd) ...
(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 ... 17127 files and directories currently installed.)
Preparing to unpack .../bsdextrautils_2.40.2-11_arm64.deb ...
Unpacking bsdextrautils (2.40.2-11) over (2.40.2-10) ...
Preparing to unpack .../libblkid1_2.40.2-11_arm64.deb ...
Unpacking libblkid1:arm64 (2.40.2-11) over (2.40.2-10) ...
Setting up libblkid1:arm64 (2.40.2-11) ...
(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 ... 17123 files and directories currently installed.)
Preparing to unpack .../libmount1_2.40.2-11_arm64.deb ...
Unpacking libmount1:arm64 (2.40.2-11) over (2.40.2-10) ...
Setting up libmount1:arm64 (2.40.2-11) ...
(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 ... 17123 files and directories currently installed.)
Preparing to unpack .../libsmartcols1_2.40.2-11_arm64.deb ...
Unpacking libsmartcols1:arm64 (2.40.2-11) over (2.40.2-10) ...
Setting up libsmartcols1:arm64 (2.40.2-11) ...
(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 ... 17123 files and directories currently installed.)
Preparing to unpack .../mount_2.40.2-11_arm64.deb ...
Unpacking mount (2.40.2-11) over (2.40.2-10) ...
Preparing to unpack .../libuuid1_2.40.2-11_arm64.deb ...
Unpacking libuuid1:arm64 (2.40.2-11) over (2.40.2-10) ...
Setting up libuuid1:arm64 (2.40.2-11) ...
(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 ... 17123 files and directories currently installed.)
Preparing to unpack .../util-linux_2.40.2-11_arm64.deb ...
Unpacking util-linux (2.40.2-11) over (2.40.2-10) ...
Setting up util-linux (2.40.2-11) ...
(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 ... 17120 files and directories currently installed.)
Preparing to unpack .../libpcre2-8-0_10.44-4_arm64.deb ...
Unpacking libpcre2-8-0:arm64 (10.44-4) over (10.42-4+b2) ...
Setting up libpcre2-8-0:arm64 (10.44-4) ...
(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 ... 17119 files and directories currently installed.)
Preparing to unpack .../libselinux1_3.7-3+b1_arm64.deb ...
Unpacking libselinux1:arm64 (3.7-3+b1) over (3.7-3) ...
Setting up libselinux1:arm64 (3.7-3+b1) ...
(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 ... 17120 files and directories currently installed.)
Preparing to unpack .../libseccomp2_2.5.5-1+b3_arm64.deb ...
Unpacking libseccomp2:arm64 (2.5.5-1+b3) over (2.5.5-1+b2) ...
Setting up libseccomp2:arm64 (2.5.5-1+b3) ...
(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 ... 17120 files and directories currently installed.)
Preparing to unpack .../archives/apt_2.9.11_arm64.deb ...
Unpacking apt (2.9.11) over (2.9.10) ...
Setting up apt (2.9.11) ...
(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 ... 17117 files and directories currently installed.)
Preparing to unpack .../libaudit-common_1%3a4.0.2-2_all.deb ...
Unpacking libaudit-common (1:4.0.2-2) over (1:4.0.1-3) ...
Setting up libaudit-common (1:4.0.2-2) ...
(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 ... 17117 files and directories currently installed.)
Preparing to unpack .../libcap-ng0_0.8.5-3+b1_arm64.deb ...
Unpacking libcap-ng0:arm64 (0.8.5-3+b1) over (0.8.5-3) ...
Setting up libcap-ng0:arm64 (0.8.5-3+b1) ...
(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 ... 17118 files and directories currently installed.)
Preparing to unpack .../libaudit1_1%3a4.0.2-2_arm64.deb ...
Unpacking libaudit1:arm64 (1:4.0.2-2) over (1:4.0.1-3) ...
Setting up libaudit1:arm64 (1:4.0.2-2) ...
(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 ... 17118 files and directories currently installed.)
Preparing to unpack .../0-login_1%3a4.16.0-2+really2.40.2-11_arm64.deb ...
Unpacking login (1:4.16.0-2+really2.40.2-11) over (1:4.16.0-2+really2.40.2-10) ...
Preparing to unpack .../1-dpkg-dev_1.22.12~1.gbp82cafd_all.deb ...
Unpacking dpkg-dev (1.22.12~1.gbp82cafd) over (1.22.11) ...
Preparing to unpack .../2-libdpkg-perl_1.22.12~1.gbp82cafd_all.deb ...
Unpacking libdpkg-perl (1.22.12~1.gbp82cafd) over (1.22.11) ...
Preparing to unpack .../3-libbrotli1_1.1.0-2+b6_arm64.deb ...
Unpacking libbrotli1:arm64 (1.1.0-2+b6) over (1.1.0-2+b5) ...
Preparing to unpack .../4-libglib2.0-0t64_2.82.2-3_arm64.deb ...
Unpacking libglib2.0-0t64:arm64 (2.82.2-3) over (2.82.2-2) ...
Preparing to unpack .../5-libmarkdown2_2.2.7-2.1_arm64.deb ...
Unpacking libmarkdown2:arm64 (2.2.7-2.1) over (2.2.7-2+b1) ...
Preparing to unpack .../6-libsemanage2_3.7-2+b1_arm64.deb ...
Unpacking libsemanage2:arm64 (3.7-2+b1) over (3.7-2) ...
Preparing to unpack .../7-libxml2_2.12.7+dfsg+really2.9.14-0.2+b1_arm64.deb ...
Unpacking libxml2:arm64 (2.12.7+dfsg+really2.9.14-0.2+b1) over (2.12.7+dfsg+really2.9.14-0.1) ...
Setting up bsdextrautils (2.40.2-11) ...
Setting up libbrotli1:arm64 (1.1.0-2+b6) ...
Setting up libglib2.0-0t64:arm64 (2.82.2-3) ...
No schema files found: doing nothing.
Setting up libdpkg-perl (1.22.12~1.gbp82cafd) ...
Setting up mount (2.40.2-11) ...
Setting up libsemanage2:arm64 (3.7-2+b1) ...
Setting up libxml2:arm64 (2.12.7+dfsg+really2.9.14-0.2+b1) ...
Setting up libmarkdown2:arm64 (2.2.7-2.1) ...
Setting up login (1:4.16.0-2+really2.40.2-11) ...
Setting up dpkg-dev (1.22.12~1.gbp82cafd) ...
Processing triggers for man-db (2.13.0-1) ...
Processing triggers for libc-bin (2.40-3) ...
+------------------------------------------------------------------------------+
| Fetch source files |
+------------------------------------------------------------------------------+
Local sources
-------------
/tmp/debusine-fetch-exec-upload-76m8sxld/cloud-init_24.3.1-2.dsc exists in /tmp/debusine-fetch-exec-upload-76m8sxld; copying to chroot
I: NOTICE: Log filtering will replace 'build/cloud-init-p5oTXl/cloud-init-24.3.1' with '<<PKGBUILDDIR>>'
I: NOTICE: Log filtering will replace 'build/cloud-init-p5oTXl' with '<<BUILDDIR>>'
+------------------------------------------------------------------------------+
| Install package build dependencies |
+------------------------------------------------------------------------------+
Setup apt archive
-----------------
Merged Build-Depends: debhelper-compat (= 13), dh-python, iproute2, passwd, po-debconf, procps, pkgconf, pylint, python3-all, python3-pep8, python3-setuptools, systemd-dev | systemd, build-essential, fakeroot, python3-configobj, python3-httpretty (>= 0.9.5), python3-jinja2, python3-jsonpatch, python3-jsonschema, python3-netifaces, python3-oauthlib, python3-passlib, python3-pyflakes, python3-pytest, python3-pytest-mock, python3-requests, python3-responses, python3-serial, python3-yaml
Filtered Build-Depends: debhelper-compat (= 13), dh-python, iproute2, passwd, po-debconf, procps, pkgconf, pylint, python3-all, python3-pep8, python3-setuptools, systemd-dev, build-essential, fakeroot, python3-configobj, python3-httpretty (>= 0.9.5), python3-jinja2, python3-jsonpatch, python3-jsonschema, python3-netifaces, python3-oauthlib, python3-passlib, python3-pyflakes, python3-pytest, python3-pytest-mock, python3-requests, python3-responses, python3-serial, python3-yaml
dpkg-deb: warning: root directory has unusual owner or group 998:999.
Hint: either pass --root-owner-group, see dpkg-build-api(7) or add an explicit 'Rules-Requires-Root: no' in debian/control.
dpkg-deb: warning: ignoring 1 warning about the control file(s)
dpkg-deb: building package 'sbuild-build-depends-main-dummy' in '/<<RESOLVERDIR>>/apt_archive/sbuild-build-depends-main-dummy.deb'.
Ign:1 copy:/<<RESOLVERDIR>>/apt_archive ./ InRelease
Get:2 copy:/<<RESOLVERDIR>>/apt_archive ./ Release [615 B]
Ign:3 copy:/<<RESOLVERDIR>>/apt_archive ./ Release.gpg
Get:4 copy:/<<RESOLVERDIR>>/apt_archive ./ Sources [1064 B]
Get:5 copy:/<<RESOLVERDIR>>/apt_archive ./ Packages [1056 B]
Fetched 2735 B in 0s (225 kB/s)
Reading package lists...
Get:1 file:/<<BUILDDIR>>/resolver-5PeqJY/apt_archive ./ InRelease
Ign:1 file:/<<BUILDDIR>>/resolver-5PeqJY/apt_archive ./ InRelease
Get:2 file:/<<BUILDDIR>>/resolver-5PeqJY/apt_archive ./ Release [606 B]
Get:2 file:/<<BUILDDIR>>/resolver-5PeqJY/apt_archive ./ Release [606 B]
Get:3 file:/<<BUILDDIR>>/resolver-5PeqJY/apt_archive ./ Release.gpg
Ign:3 file:/<<BUILDDIR>>/resolver-5PeqJY/apt_archive ./ Release.gpg
Reading package lists...
Reading package lists...
Install main build dependencies (apt-based resolver)
----------------------------------------------------
Installing build dependencies
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
autoconf automake autopoint autotools-dev build-essential cpp cpp-14
cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper dh-autoreconf
dh-python dh-strip-nondeterminism dwz fakeroot g++ g++-14
g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14
gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu iproute2 libasan8 libbpf1
libc-dev-bin libc6-dev libcap2-bin libcc1-0 libcrypt-dev libdebhelper-perl
libelf1t64 libexpat1 libfakeroot libfile-stripnondeterminism-perl
libgcc-14-dev libhwasan0 libisl23 libitm1 libjs-jquery libjs-sphinxdoc
libjs-underscore liblsan0 libmnl0 libmpc3 libmpfr6 libncursesw6 libnsl2
libpkgconf3 libproc2-0 libpython3-stdlib libpython3.12-minimal
libpython3.12-stdlib libpython3.13-minimal libpython3.13-stdlib
libstdc++-14-dev libtirpc-common libtirpc3t64 libtool libtsan2 libubsan1
libxtables12 linux-libc-dev m4 media-types pkgconf pkgconf-bin po-debconf
procps pylint python3 python3-all python3-astroid python3-attr
python3-autocommand python3-bcrypt python3-blinker python3-certifi
python3-cffi-backend python3-chardet python3-charset-normalizer
python3-configobj python3-cryptography python3-dill python3-httpretty
python3-idna python3-inflect python3-iniconfig python3-isort
python3-jaraco.context python3-jaraco.functools python3-jaraco.text
python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema
python3-jsonschema-specifications python3-jwt python3-logilab-common
python3-markupsafe python3-mccabe python3-minimal python3-more-itertools
python3-mypy-extensions python3-netifaces python3-oauthlib python3-packaging
python3-passlib python3-pep8 python3-pkg-resources python3-platformdirs
python3-pluggy python3-pyflakes python3-pytest python3-pytest-mock
python3-referencing python3-requests python3-responses python3-rpds-py
python3-serial python3-setuptools python3-tomlkit python3-typeguard
python3-typing-extensions python3-urllib3 python3-yaml python3-zipp
python3.12 python3.12-minimal python3.13 python3.13-minimal rpcsvc-proto
systemd-dev
Suggested packages:
autoconf-archive gnu-standards autoconf-doc cpp-doc gcc-14-locales
cpp-14-doc dh-make flit python3-build python3-installer python3-wheel
gcc-14-doc gcc-multilib manpages-dev flex bison gdb gcc-doc
gdb-aarch64-linux-gnu libc-devtools glibc-doc libstdc++-14-doc libtool-doc
gfortran | fortran95-compiler gcj-jdk m4-doc libmail-box-perl python3-doc
python3-tk python3-venv python-attr-doc python-blinker-doc
python-charset-normalizer-doc python-configobj-doc python-cryptography-doc
python3-cryptography-vectors python3-objgraph python-jinja2-doc
python-jsonschema-doc python3-crypto python-pytest-mock-doc python3-openssl
python3-socks python-requests-doc python3-wxgtk3.0 | python3-wxgtk
python-setuptools-doc python3-brotli python3.12-venv python3.12-doc
binfmt-support python3.13-venv python3.13-doc
Recommended packages:
manpages manpages-dev libpam-cap libarchive-cpio-perl javascript-common
libgpm2 libltdl-dev libmail-sendmail-perl psmisc linux-sysctl-defaults
python3-tk python3-babel python3-rfc3987 python3-uritemplate
python3-webcolors pycodestyle pyflakes3 python3-pygments
The following NEW packages will be installed:
autoconf automake autopoint autotools-dev build-essential cpp cpp-14
cpp-14-aarch64-linux-gnu cpp-aarch64-linux-gnu debhelper dh-autoreconf
dh-python dh-strip-nondeterminism dwz fakeroot g++ g++-14
g++-14-aarch64-linux-gnu g++-aarch64-linux-gnu gcc gcc-14
gcc-14-aarch64-linux-gnu gcc-aarch64-linux-gnu iproute2 libasan8 libbpf1
libc-dev-bin libc6-dev libcap2-bin libcc1-0 libcrypt-dev libdebhelper-perl
libelf1t64 libexpat1 libfakeroot libfile-stripnondeterminism-perl
libgcc-14-dev libhwasan0 libisl23 libitm1 libjs-jquery libjs-sphinxdoc
libjs-underscore liblsan0 libmnl0 libmpc3 libmpfr6 libncursesw6 libnsl2
libpkgconf3 libproc2-0 libpython3-stdlib libpython3.12-minimal
libpython3.12-stdlib libpython3.13-minimal libpython3.13-stdlib
libstdc++-14-dev libtirpc-common libtirpc3t64 libtool libtsan2 libubsan1
libxtables12 linux-libc-dev m4 media-types pkgconf pkgconf-bin po-debconf
procps pylint python3 python3-all python3-astroid python3-attr
python3-autocommand python3-bcrypt python3-blinker python3-certifi
python3-cffi-backend python3-chardet python3-charset-normalizer
python3-configobj python3-cryptography python3-dill python3-httpretty
python3-idna python3-inflect python3-iniconfig python3-isort
python3-jaraco.context python3-jaraco.functools python3-jaraco.text
python3-jinja2 python3-json-pointer python3-jsonpatch python3-jsonschema
python3-jsonschema-specifications python3-jwt python3-logilab-common
python3-markupsafe python3-mccabe python3-minimal python3-more-itertools
python3-mypy-extensions python3-netifaces python3-oauthlib python3-packaging
python3-passlib python3-pep8 python3-pkg-resources python3-platformdirs
python3-pluggy python3-pyflakes python3-pytest python3-pytest-mock
python3-referencing python3-requests python3-responses python3-rpds-py
python3-serial python3-setuptools python3-tomlkit python3-typeguard
python3-typing-extensions python3-urllib3 python3-yaml python3-zipp
python3.12 python3.12-minimal python3.13 python3.13-minimal rpcsvc-proto
sbuild-build-depends-main-dummy systemd-dev
0 upgraded, 135 newly installed, 0 to remove and 0 not upgraded.
Need to get 80.9 MB of archives.
After this operation, 331 MB of additional disk space will be used.
Get:1 copy:/<<RESOLVERDIR>>/apt_archive ./ sbuild-build-depends-main-dummy 0.invalid.0 [1060 B]
Get:2 http://deb.debian.org/debian sid/main arm64 libpython3.12-minimal arm64 3.12.7-3 [808 kB]
Get:3 http://deb.debian.org/debian sid/main arm64 libexpat1 arm64 2.6.4-1 [90.7 kB]
Get:4 http://deb.debian.org/debian sid/main arm64 python3.12-minimal arm64 3.12.7-3 [1940 kB]
Get:5 http://deb.debian.org/debian sid/main arm64 python3-minimal arm64 3.12.7-1 [26.8 kB]
Get:6 http://deb.debian.org/debian sid/main arm64 media-types all 10.1.0 [26.9 kB]
Get:7 http://deb.debian.org/debian sid/main arm64 libncursesw6 arm64 6.5-2+b1 [125 kB]
Get:8 http://deb.debian.org/debian sid/main arm64 libtirpc-common all 1.3.4+ds-1.3 [10.9 kB]
Get:9 http://deb.debian.org/debian sid/main arm64 libtirpc3t64 arm64 1.3.4+ds-1.3+b1 [78.7 kB]
Get:10 http://deb.debian.org/debian sid/main arm64 libnsl2 arm64 1.3.0-3+b3 [37.9 kB]
Get:11 http://deb.debian.org/debian sid/main arm64 libpython3.12-stdlib arm64 3.12.7-3 [1902 kB]
Get:12 http://deb.debian.org/debian sid/main arm64 python3.12 arm64 3.12.7-3 [671 kB]
Get:13 http://deb.debian.org/debian sid/main arm64 libpython3-stdlib arm64 3.12.7-1 [9708 B]
Get:14 http://deb.debian.org/debian sid/main arm64 python3 arm64 3.12.7-1 [27.8 kB]
Get:15 http://deb.debian.org/debian sid/main arm64 libpython3.13-minimal arm64 3.13.0-2 [850 kB]
Get:16 http://deb.debian.org/debian sid/main arm64 python3.13-minimal arm64 3.13.0-2 [1838 kB]
Get:17 http://deb.debian.org/debian sid/main arm64 libelf1t64 arm64 0.192-4 [189 kB]
Get:18 http://deb.debian.org/debian sid/main arm64 libbpf1 arm64 1:1.5.0-1 [159 kB]
Get:19 http://deb.debian.org/debian sid/main arm64 libmnl0 arm64 1.0.5-3 [11.9 kB]
Get:20 http://deb.debian.org/debian sid/main arm64 libxtables12 arm64 1.8.11-1 [30.5 kB]
Get:21 http://deb.debian.org/debian sid/main arm64 libcap2-bin arm64 1:2.66-5+b1 [34.3 kB]
Get:22 http://deb.debian.org/debian sid/main arm64 iproute2 arm64 6.11.0-1 [1035 kB]
Get:23 http://deb.debian.org/debian sid/main arm64 libproc2-0 arm64 2:4.0.4-6 [62.3 kB]
Get:24 http://deb.debian.org/debian sid/main arm64 procps arm64 2:4.0.4-6 [872 kB]
Get:25 http://deb.debian.org/debian sid/main arm64 m4 arm64 1.4.19-4 [277 kB]
Get:26 http://deb.debian.org/debian sid/main arm64 autoconf all 2.72-3 [493 kB]
Get:27 http://deb.debian.org/debian sid/main arm64 autotools-dev all 20220109.1 [51.6 kB]
Get:28 http://deb.debian.org/debian sid/main arm64 automake all 1:1.16.5-1.3 [823 kB]
Get:29 http://deb.debian.org/debian sid/main arm64 autopoint all 0.22.5-2 [723 kB]
Get:30 http://deb.debian.org/debian sid/main arm64 libc-dev-bin arm64 2.40-3 [50.9 kB]
Get:31 http://deb.debian.org/debian sid/main arm64 linux-libc-dev all 6.11.7-1 [2454 kB]
Get:32 http://deb.debian.org/debian sid/main arm64 libcrypt-dev arm64 1:4.4.36-5 [122 kB]
Get:33 http://deb.debian.org/debian sid/main arm64 rpcsvc-proto arm64 1.4.3-1+b1 [60.5 kB]
Get:34 http://deb.debian.org/debian sid/main arm64 libc6-dev arm64 2.40-3 [1591 kB]
Get:35 http://deb.debian.org/debian sid/main arm64 libisl23 arm64 0.27-1 [601 kB]
Get:36 http://deb.debian.org/debian sid/main arm64 libmpfr6 arm64 4.2.1-1+b2 [680 kB]
Get:37 http://deb.debian.org/debian sid/main arm64 libmpc3 arm64 1.3.1-1+b3 [50.5 kB]
Get:38 http://deb.debian.org/debian sid/main arm64 cpp-14-aarch64-linux-gnu arm64 14.2.0-8 [9166 kB]
Get:39 http://deb.debian.org/debian sid/main arm64 cpp-14 arm64 14.2.0-8 [1284 B]
Get:40 http://deb.debian.org/debian sid/main arm64 cpp-aarch64-linux-gnu arm64 4:14.2.0-1 [4832 B]
Get:41 http://deb.debian.org/debian sid/main arm64 cpp arm64 4:14.2.0-1 [1568 B]
Get:42 http://deb.debian.org/debian sid/main arm64 libcc1-0 arm64 14.2.0-8 [42.2 kB]
Get:43 http://deb.debian.org/debian sid/main arm64 libitm1 arm64 14.2.0-8 [24.2 kB]
Get:44 http://deb.debian.org/debian sid/main arm64 libasan8 arm64 14.2.0-8 [2579 kB]
Get:45 http://deb.debian.org/debian sid/main arm64 liblsan0 arm64 14.2.0-8 [1161 kB]
Get:46 http://deb.debian.org/debian sid/main arm64 libtsan2 arm64 14.2.0-8 [2386 kB]
Get:47 http://deb.debian.org/debian sid/main arm64 libubsan1 arm64 14.2.0-8 [1039 kB]
Get:48 http://deb.debian.org/debian sid/main arm64 libhwasan0 arm64 14.2.0-8 [1442 kB]
Get:49 http://deb.debian.org/debian sid/main arm64 libgcc-14-dev arm64 14.2.0-8 [2365 kB]
Get:50 http://deb.debian.org/debian sid/main arm64 gcc-14-aarch64-linux-gnu arm64 14.2.0-8 [17.7 MB]
Get:51 http://deb.debian.org/debian sid/main arm64 gcc-14 arm64 14.2.0-8 [519 kB]
Get:52 http://deb.debian.org/debian sid/main arm64 gcc-aarch64-linux-gnu arm64 4:14.2.0-1 [1440 B]
Get:53 http://deb.debian.org/debian sid/main arm64 gcc arm64 4:14.2.0-1 [5136 B]
Get:54 http://deb.debian.org/debian sid/main arm64 libstdc++-14-dev arm64 14.2.0-8 [2267 kB]
Get:55 http://deb.debian.org/debian sid/main arm64 g++-14-aarch64-linux-gnu arm64 14.2.0-8 [10.1 MB]
Get:56 http://deb.debian.org/debian sid/main arm64 g++-14 arm64 14.2.0-8 [20.2 kB]
Get:57 http://deb.debian.org/debian sid/main arm64 g++-aarch64-linux-gnu arm64 4:14.2.0-1 [1200 B]
Get:58 http://deb.debian.org/debian sid/main arm64 g++ arm64 4:14.2.0-1 [1332 B]
Get:59 http://deb.debian.org/debian sid/main arm64 build-essential arm64 12.12 [4624 B]
Get:60 http://deb.debian.org/debian sid/main arm64 libdebhelper-perl all 13.20 [89.7 kB]
Get:61 http://deb.debian.org/debian sid/main arm64 libtool all 2.4.7-8 [517 kB]
Get:62 http://deb.debian.org/debian sid/main arm64 dh-autoreconf all 20 [17.1 kB]
Get:63 http://deb.debian.org/debian sid/main arm64 libfile-stripnondeterminism-perl all 1.14.0-1 [19.5 kB]
Get:64 http://deb.debian.org/debian sid/main arm64 dh-strip-nondeterminism all 1.14.0-1 [8448 B]
Get:65 http://deb.debian.org/debian sid/main arm64 dwz arm64 0.15-1+b1 [102 kB]
Get:66 http://deb.debian.org/debian sid/main arm64 po-debconf all 1.0.21+nmu1 [248 kB]
Get:67 http://deb.debian.org/debian sid/main arm64 debhelper all 13.20 [915 kB]
Get:68 http://deb.debian.org/debian sid/main arm64 python3-autocommand all 2.2.2-3 [13.6 kB]
Get:69 http://deb.debian.org/debian sid/main arm64 python3-more-itertools all 10.5.0-1 [63.8 kB]
Get:70 http://deb.debian.org/debian sid/main arm64 python3-typing-extensions all 4.12.2-2 [73.0 kB]
Get:71 http://deb.debian.org/debian sid/main arm64 python3-typeguard all 4.4.1-1 [37.0 kB]
Get:72 http://deb.debian.org/debian sid/main arm64 python3-inflect all 7.3.1-2 [32.4 kB]
Get:73 http://deb.debian.org/debian sid/main arm64 python3-jaraco.context all 6.0.0-1 [7984 B]
Get:74 http://deb.debian.org/debian sid/main arm64 python3-jaraco.functools all 4.1.0-1 [12.0 kB]
Get:75 http://deb.debian.org/debian sid/main arm64 python3-pkg-resources all 75.2.0-1 [213 kB]
Get:76 http://deb.debian.org/debian sid/main arm64 python3-jaraco.text all 4.0.0-1 [11.4 kB]
Get:77 http://deb.debian.org/debian sid/main arm64 python3-zipp all 3.21.0-1 [10.6 kB]
Get:78 http://deb.debian.org/debian sid/main arm64 python3-setuptools all 75.2.0-1 [731 kB]
Get:79 http://deb.debian.org/debian sid/main arm64 dh-python all 6.20241024 [109 kB]
Get:80 http://deb.debian.org/debian sid/main arm64 libfakeroot arm64 1.36-1 [29.1 kB]
Get:81 http://deb.debian.org/debian sid/main arm64 fakeroot arm64 1.36-1 [74.4 kB]
Get:82 http://deb.debian.org/debian sid/main arm64 libjs-jquery all 3.6.1+dfsg+~3.5.14-1 [326 kB]
Get:83 http://deb.debian.org/debian sid/main arm64 libjs-underscore all 1.13.4~dfsg+~1.11.4-3 [116 kB]
Get:84 http://deb.debian.org/debian sid/main arm64 libjs-sphinxdoc all 7.4.7-4 [158 kB]
Get:85 http://deb.debian.org/debian sid/main arm64 libpkgconf3 arm64 1.8.1-4 [35.3 kB]
Get:86 http://deb.debian.org/debian sid/main arm64 libpython3.13-stdlib arm64 3.13.0-2 [1922 kB]
Get:87 http://deb.debian.org/debian sid/main arm64 pkgconf-bin arm64 1.8.1-4 [29.6 kB]
Get:88 http://deb.debian.org/debian sid/main arm64 pkgconf arm64 1.8.1-4 [26.1 kB]
Get:89 http://deb.debian.org/debian sid/main arm64 python3-astroid all 3.3.5-1 [212 kB]
Get:90 http://deb.debian.org/debian sid/main arm64 python3-isort all 5.13.2-2 [71.7 kB]
Get:91 http://deb.debian.org/debian sid/main arm64 python3-mypy-extensions all 1.0.0-1 [6064 B]
Get:92 http://deb.debian.org/debian sid/main arm64 python3-logilab-common all 2.0.0-1 [343 kB]
Get:93 http://deb.debian.org/debian sid/main arm64 python3-dill all 0.3.9-1 [83.5 kB]
Get:94 http://deb.debian.org/debian sid/main arm64 python3-mccabe all 0.7.0-1 [10.5 kB]
Get:95 http://deb.debian.org/debian sid/main arm64 python3-platformdirs all 4.3.6-1 [16.6 kB]
Get:96 http://deb.debian.org/debian sid/main arm64 python3-tomlkit all 0.13.2-1 [42.7 kB]
Get:97 http://deb.debian.org/debian sid/main arm64 pylint all 3.3.1-2 [340 kB]
Get:98 http://deb.debian.org/debian sid/main arm64 python3.13 arm64 3.13.0-2 [730 kB]
Get:99 http://deb.debian.org/debian sid/main arm64 python3-all arm64 3.12.7-1 [1052 B]
Get:100 http://deb.debian.org/debian sid/main arm64 python3-attr all 24.2.0-1 [68.4 kB]
Get:101 http://deb.debian.org/debian sid/main arm64 python3-bcrypt arm64 4.2.0-2 [188 kB]
Get:102 http://deb.debian.org/debian sid/main arm64 python3-blinker all 1.8.2-1 [13.1 kB]
Get:103 http://deb.debian.org/debian sid/main arm64 python3-certifi all 2024.8.30+dfsg-1 [9576 B]
Get:104 http://deb.debian.org/debian sid/main arm64 python3-cffi-backend arm64 1.17.1-2+b1 [94.8 kB]
Get:105 http://deb.debian.org/debian sid/main arm64 python3-chardet all 5.2.0+dfsg-1 [107 kB]
Get:106 http://deb.debian.org/debian sid/main arm64 python3-charset-normalizer arm64 3.4.0-1+b1 [129 kB]
Get:107 http://deb.debian.org/debian sid/main arm64 python3-configobj all 5.0.9-1 [34.0 kB]
Get:108 http://deb.debian.org/debian sid/main arm64 python3-cryptography arm64 43.0.0-1 [835 kB]
Get:109 http://deb.debian.org/debian sid/main arm64 python3-urllib3 all 2.0.7-2 [111 kB]
Get:110 http://deb.debian.org/debian sid/main arm64 python3-httpretty all 1.1.4-4 [22.7 kB]
Get:111 http://deb.debian.org/debian sid/main arm64 python3-idna all 3.8-2 [41.6 kB]
Get:112 http://deb.debian.org/debian sid/main arm64 python3-iniconfig all 1.1.1-2 [6396 B]
Get:113 http://deb.debian.org/debian sid/main arm64 python3-markupsafe arm64 2.1.5-1+b3 [14.0 kB]
Get:114 http://deb.debian.org/debian sid/main arm64 python3-jinja2 all 3.1.3-1 [119 kB]
Get:115 http://deb.debian.org/debian sid/main arm64 python3-json-pointer all 2.4-2 [14.6 kB]
Get:116 http://deb.debian.org/debian sid/main arm64 python3-jsonpatch all 1.32-4 [12.0 kB]
Get:117 http://deb.debian.org/debian sid/main arm64 python3-rpds-py arm64 0.21.0-1 [223 kB]
Get:118 http://deb.debian.org/debian sid/main arm64 python3-referencing all 0.35.1-1 [23.5 kB]
Get:119 http://deb.debian.org/debian sid/main arm64 python3-jsonschema-specifications all 2023.12.1-2 [9020 B]
Get:120 http://deb.debian.org/debian sid/main arm64 python3-jsonschema all 4.19.2-5 [71.4 kB]
Get:121 http://deb.debian.org/debian sid/main arm64 python3-jwt all 2.7.0-1 [29.7 kB]
Get:122 http://deb.debian.org/debian sid/main arm64 python3-netifaces arm64 0.11.0-2+b5 [17.3 kB]
Get:123 http://deb.debian.org/debian sid/main arm64 python3-oauthlib all 3.2.2-2 [95.5 kB]
Get:124 http://deb.debian.org/debian sid/main arm64 python3-packaging all 24.1-1 [45.8 kB]
Get:125 http://deb.debian.org/debian sid/main arm64 python3-passlib all 1.7.4-4 [367 kB]
Get:126 http://deb.debian.org/debian sid/main arm64 python3-pep8 all 1.7.1-11 [38.3 kB]
Get:127 http://deb.debian.org/debian sid/main arm64 python3-pluggy all 1.5.0-1 [26.9 kB]
Get:128 http://deb.debian.org/debian sid/main arm64 python3-pyflakes all 3.2.0-1 [57.1 kB]
Get:129 http://deb.debian.org/debian sid/main arm64 python3-pytest all 8.3.3-1 [249 kB]
Get:130 http://deb.debian.org/debian sid/main arm64 python3-pytest-mock all 3.14.0-2 [18.3 kB]
Get:131 http://deb.debian.org/debian sid/main arm64 python3-requests all 2.32.3+dfsg-1 [71.9 kB]
Get:132 http://deb.debian.org/debian sid/main arm64 python3-yaml arm64 6.0.2-1+b1 [148 kB]
Get:133 http://deb.debian.org/debian sid/main arm64 python3-responses all 0.25.3-1 [59.4 kB]
Get:134 http://deb.debian.org/debian sid/main arm64 python3-serial all 3.5-2 [88.2 kB]
Get:135 http://deb.debian.org/debian sid/main arm64 systemd-dev all 257~rc1-4 [68.8 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 80.9 MB in 1s (90.9 MB/s)
Selecting previously unselected package libpython3.12-minimal:arm64.
(Reading database ... 17119 files and directories currently installed.)
Preparing to unpack .../libpython3.12-minimal_3.12.7-3_arm64.deb ...
Unpacking libpython3.12-minimal:arm64 (3.12.7-3) ...
Selecting previously unselected package libexpat1:arm64.
Preparing to unpack .../libexpat1_2.6.4-1_arm64.deb ...
Unpacking libexpat1:arm64 (2.6.4-1) ...
Selecting previously unselected package python3.12-minimal.
Preparing to unpack .../python3.12-minimal_3.12.7-3_arm64.deb ...
Unpacking python3.12-minimal (3.12.7-3) ...
Setting up libpython3.12-minimal:arm64 (3.12.7-3) ...
Setting up libexpat1:arm64 (2.6.4-1) ...
Setting up python3.12-minimal (3.12.7-3) ...
Selecting previously unselected package python3-minimal.
(Reading database ... 17439 files and directories currently installed.)
Preparing to unpack .../0-python3-minimal_3.12.7-1_arm64.deb ...
Unpacking python3-minimal (3.12.7-1) ...
Selecting previously unselected package media-types.
Preparing to unpack .../1-media-types_10.1.0_all.deb ...
Unpacking media-types (10.1.0) ...
Selecting previously unselected package libncursesw6:arm64.
Preparing to unpack .../2-libncursesw6_6.5-2+b1_arm64.deb ...
Unpacking libncursesw6:arm64 (6.5-2+b1) ...
Selecting previously unselected package libtirpc-common.
Preparing to unpack .../3-libtirpc-common_1.3.4+ds-1.3_all.deb ...
Unpacking libtirpc-common (1.3.4+ds-1.3) ...
Selecting previously unselected package libtirpc3t64:arm64.
Preparing to unpack .../4-libtirpc3t64_1.3.4+ds-1.3+b1_arm64.deb ...
Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3 to /lib/aarch64-linux-gnu/libtirpc.so.3.usr-is-merged by libtirpc3t64'
Adding 'diversion of /lib/aarch64-linux-gnu/libtirpc.so.3.0.0 to /lib/aarch64-linux-gnu/libtirpc.so.3.0.0.usr-is-merged by libtirpc3t64'
Unpacking libtirpc3t64:arm64 (1.3.4+ds-1.3+b1) ...
Selecting previously unselected package libnsl2:arm64.
Preparing to unpack .../5-libnsl2_1.3.0-3+b3_arm64.deb ...
Unpacking libnsl2:arm64 (1.3.0-3+b3) ...
Selecting previously unselected package libpython3.12-stdlib:arm64.
Preparing to unpack .../6-libpython3.12-stdlib_3.12.7-3_arm64.deb ...
Unpacking libpython3.12-stdlib:arm64 (3.12.7-3) ...
Selecting previously unselected package python3.12.
Preparing to unpack .../7-python3.12_3.12.7-3_arm64.deb ...
Unpacking python3.12 (3.12.7-3) ...
Selecting previously unselected package libpython3-stdlib:arm64.
Preparing to unpack .../8-libpython3-stdlib_3.12.7-1_arm64.deb ...
Unpacking libpython3-stdlib:arm64 (3.12.7-1) ...
Setting up python3-minimal (3.12.7-1) ...
Selecting previously unselected package python3.
(Reading database ... 17912 files and directories currently installed.)
Preparing to unpack .../000-python3_3.12.7-1_arm64.deb ...
Unpacking python3 (3.12.7-1) ...
Selecting previously unselected package libpython3.13-minimal:arm64.
Preparing to unpack .../001-libpython3.13-minimal_3.13.0-2_arm64.deb ...
Unpacking libpython3.13-minimal:arm64 (3.13.0-2) ...
Selecting previously unselected package python3.13-minimal.
Preparing to unpack .../002-python3.13-minimal_3.13.0-2_arm64.deb ...
Unpacking python3.13-minimal (3.13.0-2) ...
Selecting previously unselected package libelf1t64:arm64.
Preparing to unpack .../003-libelf1t64_0.192-4_arm64.deb ...
Unpacking libelf1t64:arm64 (0.192-4) ...
Selecting previously unselected package libbpf1:arm64.
Preparing to unpack .../004-libbpf1_1%3a1.5.0-1_arm64.deb ...
Unpacking libbpf1:arm64 (1:1.5.0-1) ...
Selecting previously unselected package libmnl0:arm64.
Preparing to unpack .../005-libmnl0_1.0.5-3_arm64.deb ...
Unpacking libmnl0:arm64 (1.0.5-3) ...
Selecting previously unselected package libxtables12:arm64.
Preparing to unpack .../006-libxtables12_1.8.11-1_arm64.deb ...
Unpacking libxtables12:arm64 (1.8.11-1) ...
Selecting previously unselected package libcap2-bin.
Preparing to unpack .../007-libcap2-bin_1%3a2.66-5+b1_arm64.deb ...
Unpacking libcap2-bin (1:2.66-5+b1) ...
Selecting previously unselected package iproute2.
Preparing to unpack .../008-iproute2_6.11.0-1_arm64.deb ...
Unpacking iproute2 (6.11.0-1) ...
Selecting previously unselected package libproc2-0:arm64.
Preparing to unpack .../009-libproc2-0_2%3a4.0.4-6_arm64.deb ...
Unpacking libproc2-0:arm64 (2:4.0.4-6) ...
Selecting previously unselected package procps.
Preparing to unpack .../010-procps_2%3a4.0.4-6_arm64.deb ...
Unpacking procps (2:4.0.4-6) ...
Selecting previously unselected package m4.
Preparing to unpack .../011-m4_1.4.19-4_arm64.deb ...
Unpacking m4 (1.4.19-4) ...
Selecting previously unselected package autoconf.
Preparing to unpack .../012-autoconf_2.72-3_all.deb ...
Unpacking autoconf (2.72-3) ...
Selecting previously unselected package autotools-dev.
Preparing to unpack .../013-autotools-dev_20220109.1_all.deb ...
Unpacking autotools-dev (20220109.1) ...
Selecting previously unselected package automake.
Preparing to unpack .../014-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 .../015-autopoint_0.22.5-2_all.deb ...
Unpacking autopoint (0.22.5-2) ...
Selecting previously unselected package libc-dev-bin.
Preparing to unpack .../016-libc-dev-bin_2.40-3_arm64.deb ...
Unpacking libc-dev-bin (2.40-3) ...
Selecting previously unselected package linux-libc-dev.
Preparing to unpack .../017-linux-libc-dev_6.11.7-1_all.deb ...
Unpacking linux-libc-dev (6.11.7-1) ...
Selecting previously unselected package libcrypt-dev:arm64.
Preparing to unpack .../018-libcrypt-dev_1%3a4.4.36-5_arm64.deb ...
Unpacking libcrypt-dev:arm64 (1:4.4.36-5) ...
Selecting previously unselected package rpcsvc-proto.
Preparing to unpack .../019-rpcsvc-proto_1.4.3-1+b1_arm64.deb ...
Unpacking rpcsvc-proto (1.4.3-1+b1) ...
Selecting previously unselected package libc6-dev:arm64.
Preparing to unpack .../020-libc6-dev_2.40-3_arm64.deb ...
Unpacking libc6-dev:arm64 (2.40-3) ...
Selecting previously unselected package libisl23:arm64.
Preparing to unpack .../021-libisl23_0.27-1_arm64.deb ...
Unpacking libisl23:arm64 (0.27-1) ...
Selecting previously unselected package libmpfr6:arm64.
Preparing to unpack .../022-libmpfr6_4.2.1-1+b2_arm64.deb ...
Unpacking libmpfr6:arm64 (4.2.1-1+b2) ...
Selecting previously unselected package libmpc3:arm64.
Preparing to unpack .../023-libmpc3_1.3.1-1+b3_arm64.deb ...
Unpacking libmpc3:arm64 (1.3.1-1+b3) ...
Selecting previously unselected package cpp-14-aarch64-linux-gnu.
Preparing to unpack .../024-cpp-14-aarch64-linux-gnu_14.2.0-8_arm64.deb ...
Unpacking cpp-14-aarch64-linux-gnu (14.2.0-8) ...
Selecting previously unselected package cpp-14.
Preparing to unpack .../025-cpp-14_14.2.0-8_arm64.deb ...
Unpacking cpp-14 (14.2.0-8) ...
Selecting previously unselected package cpp-aarch64-linux-gnu.
Preparing to unpack .../026-cpp-aarch64-linux-gnu_4%3a14.2.0-1_arm64.deb ...
Unpacking cpp-aarch64-linux-gnu (4:14.2.0-1) ...
Selecting previously unselected package cpp.
Preparing to unpack .../027-cpp_4%3a14.2.0-1_arm64.deb ...
Unpacking cpp (4:14.2.0-1) ...
Selecting previously unselected package libcc1-0:arm64.
Preparing to unpack .../028-libcc1-0_14.2.0-8_arm64.deb ...
Unpacking libcc1-0:arm64 (14.2.0-8) ...
Selecting previously unselected package libitm1:arm64.
Preparing to unpack .../029-libitm1_14.2.0-8_arm64.deb ...
Unpacking libitm1:arm64 (14.2.0-8) ...
Selecting previously unselected package libasan8:arm64.
Preparing to unpack .../030-libasan8_14.2.0-8_arm64.deb ...
Unpacking libasan8:arm64 (14.2.0-8) ...
Selecting previously unselected package liblsan0:arm64.
Preparing to unpack .../031-liblsan0_14.2.0-8_arm64.deb ...
Unpacking liblsan0:arm64 (14.2.0-8) ...
Selecting previously unselected package libtsan2:arm64.
Preparing to unpack .../032-libtsan2_14.2.0-8_arm64.deb ...
Unpacking libtsan2:arm64 (14.2.0-8) ...
Selecting previously unselected package libubsan1:arm64.
Preparing to unpack .../033-libubsan1_14.2.0-8_arm64.deb ...
Unpacking libubsan1:arm64 (14.2.0-8) ...
Selecting previously unselected package libhwasan0:arm64.
Preparing to unpack .../034-libhwasan0_14.2.0-8_arm64.deb ...
Unpacking libhwasan0:arm64 (14.2.0-8) ...
Selecting previously unselected package libgcc-14-dev:arm64.
Preparing to unpack .../035-libgcc-14-dev_14.2.0-8_arm64.deb ...
Unpacking libgcc-14-dev:arm64 (14.2.0-8) ...
Selecting previously unselected package gcc-14-aarch64-linux-gnu.
Preparing to unpack .../036-gcc-14-aarch64-linux-gnu_14.2.0-8_arm64.deb ...
Unpacking gcc-14-aarch64-linux-gnu (14.2.0-8) ...
Selecting previously unselected package gcc-14.
Preparing to unpack .../037-gcc-14_14.2.0-8_arm64.deb ...
Unpacking gcc-14 (14.2.0-8) ...
Selecting previously unselected package gcc-aarch64-linux-gnu.
Preparing to unpack .../038-gcc-aarch64-linux-gnu_4%3a14.2.0-1_arm64.deb ...
Unpacking gcc-aarch64-linux-gnu (4:14.2.0-1) ...
Selecting previously unselected package gcc.
Preparing to unpack .../039-gcc_4%3a14.2.0-1_arm64.deb ...
Unpacking gcc (4:14.2.0-1) ...
Selecting previously unselected package libstdc++-14-dev:arm64.
Preparing to unpack .../040-libstdc++-14-dev_14.2.0-8_arm64.deb ...
Unpacking libstdc++-14-dev:arm64 (14.2.0-8) ...
Selecting previously unselected package g++-14-aarch64-linux-gnu.
Preparing to unpack .../041-g++-14-aarch64-linux-gnu_14.2.0-8_arm64.deb ...
Unpacking g++-14-aarch64-linux-gnu (14.2.0-8) ...
Selecting previously unselected package g++-14.
Preparing to unpack .../042-g++-14_14.2.0-8_arm64.deb ...
Unpacking g++-14 (14.2.0-8) ...
Selecting previously unselected package g++-aarch64-linux-gnu.
Preparing to unpack .../043-g++-aarch64-linux-gnu_4%3a14.2.0-1_arm64.deb ...
Unpacking g++-aarch64-linux-gnu (4:14.2.0-1) ...
Selecting previously unselected package g++.
Preparing to unpack .../044-g++_4%3a14.2.0-1_arm64.deb ...
Unpacking g++ (4:14.2.0-1) ...
Selecting previously unselected package build-essential.
Preparing to unpack .../045-build-essential_12.12_arm64.deb ...
Unpacking build-essential (12.12) ...
Selecting previously unselected package libdebhelper-perl.
Preparing to unpack .../046-libdebhelper-perl_13.20_all.deb ...
Unpacking libdebhelper-perl (13.20) ...
Selecting previously unselected package libtool.
Preparing to unpack .../047-libtool_2.4.7-8_all.deb ...
Unpacking libtool (2.4.7-8) ...
Selecting previously unselected package dh-autoreconf.
Preparing to unpack .../048-dh-autoreconf_20_all.deb ...
Unpacking dh-autoreconf (20) ...
Selecting previously unselected package libfile-stripnondeterminism-perl.
Preparing to unpack .../049-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 .../050-dh-strip-nondeterminism_1.14.0-1_all.deb ...
Unpacking dh-strip-nondeterminism (1.14.0-1) ...
Selecting previously unselected package dwz.
Preparing to unpack .../051-dwz_0.15-1+b1_arm64.deb ...
Unpacking dwz (0.15-1+b1) ...
Selecting previously unselected package po-debconf.
Preparing to unpack .../052-po-debconf_1.0.21+nmu1_all.deb ...
Unpacking po-debconf (1.0.21+nmu1) ...
Selecting previously unselected package debhelper.
Preparing to unpack .../053-debhelper_13.20_all.deb ...
Unpacking debhelper (13.20) ...
Selecting previously unselected package python3-autocommand.
Preparing to unpack .../054-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 .../055-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 .../056-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 .../057-python3-typeguard_4.4.1-1_all.deb ...
Unpacking python3-typeguard (4.4.1-1) ...
Selecting previously unselected package python3-inflect.
Preparing to unpack .../058-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 .../059-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 .../060-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 .../061-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 .../062-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 .../063-python3-zipp_3.21.0-1_all.deb ...
Unpacking python3-zipp (3.21.0-1) ...
Selecting previously unselected package python3-setuptools.
Preparing to unpack .../064-python3-setuptools_75.2.0-1_all.deb ...
Unpacking python3-setuptools (75.2.0-1) ...
Selecting previously unselected package dh-python.
Preparing to unpack .../065-dh-python_6.20241024_all.deb ...
Unpacking dh-python (6.20241024) ...
Selecting previously unselected package libfakeroot:arm64.
Preparing to unpack .../066-libfakeroot_1.36-1_arm64.deb ...
Unpacking libfakeroot:arm64 (1.36-1) ...
Selecting previously unselected package fakeroot.
Preparing to unpack .../067-fakeroot_1.36-1_arm64.deb ...
Unpacking fakeroot (1.36-1) ...
Selecting previously unselected package libjs-jquery.
Preparing to unpack .../068-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ...
Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
Selecting previously unselected package libjs-underscore.
Preparing to unpack .../069-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ...
Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
Selecting previously unselected package libjs-sphinxdoc.
Preparing to unpack .../070-libjs-sphinxdoc_7.4.7-4_all.deb ...
Unpacking libjs-sphinxdoc (7.4.7-4) ...
Selecting previously unselected package libpkgconf3:arm64.
Preparing to unpack .../071-libpkgconf3_1.8.1-4_arm64.deb ...
Unpacking libpkgconf3:arm64 (1.8.1-4) ...
Selecting previously unselected package libpython3.13-stdlib:arm64.
Preparing to unpack .../072-libpython3.13-stdlib_3.13.0-2_arm64.deb ...
Unpacking libpython3.13-stdlib:arm64 (3.13.0-2) ...
Selecting previously unselected package pkgconf-bin.
Preparing to unpack .../073-pkgconf-bin_1.8.1-4_arm64.deb ...
Unpacking pkgconf-bin (1.8.1-4) ...
Selecting previously unselected package pkgconf:arm64.
Preparing to unpack .../074-pkgconf_1.8.1-4_arm64.deb ...
Unpacking pkgconf:arm64 (1.8.1-4) ...
Selecting previously unselected package python3-astroid.
Preparing to unpack .../075-python3-astroid_3.3.5-1_all.deb ...
Unpacking python3-astroid (3.3.5-1) ...
Selecting previously unselected package python3-isort.
Preparing to unpack .../076-python3-isort_5.13.2-2_all.deb ...
Unpacking python3-isort (5.13.2-2) ...
Selecting previously unselected package python3-mypy-extensions.
Preparing to unpack .../077-python3-mypy-extensions_1.0.0-1_all.deb ...
Unpacking python3-mypy-extensions (1.0.0-1) ...
Selecting previously unselected package python3-logilab-common.
Preparing to unpack .../078-python3-logilab-common_2.0.0-1_all.deb ...
Unpacking python3-logilab-common (2.0.0-1) ...
Selecting previously unselected package python3-dill.
Preparing to unpack .../079-python3-dill_0.3.9-1_all.deb ...
Unpacking python3-dill (0.3.9-1) ...
Selecting previously unselected package python3-mccabe.
Preparing to unpack .../080-python3-mccabe_0.7.0-1_all.deb ...
Unpacking python3-mccabe (0.7.0-1) ...
Selecting previously unselected package python3-platformdirs.
Preparing to unpack .../081-python3-platformdirs_4.3.6-1_all.deb ...
Unpacking python3-platformdirs (4.3.6-1) ...
Selecting previously unselected package python3-tomlkit.
Preparing to unpack .../082-python3-tomlkit_0.13.2-1_all.deb ...
Unpacking python3-tomlkit (0.13.2-1) ...
Selecting previously unselected package pylint.
Preparing to unpack .../083-pylint_3.3.1-2_all.deb ...
Unpacking pylint (3.3.1-2) ...
Selecting previously unselected package python3.13.
Preparing to unpack .../084-python3.13_3.13.0-2_arm64.deb ...
Unpacking python3.13 (3.13.0-2) ...
Selecting previously unselected package python3-all.
Preparing to unpack .../085-python3-all_3.12.7-1_arm64.deb ...
Unpacking python3-all (3.12.7-1) ...
Selecting previously unselected package python3-attr.
Preparing to unpack .../086-python3-attr_24.2.0-1_all.deb ...
Unpacking python3-attr (24.2.0-1) ...
Selecting previously unselected package python3-bcrypt.
Preparing to unpack .../087-python3-bcrypt_4.2.0-2_arm64.deb ...
Unpacking python3-bcrypt (4.2.0-2) ...
Selecting previously unselected package python3-blinker.
Preparing to unpack .../088-python3-blinker_1.8.2-1_all.deb ...
Unpacking python3-blinker (1.8.2-1) ...
Selecting previously unselected package python3-certifi.
Preparing to unpack .../089-python3-certifi_2024.8.30+dfsg-1_all.deb ...
Unpacking python3-certifi (2024.8.30+dfsg-1) ...
Selecting previously unselected package python3-cffi-backend:arm64.
Preparing to unpack .../090-python3-cffi-backend_1.17.1-2+b1_arm64.deb ...
Unpacking python3-cffi-backend:arm64 (1.17.1-2+b1) ...
Selecting previously unselected package python3-chardet.
Preparing to unpack .../091-python3-chardet_5.2.0+dfsg-1_all.deb ...
Unpacking python3-chardet (5.2.0+dfsg-1) ...
Selecting previously unselected package python3-charset-normalizer.
Preparing to unpack .../092-python3-charset-normalizer_3.4.0-1+b1_arm64.deb ...
Unpacking python3-charset-normalizer (3.4.0-1+b1) ...
Selecting previously unselected package python3-configobj.
Preparing to unpack .../093-python3-configobj_5.0.9-1_all.deb ...
Unpacking python3-configobj (5.0.9-1) ...
Selecting previously unselected package python3-cryptography.
Preparing to unpack .../094-python3-cryptography_43.0.0-1_arm64.deb ...
Unpacking python3-cryptography (43.0.0-1) ...
Selecting previously unselected package python3-urllib3.
Preparing to unpack .../095-python3-urllib3_2.0.7-2_all.deb ...
Unpacking python3-urllib3 (2.0.7-2) ...
Selecting previously unselected package python3-httpretty.
Preparing to unpack .../096-python3-httpretty_1.1.4-4_all.deb ...
Unpacking python3-httpretty (1.1.4-4) ...
Selecting previously unselected package python3-idna.
Preparing to unpack .../097-python3-idna_3.8-2_all.deb ...
Unpacking python3-idna (3.8-2) ...
Selecting previously unselected package python3-iniconfig.
Preparing to unpack .../098-python3-iniconfig_1.1.1-2_all.deb ...
Unpacking python3-iniconfig (1.1.1-2) ...
Selecting previously unselected package python3-markupsafe.
Preparing to unpack .../099-python3-markupsafe_2.1.5-1+b3_arm64.deb ...
Unpacking python3-markupsafe (2.1.5-1+b3) ...
Selecting previously unselected package python3-jinja2.
Preparing to unpack .../100-python3-jinja2_3.1.3-1_all.deb ...
Unpacking python3-jinja2 (3.1.3-1) ...
Selecting previously unselected package python3-json-pointer.
Preparing to unpack .../101-python3-json-pointer_2.4-2_all.deb ...
Unpacking python3-json-pointer (2.4-2) ...
Selecting previously unselected package python3-jsonpatch.
Preparing to unpack .../102-python3-jsonpatch_1.32-4_all.deb ...
Unpacking python3-jsonpatch (1.32-4) ...
Selecting previously unselected package python3-rpds-py.
Preparing to unpack .../103-python3-rpds-py_0.21.0-1_arm64.deb ...
Unpacking python3-rpds-py (0.21.0-1) ...
Selecting previously unselected package python3-referencing.
Preparing to unpack .../104-python3-referencing_0.35.1-1_all.deb ...
Unpacking python3-referencing (0.35.1-1) ...
Selecting previously unselected package python3-jsonschema-specifications.
Preparing to unpack .../105-python3-jsonschema-specifications_2023.12.1-2_all.deb ...
Unpacking python3-jsonschema-specifications (2023.12.1-2) ...
Selecting previously unselected package python3-jsonschema.
Preparing to unpack .../106-python3-jsonschema_4.19.2-5_all.deb ...
Unpacking python3-jsonschema (4.19.2-5) ...
Selecting previously unselected package python3-jwt.
Preparing to unpack .../107-python3-jwt_2.7.0-1_all.deb ...
Unpacking python3-jwt (2.7.0-1) ...
Selecting previously unselected package python3-netifaces:arm64.
Preparing to unpack .../108-python3-netifaces_0.11.0-2+b5_arm64.deb ...
Unpacking python3-netifaces:arm64 (0.11.0-2+b5) ...
Selecting previously unselected package python3-oauthlib.
Preparing to unpack .../109-python3-oauthlib_3.2.2-2_all.deb ...
Unpacking python3-oauthlib (3.2.2-2) ...
Selecting previously unselected package python3-packaging.
Preparing to unpack .../110-python3-packaging_24.1-1_all.deb ...
Unpacking python3-packaging (24.1-1) ...
Selecting previously unselected package python3-passlib.
Preparing to unpack .../111-python3-passlib_1.7.4-4_all.deb ...
Unpacking python3-passlib (1.7.4-4) ...
Selecting previously unselected package python3-pep8.
Preparing to unpack .../112-python3-pep8_1.7.1-11_all.deb ...
Unpacking python3-pep8 (1.7.1-11) ...
Selecting previously unselected package python3-pluggy.
Preparing to unpack .../113-python3-pluggy_1.5.0-1_all.deb ...
Unpacking python3-pluggy (1.5.0-1) ...
Selecting previously unselected package python3-pyflakes.
Preparing to unpack .../114-python3-pyflakes_3.2.0-1_all.deb ...
Unpacking python3-pyflakes (3.2.0-1) ...
Selecting previously unselected package python3-pytest.
Preparing to unpack .../115-python3-pytest_8.3.3-1_all.deb ...
Unpacking python3-pytest (8.3.3-1) ...
Selecting previously unselected package python3-pytest-mock.
Preparing to unpack .../116-python3-pytest-mock_3.14.0-2_all.deb ...
Unpacking python3-pytest-mock (3.14.0-2) ...
Selecting previously unselected package python3-requests.
Preparing to unpack .../117-python3-requests_2.32.3+dfsg-1_all.deb ...
Unpacking python3-requests (2.32.3+dfsg-1) ...
Selecting previously unselected package python3-yaml.
Preparing to unpack .../118-python3-yaml_6.0.2-1+b1_arm64.deb ...
Unpacking python3-yaml (6.0.2-1+b1) ...
Selecting previously unselected package python3-responses.
Preparing to unpack .../119-python3-responses_0.25.3-1_all.deb ...
Unpacking python3-responses (0.25.3-1) ...
Selecting previously unselected package python3-serial.
Preparing to unpack .../120-python3-serial_3.5-2_all.deb ...
Unpacking python3-serial (3.5-2) ...
Selecting previously unselected package systemd-dev.
Preparing to unpack .../121-systemd-dev_257~rc1-4_all.deb ...
Unpacking systemd-dev (257~rc1-4) ...
Selecting previously unselected package sbuild-build-depends-main-dummy.
Preparing to unpack .../122-sbuild-build-depends-main-dummy_0.invalid.0_arm64.deb ...
Unpacking sbuild-build-depends-main-dummy (0.invalid.0) ...
Setting up media-types (10.1.0) ...
Setting up libfile-stripnondeterminism-perl (1.14.0-1) ...
Setting up libtirpc-common (1.3.4+ds-1.3) ...
Setting up po-debconf (1.0.21+nmu1) ...
Setting up libdebhelper-perl (13.20) ...
Setting up linux-libc-dev (6.11.7-1) ...
Setting up m4 (1.4.19-4) ...
Setting up systemd-dev (257~rc1-4) ...
Setting up libfakeroot:arm64 (1.36-1) ...
Setting up libelf1t64:arm64 (0.192-4) ...
Setting up libcap2-bin (1:2.66-5+b1) ...
Setting up fakeroot (1.36-1) ...
update-alternatives: using /usr/bin/fakeroot-sysv to provide /usr/bin/fakeroot (fakeroot) in auto mode
Setting up libpython3.13-minimal:arm64 (3.13.0-2) ...
Setting up autotools-dev (20220109.1) ...
Setting up libpkgconf3:arm64 (1.8.1-4) ...
Setting up rpcsvc-proto (1.4.3-1+b1) ...
Setting up libmpfr6:arm64 (4.2.1-1+b2) ...
Setting up libproc2-0:arm64 (2:4.0.4-6) ...
Setting up libmpc3:arm64 (1.3.1-1+b3) ...
Setting up libmnl0:arm64 (1.0.5-3) ...
Setting up autopoint (0.22.5-2) ...
Setting up pkgconf-bin (1.8.1-4) ...
Setting up libncursesw6:arm64 (6.5-2+b1) ...
Setting up libxtables12:arm64 (1.8.11-1) ...
Setting up autoconf (2.72-3) ...
Setting up libubsan1:arm64 (14.2.0-8) ...
Setting up dh-strip-nondeterminism (1.14.0-1) ...
Setting up dwz (0.15-1+b1) ...
Setting up libhwasan0:arm64 (14.2.0-8) ...
Setting up libcrypt-dev:arm64 (1:4.4.36-5) ...
Setting up libasan8:arm64 (14.2.0-8) ...
Setting up procps (2:4.0.4-6) ...
Setting up python3.13-minimal (3.13.0-2) ...
Setting up libtsan2:arm64 (14.2.0-8) ...
Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ...
Setting up libisl23:arm64 (0.27-1) ...
Setting up libc-dev-bin (2.40-3) ...
Setting up libpython3.13-stdlib:arm64 (3.13.0-2) ...
Setting up libcc1-0:arm64 (14.2.0-8) ...
Setting up libbpf1:arm64 (1:1.5.0-1) ...
Setting up liblsan0:arm64 (14.2.0-8) ...
Setting up libitm1:arm64 (14.2.0-8) ...
Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ...
Setting up automake (1:1.16.5-1.3) ...
update-alternatives: using /usr/bin/automake-1.16 to provide /usr/bin/automake (automake) in auto mode
Setting up libtirpc3t64:arm64 (1.3.4+ds-1.3+b1) ...
Setting up python3.13 (3.13.0-2) ...
Setting up iproute2 (6.11.0-1) ...
Setting up pkgconf:arm64 (1.8.1-4) ...
Setting up libjs-sphinxdoc (7.4.7-4) ...
Setting up cpp-14-aarch64-linux-gnu (14.2.0-8) ...
Setting up libnsl2:arm64 (1.3.0-3+b3) ...
Setting up libc6-dev:arm64 (2.40-3) ...
Setting up libgcc-14-dev:arm64 (14.2.0-8) ...
Setting up libstdc++-14-dev:arm64 (14.2.0-8) ...
Setting up libpython3.12-stdlib:arm64 (3.12.7-3) ...
Setting up python3.12 (3.12.7-3) ...
Setting up cpp-aarch64-linux-gnu (4:14.2.0-1) ...
Setting up cpp-14 (14.2.0-8) ...
Setting up cpp (4:14.2.0-1) ...
Setting up gcc-14-aarch64-linux-gnu (14.2.0-8) ...
Setting up libpython3-stdlib:arm64 (3.12.7-1) ...
Setting up gcc-aarch64-linux-gnu (4:14.2.0-1) ...
Setting up g++-14-aarch64-linux-gnu (14.2.0-8) ...
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-markupsafe (2.1.5-1+b3) ...
Setting up python3-platformdirs (4.3.6-1) ...
Setting up gcc-14 (14.2.0-8) ...
Setting up python3-serial (3.5-2) ...
Setting up python3-jinja2 (3.1.3-1) ...
Setting up python3-packaging (24.1-1) ...
Setting up python3-configobj (5.0.9-1) ...
Setting up python3-certifi (2024.8.30+dfsg-1) ...
Setting up python3-dill (0.3.9-1) ...
Setting up python3-idna (3.8-2) ...
Setting up python3-typing-extensions (4.12.2-2) ...
Setting up python3-isort (5.13.2-2) ...
Setting up python3-urllib3 (2.0.7-2) ...
Setting up python3-pluggy (1.5.0-1) ...
Setting up python3-netifaces:arm64 (0.11.0-2+b5) ...
Setting up python3-rpds-py (0.21.0-1) ...
Setting up python3-json-pointer (2.4-2) ...
Setting up g++-aarch64-linux-gnu (4:14.2.0-1) ...
Setting up python3-mccabe (0.7.0-1) ...
Setting up g++-14 (14.2.0-8) ...
Setting up python3-tomlkit (0.13.2-1) ...
Setting up python3-cffi-backend:arm64 (1.17.1-2+b1) ...
Setting up python3-blinker (1.8.2-1) ...
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-httpretty (1.1.4-4) ...
Setting up python3-jaraco.functools (4.1.0-1) ...
Setting up python3-jaraco.context (6.0.0-1) ...
Setting up python3-jwt (2.7.0-1) ...
Setting up libtool (2.4.7-8) ...
Setting up python3-charset-normalizer (3.4.0-1+b1) ...
Setting up python3-pytest (8.3.3-1) ...
Setting up python3-mypy-extensions (1.0.0-1) ...
Setting up python3-jsonpatch (1.32-4) ...
update-alternatives: using /usr/bin/json-patch-jsondiff to provide /usr/bin/jsondiff (jsondiff) in auto mode
Setting up python3-bcrypt (4.2.0-2) ...
Setting up python3-typeguard (4.4.1-1) ...
Setting up python3-all (3.12.7-1) ...
Setting up python3-yaml (6.0.2-1+b1) ...
Setting up gcc (4:14.2.0-1) ...
Setting up dh-autoreconf (20) ...
Setting up python3-inflect (7.3.1-2) ...
Setting up python3-jaraco.text (4.0.0-1) ...
Setting up python3-cryptography (43.0.0-1) ...
Setting up g++ (4:14.2.0-1) ...
update-alternatives: using /usr/bin/g++ to provide /usr/bin/c++ (c++) in auto mode
Setting up python3-pytest-mock (3.14.0-2) ...
Setting up build-essential (12.12) ...
Setting up python3-referencing (0.35.1-1) ...
Setting up python3-pkg-resources (75.2.0-1) ...
Setting up python3-setuptools (75.2.0-1) ...
Setting up python3-passlib (1.7.4-4) ...
Setting up python3-logilab-common (2.0.0-1) ...
Setting up python3-pyflakes (3.2.0-1) ...
Setting up debhelper (13.20) ...
Setting up python3-oauthlib (3.2.2-2) ...
Setting up python3-chardet (5.2.0+dfsg-1) ...
Setting up python3-requests (2.32.3+dfsg-1) ...
Setting up python3-astroid (3.3.5-1) ...
Setting up python3-jsonschema-specifications (2023.12.1-2) ...
Setting up pylint (3.3.1-2) ...
Setting up python3-pep8 (1.7.1-11) ...
Setting up dh-python (6.20241024) ...
Setting up python3-responses (0.25.3-1) ...
Setting up python3-jsonschema (4.19.2-5) ...
Setting up sbuild-build-depends-main-dummy (0.invalid.0) ...
Processing triggers for man-db (2.13.0-1) ...
Processing triggers for libc-bin (2.40-3) ...
+------------------------------------------------------------------------------+
| Check architectures |
+------------------------------------------------------------------------------+
Arch check ok (arm64 included in all)
+------------------------------------------------------------------------------+
| Build environment |
+------------------------------------------------------------------------------+
Kernel: Linux 6.1.0-27-cloud-arm64 #1 SMP Debian 6.1.115-1 (2024-11-01) arm64 (aarch64)
Toolchain package versions: binutils_2.43.1-5 dpkg-dev_1.22.12~1.gbp82cafd g++-14_14.2.0-8 gcc-14_14.2.0-8 libc6-dev_2.40-3 libstdc++-14-dev_14.2.0-8 libstdc++6_14.2.0-8 linux-libc-dev_6.11.7-1
Package versions: appstream_1.0.3-1+b1 apt_2.9.11 autoconf_2.72-3 automake_1:1.16.5-1.3 autopoint_0.22.5-2 autotools-dev_20220109.1 base-files_13.5 base-passwd_3.6.5 bash_5.2.32-1+b2 binutils_2.43.1-5 binutils-aarch64-linux-gnu_2.43.1-5 binutils-common_2.43.1-5 bsdextrautils_2.40.2-11 bsdutils_1:2.40.2-11 build-essential_12.12 bzip2_1.0.8-6 ca-certificates_20240203 coreutils_9.5-1+b1 cpp_4:14.2.0-1 cpp-14_14.2.0-8 cpp-14-aarch64-linux-gnu_14.2.0-8 cpp-aarch64-linux-gnu_4:14.2.0-1 dash_0.5.12-9+b1 debconf_1.5.87 debhelper_13.20 debian-archive-keyring_2023.4 debianutils_5.21 dh-autoreconf_20 dh-python_6.20241024 dh-strip-nondeterminism_1.14.0-1 diffstat_1.66-1+b1 diffutils_1:3.10-1+b1 dpkg_1.22.12~1.gbp82cafd dpkg-dev_1.22.12~1.gbp82cafd dwz_0.15-1+b1 e2fsprogs_1.47.1-1+b1 fakeroot_1.36-1 file_1:5.45-3+b1 findutils_4.10.0-3 g++_4:14.2.0-1 g++-14_14.2.0-8 g++-14-aarch64-linux-gnu_14.2.0-8 g++-aarch64-linux-gnu_4:14.2.0-1 gcc_4:14.2.0-1 gcc-14_14.2.0-8 gcc-14-aarch64-linux-gnu_14.2.0-8 gcc-14-base_14.2.0-8 gcc-aarch64-linux-gnu_4:14.2.0-1 gettext_0.22.5-2 gettext-base_0.22.5-2 gpg_2.2.45-2 gpgconf_2.2.45-2 gpgv_2.2.45-2 grep_3.11-4+b1 groff-base_1.23.0-5 gzip_1.12-1.1+b1 hostname_3.25 init-system-helpers_1.67 intltool-debian_0.35.0+20060710.6 iproute2_6.11.0-1 iso-codes_4.17.0-1 libacl1_2.3.2-2+b1 libaliased-perl_0.34-3 libappstream5_1.0.3-1+b1 libapt-pkg-perl_0.1.40+b6 libapt-pkg6.0t64_2.9.11 libarchive-zip-perl_1.68-1 libasan8_14.2.0-8 libassuan9_3.0.1-2 libatomic1_14.2.0-8 libattr1_1:2.5.2-2 libaudit-common_1:4.0.2-2 libaudit1_1:4.0.2-2 libb-hooks-endofscope-perl_0.28-1 libb-hooks-op-check-perl_0.22-3+b2 libberkeleydb-perl_0.66-1 libbinutils_2.43.1-5 libblkid1_2.40.2-11 libbpf1_1:1.5.0-1 libbrotli1_1.1.0-2+b6 libbsd0_0.12.2-2 libbz2-1.0_1.0.8-6 libc-bin_2.40-3 libc-dev-bin_2.40-3 libc6_2.40-3 libc6-dev_2.40-3 libcap-ng0_0.8.5-3+b1 libcap2_1:2.66-5+b1 libcap2-bin_1:2.66-5+b1 libcapture-tiny-perl_0.48-2 libcc1-0_14.2.0-8 libcgi-pm-perl_4.66-1 libclass-data-inheritable-perl_0.10-1 libclass-inspector-perl_1.36-3 libclass-method-modifiers-perl_2.15-1 libclass-xsaccessor-perl_1.19-4+b4 libclone-perl_0.47-1+b1 libcom-err2_1.47.1-1+b1 libconfig-tiny-perl_2.30-1 libconst-fast-perl_0.014-2 libcpanel-json-xs-perl_4.38-1+b1 libcrypt-dev_1:4.4.36-5 libcrypt1_1:4.4.36-5 libctf-nobfd0_2.43.1-5 libctf0_2.43.1-5 libcurl3t64-gnutls_8.11.0-1 libdata-dpath-perl_0.60-1 libdata-messagepack-perl_1.02-1+b4 libdata-optlist-perl_0.114-1 libdata-validate-domain-perl_0.15-1 libdata-validate-ip-perl_0.31-1 libdata-validate-uri-perl_0.07-3 libdb5.3t64_5.3.28+dfsg2-9 libdebconfclient0_0.273 libdebhelper-perl_13.20 libdevel-callchecker-perl_0.009-1+b1 libdevel-size-perl_0.84-1+b1 libdevel-stacktrace-perl_2.0500-1 libdpkg-perl_1.22.12~1.gbp82cafd libdynaloader-functions-perl_0.004-1 libelf1t64_0.192-4 libemail-address-xs-perl_1.05-1+b4 libencode-locale-perl_1.05-3 libexception-class-perl_1.45-1 libexpat1_2.6.4-1 libext2fs2t64_1.47.1-1+b1 libfakeroot_1.36-1 libffi8_3.4.6-1 libfile-basedir-perl_0.09-2 libfile-find-rule-perl_0.34-3 libfile-listing-perl_6.16-1 libfile-sharedir-perl_1.118-3 libfile-stripnondeterminism-perl_1.14.0-1 libfont-ttf-perl_1.06-2 libgcc-14-dev_14.2.0-8 libgcc-s1_14.2.0-8 libgcrypt20_1.11.0-6 libgdbm-compat4t64_1.24-2 libgdbm6t64_1.24-2 libglib2.0-0t64_2.82.2-3 libgmp10_2:6.3.0+dfsg-2+b2 libgnutls30t64_3.8.8-2 libgomp1_14.2.0-8 libgpg-error0_1.50-4 libgprofng0_2.43.1-5 libgssapi-krb5-2_1.21.3-3 libhogweed6t64_3.10-1+b1 libhtml-form-perl_6.12-1 libhtml-html5-entities-perl_0.004-3 libhtml-parser-perl_3.83-1+b1 libhtml-tagset-perl_3.24-1 libhtml-tokeparser-simple-perl_3.16-4 libhtml-tree-perl_5.07-3 libhttp-cookies-perl_6.11-1 libhttp-date-perl_6.06-1 libhttp-message-perl_7.00-2 libhttp-negotiate-perl_6.01-2 libhwasan0_14.2.0-8 libicu72_72.1-5+b1 libidn2-0_2.3.7-2+b1 libimport-into-perl_1.002005-2 libio-html-perl_1.004-3 libio-interactive-perl_1.025-1 libio-socket-ssl-perl_2.089-1 libio-string-perl_1.08-4 libipc-run3-perl_0.049-1 libipc-system-simple-perl_1.30-2 libisl23_0.27-1 libiterator-perl_0.03+ds1-2 libiterator-util-perl_0.02+ds1-2 libitm1_14.2.0-8 libjansson4_2.14-2+b3 libjs-jquery_3.6.1+dfsg+~3.5.14-1 libjs-sphinxdoc_7.4.7-4 libjs-underscore_1.13.4~dfsg+~1.11.4-3 libjson-maybexs-perl_1.004008-1 libk5crypto3_1.21.3-3 libkeyutils1_1.6.3-4 libkrb5-3_1.21.3-3 libkrb5support0_1.21.3-3 libldap-2.5-0_2.5.18+dfsg-3+b1 liblist-compare-perl_0.55-2 liblist-someutils-perl_0.59-1 liblist-utilsby-perl_0.12-2 liblsan0_14.2.0-8 liblwp-mediatypes-perl_6.04-2 liblwp-protocol-https-perl_6.14-1 liblz1_1.15~pre2-1 liblz4-1_1.9.4-3+b1 liblzma5_5.6.3-1+b1 liblzo2-2_2.10-3+b1 libmagic-mgc_1:5.45-3+b1 libmagic1t64_1:5.45-3+b1 libmarkdown2_2.2.7-2.1 libmd0_1.1.0-2+b1 libmldbm-perl_2.05-4 libmnl0_1.0.5-3 libmodule-implementation-perl_0.09-2 libmodule-runtime-perl_0.016-2 libmoo-perl_2.005005-1 libmoox-aliases-perl_0.001006-2 libmount1_2.40.2-11 libmouse-perl_2.5.11-1+b1 libmpc3_1.3.1-1+b3 libmpfr6_4.2.1-1+b2 libnamespace-clean-perl_0.27-2 libncursesw6_6.5-2+b1 libnet-domain-tld-perl_1.75-4 libnet-http-perl_6.23-1 libnet-ipv6addr-perl_1.02-1 libnet-netmask-perl_2.0002-2 libnet-ssleay-perl_1.94-2 libnetaddr-ip-perl_4.079+dfsg-2+b4 libnettle8t64_3.10-1+b1 libnghttp2-14_1.64.0-1 libnghttp3-9_1.4.0-1+b1 libngtcp2-16_1.6.0-1 libngtcp2-crypto-gnutls8_1.6.0-1 libnsl2_1.3.0-3+b3 libnumber-compare-perl_0.03-3 libp11-kit0_0.25.5-2+b1 libpackage-stash-perl_0.40-1 libpam-modules_1.5.3-7+b1 libpam-modules-bin_1.5.3-7+b1 libpam-runtime_1.5.3-7 libpam0g_1.5.3-7+b1 libparams-classify-perl_0.015-2+b4 libparams-util-perl_1.102-3+b1 libpath-tiny-perl_0.146-1 libpcre2-8-0_10.44-4 libperl5.40_5.40.0-7 libperlio-gzip-perl_0.20-1+b4 libperlio-utf8-strict-perl_0.010-1+b3 libpipeline1_1.5.8-1 libpkgconf3_1.8.1-4 libproc-processtable-perl_0.636-1+b3 libproc2-0_2:4.0.4-6 libpsl5t64_0.21.2-1.1+b1 libpython3-stdlib_3.12.7-1 libpython3.12-minimal_3.12.7-3 libpython3.12-stdlib_3.12.7-3 libpython3.13-minimal_3.13.0-2 libpython3.13-stdlib_3.13.0-2 libreadline8t64_8.2-5 libregexp-wildcards-perl_1.05-3 librole-tiny-perl_2.002004-1 librtmp1_2.4+20151223.gitfa8646d.1-2+b5 libsasl2-2_2.1.28+dfsg1-8 libsasl2-modules-db_2.1.28+dfsg1-8 libseccomp2_2.5.5-1+b3 libselinux1_3.7-3+b1 libsemanage-common_3.7-2 libsemanage2_3.7-2+b1 libsepol2_3.7-1 libsereal-decoder-perl_5.004+ds-1+b3 libsereal-encoder-perl_5.004+ds-1+b3 libsframe1_2.43.1-5 libsmartcols1_2.40.2-11 libsort-versions-perl_1.62-3 libsqlite3-0_3.46.1-1 libss2_1.47.1-1+b1 libssh2-1t64_1.11.1-1 libssl3t64_3.3.2-2 libstdc++-14-dev_14.2.0-8 libstdc++6_14.2.0-8 libstemmer0d_2.2.0-4+b2 libstrictures-perl_2.000006-1 libsub-exporter-perl_0.990-1 libsub-exporter-progressive-perl_0.001013-3 libsub-identify-perl_0.14-3+b3 libsub-install-perl_0.929-1 libsub-name-perl_0.27-1+b3 libsub-quote-perl_2.006008-1 libsyntax-keyword-try-perl_0.30-1+b1 libsystemd0_257~rc1-4 libtasn1-6_4.19.0-3+b3 libterm-readkey-perl_2.38-2+b4 libtext-glob-perl_0.11-3 libtext-levenshteinxs-perl_0.03-5+b4 libtext-markdown-discount-perl_0.16-1+b3 libtext-xslate-perl_3.5.9-2+b1 libtime-duration-perl_1.21-2 libtime-moment-perl_0.44-2+b4 libtimedate-perl_2.3300-2 libtinfo6_6.5-2+b1 libtirpc-common_1.3.4+ds-1.3 libtirpc3t64_1.3.4+ds-1.3+b1 libtool_2.4.7-8 libtry-tiny-perl_0.32-1 libtsan2_14.2.0-8 libubsan1_14.2.0-8 libuchardet0_0.0.8-1+b2 libudev1_257~rc1-4 libunicode-utf8-perl_0.62-2+b3 libunistring5_1.2-1+b1 liburi-perl_5.30-1 libuuid1_2.40.2-11 libvariable-magic-perl_0.64-1+b1 libwww-mechanize-perl_2.19-1 libwww-perl_6.77-1 libwww-robotrules-perl_6.02-1 libxml-libxml-perl_2.0207+dfsg+really+2.0134-5+b1 libxml-namespacesupport-perl_1.12-2 libxml-sax-base-perl_1.09-3 libxml-sax-perl_1.02+dfsg-3 libxml2_2.12.7+dfsg+really2.9.14-0.2+b1 libxmlb2_0.3.21-1 libxs-parse-keyword-perl_0.46-1+b1 libxtables12_1.8.11-1 libxxhash0_0.8.2-2+b2 libyaml-0-2_0.2.5-1+b2 libyaml-libyaml-perl_0.902.0+ds-2+b1 libzstd1_1.5.6+dfsg-1+b1 lintian_2.120.0 linux-libc-dev_6.11.7-1 login_1:4.16.0-2+really2.40.2-11 login.defs_1:4.16.0-4 logsave_1.47.1-1+b1 lzop_1.04-2+b1 m4_1.4.19-4 make_4.3-4.1+b1 man-db_2.13.0-1 mawk_1.3.4.20240905-1 media-types_10.1.0 mount_2.40.2-11 ncurses-base_6.5-2 ncurses-bin_6.5-2+b1 netbase_6.4 openssl_3.3.2-2 openssl-provider-legacy_3.3.2-2 passwd_1:4.16.0-4 patch_2.7.6-7+b1 patchutils_0.4.2-1+b1 perl_5.40.0-7 perl-base_5.40.0-7 perl-modules-5.40_5.40.0-7 perl-openssl-defaults_7+b2 pkgconf_1.8.1-4 pkgconf-bin_1.8.1-4 plzip_1.11-2 po-debconf_1.0.21+nmu1 procps_2:4.0.4-6 pylint_3.3.1-2 python3_3.12.7-1 python3-all_3.12.7-1 python3-astroid_3.3.5-1 python3-attr_24.2.0-1 python3-autocommand_2.2.2-3 python3-bcrypt_4.2.0-2 python3-blinker_1.8.2-1 python3-certifi_2024.8.30+dfsg-1 python3-cffi-backend_1.17.1-2+b1 python3-chardet_5.2.0+dfsg-1 python3-charset-normalizer_3.4.0-1+b1 python3-configobj_5.0.9-1 python3-cryptography_43.0.0-1 python3-dill_0.3.9-1 python3-httpretty_1.1.4-4 python3-idna_3.8-2 python3-inflect_7.3.1-2 python3-iniconfig_1.1.1-2 python3-isort_5.13.2-2 python3-jaraco.context_6.0.0-1 python3-jaraco.functools_4.1.0-1 python3-jaraco.text_4.0.0-1 python3-jinja2_3.1.3-1 python3-json-pointer_2.4-2 python3-jsonpatch_1.32-4 python3-jsonschema_4.19.2-5 python3-jsonschema-specifications_2023.12.1-2 python3-jwt_2.7.0-1 python3-logilab-common_2.0.0-1 python3-markupsafe_2.1.5-1+b3 python3-mccabe_0.7.0-1 python3-minimal_3.12.7-1 python3-more-itertools_10.5.0-1 python3-mypy-extensions_1.0.0-1 python3-netifaces_0.11.0-2+b5 python3-oauthlib_3.2.2-2 python3-packaging_24.1-1 python3-passlib_1.7.4-4 python3-pep8_1.7.1-11 python3-pkg-resources_75.2.0-1 python3-platformdirs_4.3.6-1 python3-pluggy_1.5.0-1 python3-pyflakes_3.2.0-1 python3-pytest_8.3.3-1 python3-pytest-mock_3.14.0-2 python3-referencing_0.35.1-1 python3-requests_2.32.3+dfsg-1 python3-responses_0.25.3-1 python3-rpds-py_0.21.0-1 python3-serial_3.5-2 python3-setuptools_75.2.0-1 python3-tomlkit_0.13.2-1 python3-typeguard_4.4.1-1 python3-typing-extensions_4.12.2-2 python3-urllib3_2.0.7-2 python3-yaml_6.0.2-1+b1 python3-zipp_3.21.0-1 python3.12_3.12.7-3 python3.12-minimal_3.12.7-3 python3.13_3.13.0-2 python3.13-minimal_3.13.0-2 readline-common_8.2-5 rpcsvc-proto_1.4.3-1+b1 sbuild-build-depends-main-dummy_0.invalid.0 sed_4.9-2+b1 sensible-utils_0.0.24 shared-mime-info_2.4-5+b1 systemd-dev_257~rc1-4 sysvinit-utils_3.11-1 t1utils_1.41-4+b1 tar_1.35+dfsg-3+b1 tzdata_2024b-3 ucf_3.0043+nmu1 unzip_6.0-28+b1 util-linux_2.40.2-11 xz-utils_5.6.3-1+b1 zlib1g_1:1.3.dfsg+really1.3.1-1+b1
+------------------------------------------------------------------------------+
| Build |
+------------------------------------------------------------------------------+
Unpack source
-------------
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Format: 3.0 (quilt)
Source: cloud-init
Binary: cloud-init
Architecture: all
Version: 24.3.1-2
Maintainer: Debian Cloud Team <debian-cloud@lists.debian.org>
Uploaders: Bastian Blank <waldi@debian.org>, Thomas Goirand <zigo@debian.org>, Noah Meyerhans <noahm@debian.org>,
Homepage: https://launchpad.net/cloud-init
Standards-Version: 4.6.1
Vcs-Browser: https://salsa.debian.org/cloud-team/cloud-init
Vcs-Git: https://salsa.debian.org/cloud-team/cloud-init.git
Build-Depends: debhelper-compat (= 13), dh-python, iproute2, passwd, po-debconf, procps <!nocheck>, pkgconf, pylint, python3-all, python3-pep8, python3-setuptools, systemd-dev | systemd
Build-Depends-Indep: python3-configobj, python3-httpretty (>= 0.9.5), python3-jinja2, python3-jsonpatch, python3-jsonschema, python3-netifaces, python3-oauthlib, python3-passlib, python3-pyflakes, python3-pytest, python3-pytest-mock, python3-requests, python3-responses, python3-serial, python3-yaml
Package-List:
cloud-init deb admin optional arch=all
Checksums-Sha1:
f65dbc1bb45ccd41716f1d1342e375b613f7d8c9 1844924 cloud-init_24.3.1.orig.tar.gz
2913db1e62ea6f8e0f37745f5e76f7379cb5aae5 28060 cloud-init_24.3.1-2.debian.tar.xz
Checksums-Sha256:
6e123c8adb64f1224b7958464c3e3a5912488f924e5abb480d77e7dfb2970699 1844924 cloud-init_24.3.1.orig.tar.gz
200ff71e20ca348b07badd3a482105d27c58c2a9b6130df41c599cef41bf0441 28060 cloud-init_24.3.1-2.debian.tar.xz
Files:
0df3b7ae09eed8cef0fb8106f5f75490 1844924 cloud-init_24.3.1.orig.tar.gz
99f116af4f669580dca86c4077711bd1 28060 cloud-init_24.3.1-2.debian.tar.xz
-----BEGIN PGP SIGNATURE-----
iQJFBAEBCgAvFiEE5G+E0xEKhJuZ7RJ34+c1IpshdTUFAmb9V6MRHG5vYWhtQGRl
Ymlhbi5vcmcACgkQ4+c1IpshdTUSChAAp0Vbqppn1QPYK0z/QLYML+Ik5tAI/o+V
me3Fomc+COx8NgyKyiFBg9jHGNAihTnO4mcpEWVXij1aqvXnXAdsWUg9XCh5GPPO
5jj50XLNyOubKc49RSYXKldlLTYqqdhkkFCUrcVSnjVp5g/xzMPQGOosyBcRgptG
2+Wdi/3tEJJjz3TljR3ID6+0Uw2Lw2J5u8pXY4As+uf2UrpdP7TBNusEra8eOM75
pTY/KYylnJpCi+gr1MQHd9TZSGSZ0OSEUnaVuhmYx6Idjs4Ybx+v4QyOF+lVut9i
/VXRRoryYLV38RVwly5IQOXBv+RRnsbn2F7ys7/6b+mdY8j8Cvzeipm8PYxlasUf
xjgdgsgOAvkZIMdauhFkJw77gohQ55RtO412U1yu3PJ491O5tgeFbQtUR5JW66NY
tSmBChlklsZxJ6FNXJ43OiIs0wBjrjxTzzjwisNa7is4ASnMwDQ2vRpBTzt1IIEi
wOalQhmYwDMDUoTo64Rd9gGt86piGqUyboNVVf9+S9ri0UPh6Tq2Jkrh6KUFAf8O
r5GAFInO6mnlvsS2HAy1jV0aEaY89b9uzV75+NdaNDvlQAVWMg0pj9fC47K3nwRJ
Z8iWGwhK4xWwuzJWNhXzzKY3NoJxVePPCj0TcKN2O3BEW7q1GmddyzrcZUQGgC9h
LMK/iUxhqb0=
=Tig1
-----END PGP SIGNATURE-----
gpgv: Signature made Wed Oct 2 14:24:35 2024 UTC
gpgv: using RSA key E46F84D3110A849B99ED1277E3E735229B217535
gpgv: issuer "noahm@debian.org"
gpgv: Can't check signature: No public key
dpkg-source: warning: cannot verify inline signature for ./cloud-init_24.3.1-2.dsc: no acceptable signature found
dpkg-source: info: extracting cloud-init in /<<PKGBUILDDIR>>
dpkg-source: info: unpacking cloud-init_24.3.1.orig.tar.gz
dpkg-source: info: unpacking cloud-init_24.3.1-2.debian.tar.xz
dpkg-source: info: using patch list from debian/patches/series
dpkg-source: info: applying fix-sysvinit-dependencies.patch
dpkg-source: info: applying cloud-init-before-chronyd.patch
dpkg-source: info: applying 0009-Drop-all-unused-extended-version-handling.patch
dpkg-source: info: applying 0012-Fix-message-when-a-local-is-missing.patch
dpkg-source: info: applying 0001-config-Support-APT-automated-mirror-selection.patch
dpkg-source: info: applying systemd-service-file-shutdown-problems.patch
dpkg-source: info: applying update-sysvinit.patch
Check disk space
----------------
Sufficient free space for build
User Environment
----------------
APT_CONFIG=/var/lib/sbuild/apt.conf
HOME=/sbuild-nonexistent
LANG=en_US.UTF-8
LC_ALL=C.UTF-8
LOGNAME=debusine-worker
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SHELL=/bin/sh
USER=debusine-worker
dpkg-buildpackage
-----------------
Command: dpkg-buildpackage -us -uc -b -rfakeroot
dpkg-buildpackage: info: source package cloud-init
dpkg-buildpackage: info: source version 24.3.1-2
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Noah Meyerhans <noahm@debian.org>
dpkg-source --before-build .
dpkg-buildpackage: info: host architecture arm64
dpkg-source: info: using options from cloud-init-24.3.1/debian/source/options: --extend-diff-ignore=\.pyc$
debian/rules clean
py3versions: no X-Python3-Version in control file, using supported versions
dh clean --with python3 --buildsystem pybuild
debian/rules override_dh_auto_clean
make[1]: Entering directory '/<<PKGBUILDDIR>>'
py3versions: no X-Python3-Version in control file, using supported versions
rm -rf .pybuild .pytest_cache build
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
dh_autoreconf_clean -O--buildsystem=pybuild
dh_clean -O--buildsystem=pybuild
debian/rules binary
py3versions: no X-Python3-Version in control file, using supported versions
dh binary --with python3 --buildsystem pybuild
dh_update_autotools_config -O--buildsystem=pybuild
dh_autoreconf -O--buildsystem=pybuild
dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:311: python3.13 setup.py config
/<<PKGBUILDDIR>>/setup.py:191: SyntaxWarning: invalid escape sequence '\o'
if cpe_data[1] == "\o": # noqa: W605
/<<PKGBUILDDIR>>/tools/read-dependencies:46: SyntaxWarning: invalid escape sequence '\.'
"""
running config
I: pybuild base:311: python3.12 setup.py config
/<<PKGBUILDDIR>>/setup.py:191: SyntaxWarning: invalid escape sequence '\o'
if cpe_data[1] == "\o": # noqa: W605
/<<PKGBUILDDIR>>/tools/read-dependencies:46: SyntaxWarning: invalid escape sequence '\.'
"""
running config
dh_auto_build -O--buildsystem=pybuild
I: pybuild base:311: /usr/bin/python3.13 setup.py build
/<<PKGBUILDDIR>>/setup.py:191: SyntaxWarning: invalid escape sequence '\o'
if cpe_data[1] == "\o": # noqa: W605
/<<PKGBUILDDIR>>/tools/read-dependencies:46: SyntaxWarning: invalid escape sequence '\.'
"""
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/warnings.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/user_data.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/helpers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/persistence.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/socket.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/subp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/importer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/atomic_helper.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/lifecycle.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/dmi.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/ssh_util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/event.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/url_helper.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/gpg.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/settings.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/simpletable.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/version.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/type_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/templater.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/registry.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/safeyaml.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/temp_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/cloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/netinfo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/log.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/stages.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/features.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/signal_handler.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
copying cloudinit/apport.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceVultr.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceEc2.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceNoCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceSmartOS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceConfigDrive.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceScaleway.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceOpenStack.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceWSL.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceBigstep.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceVMware.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceExoscale.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceRbxCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceAzure.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceAliYun.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceOVF.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceOpenNebula.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceCloudSigma.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceIBMCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceAkamai.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceDigitalOcean.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceUpCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceHetzner.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceNWCS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceOracle.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceGCE.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceLXD.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceCloudStack.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceAltCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceMAAS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
copying cloudinit/sources/DataSourceNone.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/analyze
copying cloudinit/analyze/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/analyze
copying cloudinit/analyze/show.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/analyze
copying cloudinit/analyze/dump.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/analyze
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/mergers
copying cloudinit/mergers/m_list.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/mergers
copying cloudinit/mergers/m_dict.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/mergers
copying cloudinit/mergers/m_str.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/mergers
copying cloudinit/mergers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/mergers
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/reporting
copying cloudinit/reporting/events.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/reporting
copying cloudinit/reporting/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/reporting
copying cloudinit/reporting/handlers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/reporting
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_growpart.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_users_groups.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_lxd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/modules.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_zypper_add_repo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_bootcmd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_runcmd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_update_hostname.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_package_update_upgrade_install.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_resolv_conf.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_write_files.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_disable_ec2_metadata.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_yum_add_repo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ntp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_landscape.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_reset_rmc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_resizefs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_puppet.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_byobu.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_spacewalk.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ansible.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ssh.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_scripts_per_boot.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_install_hotplug.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_fan.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_update_etc_hosts.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_keyboard.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_final_message.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_chef.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_scripts_user.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_power_state_change.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/schema.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ssh_import_id.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ca_certs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_write_files_deferred.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_mcollective.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_mounts.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_wireguard.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_apt_pipelining.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_scripts_per_instance.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_locale.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ubuntu_drivers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_set_passwords.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_seed_random.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_set_hostname.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_phone_home.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_apk_configure.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_apt_configure.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_rh_subscription.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ubuntu_pro.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_grub_dpkg.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ssh_authkey_fingerprints.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_snap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_ubuntu_autoinstall.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_timezone.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_rsyslog.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_disk_setup.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_scripts_per_once.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_scripts_vendor.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_keys_to_console.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
copying cloudinit/config/cc_salt_minion.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/handlers
copying cloudinit/handlers/shell_script_by_frequency.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/handlers
copying cloudinit/handlers/cloud_config.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/handlers
copying cloudinit/handlers/shell_script.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/handlers
copying cloudinit/handlers/boot_hook.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/handlers
copying cloudinit/handlers/jinja_template.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/handlers
copying cloudinit/handlers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/handlers
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/dhcp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/bsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/netplan.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/renderers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/netbsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/sysconfig.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/openbsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/cmdline.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/networkd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/freebsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/eni.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/network_state.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/ephemeral.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/network_manager.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/renderer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/udev.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
copying cloudinit/net/activators.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/filters
copying cloudinit/filters/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/filters
copying cloudinit/filters/launch_index.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/filters
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/debian.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/eurolinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/ubuntu.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/amazon.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/openeuler.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/bsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/dragonflybsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/networking.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/arch.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/cloudlinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/aosc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/netbsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/gentoo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/OpenCloudOS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/opensuse.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/opensuse-leap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/bsd_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/rhel.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/sles.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/openbsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/suse.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/azurelinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/alpine.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/centos.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/photon.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/freebsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/almalinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/cos.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/TencentOS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/mariner.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/rocky.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/sle_hpc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/ug_util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/miraclelinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/openmandriva.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/fedora.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/virtuozzo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/opensuse-microos.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/rhel_util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/opensuse-tumbleweed.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
copying cloudinit/distros/sle-micro.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd
copying cloudinit/cmd/status.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd
copying cloudinit/cmd/cloud_id.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd
copying cloudinit/cmd/clean.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd
copying cloudinit/cmd/query.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd
copying cloudinit/cmd/main.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd
copying cloudinit/cmd/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/azure
copying cloudinit/sources/azure/imds.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/azure
copying cloudinit/sources/azure/identity.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/azure
copying cloudinit/sources/azure/errors.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/azure
copying cloudinit/sources/azure/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/azure
copying cloudinit/sources/azure/kvp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/azure
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/akamai.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/azure.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/digitalocean.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/upcloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/ec2.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/hetzner.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/netlink.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/vultr.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/cloudsigma.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/openstack.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware
copying cloudinit/sources/helpers/vmware/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_file.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_source.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/guestcust_error.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_custom_script.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/guestcust_util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/nic_base.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/nic.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_passwd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_nic.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/guestcust_event.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/guestcust_state.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/boot_proto.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/sources/helpers/vmware/imc
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config/schemas
copying cloudinit/config/schemas/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config/schemas
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net/netops
copying cloudinit/net/netops/iproute2.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net/netops
copying cloudinit/net/netops/bsd_netops.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net/netops
copying cloudinit/net/netops/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/net/netops
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/resolv_conf.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/networkmanager_conf.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/hosts.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/ifconfig.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/sys_conf.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/hostname.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/parsers
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/package_manager.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/apt.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/snap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/distros/package_management
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/parser.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/logs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/hotplug_hook.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/net_convert.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/make_mime.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/render.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/cmd/devel
copying cloudinit/config/schemas/schema-network-config-v1.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config/schemas
copying cloudinit/config/schemas/schema-network-config-v2.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config/schemas
copying cloudinit/config/schemas/schema-cloud-config-v1.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config/schemas
copying cloudinit/config/schemas/versions.schema.cloud-config.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build/cloudinit/config/schemas
running build_scripts
creating build/scripts-3.13
copying tools/cloud-init-per -> build/scripts-3.13
I: pybuild base:311: /usr/bin/python3 setup.py build
/<<PKGBUILDDIR>>/setup.py:191: SyntaxWarning: invalid escape sequence '\o'
if cpe_data[1] == "\o": # noqa: W605
/<<PKGBUILDDIR>>/tools/read-dependencies:46: SyntaxWarning: invalid escape sequence '\.'
"""
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/warnings.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/user_data.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/helpers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/persistence.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/socket.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/subp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/importer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/atomic_helper.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/lifecycle.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/dmi.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/ssh_util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/event.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/url_helper.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/gpg.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/settings.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/simpletable.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/version.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/type_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/templater.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/registry.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/safeyaml.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/temp_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/cloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/netinfo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/log.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/stages.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/features.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/signal_handler.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
copying cloudinit/apport.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceVultr.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceEc2.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceNoCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceSmartOS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceConfigDrive.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceScaleway.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceOpenStack.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceWSL.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceBigstep.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceVMware.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceExoscale.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceRbxCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceAzure.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceAliYun.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceOVF.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceOpenNebula.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceCloudSigma.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceIBMCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceAkamai.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceDigitalOcean.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceUpCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceHetzner.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceNWCS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceOracle.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceGCE.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceLXD.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceCloudStack.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceAltCloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceMAAS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
copying cloudinit/sources/DataSourceNone.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/analyze
copying cloudinit/analyze/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/analyze
copying cloudinit/analyze/show.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/analyze
copying cloudinit/analyze/dump.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/analyze
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/mergers
copying cloudinit/mergers/m_list.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/mergers
copying cloudinit/mergers/m_dict.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/mergers
copying cloudinit/mergers/m_str.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/mergers
copying cloudinit/mergers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/mergers
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/reporting
copying cloudinit/reporting/events.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/reporting
copying cloudinit/reporting/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/reporting
copying cloudinit/reporting/handlers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/reporting
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_growpart.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_users_groups.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_lxd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/modules.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_zypper_add_repo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_bootcmd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_runcmd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_update_hostname.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_package_update_upgrade_install.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_resolv_conf.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_write_files.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_disable_ec2_metadata.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_yum_add_repo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ntp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_landscape.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_reset_rmc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_resizefs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_puppet.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_byobu.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_spacewalk.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ansible.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ssh.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_scripts_per_boot.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_install_hotplug.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_fan.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_update_etc_hosts.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_keyboard.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_final_message.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_chef.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_scripts_user.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_power_state_change.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/schema.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ssh_import_id.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ca_certs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_write_files_deferred.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_mcollective.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_mounts.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_wireguard.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_apt_pipelining.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_scripts_per_instance.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_locale.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ubuntu_drivers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_set_passwords.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_seed_random.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_set_hostname.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_phone_home.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_apk_configure.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_apt_configure.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_rh_subscription.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ubuntu_pro.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_grub_dpkg.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ssh_authkey_fingerprints.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_snap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_ubuntu_autoinstall.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_timezone.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_rsyslog.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_disk_setup.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_scripts_per_once.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_scripts_vendor.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_keys_to_console.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
copying cloudinit/config/cc_salt_minion.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/handlers
copying cloudinit/handlers/shell_script_by_frequency.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/handlers
copying cloudinit/handlers/cloud_config.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/handlers
copying cloudinit/handlers/shell_script.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/handlers
copying cloudinit/handlers/boot_hook.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/handlers
copying cloudinit/handlers/jinja_template.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/handlers
copying cloudinit/handlers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/handlers
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/dhcp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/bsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/netplan.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/renderers.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/netbsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/sysconfig.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/openbsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/cmdline.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/networkd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/freebsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/eni.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/network_state.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/ephemeral.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/network_manager.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/renderer.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/udev.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
copying cloudinit/net/activators.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/filters
copying cloudinit/filters/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/filters
copying cloudinit/filters/launch_index.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/filters
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/debian.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/eurolinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/ubuntu.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/amazon.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/openeuler.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/bsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/dragonflybsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/networking.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/arch.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/cloudlinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/aosc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/netbsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/gentoo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/OpenCloudOS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/opensuse.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/opensuse-leap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/bsd_utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/rhel.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/sles.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/openbsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/suse.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/azurelinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/alpine.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/centos.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/photon.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/freebsd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/almalinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/cos.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/TencentOS.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/mariner.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/rocky.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/sle_hpc.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/ug_util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/miraclelinux.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/openmandriva.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/fedora.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/virtuozzo.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/opensuse-microos.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/rhel_util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/opensuse-tumbleweed.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
copying cloudinit/distros/sle-micro.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd
copying cloudinit/cmd/status.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd
copying cloudinit/cmd/cloud_id.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd
copying cloudinit/cmd/clean.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd
copying cloudinit/cmd/query.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd
copying cloudinit/cmd/main.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd
copying cloudinit/cmd/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/azure
copying cloudinit/sources/azure/imds.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/azure
copying cloudinit/sources/azure/identity.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/azure
copying cloudinit/sources/azure/errors.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/azure
copying cloudinit/sources/azure/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/azure
copying cloudinit/sources/azure/kvp.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/azure
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/akamai.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/azure.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/digitalocean.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/upcloud.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/ec2.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/hetzner.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/netlink.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/vultr.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/cloudsigma.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
copying cloudinit/sources/helpers/openstack.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware
copying cloudinit/sources/helpers/vmware/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_file.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_source.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/guestcust_error.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_custom_script.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/guestcust_util.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/nic_base.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/nic.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_passwd.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/config_nic.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/guestcust_event.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/guestcust_state.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
copying cloudinit/sources/helpers/vmware/imc/boot_proto.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/sources/helpers/vmware/imc
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config/schemas
copying cloudinit/config/schemas/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config/schemas
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net/netops
copying cloudinit/net/netops/iproute2.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net/netops
copying cloudinit/net/netops/bsd_netops.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net/netops
copying cloudinit/net/netops/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/net/netops
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/resolv_conf.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/networkmanager_conf.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/hosts.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/ifconfig.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/sys_conf.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/parsers
copying cloudinit/distros/parsers/hostname.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/parsers
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/package_manager.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/apt.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/snap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/package_management
copying cloudinit/distros/package_management/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/distros/package_management
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/parser.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/logs.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/hotplug_hook.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/net_convert.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/make_mime.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd/devel
copying cloudinit/cmd/devel/render.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/cmd/devel
copying cloudinit/config/schemas/schema-network-config-v1.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config/schemas
copying cloudinit/config/schemas/schema-network-config-v2.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config/schemas
copying cloudinit/config/schemas/schema-cloud-config-v1.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config/schemas
copying cloudinit/config/schemas/versions.schema.cloud-config.json -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build/cloudinit/config/schemas
running build_scripts
creating build/scripts-3.12
copying tools/cloud-init-per -> build/scripts-3.12
debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
py3versions: no X-Python3-Version in control file, using supported versions
set -e && set -x && for pyvers in 3.13 3.12; do \
PYMAJOR=`echo $pyvers | cut -d'.' -f1` ; \
echo "===> Testing with python$pyvers (python$PYMAJOR)" ; \
PYTHON=python$pyvers PYTHONPATH=. python$pyvers -m pytest -v tests/unittests --ignore-glob /<<PKGBUILDDIR>>/tests/unittests/test_datasource/test_opennebula.py ; \
done
+ echo 3.13
+ cut -d. -f1
+ PYMAJOR=3
+ echo ===> Testing with python3.13 (python3)
===> Testing with python3.13 (python3)
+ PYTHON=python3.13 PYTHONPATH=. python3.13 -m pytest -v tests/unittests --ignore-glob /<<PKGBUILDDIR>>/tests/unittests/test_datasource/test_opennebula.py
============================= 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: /<<PKGBUILDDIR>>
configfile: tox.ini
plugins: typeguard-4.4.1, mock-3.14.0
collecting ... collected 5140 items
tests/unittests/analyze/test_boot.py::TestDistroChecker::test_blank_distro PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestDistroChecker::test_freebsd_gentoo_cant_find PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestDistroChecker::test_subp_fails PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestSystemCtlReader::test_systemctl_invalid PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestSystemCtlReader::test_systemctl_works_correctly_threshold PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestSystemCtlReader::test_systemctl_succeed_zero PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestSystemCtlReader::test_systemctl_succeed_distinct PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestSystemCtlReader::test_systemctl_epoch_not_error[epoch_not_splittable] PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestSystemCtlReader::test_systemctl_epoch_not_error[cannot_convert_epoch_to_float] PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_boot_invalid_distro PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_no_ci_log_line PASSED [ 0%]
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseTimestamp::test_parse_timestamp_handles_cloud_init_default_format PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseTimestamp::test_parse_timestamp_handles_syslog_adding_year PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseTimestamp::test_parse_timestamp_handles_journalctl_format_adding_year PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseTimestamp::test_parse_unexpected_timestamp_format_with_date_command PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseTimestamp::test_parse_timestamp_round_trip PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseTimestamp::test_parse_timestamp_handles_explicit_timezone PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseCILogLine::test_parse_logline_returns_none_without_separators PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseCILogLine::test_parse_logline_returns_event_for_cloud_init_logs PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseCILogLine::test_parse_logline_returns_event_for_journalctl_logs PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseCILogLine::test_parse_logline_returns_event_for_finish_events PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestParseCILogLine::test_parse_logline_returns_event_for_amazon_linux_2_line PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestDumpEvents::test_dump_events_with_rawdata PASSED [ 0%]
tests/unittests/analyze/test_dump.py::TestDumpEvents::test_dump_events_with_cisource PASSED [ 0%]
tests/unittests/analyze/test_show.py::TestAnalyzeShow::test_empty_logfile PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestUnsupportedActions::test_unsupported_subsystem PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestUnsupportedActions::test_unsupported_udevaction PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_succcessful_add PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_successful_remove PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_skip_detected[True] PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_skip_detected[False] PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_update_event_disabled PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_update_metadata_failed PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_detect_hotplugged_device_not_detected_on_add PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_detect_hotplugged_device_detected_on_remove PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_apply_failed_on_add PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_apply_failed_on_remove PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestHotplug::test_retry PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestEnableHotplug::test_enabling PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestEnableHotplug::test_hotplug_not_supported_in_ds[supported_events0] PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestEnableHotplug::test_hotplug_not_supported_in_ds[supported_events1] PASSED [ 0%]
tests/unittests/cmd/devel/test_hotplug_hook.py::TestEnableHotplug::test_hotplug_already_enabled_in_file PASSED [ 0%]
tests/unittests/cmd/devel/test_init.py::TestReadCfgPaths::test_read_cfg_paths_fetches_cached_datasource PASSED [ 0%]
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_collect_logs_requires_root_user PASSED [ 0%]
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_collect_logs_end_to_end PASSED [ 0%]
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_logs_and_installer_ignore_sensitive_flag PASSED [ 0%]
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_root_read_only_not_collected_on_redact PASSED [ 0%]
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_write_command_output_to_file[cmd0-cloud-init? more like cloud-innit!\n-cloud-init? more like cloud-innit!\n] PASSED [ 0%]
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_write_command_output_to_file[cmd1-Unexpected error while running command.\nCommand: ['sh', '-c', 'echo test 1>&2; exit 42']\nExit code: 42\nReason: -\nStdout: \nStderr: test-None] PASSED [ 0%]
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_stream_command_output_to_file[cmd0-cloud-init, shmoud-init\n] PASSED [ 0%]
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_stream_command_output_to_file[cmd1-test\n] PASSED [ 1%]
tests/unittests/cmd/devel/test_logs.py::TestCollectInstallerLogs::test_include_installer_logs_when_present[no_files_include_userdata] PASSED [ 1%]
tests/unittests/cmd/devel/test_logs.py::TestCollectInstallerLogs::test_include_installer_logs_when_present[no_files_exclude_userdata] PASSED [ 1%]
tests/unittests/cmd/devel/test_logs.py::TestCollectInstallerLogs::test_include_installer_logs_when_present[files_and_dirs_include_userdata] PASSED [ 1%]
tests/unittests/cmd/devel/test_logs.py::TestCollectInstallerLogs::test_include_installer_logs_when_present[files_and_dirs_exclude_userdata] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_argparse_error_on_missing_args[cmdargs0] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_argparse_error_on_missing_args[cmdargs1] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_argparse_error_on_missing_args[cmdargs2] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_argparse_error_on_missing_args[cmdargs3] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_argparse_error_on_missing_args[cmdargs4] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[netplan-outfile_content0-False] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[netplan-outfile_content0-True] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[eni-outfile_content1-False] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[eni-outfile_content1-True] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[networkd-outfile_content2-False] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[networkd-outfile_content2-True] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[sysconfig-outfile_content3-False] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[sysconfig-outfile_content3-True] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[network-manager-outfile_content4-False] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_output_kind_artifacts[network-manager-outfile_content4-True] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_netplan_passthrough[False] PASSED [ 1%]
tests/unittests/cmd/devel/test_net_convert.py::TestNetConvert::test_convert_netplan_passthrough[True] PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_error_on_missing_user_data PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_error_on_missing_instance_data PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_default_instance_data PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_root_fallback_from_sensitive_instance_data PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_root_uses_sensitive_instance_data PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_renders_instance_data_vars_in_template PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_render_warns_and_gives_up_on_invalid_jinja_operation PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_jinja_load_error PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_not_jinja_error PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_no_user_data PASSED [ 1%]
tests/unittests/cmd/devel/test_render.py::TestRender::test_invalid_jinja_syntax PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_artifacts_removes_logs PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_net_conf PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_ssh_conf PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_all_conf PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_keep_net_conf PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_artifacts_runparts_clean_d PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_artifacts_preserves_logs PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_artifacts_removes_unlinks_symlinks PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_artifacts_removes_artifacts_skipping_seed PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_artifacts_removes_artifacts_removes_seed PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_remove_artifacts_returns_one_on_errors PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_handle_clean_args_reboots PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_handle_clean_args_removed_machine_id[machine_id_on_systemd_uninitialized] PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_handle_clean_args_removed_machine_id[machine_id_non_systemd_removes_file] PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_handle_clean_args_removed_machine_id[no_machine_id_param_file_remains] PASSED [ 1%]
tests/unittests/cmd/test_clean.py::TestClean::test_status_main PASSED [ 1%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_arg_parser_defaults PASSED [ 1%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_arg_parse_overrides PASSED [ 1%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_missing_instance_data_json PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_non_json_instance_data PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_from_cloud_name_in_instance_data PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_long_name_from_instance_data PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_lookup_from_instance_data_region PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_lookup_json_instance_data_adds_cloud_id_to_json PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_unique_exit_codes_for_status[details0-2] PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_unique_exit_codes_for_status[details1-3] PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_unique_exit_codes_for_status[details2-0] PASSED [ 2%]
tests/unittests/cmd/test_cloud_id.py::TestCloudId::test_cloud_id_unique_exit_codes_for_status[details3-0] PASSED [ 2%]
tests/unittests/cmd/test_main.py::TestMain::test_main_init_run_net_calls_set_hostname_when_metadata_present PASSED [ 2%]
tests/unittests/cmd/test_main.py::TestMain::test_main_init_run_net_runs_modules PASSED [ 2%]
tests/unittests/cmd/test_main.py::TestMain::test_main_sys_argv PASSED [ 2%]
tests/unittests/cmd/test_main.py::TestShouldBringUpInterfaces::test_should_bring_up_interfaces[True-True-False] PASSED [ 2%]
tests/unittests/cmd/test_main.py::TestShouldBringUpInterfaces::test_should_bring_up_interfaces[True-False-False] PASSED [ 2%]
tests/unittests/cmd/test_main.py::TestShouldBringUpInterfaces::test_should_bring_up_interfaces[False-True-False] PASSED [ 2%]
tests/unittests/cmd/test_main.py::TestShouldBringUpInterfaces::test_should_bring_up_interfaces[False-False-True] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_error_on_missing_param PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_error_on_invalid_varname_paths[{"v1": {"key-2": "value-2"}}-v1.absent_leaf-instance-data 'v1' has no 'absent_leaf'\n] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_error_on_invalid_varname_paths[{"v1": {"key-2": "value-2"}}-absent_key-Undefined instance-data key 'absent_key'\n] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_error_on_missing_instance_data PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_error_when_no_read_permission_instance_data PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_error_when_no_read_permission_init_cfg[exception0] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_error_when_no_read_permission_init_cfg[exception1] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_error_when_no_read_permission_init_cfg[exception2] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_defaults_instance_data PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_root_fallsback_to_instance_data PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_root_processes_user_data[hi mom-hi mom-hi pops-hi pops] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_root_processes_user_data[ud-ud-vd-vd] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_root_processes_user_data[\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff+M\x01\x00\r:NY\x02\x00\x00\x00-ud-\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff+K\x01\x00\xceicr\x02\x00\x00\x00-vd0] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_root_processes_user_data[\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff+M\x01\x00\r:NY\x02\x00\x00\x00-ud-\x1f\x8b\x08\x00\x00\x00\x00\x00\x02\xff+K\x01\x00\xceicr\x02\x00\x00\x00-vd1] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_user_vendor_data_defaults_to_instance_link PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_root_uses_instance_sensitive_data PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_dumps_all_instance_data PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_returns_top_level_varname PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_returns_nested_varname[{"v1": {"key-2": "value-2"}, "my-var": "it worked"}-v1.key_2-value-2\n] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_returns_nested_varname[{"v1": {"something-hyphenated": {"no.underscores":"x", "no-alias": "y"}}, "my-var": "it worked"}-v1.something_hyphenated-{\n "no-alias": "y",\n "no.underscores": "x"\n}\n] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_returns_standardized_vars_to_top_level_aliases PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_list_keys_sorts_top_level_keys_when_no_varname PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_list_keys_sorts_nested_keys_when_varname PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_list_keys_errors_when_varname_is_not_a_dict PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_formats_jinja_successfully[True] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_formats_jinja_successfully[False] PASSED [ 2%]
tests/unittests/cmd/test_query.py::TestQuery::test_handle_args_invalid_jinja_exception PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_get_status_details_ds_none PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_get_status_systemd_failure PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_get_bootstatus[false_on_sysvinit] PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_get_bootstatus[true_on_disable_file] PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_get_bootstatus[false_on_kernel_cmdline_enable] PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_get_bootstatus[true_on_kernel_cmdline] PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_get_bootstatus[true_when_generator_disables] PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_get_bootstatus[false_when_enabled_in_systemd] PASSED [ 2%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_returns_not_run PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_returns_disabled_long_on_presence_of_disable_file PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[running_on_no_results_json] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[done] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[returns_done_long] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[on_errors] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[on_errors_long] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[running_long_format] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[running_yaml_format] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[running_json_format] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[running_json_format_with_errors] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_output[running_json_format_with_recoverable_errors] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_wait_blocks_until_done PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_wait_blocks_until_error PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestStatus::test_status_main PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[activating-enabled-start-123-False0] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[activating-enabled-start-123-False1] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[active-enabled-runtime-exited-0-False] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[active-enabled-exited-0-False] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[active-enabled-running-345-False] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[active-enabled-running-0-False] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[inactive-static-dead-123-False] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[reloading-enabled-start-123-False] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[deactivating-enabled-runtime-any-123-False] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[failed-static-failed-0-True] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[activating-linked-start-0-True] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[active-linked-runtime-exited-0-True] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[inactive-masked-dead-0-True] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[reloading-masked-runtime-start-0-True] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[deactivating-disabled-any-0-True] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_systemd_failed[failed-invalid-failed-0-True] PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_retry PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestSystemdFailed::test_retry_no_wait PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestQuerySystemctl::test_query_systemctl PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestQuerySystemctl::test_query_systemctl_with_exception PASSED [ 3%]
tests/unittests/cmd/test_status.py::TestQuerySystemctl::test_query_systemctl_wait_with_exception PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestAptProxyConfig::test_apt_all_proxy_written PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestAptProxyConfig::test_apt_http_proxy_written PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestAptProxyConfig::test_apt_proxy_written PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestAptProxyConfig::test_config_deleted PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestAptProxyConfig::test_config_replaced PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestAptProxyConfig::test_config_written PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestAptProxyConfig::test_proxy_deleted PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestAptProxyConfig::test_proxy_replaced PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestConversion::test_convert_with_apt_mirror PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestConversion::test_convert_with_apt_mirror_as_empty_string PASSED [ 3%]
tests/unittests/config/test_apt_conf_v1.py::TestConversion::test_no_old_content PASSED [ 3%]
tests/unittests/config/test_apt_configure_mirrorlists_v3.py::TestAptSourceConfigMirrorlists::test_apt_v3_mirrors_list PASSED [ 3%]
tests/unittests/config/test_apt_configure_sources_list_v1.py::TestAptSourceConfigSourceList::test_apt_v1_source_list_by_distro[ubuntu-http://archive.ubuntu.com/ubuntu/] PASSED [ 3%]
tests/unittests/config/test_apt_configure_sources_list_v1.py::TestAptSourceConfigSourceList::test_apt_v1_source_list_by_distro[debian-http://httpredir.debian.org/debian/] PASSED [ 3%]
tests/unittests/config/test_apt_configure_sources_list_v1.py::TestAptSourceConfigSourceList::test_apt_v1_srcl_distro_mirrorfail[ubuntu-mirrorlist0-http://archive.ubuntu.com/ubuntu/] PASSED [ 3%]
tests/unittests/config/test_apt_configure_sources_list_v1.py::TestAptSourceConfigSourceList::test_apt_v1_srcl_distro_mirrorfail[debian-mirrorlist1-http://httpredir.debian.org/debian/] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v1.py::TestAptSourceConfigSourceList::test_apt_v1_srcl_custom[deb822_and_deb822_sources_list_writes_deb822_source_file] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v1.py::TestAptSourceConfigSourceList::test_apt_v1_srcl_custom[deb822_and_non_deb822_sources_list_writes_apt_list_file] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v1.py::TestAptSourceConfigSourceList::test_apt_v1_srcl_custom[nodeb822_and_nondeb822_sources_list_writes_list_file] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v1.py::TestAptSourceConfigSourceList::test_apt_v1_srcl_custom[nodeb822_and_deb822_sources_list_writes_sources_file] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_empty_cfg_source_list_by_distro[ubuntu-True] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_empty_cfg_source_list_by_distro[debian-True] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_empty_cfg_source_list_by_distro[rhel-False] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_source_list_ubuntu_snappy PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_source_list_psm_deb822_feature_aware[True-/etc/cloud/templates/sources.list.ubuntu.deb822.tmpl-## template:jinja\n# Generated by cloud-init\nTypes: deb deb-src\nURIs: {{mirror}}\nSuites: {{codename}} {{codename}}-updates\nComponents: main restricted\n\n# Security section\nTypes: deb deb-src\nURIs: {{security}}\nSuites: {{codename}}-security\nComponents: main restricted\n-/etc/apt/sources.list.d/ubuntu.sources-# Generated by cloud-init\nTypes: deb deb-src\nURIs: http://test.ubuntu.com/ubuntu/\nSuites: fakerel fakerel-updates\nComponents: main restricted\n\n# Security section\nTypes: deb deb-src\nURIs: http://testsec.ubuntu.com/ubuntu/\nSuites: fakerel-security\nComponents: main restricted\n] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_source_list_psm_deb822_feature_aware[False-/etc/cloud/templates/sources.list.ubuntu.tmpl-## template:jinja\ndeb {{mirror}} {{codename}} main restricted\ndeb-src {{mirror}} {{codename}} main restricted\ndeb {{mirror}} {{codename}}-updates universe restricted\ndeb {{security}} {{codename}}-security multiverse\n-/etc/apt/sources.list-deb http://test.ubuntu.com/ubuntu/ fakerel main restricted\ndeb-src http://test.ubuntu.com/ubuntu/ fakerel main restricted\ndeb http://test.ubuntu.com/ubuntu/ fakerel-updates universe restricted\ndeb http://testsec.ubuntu.com/ubuntu/ fakerel-security multiverse\n] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_srcl_custom_deb822_feature_aware[deb822_feature_deb822_sources_list_writes_deb822_source] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_srcl_custom_deb822_feature_aware[deb822_feature_nondeb822_sources_list_writes_list_file] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_srcl_custom_deb822_feature_aware[nodeb822_feature_nondeb822_sources_list_writes_list_file] PASSED [ 4%]
tests/unittests/config/test_apt_configure_sources_list_v3.py::TestAptSourceConfigSourceList::test_apt_v3_srcl_custom_deb822_feature_aware[nodeb822_feature_deb822_sources_list_writes_deb822_source] PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_add_success PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_add_success_hardened PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_add_fail_no_file_name PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_add_fail_no_file_name_subproc PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_add_fail_no_file_name_unicode PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_list_success_human PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_list_success_machine PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_list_fail_no_keys PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_list_fail_no_keys_file PASSED [ 4%]
tests/unittests/config/test_apt_key.py::TestAptKey::test_apt_key_list_fail_bad_key_file PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_basic PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_basic_dict PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_basic_tri PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_basic_dict_tri PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_basic_nofn PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_replace PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_replace_tri PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_replace_dict_tri PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_replace_nofn PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_keyid PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_keyid_tri PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_keyid_nofn PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_key PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_key_nofn PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_keyonly PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_keyidonly PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_keyid_real PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_longkeyid_real PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_longkeyid_ks_real PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_ppa PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_apt_src_ppa_tri PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_convert_to_new_format PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_convert_to_new_format_collision PASSED [ 4%]
tests/unittests/config/test_apt_source_v1.py::TestAptSourceConfig::test_convert_to_new_format_dict_collision PASSED [ 4%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_basic PASSED [ 4%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_basic_tri PASSED [ 4%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_replace PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_replace_fn PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_replace_tri PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_keyid PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_keyid_tri PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_key PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_keyonly PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_keyidonly PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_keyid_real PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_longkeyid_real PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_longkeyid_ks_real PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_keyid_keyserver PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_ppa PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_src_ppa_tri PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_list_rename PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_proxy PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_mirror PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_mirror_default PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_mirror_arches PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_mirror_arches_default PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_get_def_mir_non_intel_no_arch PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_get_default_mirrors_non_intel_with_arch PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_mirror_arches_sysdefault PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_mirror_search PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_mirror_search_many2 PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_url_resolvable PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_disable_suites PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_disable_suites_blank_lines PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_mirror_search_dns PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestAptSourceConfig::test_apt_v3_add_mirror_keys PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDebconfSelections::test_set_sel_appends_newline_if_absent PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDebconfSelections::test_no_set_sel_if_none_to_set PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDebconfSelections::test_set_sel_call_has_expected_input PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDebconfSelections::test_reconfigure_if_intersection PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDebconfSelections::test_reconfigure_if_no_intersection PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDebconfSelections::test_dpkg_reconfigure_does_reconfigure PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDebconfSelections::test_dpkg_reconfigure_not_done_on_no_data PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDebconfSelections::test_dpkg_reconfigure_not_done_if_no_cleaners PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDisableSuitesDeb822::test_disable_deb822_suites_disables_proper_suites[empty_suites_nochange] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDisableSuitesDeb822::test_disable_deb822_suites_disables_proper_suites[no_matching_suites_nochange] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDisableSuitesDeb822::test_disable_deb822_suites_disables_proper_suites[matching_all_suites_disables_whole_section] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDisableSuitesDeb822::test_disable_deb822_suites_disables_proper_suites[matching_some_suites_redacts_matches_and_comments_orig] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestDisableSuitesDeb822::test_disable_deb822_suites_disables_proper_suites[matching_all_suites_disables_specific_section] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestGetAptCfg::test_use_defaults_or_apt_config_dump[no_aptpkg_use_apt_config_cmd] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestGetAptCfg::test_use_defaults_or_apt_config_dump[no_aptpkg_unparsable_apt_config_cmd_defaults] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestGetAptCfg::test_use_defaults_or_apt_config_dump[no_aptpkg_no_apt_config_cmd_defaults] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestIsDeb822SourcesFormat::test_is_deb822_format_prefers_non_deb822[any_deb_src_is_not_deb822] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestIsDeb822SourcesFormat::test_is_deb822_format_prefers_non_deb822[any_deb_url_is_not_deb822] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestIsDeb822SourcesFormat::test_is_deb822_format_prefers_non_deb822[even_some_deb822_fields_not_deb822_if_any_deb_line] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestIsDeb822SourcesFormat::test_is_deb822_format_prefers_non_deb822[types_deb822_keys_and_no_deb_or_deb_src_is_deb822] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestIsDeb822SourcesFormat::test_is_deb822_format_prefers_non_deb822[uris_deb822_keys_and_no_deb_or_deb_src_is_deb822] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestIsDeb822SourcesFormat::test_is_deb822_format_prefers_non_deb822[suites_deb822_keys_and_no_deb_deb_src_is_deb822] PASSED [ 5%]
tests/unittests/config/test_apt_source_v3.py::TestIsDeb822SourcesFormat::test_is_deb822_format_prefers_non_deb822[components_deb822_keys_and_no_deb_deb_src_is_deb822] PASSED [ 6%]
tests/unittests/config/test_apt_source_v3.py::TestIsDeb822SourcesFormat::test_is_deb822_format_prefers_non_deb822[neither_deb822_keys_nor_deb_deb_src_warn_and_not_deb822] PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestSchema::test_schema_validation[essentials] SKIPPED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestSchema::test_schema_validation[additional-properties] SKIPPED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestSchema::test_schema_validation[all-pull-keys] SKIPPED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestSchema::test_schema_validation[ctrl-keys] SKIPPED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestSchema::test_schema_validation[install-type] SKIPPED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestSchema::test_schema_validation[require-url0] SKIPPED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestSchema::test_schema_validation[require-url1] SKIPPED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_filter_args PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_required_keys[cfg0-None] PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_required_keys[cfg1-None] PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_required_keys[cfg2-ValueError] PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_required_keys[cfg3-ValueError] PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_deps_not_installed PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_deps PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_pip_bootstrap PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_ansible_pull[cfg0-expected0] PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_ansible_pull[cfg1-expected1] PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_do_not_run PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_parse_version_distro PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_parse_version_pip PASSED [ 6%]
tests/unittests/config/test_cc_ansible.py::TestAnsible::test_ansible_env_var PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestNoConfig::test_no_config PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestConfig::test_edge_main_community_testing_local_repos PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestConfig::test_edge_main_community_testing_repos PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestConfig::test_empty_repo_settings PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestConfig::test_main_and_community_repos PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestConfig::test_main_community_testing_local_repos PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestConfig::test_main_community_testing_repos PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestConfig::test_no_repo_settings PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestConfig::test_only_main_repo PASSED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config0-None] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config1-None] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config2-None] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config3-None] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config4-None] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config5-apk_repos.alpine_repo.version: False is not of type 'string'] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config6-apk_repos\\.alpine_repo:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('bogus'\\ was\\ unexpected\\)] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config7-apk_repos.alpine_repo: 'version' is a required property, apk_repos.alpine_repo: {} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config8-apk_repos.alpine_repo: True is not of type 'object', 'null'] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config9-apk_repos.preserve_repositories: 'wrongtype' is not of type 'boolean'] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config10-apk_repos: {} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 6%]
tests/unittests/config/test_cc_apk_configure.py::TestApkConfigureSchema::test_schema_validation[config11-apk_repos.local_repo_base_url: None is not of type 'string'] SKIPPED [ 6%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config0-None] SKIPPED [ 6%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config1-apt: 'nonobject' is not of type 'object] SKIPPED [ 6%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config2-apt:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('boguskey'\\ was\\ unexpected\\)] SKIPPED [ 6%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config3-apt: {} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 6%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config4-apt.preserve_sources_list: 1 is not of type 'boolean'] SKIPPED [ 6%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config5-apt.disable_suites: 1 is not of type 'array'] SKIPPED [ 6%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config6-apt\\.disable_suites:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 6%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config7-apt.disable_suites.0: 1 is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config8-apt\\.disable_suites:\\ \\['a',\\ 'a'\\]\\ has\\ non\\-unique\\ elements] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config9-apt.primary: 'nonlist' is not of type 'array'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config10-apt\\.primary:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config11-apt.primary.0: 'nonobj' is not of type 'object'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config12-apt.primary.0: 'arches' is a required property] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config13-apt\\.primary\\.0:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('boguskey'\\ was\\ unexpected\\)] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config14-apt.primary.0.arches: True is not of type 'array'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config15-apt.primary.0.uri: True is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config16-apt.primary.0.search: 'non-array' is not of type 'array'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config17-apt\\.primary\\.0\\.search:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config18-apt.primary.0.search_dns: 'a' is not of type 'boolean'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config19-apt.primary.0.keyid: 1 is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config20-apt.primary.0.key: 1 is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config21-apt.primary.0.keyserver: 1 is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config22-apt.add_apt_repo_match: True is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config23-apt.debconf_selections: True is not of type 'object'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config24-apt.debconf_selections: {} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config25-apt.sources_list: True is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config26-apt.conf: True is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config27-apt.http_proxy: True is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config28-apt.https_proxy: True is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config29-apt.proxy: True is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config30-apt.ftp_proxy: True is not of type 'string'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config31-apt.sources: True is not of type 'object'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config32-apt.sources.opaquekey: True is not of type 'object'] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config33-apt.sources.opaquekey: {} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAPTConfigureSchema::test_schema_validation[config34-apt\\.sources\\.opaquekey:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('boguskey'\\ was\\ unexpected\\)] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestEnsureDependencies::test_only_install_needed_packages[empty_cfg_no_pkg_installs] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestEnsureDependencies::test_only_install_needed_packages[cfg_needs_gpg_no_installs_when_gpg_present] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestEnsureDependencies::test_only_install_needed_packages[cfg_needs_gpg_installs_gnupg_when_absent] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestEnsureDependencies::test_only_install_needed_packages[cfg_primary_needs_gpg_installs_gnupg_when_absent] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestEnsureDependencies::test_only_install_needed_packages[cfg_security_needs_gpg_installs_gnupg_when_absent] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestEnsureDependencies::test_only_install_needed_packages[cfg_needs_sw_prop_common_when_present] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestEnsureDependencies::test_only_install_needed_packages[cfg_needs_sw_prop_common_when_add_apt_repo_absent] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAptConfigure::test_remove_source[ubuntu_replace_invalid_apt_source_list_with_default] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAptConfigure::test_remove_source[debian_remove_invalid_apt_source_list] PASSED [ 7%]
tests/unittests/config/test_cc_apt_configure.py::TestAptConfigure::test_remove_source[ubuntu_no_warning_when_existig_sources_list_content_allowed] PASSED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_not_disabled_by_default PASSED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_false_disables_pipelining PASSED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_schema_validation[config0-None] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_schema_validation[config1-None] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_schema_validation[config2-None] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_schema_validation[config3-None] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_schema_validation[config4-None] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_schema_validation[config5-Deprecated in version] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_schema_validation[config6-Deprecated in version] SKIPPED [ 7%]
tests/unittests/config/test_cc_apt_pipelining.py::TestAptPipelining::test_schema_validation[config7-Cloud\\ config\\ schema\\ errors:\\ apt_pipelining:\\ 'bogus'\\ is] SKIPPED [ 7%]
tests/unittests/config/test_cc_bootcmd.py::TestBootcmd::test_handler_creates_and_runs_bootcmd_script_with_instance_id PASSED [ 7%]
tests/unittests/config/test_cc_bootcmd.py::TestBootcmd::test_handler_invalid_command_set PASSED [ 7%]
tests/unittests/config/test_cc_bootcmd.py::TestBootcmd::test_handler_runs_bootcmd_script_with_error PASSED [ 7%]
tests/unittests/config/test_cc_bootcmd.py::TestBootcmd::test_handler_skip_if_no_bootcmd PASSED [ 7%]
tests/unittests/config/test_cc_bootcmd.py::TestBootCMDSchema::test_schema_validation[config0-Cloud config schema errors: bootcmd: 1 is not of type 'array'] SKIPPED [ 8%]
tests/unittests/config/test_cc_bootcmd.py::TestBootCMDSchema::test_schema_validation[config1-bootcmd:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 8%]
tests/unittests/config/test_cc_bootcmd.py::TestBootCMDSchema::test_schema_validation[config2-Cloud\\ config\\ schema\\ errors:\\ bootcmd:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 8%]
tests/unittests/config/test_cc_bootcmd.py::TestBootCMDSchema::test_schema_validation[config3-Cloud config schema errors: bootcmd.1: 20 is not of type 'array', bootcmd.1: 20 is not of type 'string', bootcmd.3: {'a': 'n'} is not of type 'array'] SKIPPED [ 8%]
tests/unittests/config/test_cc_byobu.py::TestByobuSchema::test_schema_validation[config0-None] SKIPPED [ 8%]
tests/unittests/config/test_cc_byobu.py::TestByobuSchema::test_schema_validation[config1-byobu_by_default: 1 is not of type 'string'] SKIPPED [ 8%]
tests/unittests/config/test_cc_byobu.py::TestByobuSchema::test_schema_validation[config2-byobu_by_default:\\ 'bogusenum'\\ is\\ not\\ one\\ of\\ \\['enable\\-system',\\ 'enable\\-user',\\ 'disable\\-system',\\ 'disable\\-user',\\ 'enable',\\ 'disable',\\ 'user',\\ 'system'\\]] SKIPPED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestNoConfig::test_no_config PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestConfig::test_correct_order_for_remove_then_add PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestConfig::test_empty_trusted_list PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestConfig::test_multiple_trusted PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestConfig::test_no_remove_defaults_if_false PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestConfig::test_no_trusted_list PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestConfig::test_remove_default_ca_certs PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestConfig::test_single_trusted PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestAddCaCerts::test_multiple_certs PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestAddCaCerts::test_no_certs_in_list PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestAddCaCerts::test_single_cert PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestUpdateCaCerts::test_commands PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestRemoveDefaultCaCerts::test_commands PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestRemoveDefaultCaCerts::test_non_existent_cert_cfg PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_schema_validation[config0-Cloud\\ config\\ schema\\ deprecations:\\ ca\\-certs:\\ \\ Deprecated\\ in\\ version\\ 22\\.3\\.\\ Use\\ \\*\\*ca_certs\\*\\*\\ instead\\.,\\ ca\\-certs\\.remove\\-defaults:\\ \\ Deprecated\\ in\\ version\\ 22\\.3\\.\\ Use\\ \\*\\*remove_defaults\\*\\*\\ instead\\.] SKIPPED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_schema_validation[config1-ca_certs: 1 is not of type 'object'] SKIPPED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_schema_validation[config2-ca_certs:\\ \\{\\}\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_schema_validation[config3-ca_certs:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('boguskey'\\ was\\ unexpected\\)] SKIPPED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_schema_validation[config4-ca_certs.remove_defaults: 1 is not of type 'boolean'] SKIPPED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_schema_validation[config5-ca_certs.trusted.0: 1 is not of type 'string'] SKIPPED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_schema_validation[config6-ca_certs\\.trusted:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_deprecate_key_warnings PASSED [ 8%]
tests/unittests/config/test_cc_ca_certs.py::TestCACertsSchema::test_duplicate_keys PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestInstallChefOmnibus::test_install_chef_from_omnibus_has_omnibus_version PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestInstallChefOmnibus::test_install_chef_from_omnibus_retries_url PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestInstallChefOmnibus::test_install_chef_from_omnibus_runs_chef_url_content PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestChef::test_basic_config PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestChef::test_firstboot_json PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestChef::test_no_config PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestChef::test_template_deletes PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestChef::test_validation_cert_and_validation_key PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestChef::test_validation_cert_with_system PASSED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config0-chef: 1 is not of type 'object'] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config1-\\ chef:\\ \\{\\}\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config2-chef:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('boguskey'\\ was\\ unexpected\\)] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config3-chef.directories: 1 is not of type 'array'] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config4-chef\\.directories:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config5-chef.directories.0: 1 is not of type 'string'] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config6-chef\\.directories:\\ \\['a',\\ 'a'\\]\\ has\\ non\\-unique\\ elements] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config7-chef.validation_cert: 1 is not of type 'string'] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config8-chef.validation_key: 1 is not of type 'string'] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config9-chef.firstboot_path: 1 is not of type 'string'] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config10-chef.client_key: 1 is not of type 'string'] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config11-chef.encrypted_data_bag_secret: 1 is not of type 'string'] SKIPPED [ 8%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config12-chef.environment: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config13-chef.file_backup_path: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config14-chef.file_cache_path: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config15-chef.json_attribs: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config16-chef.log_level: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config17-chef.log_location: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config18-chef.node_name: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config19-chef.omnibus_url: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config20-chef.omnibus_url_retries: 'one' is not of type 'integer'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config21-chef.omnibus_version: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config22-chef.omnibus_version: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config23-chef.pid_file: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config24-chef.server_url: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config25-chef.show_time: 1 is not of type 'boolean'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config26-chef.ssl_verify_mode: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config27-chef.validation_name: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config28-chef.force_install: 1 is not of type 'boolean'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config29-chef.initial_attributes: 1 is not of type 'object'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config30-chef.install_type: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config31-chef\\.install_type:\\ 'bogusenum'\\ is\\ not\\ one\\ of\\ \\['packages',\\ 'gems',\\ 'omnibus'\\]] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config32-chef.run_list: 1 is not of type 'array'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestBootCMDSchema::test_schema_validation[config33-chef.chef_license: 1 is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_chef.py::TestHelpers::test_subp_blob_in_tempfile PASSED [ 9%]
tests/unittests/config/test_cc_chef.py::TestHelpers::test_subp_blob_in_tempfile_args PASSED [ 9%]
tests/unittests/config/test_cc_disable_ec2_metadata.py::TestEC2MetadataRoute::test_disable_ifconfig PASSED [ 9%]
tests/unittests/config/test_cc_disable_ec2_metadata.py::TestEC2MetadataRoute::test_disable_ip PASSED [ 9%]
tests/unittests/config/test_cc_disable_ec2_metadata.py::TestEC2MetadataRoute::test_disable_no_tool PASSED [ 9%]
tests/unittests/config/test_cc_disable_ec2_metadata.py::TestDisableEc2MetadataSchema::test_schema_validation[config0-disable_ec2_metadata: 1 is not of type 'boolean'] SKIPPED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestIsDiskUsed::test_multiple_child_nodes_returns_true PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestIsDiskUsed::test_valid_filesystem_returns_true PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestIsDiskUsed::test_one_child_nodes_and_no_fs_returns_false PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestGetMbrHddSize::test_size_for_512_byte_sectors PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestGetMbrHddSize::test_size_for_1024_byte_sectors PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestGetMbrHddSize::test_size_for_2048_byte_sectors PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestGetMbrHddSize::test_size_for_4096_byte_sectors PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestGetPartitionMbrLayout::test_single_partition_using_boolean PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestGetPartitionMbrLayout::test_single_partition_using_list PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestGetPartitionMbrLayout::test_half_and_half PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestGetPartitionMbrLayout::test_thirds_with_different_partition_type PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestUpdateFsSetupDevices::test_regression_1634678 PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestUpdateFsSetupDevices::test_dotted_devname PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestUpdateFsSetupDevices::test_dotted_devname_populates_partition PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestPurgeDisk::test_purge_disk_ptable PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestMkfsCommandHandling::test_mkswap PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestMkfsCommandHandling::test_overwrite_and_extra_opts_without_cmd PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestMkfsCommandHandling::test_with_cmd PASSED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestDebugSchema::test_schema_validation[config0-disk_setup: 1 is not of type 'object'] SKIPPED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestDebugSchema::test_schema_validation[config1-fs_setup: 1 is not of type 'array'] SKIPPED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestDebugSchema::test_schema_validation[config2-device_aliases: 1 is not of type 'object'] SKIPPED [ 9%]
tests/unittests/config/test_cc_disk_setup.py::TestDebugSchema::test_valid_schema[config0] SKIPPED [ 9%]
tests/unittests/config/test_cc_fan.py::TestFanSchema::test_schema_validation[config0-is not of type 'string'] SKIPPED [ 9%]
tests/unittests/config/test_cc_fan.py::TestFanSchema::test_schema_validation[config1-'config' is a required property] SKIPPED [ 10%]
tests/unittests/config/test_cc_final_message.py::TestHandle::test_boot_finished_written[True-True-None] PASSED [ 10%]
tests/unittests/config/test_cc_final_message.py::TestHandle::test_boot_finished_written[False-False-Failed to write boot finished file ] PASSED [ 10%]
tests/unittests/config/test_cc_final_message.py::TestHandle::test_only_warn_when_datasourcenone_is_fallback_in_datasource_list[None-datasource_list0-Used fallback datasource-10] PASSED [ 10%]
tests/unittests/config/test_cc_final_message.py::TestHandle::test_only_warn_when_datasourcenone_is_fallback_in_datasource_list[None-datasource_list1-Used fallback datasource-30] PASSED [ 10%]
tests/unittests/config/test_cc_final_message.py::TestHandle::test_only_warn_when_datasourcenone_is_fallback_in_datasource_list[LXD-datasource_list2-None-10] PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestDisabled::test_mode_off PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestConfig::test_force_lang_check_tempfile PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestConfig::test_handle_with_no_growpart_entry PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestConfig::test_mode_auto_falls_back_to_gpart PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestConfig::test_mode_auto_falls_back_to_growfs PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestConfig::test_mode_auto_prefers_growpart PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestConfig::test_mode_use_growfs_on_root PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestConfig::test_no_resizers_auto_is_fine PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestConfig::test_no_resizers_mode_growpart_is_exception PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestResize::test_simple_devices PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestResizeZFS::test_zroot[zroot/ROOT/changed-CHANGED] PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestResizeZFS::test_zroot[zroot/ROOT/nochange-NOCHANGE] PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGetSize::test_get_size_behaves[False-None] PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGetSize::test_get_size_behaves[True-1] PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestEncrypted::test_resize_when_encrypted PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestEncrypted::test_resize_when_unencrypted PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestEncrypted::test_encrypted_but_cryptsetup_not_found PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestEncrypted::test_dmsetup_not_found PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestEncrypted::test_unparsable_dmsetup PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestEncrypted::test_missing_keydata PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestEncrypted::test_resize_failed PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestEncrypted::test_resize_skipped PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestDevicePartInfo::test_device_part_info[gpt_partition] PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestDevicePartInfo::test_device_part_info[bsd_mbr_slice_and_partition] PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestDevicePartInfo::test_device_part_info[zfs_dataset] PASSED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGrowpartSchema::test_schema_validation[config0-expectation0] SKIPPED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGrowpartSchema::test_schema_validation[config1-expectation1] SKIPPED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGrowpartSchema::test_schema_validation[config2-expectation2] SKIPPED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGrowpartSchema::test_schema_validation[config3-expectation3] SKIPPED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGrowpartSchema::test_schema_validation[config4-expectation4] SKIPPED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGrowpartSchema::test_schema_validation[config5-expectation5] SKIPPED [ 10%]
tests/unittests/config/test_cc_growpart.py::TestGrowpartSchema::test_schema_validation[config6-expectation6] SKIPPED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestFetchIdevs::test_fetch_idevs[grub_output0-False-expected_log_call0---False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestFetchIdevs::test_fetch_idevs[grub_output1-False-expected_log_call1---False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestFetchIdevs::test_fetch_idevs[grub_output2-True-None-udevadm_output2-/dev/vda-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestFetchIdevs::test_fetch_idevs[grub_output3-True-None--/dev/xvda-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestFetchIdevs::test_fetch_idevs[grub_output4-True-None-udevadm_output4-/dev/disk/by-id/nvme-Company_hash000-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestFetchIdevs::test_fetch_idevs[grub_output5-True-None-udevadm_output5-/dev/disk/by-id/company-user-1-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestFetchIdevs::test_fetch_idevs[grub_output6-True-None-/dev/disk/by-id/scsi-3500a075116e6875a /dev/disk/by-id/scsi-SATA_Crucial_CT525MX3_171816E6875A /dev/disk/by-id/scsi-0ATA_Crucial_CT525MX3_171816E6875A /dev/disk/by-path/pci-0000:00:17.0-ata-1 /dev/disk/by-id/wwn-0x500a075116e6875a /dev/disk/by-id/ata-Crucial_CT525MX300SSD1_171816E6875A-/dev/disk/by-id/ata-Crucial_CT525MX300SSD1_171816E6875A-part1-True] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestHandle::test_handle[None-None-/dev/disk/by-id/nvme-Company_hash000-expected_log_output0-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestHandle::test_handle[/dev/sda-None-/dev/sda-expected_log_output1-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestHandle::test_handle[None-true-/dev/xvda-expected_log_output2-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestHandle::test_handle[/dev/vda-False-/dev/disk/by-id/company-user-1-expected_log_output3-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestHandle::test_handle[/dev/nvme0n1-True--expected_log_output4-False] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestHandle::test_handle[/dev/sda1-False-/dev/sda1-expected_log_output5-True] PASSED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestGrubDpkgSchema::test_schema_validation[config0-expectation0-None] SKIPPED [ 10%]
tests/unittests/config/test_cc_grub_dpkg.py::TestGrubDpkgSchema::test_schema_validation[config1-expectation1-False] SKIPPED [ 11%]
tests/unittests/config/test_cc_grub_dpkg.py::TestGrubDpkgSchema::test_schema_validation[config2-expectation2-True] SKIPPED [ 11%]
tests/unittests/config/test_cc_grub_dpkg.py::TestGrubDpkgSchema::test_schema_validation[config3-expectation3-True] SKIPPED [ 11%]
tests/unittests/config/test_cc_grub_dpkg.py::TestGrubDpkgSchema::test_schema_validation[config4-expectation4-False] SKIPPED [ 11%]
tests/unittests/config/test_cc_install_hotplug.py::TestInstallHotplug::test_rules_installed_when_supported_and_enabled[True] PASSED [ 11%]
tests/unittests/config/test_cc_install_hotplug.py::TestInstallHotplug::test_rules_installed_when_supported_and_enabled[False] PASSED [ 11%]
tests/unittests/config/test_cc_install_hotplug.py::TestInstallHotplug::test_rules_not_installed_when_unsupported PASSED [ 11%]
tests/unittests/config/test_cc_install_hotplug.py::TestInstallHotplug::test_rules_not_installed_when_disabled PASSED [ 11%]
tests/unittests/config/test_cc_install_hotplug.py::TestInstallHotplug::test_rules_uninstalled_when_disabled PASSED [ 11%]
tests/unittests/config/test_cc_install_hotplug.py::TestInstallHotplug::test_rules_not_installed_when_no_udevadm PASSED [ 11%]
tests/unittests/config/test_cc_install_hotplug.py::TestInstallHotplug::test_rules_installed_on_ec2 PASSED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboardSchema::test_schema_validation[config0-None] SKIPPED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboardSchema::test_schema_validation[config1-Cloud config schema errors: keyboard: 'layout' is a required property] SKIPPED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboardSchema::test_schema_validation[config2-Cloud config schema errors: keyboard: 'bogus' is not of type 'object'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboardSchema::test_schema_validation[config3-Cloud config schema errors: keyboard.layout: 1 is not of type 'string'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboardSchema::test_schema_validation[config4-Cloud config schema errors: keyboard.model: None is not of type 'string'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboardSchema::test_schema_validation[config5-Cloud\\ config\\ schema\\ errors:\\ keyboard\\.variant:\\ \\[1\\]\\ is\\ not\\ of\\ type\\ 'string'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboardSchema::test_schema_validation[config6-Cloud config schema errors: keyboard.options: {} is not of type 'string'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboardSchema::test_schema_validation[config7-Cloud\\ config\\ schema\\ errors:\\ keyboard:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('extraprop'\\ was\\ unexpected\\)] SKIPPED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboard::test_alpine_linux_cmd PASSED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboard::test_alpine_linux_ignore_model PASSED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboard::test_debian_linux_cmd PASSED [ 11%]
tests/unittests/config/test_cc_keyboard.py::TestKeyboard::test_systemd_linux_cmd PASSED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestHandle::test_emit_keys_to_console_config[cfg0-True] PASSED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestHandle::test_emit_keys_to_console_config[cfg1-True] PASSED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestHandle::test_emit_keys_to_console_config[cfg2-True] PASSED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestHandle::test_emit_keys_to_console_config[cfg3-False] PASSED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config0-Cloud config schema errors: ssh: 'emit_keys_to_console' is a required property] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config1-Cloud config schema errors: ssh.emit_keys_to_console: 'false' is not of type 'boolean'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config2-Cloud\\ config\\ schema\\ errors:\\ ssh:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('noextraprop'\\ was\\ unexpected\\)] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config3-Cloud config schema errors: ssh.emit_keys_to_console: 'false' is not of type 'boolean'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config4-Cloud config schema errors: ssh_key_console_blacklist: False is not of type 'array'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config5-Cloud config schema errors: ssh_key_console_blacklist.0: 1 is not of type 'string'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config6-Cloud config schema errors: ssh_key_console_blacklist.0: 1 is not of type 'string'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config7-Cloud config schema errors: ssh_fp_console_blacklist: None is not of type 'array'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config8-Cloud config schema errors: ssh_fp_console_blacklist.0: 1 is not of type 'string'] SKIPPED [ 11%]
tests/unittests/config/test_cc_keys_to_console.py::TestKeysToConsoleSchema::test_schema_validation[config9-Cloud config schema errors: ssh_fp_console_blacklist.0: 1 is not of type 'string'] SKIPPED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscape::test_skip_empty_landscape_cloudconfig PASSED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscape::test_handler_error_on_invalid_landscape_type PASSED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscape::test_handler_restarts_landscape_client PASSED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscape::test_handler_installs_client_from_ppa_and_supports_overrides PASSED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscape::test_handler_writes_merged_client_config_file_with_defaults PASSED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscape::test_handler_writes_merged_provided_cloudconfig_with_defaults PASSED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscape::test_handler_client_failed_registering PASSED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscape::test_handler_client_is_already_registered PASSED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config0-None] SKIPPED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config1-None] SKIPPED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config2-None] SKIPPED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config3-None] SKIPPED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config4-Additional properties are not allowed] SKIPPED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config5-'client' is a required property] SKIPPED [ 11%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config6-'account_name' is a required property] SKIPPED [ 12%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config7-'computer_title' is a required property] SKIPPED [ 12%]
tests/unittests/config/test_cc_landscape.py::TestLandscapeSchema::test_schema_validation[config8-'1, 2,3' does not match] SKIPPED [ 12%]
tests/unittests/config/test_cc_locale.py::TestLocale::test_locale_rhel_defaults_en_us_utf8 PASSED [ 12%]
tests/unittests/config/test_cc_locale.py::TestLocale::test_locale_update_config_if_different_than_default PASSED [ 12%]
tests/unittests/config/test_cc_locale.py::TestLocale::test_set_locale_arch PASSED [ 12%]
tests/unittests/config/test_cc_locale.py::TestLocale::test_set_locale_sles PASSED [ 12%]
tests/unittests/config/test_cc_locale.py::TestLocale::test_set_locale_sles_default PASSED [ 12%]
tests/unittests/config/test_cc_locale.py::TestLocaleSchema::test_schema_validation[config0-locale: 1 is not of type 'string'] SKIPPED [ 12%]
tests/unittests/config/test_cc_locale.py::TestLocaleSchema::test_schema_validation[config1-locale_configfile: 1 is not of type 'string'] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_cmd_existing PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_cmd_new_full PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_cmd_new_partial PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_cmd_none PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_debconf_existing PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_debconf_new_full PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_debconf_new_partial PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_debconf_none PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_init PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_install PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_lxd_preseed PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_no_init_does_nothing PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxd::test_no_lxd_does_nothing PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxdMaybeCleanupDefault::test_device_removed_if_attach_true PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxdMaybeCleanupDefault::test_did_init_false_does_not_delete PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxdMaybeCleanupDefault::test_network_deleted_if_create_true PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLxdMaybeCleanupDefault::test_network_other_than_default_not_deleted PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestGetRequiredPackages::test_lxd_package_install[zfs-zfs--zfsutils-linux] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestGetRequiredPackages::test_lxd_package_install[btrfs-mkfs.btrfs--btrfs-progs] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestGetRequiredPackages::test_lxd_package_install[lvm-lvcreate--lvm2] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestGetRequiredPackages::test_lxd_package_install[lvm-lvcreate-storage_pools: [{driver: lvm}]-lvm2] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestGetRequiredPackages::test_lxd_package_install[dir-None--None] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config0-Additional properties are not allowed] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config1-not\\ one\\ of\\ \\['zfs',\\ 'dir',\\ 'lvm',\\ 'btrfs'\\]] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config2-None] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config3-None] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config4-None] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config5-bridge: 'mode' is a required property] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config6-lxd: {} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config7-not of type 'string'] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config8-None] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config9-None] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config10-None] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config11-None] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config12-Additional properties are not allowed] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_schema_validation[config13-Additional properties are not allowed] SKIPPED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_supplemental_schema_validation_raises_value_error[empty_cfgs_no_errors] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_supplemental_schema_validation_raises_value_error[cfg_init_and_bridge_allowed] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_supplemental_schema_validation_raises_value_error[cfg_preseed_allowed_without_bridge_or_init] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_supplemental_schema_validation_raises_value_error[init_cfg3-bridge_cfg3-profiles: []-error_expectation3] PASSED [ 12%]
tests/unittests/config/test_cc_lxd.py::TestLXDSchema::test_supplemental_schema_validation_raises_value_error[nope-bridge_cfg4--error_expectation4] PASSED [ 12%]
tests/unittests/config/test_cc_mcollective.py::TestConfig::test_basic_config PASSED [ 12%]
tests/unittests/config/test_cc_mcollective.py::TestConfig::test_certificats_written PASSED [ 13%]
tests/unittests/config/test_cc_mcollective.py::TestConfig::test_existing_config_is_saved PASSED [ 13%]
tests/unittests/config/test_cc_mcollective.py::TestConfig::test_existing_updated PASSED [ 13%]
tests/unittests/config/test_cc_mcollective.py::TestHandler::test_mcollective_install PASSED [ 13%]
tests/unittests/config/test_cc_mcollective.py::TestMcollectiveSchema::test_schema_validation[config0-mcollective: Additional properties are not allowed] SKIPPED [ 13%]
tests/unittests/config/test_cc_mcollective.py::TestMcollectiveSchema::test_schema_validation[config1-None] SKIPPED [ 13%]
tests/unittests/config/test_cc_mcollective.py::TestMcollectiveSchema::test_schema_validation[config2-does not match any of the regexes:] SKIPPED [ 13%]
tests/unittests/config/test_cc_mcollective.py::TestMcollectiveSchema::test_schema_validation[config3-mcollective.conf.public-cert: 1 is not of type 'string'] SKIPPED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_existent_full_disk_path_is_returned PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_existent_disk_name_returns_full_path PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_existent_meta_disk_is_returned PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_existent_meta_partition_is_returned PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_existent_meta_partition_with_p_is_returned PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_first_partition_returned_if_existent_disk_is_partitioned PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_nth_partition_returned_if_requested PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_transformer_returning_none_returns_none PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_missing_device_returns_none PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_missing_sys_returns_none PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_existent_disk_but_missing_partition_returns_none PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_network_device_returns_network_device PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSanitizeDevname::test_device_aliases_remapping PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSwapFileCreation::test_swap_creation_method_fallocate_on_xfs PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSwapFileCreation::test_swap_creation_method_xfs PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSwapFileCreation::test_swap_creation_method_btrfs PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestSwapFileCreation::test_swap_creation_method_ext4 PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_no_fstab PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_swap_creation_command[btrfs-expected0] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_swap_creation_command[xfs-expected1] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_swap_creation_command[ext4-expected2] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_fstab_no_swap_device PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_fstab_same_swap_device_already_configured PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_fstab_alternate_swap_device_already_configured PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_no_change_fstab_sets_needs_mount_all PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestFstabHandling::test_fstab_mounts_combinations PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_happy_path[xfs] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_happy_path[btrfs] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_happy_path[ext4] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_happy_path[other] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_fallback_from_fallocate_to_dd PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[268435456-268435456] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[536870912-536870912] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[1073741824-1073741824] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[2147483648-2147483648] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[4294967296-4294967296] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[8589934592-4294967296] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[17179869184-4294967296] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[34359738368-6442450944] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[68719476736-8589934592] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[137438953472-11811160064] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[274877906944-17179869184] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestCreateSwapfile::test_suggested_swapsize[549755813888-24696061952] PASSED [ 13%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config0-mounts:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config1-mounts\\.0:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config2-mounts.0:.* is too long] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config3-mount_default_fields:.* is too short] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config4-mount_default_fields:.* is too long] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config5-Additional\\ properties\\ are\\ not\\ allowed\\ \\('invalidprop'] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config6-None] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config7-None] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config8-None] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config9-None] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config10-swap.size:] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config11-swap\\.maxsize:\\ '1\\.5MT'\\ does\\ not\\ match\\ '\\^\\(\\[0\\-9\\]\\+\\)\\?] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config12-swap\\.maxsize:\\ '\\.\\.5T'\\ does\\ not\\ match\\ '\\^\\(\\[0\\-9\\]\\+\\)\\?] SKIPPED [ 14%]
tests/unittests/config/test_cc_mounts.py::TestMountsSchema::test_schema_validation[config13-swap.size: 'K' is not of type 'integer'] SKIPPED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_defaults_pools_empty_lists_sles PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_distro_ntp_client_configs PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_no_ntpcfg_does_nothing PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_custom_client_overrides_installed_clients PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_distro_searches_all_preferred_clients PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_handler_enabled_false PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_handler_real_distro_ntp_templates PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_handler_schema_validation_allows_empty_ntp_config PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_handler_timesyncd PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_install PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_install_no_op_with_empty_pkg_list PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_install_not_needed PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_rename_ntp_conf PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_rename_ntp_conf_skip_missing PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_system_config_overrides_distro_builtin_clients PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_the_whole_package PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_user_config_overrides_system_cfg PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_user_provided_config_template_only PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_ntp_user_provided_config_with_template PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_opensuse_picks_chrony PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_snappy_system_picks_timesyncd PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_timesyncd_template PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_user_cfg_ntp_client_auto_uses_distro_clients PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_write_ntp_config_template_defaults_pools_w_empty_lists PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNtp::test_write_ntp_config_template_uses_ntp_conf_distro_no_servers PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestSupplementalSchemaValidation::test_error_on_missing_keys PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestSupplementalSchemaValidation::test_error_on_non_list_values PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestSupplementalSchemaValidation::test_error_on_non_string_values PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestSupplementalSchemaValidation::test_error_requiring_either_template_or_template_name PASSED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNTPSchema::test_schema_validation[config0-None] SKIPPED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNTPSchema::test_schema_validation[config1-ntp:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('invalidkey'] SKIPPED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNTPSchema::test_schema_validation[config2-ntp\\.pools:\\ \\['0\\.mypool\\.org',\\ '0\\.mypool\\.org'\\]\\ has\\ non\\-unique\\ elements] SKIPPED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNTPSchema::test_schema_validation[config3-ntp.pools.0: 123 is not of type 'string'.*ntp.servers.1: None is not of type 'string'] SKIPPED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNTPSchema::test_schema_validation[config4-ntp.pools: 123 is not of type 'array'.*ntp.servers: 'non-array' is not of type 'array'] SKIPPED [ 14%]
tests/unittests/config/test_cc_ntp.py::TestNTPSchema::test_schema_validation[config5-Cloud config schema errors: ntp.allow.1: None is not of type 'string',*, ntp.peers.0: 123 is not of type 'string'] SKIPPED [ 14%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestRebootIfRequired::test_wb_only_reboot_on_reboot_when_configured_and_required[no_reboot_when_no_package_changes] PASSED [ 14%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestRebootIfRequired::test_wb_only_reboot_on_reboot_when_configured_and_required[perform_reboot_on_package_upgrade_and_suse_reboot_marker] PASSED [ 14%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestRebootIfRequired::test_wb_only_reboot_on_reboot_when_configured_and_required[no_reboot_on_package_upgrade_and_no_reboot_required_file] PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestRebootIfRequired::test_wb_only_reboot_on_reboot_when_configured_and_required[perform_reboot_on_package_upgrade_and_reboot_marker] PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestRebootIfRequired::test_wb_only_reboot_on_reboot_when_configured_and_required[perform_reboot_on_packages_and_reboot_marker] PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestMultiplePackageManagers::test_explicit_apt PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestMultiplePackageManagers::test_explicit_apt_version PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestMultiplePackageManagers::test_explicit_snap PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestMultiplePackageManagers::test_explicit_snap_version PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestMultiplePackageManagers::test_combined PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestMultiplePackageManagers::test_error_apt PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestMultiplePackageManagers::test_error_snap PASSED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestPackageUpdateUpgradeSchema::test_schema_validation[config0-] SKIPPED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestPackageUpdateUpgradeSchema::test_schema_validation[config1-] SKIPPED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestPackageUpdateUpgradeSchema::test_schema_validation[config2-(is too short|should be non-empty|does not have enough properties)] SKIPPED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestPackageUpdateUpgradeSchema::test_schema_validation[config3-Cloud\\ config\\ schema\\ deprecations:\\ apt_update:\\ \\ Deprecated\\ in\\ version\\ 22\\.2\\.\\ Use\\ \\*\\*package_update\\*\\*\\ instead\\.] SKIPPED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestPackageUpdateUpgradeSchema::test_schema_validation[config4-Cloud\\ config\\ schema\\ deprecations:\\ apt_upgrade:\\ \\ Deprecated\\ in\\ version\\ 22\\.2\\.\\ Use\\ \\*\\*package_upgrade\\*\\*\\ instead\\.] SKIPPED [ 15%]
tests/unittests/config/test_cc_package_update_upgrade_install.py::TestPackageUpdateUpgradeSchema::test_schema_validation[config5-Cloud\\ config\\ schema\\ deprecations:\\ apt_reboot_if_required:\\ \\ Deprecated\\ in\\ version\\ 22\\.2\\.\\ Use\\ \\*\\*package_reboot_if_required\\*\\*\\ instead\\.] SKIPPED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_default_call PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_no_url PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_tries[-1--2] PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_tries[0--1] PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_tries[1-0] PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_tries[2-1_0] PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_tries[2-1_1] PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_tries[two-9] PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_tries[None-9] PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_tries[tries7-9] PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_post_all PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_custom_post_list PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHome::test_invalid_post PASSED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHomeSchema::test_schema_validation[config0] SKIPPED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHomeSchema::test_schema_validation[config1] SKIPPED [ 15%]
tests/unittests/config/test_cc_phone_home.py::TestPhoneHomeSchema::test_schema_validation[config2] SKIPPED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_alpine_delay PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_condition_default_is_true PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_condition_null_raises PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_empty_mode PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_freebsd_poweroff_uses_lowercase_p PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_invalid_delay PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_invalid_mode PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_irrelevant_config PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_message_present PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_no_config PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_no_message PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_valid_delay PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestLoadPowerState::test_valid_modes PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestCheckCondition::test_cmd_exit_nonzero_warns PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestCheckCondition::test_cmd_exit_one_false PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestCheckCondition::test_cmd_exit_zero_true PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestCheckCondition::test_false_is_false PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestCheckCondition::test_true_is_true PASSED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config0-'test' is not one of \\['poweroff', 'reboot', 'halt'\\]] SKIPPED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config1-Cloud config schema deprecations: power_state.delay: Changed in version 22.3. Use of type string for this value is deprecated. Use ``now`` or integer type.] SKIPPED [ 15%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config2-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config3-Cloud config schema deprecations: power_state.delay: Changed in version 22.3. Use of type string for this value is deprecated. Use ``now`` or integer type.] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config4-] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config5-] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config6-] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config7-] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config8-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config9-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config10-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_power_state_change.py::TestPowerStateChangeSchema::test_schema_validation[config11-] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestManagePuppetServices::test_enable_fallback_on_failure PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestManagePuppetServices::test_wb_manage_puppet_services_enables_puppet_systemctl PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestManagePuppetServices::test_wb_manage_puppet_services_starts_puppet_systemctl PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_empty_puppet_config_installs_puppet PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_installs_puppet_aio PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_installs_puppet_aio_with_collection PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_installs_puppet_aio_with_custom_url PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_installs_puppet_aio_with_version PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_installs_puppet_aio_without_cleanup PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_installs_puppet_on_true PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_installs_puppet_version PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_starts_puppet_service PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_config_updates_puppet_conf PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_falls_back_to_older_name PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_runs_puppet_if_requested PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_runs_puppet_with_args_list_if_requested PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_runs_puppet_with_args_string_if_requested PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_skips_puppetd PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_starts_puppetd PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_with_conf_package_name_fails PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_with_conf_package_name_success PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_puppet_writes_csr_attributes_file PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetHandle::test_skips_missing_puppet_key_in_cloudconfig PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestInstallPuppetAio::test_install_puppet_aio[default_arguments] PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestInstallPuppetAio::test_install_puppet_aio[custom_url] PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestInstallPuppetAio::test_install_puppet_aio[version] PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestInstallPuppetAio::test_install_puppet_aio[collection] PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestInstallPuppetAio::test_install_puppet_aio[no_cleanup] PASSED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config0-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config1-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config2-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config3-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config4-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config5-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config6-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config7-None] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config8-'package' is not one of \\['packages', 'aio'\\]] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config9-'test' was unexpected] SKIPPED [ 16%]
tests/unittests/config/test_cc_puppet.py::TestPuppetSchema::test_schema_validation[config10-'test' was unexpected] SKIPPED [ 16%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_can_skip_resize_ext PASSED [ 16%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_cannot_skip_ufs_growfs_exception PASSED [ 16%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_cannot_skip_ufs_resize PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_handle_modern_zfsroot PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_handle_noops_on_disabled PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_handle_warns_on_undiscoverable_root_path_in_command_line PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_handle_warns_on_unknown_mount_info PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_handle_zfs_root PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_resize_bcachefs_cmd_return PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_resize_ext_cmd_return PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_resize_ufs_cmd_return PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_resize_xfs_cmd_return PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_resize_zfs_cmd_return PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefs::test_skip_ufs_resize PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestRootDevFromCmdline::test_rootdev_from_cmdline_with_no_root PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestRootDevFromCmdline::test_rootdev_from_cmdline_with_root_startswith_dev PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestRootDevFromCmdline::test_rootdev_from_cmdline_with_root_with_label PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestRootDevFromCmdline::test_rootdev_from_cmdline_with_root_with_uuid PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestRootDevFromCmdline::test_rootdev_from_cmdline_with_root_without_dev_prefix PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_does_not_exist PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_does_not_exist_in_container PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_non_block PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_non_block_on_container PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_none_on_overlayroot PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_raises_oserror PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_returns_command_line_root PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_warns_missing_cmdline_root PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_maybe_get_writable_device_path_zfs_freebsd PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_resize_btrfs_mount_is_ro PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_resize_btrfs_mount_is_rw PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_resize_btrfs_mount_is_rw_has_queue PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestMaybeGetDevicePathAsWritableBlock::test_resize_btrfs_version PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefsSchema::test_schema_validation[config0-None] SKIPPED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestResizefsSchema::test_schema_validation[config1-'wrong' is not one of \\[True, False, 'noblock'\\]] SKIPPED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestZpool::test_get_device_info_from_zpool PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestZpool::test_get_device_info_from_zpool_no_dev_zfs PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestZpool::test_get_device_info_from_zpool_handles_no_zpool PASSED [ 17%]
tests/unittests/config/test_cc_resizefs.py::TestZpool::test_get_device_info_from_zpool_on_error PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConf::test_resolv_conf_etc_resolv_conf PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConf::test_resolv_conf_invalid_resolve_conf_fn PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConf::test_resolv_conf_manage_resolv_conf_false PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConf::test_resolv_conf_no_param PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConf::test_resolv_conf_systemd_resolved PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_dist_resolv_conf_fn PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_target_fname_is_used_if_passed PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_flags_and_options[params0-None] PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_flags_and_options[params1-options foo] PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_flags_and_options[params2-None] PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_flags_and_options[params3-options foo:some_value] PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_flags_and_options[params4-options bar foo:some_value] PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_flags_and_options[params5-options bar:other_value foo:some_value] PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestGenerateResolvConf::test_flags_and_options[params6-options spam bar:other_value foo:some_value] PASSED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config0-None] SKIPPED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config1-None] SKIPPED [ 17%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config2-'asdf' is not of type 'boolean'] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config3-Additional properties are not allowed] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config4-'1.1.1.1' is not of type 'array'] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config5-Additional properties are not allowed] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config6-'foo.com' is not of type 'array'] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config7-\\['foo.com'\\] is not of type 'string'] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config8-'1.2.3.4' is not of type 'array'] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config9-'timeout: 1' is not of type 'object'] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config10-'rotate' is not of type 'object'] SKIPPED [ 18%]
tests/unittests/config/test_cc_resolv_conf.py::TestResolvConfSchema::test_schema_validation[config11-\\['rotate'\\] is not of type 'object'] SKIPPED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::GoodTests::test_already_registered PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::GoodTests::test_full_registration PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::GoodTests::test_simple_registration PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::GoodTests::test_update_repos_disable_with_none PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestBadInput::test_bad_key_value PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestBadInput::test_no_org PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestBadInput::test_no_password PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestBadInput::test_pool_not_a_list PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestBadInput::test_repo_not_a_list PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestBadInput::test_service_level_without_auto PASSED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestRhSubscriptionSchema::test_schema_validation[config0-Additional properties are not allowed] SKIPPED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestRhSubscriptionSchema::test_schema_validation[config1-1 is not of type 'string'] SKIPPED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestRhSubscriptionSchema::test_schema_validation[config2-'name' is not of type 'array'] SKIPPED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestRhSubscriptionSchema::test_schema_validation[config3-'name' is not of type 'array'] SKIPPED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestRhSubscriptionSchema::test_schema_validation[config4-None] SKIPPED [ 18%]
tests/unittests/config/test_cc_rh_subscription.py::TestRhSubscriptionSchema::test_schema_validation[config5-Deprecated in version 24.2. Use of type integer for this value is deprecated. Use a string instead.] SKIPPED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestLoadConfig::test_legacy_defaults PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestLoadConfig::test_legacy_full PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestLoadConfig::test_new_bsd_defaults PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestLoadConfig::test_new_configs PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestLoadConfig::test_new_defaults PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestApplyChanges::test_multiline_content PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestApplyChanges::test_multiple_files PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestApplyChanges::test_repeat_def PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestApplyChanges::test_simple PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestParseRemotesLine::test_invalid_multiple_colon PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestParseRemotesLine::test_invalid_port PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestParseRemotesLine::test_name_in_string PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestParseRemotesLine::test_valid_ipv6 PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestParseRemotesLine::test_valid_ipv6_with_port PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestParseRemotesLine::test_valid_port PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRemotesToSyslog::test_header_footer PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRemotesToSyslog::test_simple PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRemotesToSyslog::test_with_empty_or_null PASSED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRsyslogSchema::test_schema_validation[config0-None] SKIPPED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRsyslogSchema::test_schema_validation[config1-Additional properties are not allowed] SKIPPED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRsyslogSchema::test_schema_validation[config2-] SKIPPED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRsyslogSchema::test_schema_validation[config3-] SKIPPED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRsyslogSchema::test_schema_validation[config4-\\['a'\\] is not of type 'object'] SKIPPED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRsyslogSchema::test_schema_validation[config5-'a' is not of type 'object] SKIPPED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestRsyslogSchema::test_schema_validation[config6-] SKIPPED [ 18%]
tests/unittests/config/test_cc_rsyslog.py::TestInvalidKeyType::test_invalid_key_types[config0-Invalid type for key `configs`. Expected type(s): <class 'list'>. Current type: <class 'int'>] PASSED [ 19%]
tests/unittests/config/test_cc_rsyslog.py::TestInvalidKeyType::test_invalid_key_types[config1-Invalid type for key `config_dir`. Expected type(s): <class 'str'>. Current type: <class 'int'>] PASSED [ 19%]
tests/unittests/config/test_cc_rsyslog.py::TestInvalidKeyType::test_invalid_key_types[config2-Invalid type for key `config_filename`. Expected type(s): <class 'str'>. Current type: <class 'bool'>] PASSED [ 19%]
tests/unittests/config/test_cc_rsyslog.py::TestInvalidKeyType::test_invalid_key_types[config3-Invalid type for key `service_reload_command`. Expected type(s): (<class 'str'>, <class 'list'>). Current type: <class 'float'>] PASSED [ 19%]
tests/unittests/config/test_cc_rsyslog.py::TestInvalidKeyType::test_invalid_key_types[config4-Invalid type for key `remotes`. Expected type(s): <class 'dict'>. Current type: <class 'list'>] PASSED [ 19%]
tests/unittests/config/test_cc_rsyslog.py::TestInstallRsyslog::test_install_rsyslog_on_freebsd PASSED [ 19%]
tests/unittests/config/test_cc_rsyslog.py::TestInstallRsyslog::test_no_install_rsyslog_with_check_exe PASSED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRuncmd::test_handler_invalid_command_set PASSED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRuncmd::test_handler_skip_if_no_runcmd PASSED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRuncmd::test_handler_write_valid_runcmd_schema_to_file PASSED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRuncmd::test_runcmd_shellify_fails PASSED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRunCmdSchema::test_schema_validation[config0-None] SKIPPED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRunCmdSchema::test_schema_validation[config1-None] SKIPPED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRunCmdSchema::test_schema_validation[config2-1 is not of type 'array'] SKIPPED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRunCmdSchema::test_schema_validation[config3-runcmd: \\[\\] (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 19%]
tests/unittests/config/test_cc_runcmd.py::TestRunCmdSchema::test_schema_validation[config4-] SKIPPED [ 19%]
tests/unittests/config/test_cc_scripts_vendor.py::TestScriptsVendorSchema::test_schema_validation[config0-expectation0] SKIPPED [ 19%]
tests/unittests/config/test_cc_scripts_vendor.py::TestScriptsVendorSchema::test_schema_validation[config1-expectation1] SKIPPED [ 19%]
tests/unittests/config/test_cc_scripts_vendor.py::TestScriptsVendorSchema::test_schema_validation[config2-expectation2] SKIPPED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_append_random PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_append_random_unknown_encoding PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_append_random_gzip PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_append_random_gz PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_append_random_base64 PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_append_random_b64 PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_append_random_metadata PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_seed_command_provided_and_available PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_seed_command_not_provided PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_unavailable_seed_command_and_required_raises_error PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_seed_command_and_required PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestRandomSeed::test_file_in_environment_for_command PASSED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestSeedRandomSchema::test_schema_validation[config0-'bad' is not one of \\['raw', 'base64', 'b64', 'gzip', 'gz'\\]] SKIPPED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestSeedRandomSchema::test_schema_validation[config1-'foo' is not of type 'array'] SKIPPED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestSeedRandomSchema::test_schema_validation[config2-'true' is not of type 'boolean'] SKIPPED [ 19%]
tests/unittests/config/test_cc_seed_random.py::TestSeedRandomSchema::test_schema_validation[config3-Additional properties are not allowed] SKIPPED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_create_hostname_file_false PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_create_hostname_file_false_alpine PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_create_hostname_file_false_arch PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_create_hostname_file_false_gentoo PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_create_hostname_file_false_photon PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_create_hostname_file_false_rhel PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_debian_write_hostname_prefer_fqdn PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_error_on_distro_set_hostname_errors PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_ignore_empty_previous_artifact_file PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_localhost_default_hostname PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_localhost_user_given_hostname PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_multiple_calls_skips_unchanged_hostname PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_photon_hostname PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_rhel_write_hostname_prefer_hostname PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_write_hostname_debian PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_write_hostname_rhel PASSED [ 19%]
tests/unittests/config/test_cc_set_hostname.py::TestHostname::test_write_hostname_sles PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestHandleSSHPwauth::test_unknown_value_logs_warning PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestHandleSSHPwauth::test_restart_ssh_only_when_changes_made_and_ssh_installed[True-True-activating] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestHandleSSHPwauth::test_restart_ssh_only_when_changes_made_and_ssh_installed[True-True-inactive] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestHandleSSHPwauth::test_restart_ssh_only_when_changes_made_and_ssh_installed[True-False-None] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestHandleSSHPwauth::test_restart_ssh_only_when_changes_made_and_ssh_installed[False-False-None] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestHandleSSHPwauth::test_unchanged_value_does_nothing PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestHandleSSHPwauth::test_valid_value_changes_updates_ssh PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_handle_on_empty_config PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_handle_on_chpasswd_list_parses_common_hashes PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_handle_on_chpasswd_users_parses_common_hashes PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_bsd_calls_custom_pw_cmds_to_set_and_expire_passwords[user_cfg0] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_bsd_calls_custom_pw_cmds_to_set_and_expire_passwords[user_cfg1] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_random_passwords[user_cfg0] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_random_passwords[user_cfg1] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_chpasswd_parity[list_def0-users_def0] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_chpasswd_parity[list_def1-users_def1] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsHandle::test_chpasswd_parity[list_def2-users_def2] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestExpire::test_expire[cfg0] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestExpire::test_expire[cfg1] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestExpire::test_expire[cfg2] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestExpire::test_expire[cfg3] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestExpire::test_expire_old_behavior[cfg0] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestExpire::test_expire_old_behavior[cfg1] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestExpire::test_expire_old_behavior[cfg2] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestExpire::test_expire_old_behavior[cfg3] PASSED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config0-expectation0] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config1-expectation1] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config2-expectation2] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config3-expectation3] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config4-expectation4] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config5-expectation5] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config6-expectation6] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config7-expectation7] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config8-expectation8] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config9-expectation9] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[dat_is_an_additional_property] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config11-expectation11] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config12-expectation12] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config13-expectation13] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config14-expectation14] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config15-expectation15] SKIPPED [ 20%]
tests/unittests/config/test_cc_set_passwords.py::TestSetPasswordsSchema::test_schema_validation[config16-expectation16] SKIPPED [ 20%]
tests/unittests/config/test_cc_snap.py::TestAddAssertions::test_add_assertions_on_empty_list PASSED [ 20%]
tests/unittests/config/test_cc_snap.py::TestAddAssertions::test_add_assertions_on_non_list_or_dict PASSED [ 20%]
tests/unittests/config/test_cc_snap.py::TestAddAssertions::test_add_assertions_adds_assertions_as_list PASSED [ 20%]
tests/unittests/config/test_cc_snap.py::TestAddAssertions::test_add_assertions_adds_assertions_as_dict PASSED [ 20%]
tests/unittests/config/test_cc_snap.py::TestRunCommands::test_run_commands_on_empty_list PASSED [ 20%]
tests/unittests/config/test_cc_snap.py::TestRunCommands::test_run_commands_on_non_list_or_dict PASSED [ 20%]
tests/unittests/config/test_cc_snap.py::TestCommands::test_run_command_dict_sorted_as_command_script PASSED [ 20%]
tests/unittests/config/test_cc_snap.py::TestCommands::test_run_command_as_lists PASSED [ 20%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config0-None] SKIPPED [ 20%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config1-None] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config2-None] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config3-None] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config4-None] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config5-None] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config6-None] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config7-None] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config8-'wrong type' is not of type 'object'] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config9-Additional properties are not allowed] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config10-{} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config11-'broken' is not of type 'object', 'array'] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config12-snap.commands: \\[\\] (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config13-snap.commands: {} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config14-] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config15-] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config16-] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config17-] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config18-123 is not of type 'string'] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config19-123 is not of type 'string'] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config20-'broken' is not of type 'object', 'array'] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config21-\\[\\] (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestSnapSchema::test_schema_validation[config22-\\{} (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 21%]
tests/unittests/config/test_cc_snap.py::TestHandle::test_handle_adds_assertions PASSED [ 21%]
tests/unittests/config/test_cc_spacewalk.py::TestSpacewalk::test_do_register PASSED [ 21%]
tests/unittests/config/test_cc_spacewalk.py::TestSpacewalk::test_is_registered PASSED [ 21%]
tests/unittests/config/test_cc_spacewalk.py::TestSpacewalk::test_not_is_registered PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_apply_credentials[with_user] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_apply_credentials[with_no_user] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_apply_credentials[with_user_disable_root] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_apply_credentials[with_no_user_disable_root] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_no_cfg[True] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_no_cfg[False] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_dont_allow_public_ssh_keys PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_default_root[no_cfg] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_default_root[explicit_disable_root] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_default_root[cfg_without_disable_root] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_publish_hostkeys[default] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_publish_hostkeys[config_enable] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_publish_hostkeys[config_disable] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_publish_hostkeys[config_blacklist] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_publish_hostkeys[empty_blacklist] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_ssh_hostkey_permissions[False-9-384] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_ssh_hostkey_permissions[True-8-416] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_ssh_hostkey_permissions[True-10-384] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_ssh_keys_in_cfg[False] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_ssh_keys_in_cfg[True] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_invalid_ssh_keys_are_skipped[ecdsa-sk-unsupported] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_invalid_ssh_keys_are_skipped[ed25519-sk-unsupported] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestHandleSsh::test_handle_invalid_ssh_keys_are_skipped[public-unrecognized] PASSED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config0-None] SKIPPED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config1-'rsa_a' does not match any of the regexes] SKIPPED [ 21%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config2-'a_public' does not match any of the regexes] SKIPPED [ 22%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config3-'ecdsa-sk_public' does not match any of the regexes] SKIPPED [ 22%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config4-'ed25519-sk_public' does not match any of the regexes] SKIPPED [ 22%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config5-'ssh-rsa blah' is not of type 'array'] SKIPPED [ 22%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config6-'bad' is not one of] SKIPPED [ 22%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config7-\\['no-port-forwarding'\\] is not of type 'string'] SKIPPED [ 22%]
tests/unittests/config/test_cc_ssh.py::TestSshSchema::test_schema_validation[config8-Additional properties are not allowed] SKIPPED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestIsKeyInNestedDict::test_find_ssh_import_id_directives[cfg0-False] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestIsKeyInNestedDict::test_find_ssh_import_id_directives[cfg1-False] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestIsKeyInNestedDict::test_find_ssh_import_id_directives[cfg2-True] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestIsKeyInNestedDict::test_find_ssh_import_id_directives[cfg3-True] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestIsKeyInNestedDict::test_find_ssh_import_id_directives[cfg4-True] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestIsKeyInNestedDict::test_find_ssh_import_id_directives[cfg5-True] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestIsKeyInNestedDict::test_find_ssh_import_id_directives[cfg6-True] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestHandleSshImportIDs::test_skip_inapplicable_configs[cfg0-no 'ssh_import_id' directives found] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestHandleSshImportIDs::test_skip_inapplicable_configs[cfg1-no 'ssh_import_id' directives found] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestHandleSshImportIDs::test_skip_inapplicable_configs[cfg2-ssh-import-id is not installed] PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestHandleSshImportIDs::test_use_sudo PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestHandleSshImportIDs::test_use_doas PASSED [ 22%]
tests/unittests/config/test_cc_ssh_import_id.py::TestHandleSshImportIDs::test_use_neither_sudo_nor_doas PASSED [ 22%]
tests/unittests/config/test_cc_timezone.py::TestTimezone::test_set_timezone_sles PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_autoinstall.py::TestvalidateConfigSchema::test_runtime_validation_errors[err_non_dict] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_autoinstall.py::TestvalidateConfigSchema::test_runtime_validation_errors[err_require_version_key] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_autoinstall.py::TestvalidateConfigSchema::test_runtime_validation_errors[err_version_non_int] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_autoinstall.py::TestHandleAutoinstall::test_handle_autoinstall_cfg[skip_no_cfg] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_autoinstall.py::TestHandleAutoinstall::test_handle_autoinstall_cfg[valid_autoinstall_schema_checks_snaps] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_autoinstall.py::TestHandleAutoinstall::test_handle_autoinstall_cfg[valid_autoinstall_schema_sees_subiquity] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_autoinstall.py::TestHandleAutoinstall::test_handle_autoinstall_cfg[valid_autoinstall_schema_sees_desktop_installer] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_autoinstall.py::TestAutoInstallSchema::test_schema_validation[config0-autoinstall: 'version' is a required property] SKIPPED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[True-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[True-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[yes-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[yes-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[true-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[true-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[on-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[on-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[1-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_happy_path_taken[1-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_raises_error_if_no_drivers_found[without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_raises_error_if_no_drivers_found[with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[license_not_accepted-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[license_not_accepted-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[garbage_in_license_field-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[garbage_in_license_field-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[no_license_key-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[no_license_key-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[no_nvidia_key-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[no_nvidia_key-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[string_given_no-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[string_given_no-with_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[string_given_false-without_version] PASSED [ 22%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[string_given_false-with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[string_given_off-without_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[string_given_off-with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[string_given_0-without_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[string_given_0-with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[with_version-without_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_inert[with_version-with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_no_drivers_does_nothing[without_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_handle_no_drivers_does_nothing[with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_install_drivers_no_install_if_present[without_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_install_drivers_no_install_if_present[with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_install_drivers_rejects_invalid_config[without_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_install_drivers_rejects_invalid_config[with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_install_drivers_handles_old_ubuntu_drivers_gracefully[without_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_install_drivers_handles_old_ubuntu_drivers_gracefully[with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_debconf_not_installed_does_nothing[without_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDrivers::test_debconf_not_installed_does_nothing[with_version] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDriversWithVersion::test_version_none_uses_latest PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDriversNotRun::test_no_cfg_drivers_does_nothing PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuDriversNotRun::test_has_not_debconf_does_nothing PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuAdvantageSchema::test_schema_validation[config0-drivers.nvidia.license-accepted: 'TRUE' is not of type 'boolean'] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuAdvantageSchema::test_schema_validation[config1-drivers:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('bogus'] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_drivers.py::TestUbuntuAdvantageSchema::test_schema_validation[config2-drivers\\.nvidia:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('bogus'\\ ] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_attach_error PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_attach[with_token] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_attach[with_empty_services] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_attach[with_specific_services] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_attach[with_string_services] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_attach[with_weird_services] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_already_attached PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_attach_on_service_enabled PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_configure_pro_attach_on_service_error PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_pro_enable_unexpected_error_codes PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestConfigurePro::test_pro_enable_non_json_response PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[config0-expectation0-] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[deprecation_of_ubuntu_advantage_skip_old_json] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[additional_properties] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[disable_auto_attach] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[pro_custom_services] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[non_pro_beta_services] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[pro_additional_features] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[pro_config_valid_set] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[pro_config_valid_unset] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[pro_config_invalid_type] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[pro_config_invalid_proxy_type] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_schema_validation[pro_config_unknown_props_allowed] SKIPPED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_validate_schema_features[ua_section0-expectation0-None] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_validate_schema_features[ua_section1-expectation1-None] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_validate_schema_features[ua_section2-expectation2-None] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_validate_schema_features[ua_section3-expectation3-None] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_validate_schema_features[ua_section4-expectation4-log_msgs4] PASSED [ 23%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestUbuntuProSchema::test_validate_schema_features[ua_section5-expectation5-log_msgs5] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_attach[no_config] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_attach[tries_to_install_ubuntu_advantage_tools] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_attach[set_pro_config] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_attach[passes_credentials_and_services_to_configure_pro] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_attach[warns_on_deprecated_ubuntu_pro_key_w_config] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_attach[warns_on_enable_beta_in_attach] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_attach[prefers_new_style_config] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_auto_attach_vs_attach[auto_attach_success] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_auto_attach_vs_attach[auto_attach_error] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_auto_attach_vs_attach[not_pro_with_token] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_auto_attach_vs_attach[not_pro_with_enable] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_no_fallback_attach[cfg0-False] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_no_fallback_attach[cfg0-True] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_no_fallback_attach[cfg1-False] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_no_fallback_attach[cfg1-True] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_error_on_deprecated_commands_key_dashed[key_dashed] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_error_on_deprecated_commands_key_dashed[key_underscore] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_errors[on_non_dict_config] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_handle_errors[on_non_dict_ua_section] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_pro_config_error_invalid_url PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestHandle::test_fallback_to_attach_no_token PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestShouldAutoAttach::test_should_auto_attach_error PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestShouldAutoAttach::test_happy_path[ua_section0-None] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestShouldAutoAttach::test_happy_path[ua_section1-None] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestShouldAutoAttach::test_happy_path[ua_section2-False] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestAutoAttach::test_full_auto_attach_error PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestAutoAttach::test_happy_path PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestAttach::test_attach_without_token_raises_error PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestMaybeInstallUATools::test_maybe_install_ua_tools[noop_when_ua_tools_present] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestMaybeInstallUATools::test_maybe_install_ua_tools[raises_update_errors] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestMaybeInstallUATools::test_maybe_install_ua_tools[raises_install_errors] PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestMaybeInstallUATools::test_maybe_install_ua_tools_happy_path PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestSetProConfig::test_valid_config PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestSetProConfig::test_pro_config_unset PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestSetProConfig::test_pro_config_error_non_string_values PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestSetProConfig::test_pro_config_unknown_prop PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestSetProConfig::test_pro_config_wrong_type PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestSetProConfig::test_set_pro_config_error PASSED [ 24%]
tests/unittests/config/test_cc_ubuntu_pro.py::TestSetProConfig::test_unset_pro_config_error PASSED [ 24%]
tests/unittests/config/test_cc_update_etc_hosts.py::TestHostsFile::test_write_etc_hosts_suse_localhost PASSED [ 24%]
tests/unittests/config/test_cc_update_etc_hosts.py::TestHostsFile::test_write_etc_hosts_suse_template PASSED [ 24%]
tests/unittests/config/test_cc_update_etc_hosts.py::TestUpdateEtcHosts::test_schema_validation[config0-expectation0] SKIPPED [ 24%]
tests/unittests/config/test_cc_update_etc_hosts.py::TestUpdateEtcHosts::test_schema_validation[config1-expectation1] SKIPPED [ 24%]
tests/unittests/config/test_cc_update_etc_hosts.py::TestUpdateEtcHosts::test_schema_validation[config2-expectation2] SKIPPED [ 24%]
tests/unittests/config/test_cc_update_etc_hosts.py::TestUpdateEtcHosts::test_schema_validation[config3-expectation3] SKIPPED [ 24%]
tests/unittests/config/test_cc_update_etc_hosts.py::TestUpdateEtcHosts::test_schema_validation[config4-expectation4] SKIPPED [ 24%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_handle_no_cfg_creates_no_users_or_groups PASSED [ 24%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_handle_users_in_cfg_calls_create_users PASSED [ 24%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_handle_users_in_cfg_calls_create_users_on_bsd PASSED [ 24%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_users_ssh_redirect_user_and_no_default PASSED [ 24%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_users_with_ssh_redirect_user_default_false PASSED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_users_with_ssh_redirect_user_default_str PASSED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_users_with_ssh_redirect_user_non_default PASSED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_users_with_ssh_redirect_user_passes_keys PASSED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestHandleUsersGroups::test_users_without_home_cannot_import_ssh_keys PASSED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config0-expectation0-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config1-expectation1-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config2-expectation2-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config3-expectation3-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config4-expectation4-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config5-expectation5-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config6-expectation6-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config7-expectation7-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config8-expectation8-True] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config9-expectation9-True] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config10-expectation10-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config11-expectation11-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config12-expectation12-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config13-expectation13-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config14-expectation14-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config15-expectation15-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config16-expectation16-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config17-expectation17-False] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config18-expectation18-False] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config19-expectation19-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config20-expectation20-False] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config21-expectation21-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config22-expectation22-True] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config23-expectation23-True] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config24-expectation24-True] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config25-expectation25-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config26-expectation26-False] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config27-expectation27-False] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config28-expectation28-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config29-expectation29-False] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config30-expectation30-True] SKIPPED [ 25%]
tests/unittests/config/test_cc_users_groups.py::TestUsersGroupsSchema::test_schema_validation[config31-expectation31-False] SKIPPED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_enable_wg_on_error PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_handle_no_config PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_load_wg_module_failed PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_maybe_install_wf_tools_raises_update_errors PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_maybe_install_wg_packages_happy_path PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_maybe_install_wg_packages_noop_when_wg_tools_present PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_maybe_install_wg_raises_install_errors PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_readiness_probe_invalid_command PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_readiness_probe_schema_non_string_values PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_readiness_probe_with_non_string_values PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_suppl_schema_error_on_missing_keys PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_suppl_schema_error_on_non_string_values PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireGuard::test_write_config_failed PASSED [ 25%]
tests/unittests/config/test_cc_wireguard.py::TestWireguardSchema::test_schema_validation[config0-None] SKIPPED [ 25%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_all_decodings PASSED [ 25%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_append PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_deferred PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_empty PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_file_uri PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_handle_plain_text PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_http_uri PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_simple PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_uri_fallback PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFiles::test_yaml_binary PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestDecodePerms::test_integer PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestDecodePerms::test_invalid_octal_string_returns_default_and_warns PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestDecodePerms::test_none_returns_default PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestDecodePerms::test_valid_octal_string PASSED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFilesSchema::test_schema_validation[config0-write_files: 1 is not of type 'array'] SKIPPED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFilesSchema::test_schema_validation[config1-write_files:\\ \\[\\]\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFilesSchema::test_schema_validation[config2-write_files.0: 'path' is a required property] SKIPPED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFilesSchema::test_schema_validation[config3-write_files\\.0:\\ Additional\\ properties\\ are\\ not\\ allowed\\ \\('bogus'] SKIPPED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFilesSchema::test_schema_validation[config4-write_files\\.0\\.encoding:\\ 'g'\\ is\\ not\\ one\\ of\\ \\['gz',\\ 'gzip',] SKIPPED [ 26%]
tests/unittests/config/test_cc_write_files.py::TestWriteFilesSchema::test_schema_validation[config5-None] SKIPPED [ 26%]
tests/unittests/config/test_cc_write_files_deferred.py::TestWriteFilesDeferred::test_filtering_deferred_files PASSED [ 26%]
tests/unittests/config/test_cc_write_files_deferred.py::TestWriteFilesDeferredSchema::test_schema_validation[config0-write_files.0.defer: 'no' is not of type 'boolean'] SKIPPED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestConfig::test_bad_config PASSED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestConfig::test_metalink_config PASSED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestConfig::test_mirrorlist_config PASSED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestConfig::test_write_config PASSED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestConfig::test_write_config_array PASSED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestAddYumRepoSchema::test_schema_validation[config0-None] SKIPPED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestAddYumRepoSchema::test_schema_validation[config1-yum_repo_dir: True is not of type 'string'] SKIPPED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestAddYumRepoSchema::test_schema_validation[config2-yum_repos:\\ \\{\\}\\ (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestAddYumRepoSchema::test_schema_validation[config3-yum_repos.My-Repo: 'baseurl' is a required] SKIPPED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestAddYumRepoSchema::test_schema_validation[config4-yum_repos.My Repo.enabled: 'nope' is not of type 'boolean'] SKIPPED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestAddYumRepoSchema::test_schema_validation[config5-does not match any of the regexes] SKIPPED [ 26%]
tests/unittests/config/test_cc_yum_add_repo.py::TestAddYumRepoSchema::test_schema_validation[config6-does not match any of the regexes] SKIPPED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_bad_repo_config PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_config_write PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_config_write_skip_configdir PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_empty_config_section_no_new_data PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_empty_config_value_no_new_data PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_handler_full_setup PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_no_config_section_no_new_data PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_no_repo_data PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_write_repo PASSED [ 26%]
tests/unittests/config/test_cc_zypper_add_repo.py::TestConfig::test_write_repos PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[None-cfg0-True-once-per-instance] PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[None-cfg0-True-always] PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[None-cfg0-True-once] PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[None-cfg1-True-once-per-instance] PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[None-cfg1-True-always] PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[None-cfg1-True-once] PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys2-cfg2-True-once-per-instance] PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys2-cfg2-True-always] PASSED [ 26%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys2-cfg2-True-once] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys3-cfg3-True-once-per-instance] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys3-cfg3-True-always] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys3-cfg3-True-once] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys4-cfg4-True-once-per-instance] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys4-cfg4-True-always] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys4-cfg4-True-once] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys5-cfg5-False-once-per-instance] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys5-cfg5-False-always] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys5-cfg5-False-once] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys6-cfg6-False-once-per-instance] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys6-cfg6-False-always] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable[activate_by_schema_keys6-cfg6-False-once] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable_examples[cc_ubuntu_autoinstall_example_0] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable_examples[cc_timezone_example_0] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable_examples[cc_rsyslog_example_0] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable_examples[cc_rsyslog_example_1] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test__is_inapplicable_examples[cc_rsyslog_example_2] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section[True-once-per-instance] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section[True-always] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section[True-once] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section[False-once-per-instance] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section[False-always] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section[False-once] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section_examples[cc_ubuntu_autoinstall_example_0] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section_examples[cc_timezone_example_0] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section_examples[cc_rsyslog_example_0] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section_examples[cc_rsyslog_example_1] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_run_section_examples[cc_rsyslog_example_2] PASSED [ 27%]
tests/unittests/config/test_modules.py::TestModules::test_old_handle PASSED [ 27%]
tests/unittests/config/test_salt_minion.py::TestSaltMinionSchema::test_schema_validation[config0-None] SKIPPED [ 27%]
tests/unittests/config/test_salt_minion.py::TestSaltMinionSchema::test_schema_validation[config1-None] SKIPPED [ 27%]
tests/unittests/config/test_salt_minion.py::TestSaltMinionSchema::test_schema_validation[config2-Additional properties are not allowed] SKIPPED [ 27%]
tests/unittests/config/test_salt_minion.py::TestSaltMinionSchema::test_schema_validation[config3-'a' is not of type 'object'] SKIPPED [ 27%]
tests/unittests/config/test_salt_minion.py::TestSaltMinionSchema::test_schema_validation[config4-'a' is not of type 'object'] SKIPPED [ 27%]
tests/unittests/config/test_salt_minion.py::TestDaemonInstall::test_daemon_install PASSED [ 27%]
tests/unittests/config/test_salt_minion.py::TestDaemonInstall::test_file_client_local PASSED [ 27%]
tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema0-None] PASSED [ 27%]
tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema1-None] PASSED [ 27%]
tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema2-is not one of ['v1']] FAILED [ 27%]
tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema3-is not of type 'string'] FAILED [ 27%]
tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema4-None] PASSED [ 27%]
tests/unittests/config/test_schema.py::TestCheckSchema::test_schema_bools_have_dates PASSED [ 27%]
tests/unittests/config/test_schema.py::TestGetSchema::test_static_schema_file_is_valid PASSED [ 27%]
tests/unittests/config/test_schema.py::TestGetSchema::test_get_schema_coalesces_known_schema PASSED [ 27%]
tests/unittests/config/test_schema.py::TestGetModuleDocs::test_get_module_docs_loads_all_data_yaml_files_from_modules_dirs PASSED [ 27%]
tests/unittests/config/test_schema.py::TestGetModuleDocs::test_validate_data_file_schema PASSED [ 27%]
tests/unittests/config/test_schema.py::TestLoadDoc::test_report_docs_consolidated_schema[cc_zypper_add_repo] PASSED [ 27%]
tests/unittests/config/test_schema.py::SchemaValidationErrorTest::test_schema_validation_error_expects_schema_errors PASSED [ 27%]
tests/unittests/config/test_schema.py::TestNetplanValidateNetworkSchema::test_network_config_schema_validation_false_when_skipped[config0-] PASSED [ 27%]
tests/unittests/config/test_schema.py::TestNetplanValidateNetworkSchema::test_network_config_schema_validation_false_when_skipped[config1-] PASSED [ 27%]
tests/unittests/config/test_schema.py::TestNetplanValidateNetworkSchema::test_network_config_schema_validation_false_when_skipped[config2-Skipping netplan schema validation. No netplan API available] PASSED [ 27%]
tests/unittests/config/test_schema.py::TestNetplanValidateNetworkSchema::test_network_config_schema_validation_false_when_skipped[config3-Skipping netplan schema validation. No netplan API available] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestNetplanValidateNetworkSchema::test_network_config_schema_validation[None-] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestNetplanValidateNetworkSchema::test_network_config_schema_validation[error1-network-config failed schema validation!.*format-l1.c12: Invalid netplan schema. incorrect YAML value: yes for dhcp value] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_schema_use_full_schema_when_no_schema_param[None-1] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_schema_use_full_schema_when_no_schema_param[schema1-0] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_schema_non_strict_emits_warnings SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_schema_sensitive SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_schema_emits_warning_on_missing_jsonschema SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_schema_strict_raises_errors SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_schema_honors_formats SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_schema_honors_formats_strict_metaschema SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_strict_metaschema_do_not_raise_exception SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema0-config0-Deprecated cloud-config provided: a-b: <desc> Deprecated in version 22.1.-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema0-config0-Deprecated cloud-config provided: a-b: <desc> Deprecated in version 22.1.-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema1-config1-Deprecated cloud-config provided: x: <desc> Deprecated in version 22.1.-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema1-config1-Deprecated cloud-config provided: x: <desc> Deprecated in version 22.1.-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema2-config2-Deprecated cloud-config provided: x: <desc> Deprecated in version 22.1. <dep desc>-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema2-config2-Deprecated cloud-config provided: x: <desc> Deprecated in version 22.1. <dep desc>-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema3-config3-Deprecated cloud-config provided: x: <desc> Deprecated in version 22.1.-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema3-config3-Deprecated cloud-config provided: x: <desc> Deprecated in version 22.1.-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema4-config4-Deprecated cloud-config provided: x: <desc> Deprecated in version 22.1.-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema4-config4-Deprecated cloud-config provided: x: <desc> Deprecated in version 22.1.-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema5-config5-None-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema5-config5-None-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema6-config6-Deprecated cloud-config provided: x: <desc> Deprecated in version 32.3.-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema6-config6-Deprecated cloud-config provided: x: <desc> Deprecated in version 32.3.-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema7-config7-Deprecated cloud-config provided: x: Deprecated in version 27.2.-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema7-config7-Deprecated cloud-config provided: x: Deprecated in version 27.2.-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema8-config8-Deprecated cloud-config provided: a-b: <desc> Deprecated in version 27.2.-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[schema8-config8-Deprecated cloud-config provided: a-b: <desc> Deprecated in version 27.2.-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[deprecated_pattern_property_without_description-True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigSchema::test_validateconfig_logs_deprecations[deprecated_pattern_property_without_description-False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestCloudConfigExamples::test_validateconfig_schema_of_example[cc_rsyslog-rsyslog:\n remotes:\n maas: 192.168.1.1\n juju: 10.0.4.1\n service_reload_command: auto\n] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestCloudConfigExamples::test_validateconfig_schema_of_example[cc_rsyslog-rsyslog:\n config_dir: /opt/etc/rsyslog.d\n config_filename: 99-late-cloud-config.conf\n configs:\n - "*.* @@192.158.1.1"\n - content: "*.* @@192.0.2.1:10514"\n filename: 01-example.conf\n - content: |\n *.* @@syslogd.example.com\n remotes:\n maas: 192.168.1.1\n juju: 10.0.4.1\n service_reload_command: [your, syslog, restart, command]\n] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestCloudConfigExamples::test_validateconfig_schema_of_example[cc_rsyslog-# default (no) configuration with package installation on FreeBSD\nrsyslog:\n config_dir: /usr/local/etc/rsyslog.d\n check_exe: "rsyslogd"\n packages: ["rsyslogd"]\n install_rsyslog: True\n] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestCloudConfigExamples::test_validateconfig_schema_of_example[cc_timezone-timezone: US/Eastern] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestCloudConfigExamples::test_validateconfig_schema_of_example[cc_ubuntu_autoinstall-# Tell the live-server installer to provide dhcp6 network config\n# and LVM on a disk matching the serial number prefix CT\nautoinstall:\n version: 1\n network:\n version: 2\n ethernets:\n enp0s31f6:\n dhcp6: yes\n storage:\n layout:\n name: lvm\n match:\n serial: CT*\n] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_error_on_invalid_header[True] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_error_on_invalid_header[False] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_error_on_non_yaml_scanner_error[True] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_error_on_non_yaml_scanner_error[False] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_error_on_non_yaml_parser_error[True] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_error_on_non_yaml_parser_error[False] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_strictly_validates_schema[True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_strictly_validates_schema[False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_squelches_duplicate_errors[True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_squelches_duplicate_errors[False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_no_cloud_cfg[True] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_no_cloud_cfg[False] SKIPPED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_raises_jinja_syntax_error[True] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestValidateCloudConfigFile::test_validateconfig_file_raises_jinja_syntax_error[False] PASSED [ 28%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_returns_restructured_text[None] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_returns_restructured_text[meta_update1] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_returns_restructured_text[meta_update2] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_full_with_activate_by_schema_keys PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_multiple_types PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_multiple_types_recursive[oneOf] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_multiple_types_recursive[anyOf] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_references_are_flattened_in_schema_docs PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_enum_types[sub_schema0-**prop1:** (``true``/``false``/``stuff``)] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_enum_types[sub_schema1-**prop1:** (``a``/``b``)] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_hidden_hides_specific_properties_from_docs[top_level_keys] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_hidden_hides_specific_properties_from_docs[nested_keys] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_nested_multi_schema_property_types[oneOf] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_nested_multi_schema_property_types[anyOf] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_types_as_list[oneOf] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_types_as_list[anyOf] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_flattening_defs PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_handles_string_examples PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_properly_parse_description PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_raises_key_errors[title] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_raises_key_errors[description] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_raises_key_errors[id] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_raises_key_errors[name] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_raises_key_errors[frequency] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_raises_key_errors[distros] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_raises_key_errors[examples] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_additional_keys[activate_by_schema_keys-expectation0] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_additional_keys[additional_key-expectation1] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_label_overrides_property_name PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[missing_deprecated_version] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[deprecated_no_description] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[deprecated_with_description] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[deprecated_ref_missing_version] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[deprecated_ref_missing_version_with_description] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[deprecated_missing_version_with_description] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[deprecated_anyof_missing_version_with_description] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[deprecated_anyof_with_description] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[anyof_not_deprecated] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestSchemaDocMarkdown::test_get_meta_doc_render_deprecated_info[not_deprecated] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestAnnotatedCloudconfigFile::test_annotated_cloudconfig_file_no_schema_errors PASSED [ 29%]
tests/unittests/config/test_schema.py::TestAnnotatedCloudconfigFile::test_annotated_cloudconfig_file_schema_annotates_and_adds_footer PASSED [ 29%]
tests/unittests/config/test_schema.py::TestAnnotatedCloudconfigFile::test_annotated_cloudconfig_file_annotates_separate_line_items PASSED [ 29%]
tests/unittests/config/test_schema.py::TestAnnotatedCloudconfigFile::test_annotated_invalid_top_level_key SKIPPED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_exclusive_args[params0] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_exclusive_args[params1] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_exclusive_args[params2] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_ignores_schema_type[params0-expectation0] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_ignores_schema_type[params1-expectation1] PASSED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_missing_args PASSED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_absent_config_file PASSED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_invalid_flag_combo PASSED [ 29%]
tests/unittests/config/test_schema.py::TestMain::test_main_prints_docs PASSED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_config_file[None-#cloud-config\nntp:-Valid schema] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_config_file[cloud-config-#cloud-config\nntp:-Valid schema] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_config_file[network-config-network: {'version': 2, 'ethernets': {'eth0': {'dhcp': true}}}-Valid schema] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_config_file[network-config-network:\n version: 1\n config:\n - type: physical\n name: eth0\n subnets:\n - type: dhcp\n-Valid schema] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_processed_data_preference_over_raw_data[prefer_processed_data_when_present_and_non_empty] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_processed_data_preference_over_raw_data[prefer_raw_data_when_processed_is_empty] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_processed_data_preference_over_raw_data[prefer_processed_vd_file_path_when_raw_and_processed_empty] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_validated] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[netv2_schema_validated_non_netplan] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[empty_net_validation_is_skipped] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_errors_handled] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_error_on_nic_name_length] FAILED [ 30%]
tests/unittests/config/test_schema.py::TestMain::test_main_system_userdata_requires_root PASSED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-ssh-keys.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-install-packages.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-gluster.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-disk-setup.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-run-cmds.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-mount-points.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-add-apt-repos.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-yum-repo.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-ntp.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-lxd.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-wireguard.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-ansible-managed.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-chef.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-chef-oneiric.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-write-files.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-ansible-pull.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-launch-index.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-reporting.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-boot-cmds.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-update-packages.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-update-apt.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-ansible-controller.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-user-groups.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-ca-certs.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_cloud_config_schema_doc_examples[/<<PKGBUILDDIR>>/doc/examples/cloud-config-apt.txt] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-subnet-static.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-subnet-multiple.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-vlan.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-bonded-vlan.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-route.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-subnet-dhcp.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-nameserver.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-bonded-pair.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-physical-3-nic.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-subnet-routes.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-multiple-vlan.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-bridge.yaml] SKIPPED [ 30%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v1_doc_examples[/<<PKGBUILDDIR>>/doc/examples/network-config-v1-physical-dhcp.yaml] SKIPPED [ 31%]
tests/unittests/config/test_schema.py::TestSchemaDocExamples::test_network_config_schema_v2_doc_examples[example_path0] SKIPPED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[net_v2_invalid_config] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[net_v2_simple_example] PASSED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[net_v2_no_top_level] PASSED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[net_v2_complex_example] PASSED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[config_key_required0] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[config_key_required1] PASSED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[unknown_config_type_item] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[physical_requires_name_property] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[physical_with_name_succeeds] PASSED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[physical_no_additional_properties] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[physical_with_all_known_properties] PASSED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[bond_with_all_known_properties] PASSED [ 31%]
tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[GH-4710_mtu_none_and_str_address] PASSED [ 31%]
tests/unittests/config/test_schema.py::TestStrictMetaschema::test_modules SKIPPED [ 31%]
tests/unittests/config/test_schema.py::TestStrictMetaschema::test_validate_bad_module SKIPPED [ 31%]
tests/unittests/config/test_schema.py::TestMeta::test_valid_meta_for_every_module PASSED [ 31%]
tests/unittests/config/test_schema.py::TestSchemaFuzz::test_validate_full_schema SKIPPED [ 31%]
tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_unable_to_read_cfg_paths[failure0-expected_logs0] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_unable_to_read_cfg_paths[failure1-expected_logs1] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_annotate_deprecated_config[test_annotated_deprecation_info_boundary_devel_shows] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_annotate_deprecated_config[test_annotated_deprecation_info_boundary_below_unredacted] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_annotate_deprecated_config[test_deprecation_info_boundary_does_unannotated_unredacted] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_jinja_with_errors[root_annotate_errors_with_exception] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_jinja_with_errors[root_no_annotate_exception_with_unique_errors] FAILED [ 31%]
tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_unknown_header[root_no_annotate_exception_with_unique_errors] PASSED [ 31%]
tests/unittests/distros/package_management/test_apt.py::TestPackageCommand::test_simple_command PASSED [ 31%]
tests/unittests/distros/package_management/test_apt.py::TestPackageCommand::test_wait_for_lock PASSED [ 31%]
tests/unittests/distros/package_management/test_apt.py::TestPackageCommand::test_lock_wait_timeout PASSED [ 31%]
tests/unittests/distros/package_management/test_apt.py::TestPackageCommand::test_lock_exception_wait PASSED [ 31%]
tests/unittests/distros/package_management/test_apt.py::TestPackageCommand::test_lock_exception_timeout PASSED [ 31%]
tests/unittests/distros/package_management/test_apt.py::TestPackageCommand::test_search_stem PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_arch_package_mirror_info_known PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_arch_package_mirror_info_unknown PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_doas_ensure_append PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_doas_ensure_handle_duplicates PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_doas_ensure_new PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_doas_ensure_rules PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_doas_ensure_rules_list PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_expire_passwd_freebsd_uses_pw_command PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_expire_passwd_uses_chpasswd PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_get_locale_rhel PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_get_locale_ubuntu PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_sudoers_ensure_append PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_sudoers_ensure_append_sudoer_file PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_sudoers_ensure_handle_duplicates PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_sudoers_ensure_new PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_sudoers_ensure_only_one_includedir PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_sudoers_ensure_rules PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_sudoers_ensure_rules_list PASSED [ 31%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_systemd_in_use PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_systemd_not_in_use PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_systemd_symlink PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_usr_sudoers_ensure_new PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGenericDistro::test_usr_sudoers_ensure_no_etc_create_when_include_in_usr_etc PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGetPackageMirrors::test_get_package_mirror_info_az_ec2[True-ec2-mirrors0] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGetPackageMirrors::test_get_package_mirror_info_az_ec2[True-other-mirrors1] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGetPackageMirrors::test_get_package_mirror_info_az_ec2[False-ec2-mirrors2] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGetPackageMirrors::test_get_package_mirror_info_az_ec2[False-other-mirrors3] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGetPackageMirrors::test_get_package_mirror_info_az_non_ec2 PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestGetPackageMirrors::test_get_package_mirror_info_none PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDistro::test_get_tmp_exec_path[False] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDistro::test_get_tmp_exec_path[True] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDHCP::test_dhcp_configuration[single_client_is_found_from_config_dhclient] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDHCP::test_dhcp_configuration[single_client_is_found_from_config_udhcpc] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDHCP::test_dhcp_configuration[single_client_is_found_from_config_dhcpcd] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDHCP::test_dhcp_configuration[first_client_is_found_from_config_dhcpcd] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDHCP::test_dhcp_configuration[first_client_is_found_from_config_udhcpc] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDHCP::test_dhcp_configuration[first_client_is_found_no_config_dhcpcd] PASSED [ 32%]
tests/unittests/distros/test__init__.py::TestDHCP::test_dhcp_configuration[second_client_is_found_from_config_dhcpcd] PASSED [ 32%]
tests/unittests/distros/test_alpine.py::TestAlpineBusyboxUserGroup::test_busybox_add_group PASSED [ 32%]
tests/unittests/distros/test_alpine.py::TestAlpineBusyboxUserGroup::test_busybox_add_user PASSED [ 32%]
tests/unittests/distros/test_alpine.py::TestAlpineShadowUserGroup::test_shadow_add_group PASSED [ 32%]
tests/unittests/distros/test_alpine.py::TestAlpineShadowUserGroup::test_shadow_add_user PASSED [ 32%]
tests/unittests/distros/test_aosc.py::TestAOSC::test_get_distro PASSED [ 32%]
tests/unittests/distros/test_arch.py::TestArch::test_get_distro PASSED [ 32%]
tests/unittests/distros/test_azurelinux.py::TestAzurelinux::test_get_distro PASSED [ 32%]
tests/unittests/distros/test_azurelinux.py::TestAzurelinux::test_network_renderer PASSED [ 32%]
tests/unittests/distros/test_bsd_utils.py::TestBsdUtils::test_get_rc_config_value PASSED [ 32%]
tests/unittests/distros/test_bsd_utils.py::TestBsdUtils::test_set_rc_config_value PASSED [ 32%]
tests/unittests/distros/test_bsd_utils.py::TestBsdUtils::test_set_rc_config_value_unchanged PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[basic] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[basic_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[no_home] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[no_home_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[system_user] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[system_user_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[explicit_no_home_false] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[explicit_no_home_false_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[unlocked] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[unlocked_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[set_implicit_encrypted_password] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[set_implicit_encrypted_password_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[set_empty_passwd_new_user] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[set_empty_passwd_new_user_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[set_plain_text_password] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[set_plain_text_password_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[set_explicitly_hashed_password] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_options[set_explicitly_hashed_password_snappy] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_locked_empty_user_passwd] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_in_snappy_on_locked_empty_user_passwd_in_extrausers] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_empty_user_passwd_alpine] PASSED [ 32%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_empty_user_passwd_dragonflybsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_locked_format1_empty_user_passwd_dragonflybsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_locked_format2_empty_user_passwd_dragonflybsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_empty_user_passwd_freebsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_locked_format1_empty_user_passwd_freebsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_locked_format2_empty_user_passwd_freebsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_empty_format1_user_passwd_netbsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_empty_format2_user_passwd_netbsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_locked_empty_user_passwd_netbsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_empty_user_passwd_openbsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_locked_format1_empty_user_passwd_openbsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_avoid_unlock_preexisting_user_empty_password[no_unlock_on_locked_format2_empty_user_passwd_openbsd] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_passwd_existing_user[skip_passwd_set_on_existing_user] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_passwd_existing_user[set_plain_text_password_on_existing_user] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_passwd_existing_user[set_explicitly_hashed_password] PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_group_added PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_snappy_group_added PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_only_new_group_added PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_snappy_only_new_group_added PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_groups_with_whitespace_string PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_snappy_create_groups_with_whitespace_string PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_groups_with_dict_deprecated PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_groups_with_list PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_snappy_create_groups_with_list PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_explicit_sudo_false PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_explicit_sudo_none PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_snappy_explicit_sudo_none PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_setup_ssh_authorized_keys_with_string PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_snappy_setup_ssh_authorized_keys_with_string PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_setup_ssh_authorized_keys_with_list PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_snappy_setup_ssh_authorized_keys_with_list PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_setup_ssh_authorized_keys_with_integer PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_user_with_ssh_redirect_user_no_cloud_keys PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_user_with_ssh_redirect_user_with_cloud_keys PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_create_user_with_ssh_redirect_user_does_not_disable_auth_keys PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_lock_with_usermod_if_no_passwd PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_lock_with_passwd_if_available PASSED [ 33%]
tests/unittests/distros/test_create_users.py::TestCreateUser::test_lock_raises_runtime_if_no_commands PASSED [ 33%]
tests/unittests/distros/test_debian.py::TestDebianApplyLocale::test_no_rerun PASSED [ 33%]
tests/unittests/distros/test_debian.py::TestDebianApplyLocale::test_no_regen_on_c_utf8 PASSED [ 33%]
tests/unittests/distros/test_debian.py::TestDebianApplyLocale::test_rerun_if_different PASSED [ 33%]
tests/unittests/distros/test_debian.py::TestDebianApplyLocale::test_rerun_if_no_file PASSED [ 33%]
tests/unittests/distros/test_debian.py::TestDebianApplyLocale::test_rerun_on_unset_system_locale PASSED [ 33%]
tests/unittests/distros/test_debian.py::TestDebianApplyLocale::test_rerun_on_mismatched_keys PASSED [ 33%]
tests/unittests/distros/test_debian.py::TestDebianApplyLocale::test_falseish_locale_raises_valueerror PASSED [ 33%]
tests/unittests/distros/test_dragonflybsd.py::TestDragonFlyBSD::test_add_user PASSED [ 33%]
tests/unittests/distros/test_dragonflybsd.py::TestDragonFlyBSD::test_unlock_passwd PASSED [ 33%]
tests/unittests/distros/test_dragonflybsd.py::test_find_dragonflybsd_part PASSED [ 33%]
tests/unittests/distros/test_dragonflybsd.py::test_parse_mount PASSED [ 33%]
tests/unittests/distros/test_freebsd.py::TestFreeBSD::test_add_user PASSED [ 33%]
tests/unittests/distros/test_freebsd.py::TestFreeBSD::test_unlock_passwd PASSED [ 33%]
tests/unittests/distros/test_freebsd.py::TestDeviceLookUp::test_find_freebsd_part_gpt PASSED [ 34%]
tests/unittests/distros/test_freebsd.py::TestDeviceLookUp::test_find_freebsd_part_gptid PASSED [ 34%]
tests/unittests/distros/test_freebsd.py::TestDeviceLookUp::test_find_freebsd_part_label PASSED [ 34%]
tests/unittests/distros/test_freebsd.py::TestDeviceLookUp::test_find_freebsd_part_ufsid PASSED [ 34%]
tests/unittests/distros/test_freebsd.py::TestDeviceLookUp::test_get_path_dev_freebsd_label PASSED [ 34%]
tests/unittests/distros/test_gentoo.py::TestGentoo::test_write_existing_hostname_with_comments PASSED [ 34%]
tests/unittests/distros/test_gentoo.py::TestGentoo::test_write_hostname PASSED [ 34%]
tests/unittests/distros/test_hostname.py::TestHostnameHelper::test_adjust_hostname PASSED [ 34%]
tests/unittests/distros/test_hostname.py::TestHostnameHelper::test_no_adjust_hostname PASSED [ 34%]
tests/unittests/distros/test_hostname.py::TestHostnameHelper::test_parse_same PASSED [ 34%]
tests/unittests/distros/test_hosts.py::TestHostsHelper::test_add PASSED [ 34%]
tests/unittests/distros/test_hosts.py::TestHostsHelper::test_del PASSED [ 34%]
tests/unittests/distros/test_hosts.py::TestHostsHelper::test_parse PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSD::test_description PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSD::test_duplicate_mac PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSD::test_index PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSD::test_is_bridge PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSD::test_is_vlan PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSD::test_netmask PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSD::test_parse_freebsd PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSD::test_vtnet_options PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSDCIDR::test_netmask PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserFreeBSDCIDR::test_parse_freebsd PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserOpenBSD::test_gif_ipv6 PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserOpenBSD::test_index PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserOpenBSD::test_is_not_physical PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserOpenBSD::test_is_physical PASSED [ 34%]
tests/unittests/distros/test_ifconfig.py::TestIfconfigParserOpenBSD::test_parse_openbsd PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_get_package_mirror_info_failsafe[mirror_info0-expected0] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_get_package_mirror_info_failsafe[mirror_info1-expected1] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_get_package_mirror_info_failsafe[mirror_info2-expected2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_get_package_mirror_info_failsafe[mirror_info3-expected3] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_failsafe_used_if_all_search_results_filtered_out PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[fk-fake-1f-None-patterns0-expected0-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[fk-fake-1f-None-patterns1-expected1-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk-fake-1-patterns2-expected2-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[fake-fake-1f-None-patterns3-expected3-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fake-region-patterns4-expected4-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-\u0422\u03b5\u0405\u0422\u0323-patterns5-expected5-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-\u0422\u03b5\u0405\u0422\u0323-patterns6-expected6-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-\u0422\u03b5\u0405\u0422\u0323-patterns7-expected7-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk-fake-1-patterns8-expected8-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk-fake-1-patterns9-expected9-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-inv[lid-patterns10-expected10-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None--some-region--patterns11-expected11-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x00fake\x001-patterns12-expected12-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x01fake\x011-patterns13-expected13-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x02fake\x021-patterns14-expected14-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x03fake\x031-patterns15-expected15-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x04fake\x041-patterns16-expected16-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x05fake\x051-patterns17-expected17-True-ec2] PASSED [ 34%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x06fake\x061-patterns18-expected18-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x07fake\x071-patterns19-expected19-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x08fake\x081-patterns20-expected20-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x0bfake\x0b1-patterns21-expected21-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x0cfake\x0c1-patterns22-expected22-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x0efake\x0e1-patterns23-expected23-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x0ffake\x0f1-patterns24-expected24-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x10fake\x101-patterns25-expected25-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x11fake\x111-patterns26-expected26-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x12fake\x121-patterns27-expected27-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x13fake\x131-patterns28-expected28-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x14fake\x141-patterns29-expected29-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x15fake\x151-patterns30-expected30-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x16fake\x161-patterns31-expected31-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x17fake\x171-patterns32-expected32-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x18fake\x181-patterns33-expected33-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x19fake\x191-patterns34-expected34-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x1afake\x1a1-patterns35-expected35-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x1bfake\x1b1-patterns36-expected36-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x1cfake\x1c1-patterns37-expected37-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x1dfake\x1d1-patterns38-expected38-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x1efake\x1e1-patterns39-expected39-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\x1ffake\x1f1-patterns40-expected40-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk fake 1-patterns41-expected41-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk!fake!1-patterns42-expected42-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk"fake"1-patterns43-expected43-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk$fake$1-patterns44-expected44-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk%fake%1-patterns45-expected45-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk&fake&1-patterns46-expected46-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk'fake'1-patterns47-expected47-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk(fake(1-patterns48-expected48-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk)fake)1-patterns49-expected49-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk*fake*1-patterns50-expected50-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk+fake+1-patterns51-expected51-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk,fake,1-patterns52-expected52-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk;fake;1-patterns53-expected53-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk<fake<1-patterns54-expected54-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk=fake=1-patterns55-expected55-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk>fake>1-patterns56-expected56-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk\\fake\\1-patterns57-expected57-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk^fake^1-patterns58-expected58-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk_fake_1-patterns59-expected59-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk`fake`1-patterns60-expected60-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk{fake{1-patterns61-expected61-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk|fake|1-patterns62-expected62-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk}fake}1-patterns63-expected63-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestGetPackageMirrorInfo::test_valid_substitution[None-fk~fake~1-patterns64-expected64-True-ec2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestUpdatePackageSources::test_log_errors_with_updating_package_source[apt_error0-None-expected_logs0] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestUpdatePackageSources::test_log_errors_with_updating_package_source[None-snap_error1-expected_logs1] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestUpdatePackageSources::test_run_available_package_managers[True-False-expected_logs0] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestUpdatePackageSources::test_run_available_package_managers[False-True-expected_logs1] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestUpdatePackageSources::test_run_available_package_managers[False-False-expected_logs2] PASSED [ 35%]
tests/unittests/distros/test_init.py::TestInstall::test_invalid_yaml PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_unknown_package_manager PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_non_default_package_manager PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_non_default_package_manager_fail PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_default_and_specific_package_manager PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_specific_package_manager_fail_doesnt_retry PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_no_attempt_if_no_package_manager PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_failed[debian_no_apt] PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_failed[debian_with_apt] PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_failed[ubuntu_no_apt] PASSED [ 36%]
tests/unittests/distros/test_init.py::TestInstall::test_failed[ubuntu_with_apt] PASSED [ 36%]
tests/unittests/distros/test_manage_service.py::TestManageService::test_manage_service_alpine_rcupdate_cmd PASSED [ 36%]
tests/unittests/distros/test_manage_service.py::TestManageService::test_manage_service_disable_systemctl PASSED [ 36%]
tests/unittests/distros/test_manage_service.py::TestManageService::test_manage_service_fbsd_service_initcmd PASSED [ 36%]
tests/unittests/distros/test_manage_service.py::TestManageService::test_manage_service_rcctl_initcmd PASSED [ 36%]
tests/unittests/distros/test_manage_service.py::TestManageService::test_manage_service_rcservice_initcmd PASSED [ 36%]
tests/unittests/distros/test_manage_service.py::TestManageService::test_manage_service_service_initcmd PASSED [ 36%]
tests/unittests/distros/test_manage_service.py::TestManageService::test_manage_service_systemctl PASSED [ 36%]
tests/unittests/distros/test_manage_service.py::TestManageService::test_manage_service_systemctl_initcmd PASSED [ 36%]
tests/unittests/distros/test_mariner.py::TestMariner::test_get_distro PASSED [ 36%]
tests/unittests/distros/test_mariner.py::TestMariner::test_network_renderer PASSED [ 36%]
tests/unittests/distros/test_netbsd.py::TestNetBSD::test_add_user PASSED [ 36%]
tests/unittests/distros/test_netbsd.py::TestNetBSD::test_unlock_passwd PASSED [ 36%]
tests/unittests/distros/test_netbsd.py::test_init[True] PASSED [ 36%]
tests/unittests/distros/test_netbsd.py::test_init[False] PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroFreeBSD::test_apply_network_config_freebsd_ifrename PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroFreeBSD::test_apply_network_config_freebsd_ipv6_standard PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroFreeBSD::test_apply_network_config_freebsd_nameserver PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroFreeBSD::test_apply_network_config_freebsd_standard PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuEni::test_apply_network_config_and_bringup_activator_defaults_ub PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuEni::test_apply_network_config_and_bringup_filters_priority_eni_ub PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuEni::test_apply_network_config_eni_ub PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuEni::test_apply_network_config_ipv6_ub PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuNetplan::test_apply_network_config_v1_ipv6_to_netplan_ub PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuNetplan::test_apply_network_config_v1_to_netplan_ub PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuNetplan::test_apply_network_config_v2_full_passthrough_ub PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuNetplan::test_apply_network_config_v2_passthrough_retain_orig_perms PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuNetplan::test_apply_network_config_v2_passthrough_ub PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroUbuntuNetplan::test_apply_network_config_v2_passthrough_ub_old_behavior PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroRedhat::test_apply_network_config_ipv6_rh PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroRedhat::test_apply_network_config_rh PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroRedhat::test_vlan_render PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroRedhat::test_vlan_render_unsupported PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroOpensuse::test_apply_network_config_ipv6_opensuse PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroOpensuse::test_apply_network_config_opensuse PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroArch::test_apply_network_config_v1_with_netplan PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroPhoton::test_photon_network_config_v1 PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroPhoton::test_photon_network_config_v1_with_duplicates PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroPhoton::test_photon_network_config_v2 PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroMariner::test_mariner_network_config_v1 PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroMariner::test_mariner_network_config_v1_with_duplicates PASSED [ 36%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroMariner::test_mariner_network_config_v2 PASSED [ 37%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroAzureLinux::test_azurelinux_network_config_v1 PASSED [ 37%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroAzureLinux::test_azurelinux_network_config_v1_with_duplicates PASSED [ 37%]
tests/unittests/distros/test_netconfig.py::TestNetCfgDistroAzureLinux::test_azurelinux_network_config_v2 PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestBSDNetworkingIsPhysical::test_is_physical PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestBSDNetworkingIsPhysical::test_is_not_physical PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestBSDNetworkingIsVLAN::test_is_vlan PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestBSDNetworkingIsVLAN::test_is_not_physical PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestBSDNetworkingIsBridge::test_is_vlan PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestBSDNetworkingIsBridge::test_is_not_physical PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingIsPhysical::test_returns_false_by_default PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingIsPhysical::test_returns_false_if_devname_exists_but_not_physical PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingIsPhysical::test_returns_true_if_device_is_physical PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestBSDNetworkingTrySetLinkUp::test_calls_subp_return_true PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingTrySetLinkUp::test_calls_subp_return_true PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingTrySetLinkUp::test_calls_subp_return_false PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestBSDNetworkingSettle::test_settle_doesnt_error PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingSettle::test_no_arguments PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingSettle::test_exists_argument PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestNetworkingWaitForPhysDevs::test_skips_settle_if_all_present PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestNetworkingWaitForPhysDevs::test_calls_udev_settle_on_missing PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestNetworkingWaitForPhysDevs::test_retrying_and_strict_behaviour[True-expectation0] PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestNetworkingWaitForPhysDevs::test_retrying_and_strict_behaviour[False-expectation1] PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingApplyNetworkCfgNames::test_apply_renames[v1] PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingApplyNetworkCfgNames::test_apply_renames[v2] PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingApplyNetworkCfgNames::test_apply_v2_renames_skips_without_setname_or_mac[without_setname] PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingApplyNetworkCfgNames::test_apply_v2_renames_skips_without_setname_or_mac[without_mac] PASSED [ 37%]
tests/unittests/distros/test_networking.py::TestLinuxNetworkingApplyNetworkCfgNames::test_apply_v2_renames_raises_runtime_error_on_unknown_version PASSED [ 37%]
tests/unittests/distros/test_openbsd.py::TestOpenBSD::test_add_user PASSED [ 37%]
tests/unittests/distros/test_openbsd.py::TestOpenBSD::test_unlock_passwd PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_upgrade_not_btrfs PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_upgrade_not_btrfs_pkg PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_update_not_btrfs PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_update_not_btrfs_pkg PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_install_not_btrfs_pkg PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_upgrade_btrfs PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_upgrade_btrfs_pkg PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_update_btrfs PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_update_btrfs_pkg PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_install_btrfs_pkg PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_upgrade_no_transact_up_ro_root PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_upgrade_no_transact_up_rw_root_btrfs PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_upgrade_transact_up_ro_root PASSED [ 37%]
tests/unittests/distros/test_opensuse.py::TestPackageCommands::test_refresh_transact_up_ro_root_btrfs PASSED [ 37%]
tests/unittests/distros/test_photon.py::TestPhoton::test_fallback_netcfg PASSED [ 37%]
tests/unittests/distros/test_photon.py::TestPhoton::test_get_distro PASSED [ 37%]
tests/unittests/distros/test_photon.py::TestPhoton::test_network_renderer PASSED [ 37%]
tests/unittests/distros/test_photon.py::TestPhoton::test_write_hostname PASSED [ 37%]
tests/unittests/distros/test_resolv.py::TestResolvHelper::test_local_domain PASSED [ 37%]
tests/unittests/distros/test_resolv.py::TestResolvHelper::test_nameservers PASSED [ 37%]
tests/unittests/distros/test_resolv.py::TestResolvHelper::test_parse_same PASSED [ 37%]
tests/unittests/distros/test_resolv.py::TestResolvHelper::test_search_domains PASSED [ 37%]
tests/unittests/distros/test_sles.py::TestSLES::test_get_distro PASSED [ 38%]
tests/unittests/distros/test_sysconfig.py::TestSysConfHelper::test_parse_add_new PASSED [ 38%]
tests/unittests/distros/test_sysconfig.py::TestSysConfHelper::test_parse_adjust PASSED [ 38%]
tests/unittests/distros/test_sysconfig.py::TestSysConfHelper::test_parse_empty PASSED [ 38%]
tests/unittests/distros/test_sysconfig.py::TestSysConfHelper::test_parse_no_adjust_shell PASSED [ 38%]
tests/unittests/distros/test_sysconfig.py::TestSysConfHelper::test_parse_no_change PASSED [ 38%]
tests/unittests/distros/test_sysconfig.py::TestSysConfHelper::test_parse_shell_vars PASSED [ 38%]
tests/unittests/distros/test_ubuntu.py::TestPackageCommand::test_package_command_only_refresh_snap_when_available[True] PASSED [ 38%]
tests/unittests/distros/test_ubuntu.py::TestPackageCommand::test_package_command_only_refresh_snap_when_available[False] PASSED [ 38%]
tests/unittests/distros/test_ubuntu.py::TestPackageCommand::test_package_command_avoids_snap_refresh_when_refresh_hold_is_forever[skip_snap_refresh_due_to_global_hold_forever] PASSED [ 38%]
tests/unittests/distros/test_ubuntu.py::TestPackageCommand::test_package_command_avoids_snap_refresh_when_refresh_hold_is_forever[perform_snap_refresh_due_to_temporary_global_hold] PASSED [ 38%]
tests/unittests/distros/test_ubuntu.py::TestPackageCommand::test_package_command_avoids_snap_refresh_when_refresh_hold_is_forever[snap_refresh_performed_when_no_global_hold_is_set] PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_add_user_on_snappy_system PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_basic_groups PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_create_snap_user PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_create_snap_user_known PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_csv_groups PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_group_dict PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_member_groups PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_more_groups PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_dict PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_dict_default PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_dict_default_additional PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_dict_extract PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_dict_trans PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_old_user PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_simple PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_simple_csv PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_simple_dict PASSED [ 38%]
tests/unittests/distros/test_user_data_normalize.py::TestUGNormalize::test_users_simple_dict_no PASSED [ 38%]
tests/unittests/filters/test_launch_index.py::TestLaunchFilter::testConfigEmailIndex PASSED [ 38%]
tests/unittests/filters/test_launch_index.py::TestLaunchFilter::testHeaderEmailIndex PASSED [ 38%]
tests/unittests/filters/test_launch_index.py::TestLaunchFilter::testIndexes PASSED [ 38%]
tests/unittests/filters/test_launch_index.py::TestLaunchFilter::testMultiEmailIndex PASSED [ 38%]
tests/unittests/filters/test_launch_index.py::TestLaunchFilter::testNoneIndex PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_link_up PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_link_down PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_link_rename PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_add_route PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_del_route PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_append_route PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_add_addr PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_del_addr PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_flush_addr PASSED [ 38%]
tests/unittests/net/netops/test_iproute2.py::TestOps::test_add_default_route PASSED [ 38%]
tests/unittests/net/test_dhcp.py::TestParseDHCPServerFromLeaseFile::test_find_server_address_when_present[no_server_addr_on_absent_lease_file] PASSED [ 38%]
tests/unittests/net/test_dhcp.py::TestParseDHCPServerFromLeaseFile::test_find_server_address_when_present[no_server_addr_on_empty_lease_file] PASSED [ 38%]
tests/unittests/net/test_dhcp.py::TestParseDHCPServerFromLeaseFile::test_find_server_address_when_present[no_server_addr_when_no_server_ident] PASSED [ 38%]
tests/unittests/net/test_dhcp.py::TestParseDHCPServerFromLeaseFile::test_find_server_address_when_present[server_addr_found_when_server_ident_present] PASSED [ 38%]
tests/unittests/net/test_dhcp.py::TestParseDHCPLeasesFile::test_parse_empty_lease_file_errors PASSED [ 38%]
tests/unittests/net/test_dhcp.py::TestParseDHCPLeasesFile::test_parse_malformed_lease_file_content_errors PASSED [ 38%]
tests/unittests/net/test_dhcp.py::TestParseDHCPLeasesFile::test_parse_multiple_leases PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPRFC3442::test_obtain_centos_lease_parses_static_routes PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPRFC3442::test_obtain_lease_parses_static_routes PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPRFC3442::test_parse_lease_finds_classless_static_routes PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPRFC3442::test_parse_lease_finds_rfc3442_classless_static_routes PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_bogus_width_returns_empty_list PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_class_c_b_a PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_default_route PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_empty_string PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_invalid_input_returns_empty_list PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_logs_error_truncated PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_returns_valid_routes_until_parse_err PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_single_ip PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_parse_static_routes_single_ip_handles_trailing_semicolon PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_redhat_format PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_redhat_format_with_a_space_too_much_after_comma PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_unknown_121 PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPParseStaticRoutes::test_unspecified_gateway PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPDiscoveryClean::test_dhcpcd_exits_with_error PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPDiscoveryClean::test_dhcp_client_failover PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPDiscoveryClean::test_absent_dhclient_command PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPDiscoveryClean::test_dhcp_discovery_warns_invalid_pid PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPDiscoveryClean::test_dhcp_discovery_waits_on_lease_and_pid PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPDiscoveryClean::test_dhcp_discovery PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPDiscoveryClean::test_dhcp_discovery_ib PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestDHCPDiscoveryClean::test_dhcp_output_error_stream PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestSystemdParseLeases::test_multiple_files PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestSystemdParseLeases::test_no_leases_dir_returns_empty_dict PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestSystemdParseLeases::test_no_leases_returns_empty_dict PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestSystemdParseLeases::test_single_azure_leases_file PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestSystemdParseLeases::test_single_leases_file PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpNoNetworkSetup::test_ephemeral_dhcp_no_network_if_url_connectivity PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpNoNetworkSetup::test_ephemeral_dhcp_setup_network_if_url_connectivity PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_obtain_lease_raises_error[NoDHCPLeaseInterfaceError0] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_obtain_lease_raises_error[NoDHCPLeaseInterfaceError1] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_obtain_lease_raises_error[NoDHCPLeaseMissingDhclientError] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_obtain_lease_umbrella_error[NoDHCPLeaseInterfaceError0] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_obtain_lease_umbrella_error[NoDHCPLeaseInterfaceError1] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_obtain_lease_umbrella_error[NoDHCPLeaseMissingDhclientError] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_ctx_mgr_raises_error[NoDHCPLeaseInterfaceError0] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_ctx_mgr_raises_error[NoDHCPLeaseInterfaceError1] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_ctx_mgr_raises_error[NoDHCPLeaseMissingDhclientError] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_ctx_mgr_umbrella_error[NoDHCPLeaseInterfaceError0] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_ctx_mgr_umbrella_error[NoDHCPLeaseInterfaceError1] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestEphemeralDhcpLeaseErrors::test_ctx_mgr_umbrella_error[NoDHCPLeaseMissingDhclientError] PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestUDHCPCDiscoveryClean::test_udhcpc_discovery PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestUDHCPCDiscoveryClean::test_udhcpc_discovery_ib PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestISCDHClient::test_fallback_when_nothing_found PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestISCDHClient::test_get_newest_lease_file_from_distro_alpine PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestISCDHClient::test_get_newest_lease_file_from_distro_amazonlinux PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestISCDHClient::test_get_newest_lease_file_from_distro_debian PASSED [ 39%]
tests/unittests/net/test_dhcp.py::TestISCDHClient::test_get_newest_lease_file_from_distro_freebsd PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestISCDHClient::test_get_newest_lease_file_from_distro_notfound PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestISCDHClient::test_get_newest_lease_file_from_distro_rhel PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_parse_lease_dump PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_parse_lease_dump_resilience[lease_has_empty_lines] PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_parse_lease_dump_resilience[lease_has_values_that_arent_key_value_pairs] PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_parse_lease_dump_resilience[lease_has_kv_pair_including_equals_sign_in_value] PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_parse_lease_dump_fails PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_parse_raw_lease[no option 245] PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_parse_raw_lease[a valid option 245] PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_parse_classless_static_routes PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_dhcpcd_discovery_ib PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestDhcpcd::test_dhcpcd_discovery_timeout PASSED [ 40%]
tests/unittests/net/test_dhcp.py::TestMaybePerformDhcpDiscovery::test_none_and_missing_fallback PASSED [ 40%]
tests/unittests/net/test_dns.py::TestNetDns::test_system_mac_address_does_not_break_dns_parsing PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_stack_order[False-False] PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_stack_order[False-True] PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_stack_order[True-False] PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_stack_order[True-True] PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_interface_init_failures[v6_only] PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_interface_init_failures[v4_only] PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_interface_init_failures[v4_error] PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_interface_init_failures[v6_error] PASSED [ 40%]
tests/unittests/net/test_ephemeral.py::TestEphemeralIPNetwork::test_interface_init_failures[v4_v6_error] PASSED [ 40%]
tests/unittests/net/test_init.py::TestSysDevPath::test_sys_dev_path PASSED [ 40%]
tests/unittests/net/test_init.py::TestSysDevPath::test_sys_dev_path_without_path PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_strips_contents_of_sys_path PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_reraises_oserror PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_handles_error_with_on_enoent PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_translates_content PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_errors_on_translation_failures PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_handles_handles_with_onkeyerror PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_safe_false_on_translate_failure PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_safe_returns_false_on_noent_failure PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_int_returns_none_on_error PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_int_returns_none_on_valueerror PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_read_sys_net_int_returns_integer_from_content PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_is_up_true PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_is_up_false PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_is_bridge PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_is_bond PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_get_master PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_master_is_bridge_or_bond PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_master_is_openvswitch PASSED [ 40%]
tests/unittests/net/test_init.py::TestReadSysNet::test_is_vlan PASSED [ 40%]
tests/unittests/net/test_init.py::TestGenerateFallbackConfig::test_generate_fallback_config_skips_bonds PASSED [ 40%]
tests/unittests/net/test_init.py::TestGenerateFallbackConfig::test_generate_fallback_config_skips_bridges PASSED [ 40%]
tests/unittests/net/test_init.py::TestGenerateFallbackConfig::test_generate_fallback_config_skips_netfail_devs PASSED [ 40%]
tests/unittests/net/test_init.py::TestGenerateFallbackConfig::test_generate_fallback_config_skips_veth PASSED [ 40%]
tests/unittests/net/test_init.py::TestGenerateFallbackConfig::test_generate_fallback_finds_connected_eth_with_mac PASSED [ 40%]
tests/unittests/net/test_init.py::TestGenerateFallbackConfig::test_generate_fallback_finds_dormant_eth_with_mac PASSED [ 40%]
tests/unittests/net/test_init.py::TestGenerateFallbackConfig::test_generate_fallback_finds_eth_by_operstate PASSED [ 40%]
tests/unittests/net/test_init.py::TestNetFindFallBackNic::test_generate_fallback_finds_first_connected_eth_with_mac PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_ignored_interfaces PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_carrier_preferred PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_natural_sort PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_with_carrier PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_after_carrier[dormant-False] PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_after_carrier[dormant-True] PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_after_carrier[down-False] PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_after_carrier[down-True] PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_after_carrier[lowerlayerdown-False] PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_after_carrier[lowerlayerdown-True] PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_after_carrier[unknown-False] PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_eth0_preferred_after_carrier[unknown-True] PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFindCandidateNics::test_no_nics PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetDeviceList::test_get_devicelist_empty_with_no_devices_in_sys_net PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetDeviceList::test_get_devicelist_empty_without_sys_net PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetDeviceList::test_get_devicelist_lists_any_subdirectories_in_sys_net PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetDeviceList::test_get_devicelist_raise_oserror PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interface_mac PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interface_mac_false_with_no_mac PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interface_mac_grabs_bonding_address PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interfaces_by_mac_skips_empty_mac PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interfaces_by_mac_skips_master_devs PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interfaces_by_mac_skips_missing_mac PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interfaces_by_mac_skips_netfailvoer PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interfaces_does_not_skip_phys_members_of_bridges_and_bonds PASSED [ 41%]
tests/unittests/net/test_init.py::TestGetInterfaceMAC::test_get_interfaces_empty_list_without_sys_net PASSED [ 41%]
tests/unittests/net/test_init.py::TestInterfaceHasOwnMAC::test_interface_has_own_mac_false_when_stolen PASSED [ 41%]
tests/unittests/net/test_init.py::TestInterfaceHasOwnMAC::test_interface_has_own_mac_strict_errors_on_absent_assign_type PASSED [ 41%]
tests/unittests/net/test_init.py::TestInterfaceHasOwnMAC::test_interface_has_own_mac_true_when_not_stolen PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV4Network::test_ephemeral_ipv4_network_errors_invalid_mask_prefix PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV4Network::test_ephemeral_ipv4_network_errors_on_missing_params PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV4Network::test_ephemeral_ipv4_network_noop_when_configured PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV4Network::test_ephemeral_ipv4_network_performs_teardown PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV4Network::test_ephemeral_ipv4_network_with_new_default_route PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV4Network::test_ephemeral_ipv4_network_with_prefix PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV4Network::test_ephemeral_ipv4_network_with_rfc3442_static_routes PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV4Network::test_teardown_on_enter_exception PASSED [ 41%]
tests/unittests/net/test_init.py::TestEphemeralIPV6Network::test_ephemeral_ipv6_network_performs_setup PASSED [ 41%]
tests/unittests/net/test_init.py::TestHasURLConnectivity::test_true_on_url_connectivity_failure PASSED [ 41%]
tests/unittests/net/test_init.py::TestHasURLConnectivity::test_true_on_url_connectivity_success PASSED [ 41%]
tests/unittests/net/test_init.py::TestHasURLConnectivity::test_true_on_url_connectivity_timeout PASSED [ 41%]
tests/unittests/net/test_init.py::TestHasURLConnectivity::test_url_timeout_on_connectivity_check PASSED [ 41%]
tests/unittests/net/test_init.py::TestExtractPhysdevs::test_extract_physdevs_looks_up_devid_v1 PASSED [ 41%]
tests/unittests/net/test_init.py::TestExtractPhysdevs::test_extract_physdevs_looks_up_devid_v2 PASSED [ 41%]
tests/unittests/net/test_init.py::TestExtractPhysdevs::test_extract_physdevs_looks_up_driver_v1 PASSED [ 41%]
tests/unittests/net/test_init.py::TestExtractPhysdevs::test_extract_physdevs_looks_up_driver_v2 PASSED [ 41%]
tests/unittests/net/test_init.py::TestExtractPhysdevs::test_get_v1_type_physical PASSED [ 41%]
tests/unittests/net/test_init.py::TestExtractPhysdevs::test_get_v2_type_physical PASSED [ 41%]
tests/unittests/net/test_init.py::TestExtractPhysdevs::test_get_v2_type_physical_skips_if_no_set_name PASSED [ 41%]
tests/unittests/net/test_init.py::TestExtractPhysdevs::test_runtime_error_on_unknown_netcfg_version PASSED [ 41%]
tests/unittests/net/test_init.py::TestNetFailOver::test_get_dev_features PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_get_dev_features_none_returns_empty_string PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_has_netfail_standby_feature PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_has_netfail_standby_feature_short_is_false PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_has_netfail_standby_feature_not_present_is_false PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_has_netfail_standby_feature_no_features_is_false PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_master PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_master_checks_master_attr PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_master_wrong_driver PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_master_has_master_attr PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_master_no_standby_feat PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_primary PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_primary_wrong_driver PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_primary_no_master PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_primary_bad_master PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_primary_no_standby PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_standby PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_standby_wrong_driver PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_standby_no_master PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfail_standby_no_standby_feature PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfailover_primary PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfailover_standby PASSED [ 42%]
tests/unittests/net/test_init.py::TestNetFailOver::test_is_netfailover_returns_false PASSED [ 42%]
tests/unittests/net/test_init.py::TestOpenvswitchIsInstalled::test_mirrors_which_result[True-/some/path] PASSED [ 42%]
tests/unittests/net/test_init.py::TestOpenvswitchIsInstalled::test_mirrors_which_result[False-None] PASSED [ 42%]
tests/unittests/net/test_init.py::TestOpenvswitchIsInstalled::test_only_calls_which_once PASSED [ 42%]
tests/unittests/net/test_init.py::TestGetOVSInternalInterfaces::test_command_used PASSED [ 42%]
tests/unittests/net/test_init.py::TestGetOVSInternalInterfaces::test_subp_contents_split_and_returned PASSED [ 42%]
tests/unittests/net/test_init.py::TestGetOVSInternalInterfaces::test_database_connection_error_handled_gracefully PASSED [ 42%]
tests/unittests/net/test_init.py::TestGetOVSInternalInterfaces::test_other_errors_raised PASSED [ 42%]
tests/unittests/net/test_init.py::TestGetOVSInternalInterfaces::test_only_runs_once PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsOpenVSwitchInternalInterface::test_false_if_ovs_not_installed PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsOpenVSwitchInternalInterface::test_return_value_based_on_detected_interfaces[detected_interfaces0-devname-False] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsOpenVSwitchInternalInterface::test_return_value_based_on_detected_interfaces[detected_interfaces1-devname-False] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsOpenVSwitchInternalInterface::test_return_value_based_on_detected_interfaces[detected_interfaces2-devname-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsOpenVSwitchInternalInterface::test_return_value_based_on_detected_interfaces[detected_interfaces3-ours-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpAddress::test_is_ip_address[ValueError-False] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpAddress::test_is_ip_address[<lambda>-True0] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpAddress::test_is_ip_address[<lambda>-False0] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpAddress::test_is_ip_address[<lambda>-True1] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpAddress::test_is_ip_address[<lambda>-False1] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpv4Address::test_is_ip_address[ipv4address_mock0-False] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpv4Address::test_is_ip_address[ipv4address_mock1-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ip_network-192.168.1.1-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ip_network-192.168.1.1/24-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ip_network-192.168.1.1/32-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ip_network-192.168.1.1/33-False] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ip_network-2001:67c:1-False] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ip_network-2001:67c:1/32-False] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ip_network-2001:67c::-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ip_network-2001:67c::/32-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv4_network-192.168.1.1-True] PASSED [ 42%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv4_network-192.168.1.1/24-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv4_network-2001:67c::-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv4_network-2001:67c::/32-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv6_network-192.168.1.1-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv6_network-192.168.1.1/24-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv6_network-2001:67c:1-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv6_network-2001:67c:1/32-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv6_network-2001:67c::-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv6_network-2001:67c::/32-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv6_network-2001:67c::/129-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpNetwork::test_is_ip_network[is_ipv6_network-2001:67c::/128-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-192.168.1.1-2001:67c::1/64-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-2001:67c::1-192.168.1.1/24-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-192.168.1.1-192.168.1.1/24-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-192.168.1.1-192.168.1.1/32-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-192.168.1.2-192.168.1.1/24-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-192.168.1.2-192.168.1.1/32-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-192.168.2.2-192.168.1.1/24-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-192.168.2.2-192.168.1.1/32-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-2001:67c1::1-2001:67c1::1/64-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-2001:67c1::1-2001:67c1::1/128-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-2001:67c1::2-2001:67c1::1/64-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-2001:67c1::2-2001:67c1::1/128-False] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-2002:67c1::1-2001:67c1::1/8-True] PASSED [ 43%]
tests/unittests/net/test_init.py::TestIsIpInSubnet::test_is_ip_in_subnet[is_ip_in_subnet-2002:67c1::1-2001:67c1::1/16-False] PASSED [ 43%]
tests/unittests/net/test_net_rendering.py::test_convert[no_matching_mac_v2-Renderer.Netplan|NetworkManager] PASSED [ 43%]
tests/unittests/net/test_netplan.py::TestNetplanRenderer::test_skip_netplan_generate[] PASSED [ 43%]
tests/unittests/net/test_netplan.py::TestNetplanRenderer::test_skip_netplan_generate[{'orig_cfg': true}] PASSED [ 43%]
tests/unittests/net/test_netplan.py::TestNetplanRenderer::test_skip_netplan_generate[{'new_cfg': true}] PASSED [ 43%]
tests/unittests/net/test_netplan.py::TestNetplanAPIWriteYAMLFile::test_no_netplan_python_api PASSED [ 43%]
tests/unittests/net/test_network_manager.py::TestNetworkManagerRenderNetworkState::test_bond_dns_baseline PASSED [ 43%]
tests/unittests/net/test_network_manager.py::TestNetworkManagerRenderNetworkState::test_bond_dns_redacted_with_method_disabled PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfig::test_empty_v1_config_gets_network_state PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfig::test_empty_v2_config_gets_network_state PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfig::test_missing_version_returns_none PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfig::test_unknown_versions_returns_none PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfig::test_valid_config_gets_network_state PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfig::test_version_2_passes_self_as_config PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_version_2_ignores_renderer_key PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[non-netplan-ethernets] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[non-netplan-vlan] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[non-netplan-bond] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[non-netplan-bridge] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[eni-ethernets] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[eni-vlan] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[eni-bond] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[eni-bridge] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[freebsd-ethernets] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[freebsd-vlan] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[freebsd-bond] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[freebsd-bridge] PASSED [ 43%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[netbsd-ethernets] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[netbsd-vlan] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[netbsd-bond] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[netbsd-bridge] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[netplan-ethernets] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[netplan-vlan] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[netplan-bond] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[netplan-bridge] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[network-manager-ethernets] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[network-manager-vlan] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[network-manager-bond] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[network-manager-bridge] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[networkd-ethernets] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[networkd-vlan] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[networkd-bond] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[networkd-bridge] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[openbsd-ethernets] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[openbsd-vlan] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[openbsd-bond] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[openbsd-bridge] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[sysconfig-ethernets] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[sysconfig-vlan] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[sysconfig-bond] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseConfigV2::test_v2_warns_deprecated_gateways[sysconfig-bridge] PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseNameservers::test_v1_nameservers_valid PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseNameservers::test_v1_nameservers_invalid PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateParseNameservers::test_v2_nameservers PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_all_bits_ipv4 PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_all_bits_ipv6 PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_ipv4 PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_ipv4_object PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_ipv6 PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_ipv6_object PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_raises_value_error PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_to_many_bits_ipv4 PASSED [ 44%]
tests/unittests/net/test_network_state.py::TestNetworkStateHelperFunctions::test_mask_to_net_prefix_to_many_bits_ipv6 PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_with_set_name PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_yes_with_dhcp_overrides PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_domains_vs_overrides[4] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_domains_vs_overrides[6] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-dns-false-UseDNS-False] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-dns-true-UseDNS-True] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-ntp-false-UseNTP-False] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-ntp-true-UseNTP-True] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-send-hostname-false-SendHostname-False] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-send-hostname-true-SendHostname-True] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-hostname-false-UseHostname-False] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-hostname-true-UseHostname-True] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-hostname-olivaw-Hostname-olivaw] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-route-metric-12345-RouteMetric-12345] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-domains-false-UseDomains-False] PASSED [ 44%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-domains-true-UseDomains-True] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-domains-route-UseDomains-route] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-mtu-false-UseMTU-False] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-mtu-true-UseMTU-True] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-routes-false-UseRoutes-False] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[4-use-routes-true-UseRoutes-True] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-dns-false-UseDNS-False] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-dns-true-UseDNS-True] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-ntp-false-UseNTP-False] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-ntp-true-UseNTP-True] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-hostname-false-UseHostname-False] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-hostname-true-UseHostname-True] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-domains-false-UseDomains-False] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-domains-true-UseDomains-True] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_dhcp_overrides[6-use-domains-route-UseDomains-route] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_v1_multi_subnets PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_v2_multi_subnets PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_v1_multi_subnets_not_onlink PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_v2_multi_subnets_not_onlink PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_v1_multi_subnets_onlink PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_v2_multi_subnets_onlink PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[True-4-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[True-4-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[True-6-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[True-6-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[True-10.0.0.10/24-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[True-10.0.0.10/24-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[True-2001:db8::1/64-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[True-2001:db8::1/64-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[False-4-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[False-4-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[False-6-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[False-6-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[False-10.0.0.10/24-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[False-10.0.0.10/24-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[False-2001:db8::1/64-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[False-2001:db8::1/64-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[None-4-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[None-4-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[None-6-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[None-6-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[None-10.0.0.10/24-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[None-10.0.0.10/24-v2] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[None-2001:db8::1/64-v1] PASSED [ 45%]
tests/unittests/net/test_networkd.py::TestNetworkdRenderState::test_networkd_render_accept_ra[None-2001:db8::1/64-v2] PASSED [ 45%]
tests/unittests/reporting/test_reporting.py::TestReportStartEvent::test_report_start_event_passes_something_with_as_string_to_handlers PASSED [ 45%]
tests/unittests/reporting/test_reporting.py::TestReportFinishEvent::test_invalid_result_raises_attribute_error PASSED [ 45%]
tests/unittests/reporting/test_reporting.py::TestReportFinishEvent::test_report_finish_event_passes_something_with_as_string_to_handlers PASSED [ 45%]
tests/unittests/reporting/test_reporting.py::TestReportFinishEvent::test_reporting_successful_finish_has_sensible_string_repr PASSED [ 45%]
tests/unittests/reporting/test_reporting.py::TestReportFinishEvent::test_reporting_unsuccessful_finish_has_sensible_string_repr PASSED [ 45%]
tests/unittests/reporting/test_reporting.py::TestReportingEvent::test_as_dict PASSED [ 45%]
tests/unittests/reporting/test_reporting.py::TestReportingEvent::test_as_string PASSED [ 45%]
tests/unittests/reporting/test_reporting.py::TestFinishReportingEvent::test_as_has_result PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestFinishReportingEvent::test_has_result_with_optional_post_files PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestBaseReportingHandler::test_base_reporting_handler_is_abstract PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestLogHandler::test_appropriate_logger_used PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestLogHandler::test_log_message_uses_event_as_string PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestLogHandler::test_single_log_message_at_info_published PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestDefaultRegisteredHandler::test_log_handler_registered_by_default PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingConfiguration::test_empty_configuration_doesnt_add_handlers PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingConfiguration::test_handler_config_not_modified PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingConfiguration::test_handlers_removed_if_falseish_specified PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingConfiguration::test_looks_up_handler_by_type_and_adds_it PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingConfiguration::test_uses_non_type_parts_of_config_dict_as_kwargs PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_child_fullname_respects_parent PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_child_result_bubbles_up PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_finish_exception_defaults_fail PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_message_updatable PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_message_used_in_finish PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_reporting_child_default_to_parent PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_reporting_disabled_does_not_report_events PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_reporting_event_has_sane_repr PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_result_on_exception_used PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_set_invalid_result_raises_value_error PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingEventStack::test_start_and_finish_success PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestStatusAccess::test_invalid_status_access_raises_value_error PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config0-None] PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config1-None] PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config2-None] PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config3-None] PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config4-None] PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config5-None] PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config6-None] PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config7-None] PASSED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config8-'a' is not of type 'object'] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config9-'b' is not of type 'object'] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config10-'b'\\ is\\ not\\ one\\ of\\ \\['log'\\]] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config11-'a' was unexpected] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config12-'a' was unexpected] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config13-'a' was unexpected] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config14-'a' was unexpected] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config15-'type' is a required] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config16-'type' is a required] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config17-'endpoint' is a required] FAILED [ 46%]
tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config18-'endpoint' is a required] FAILED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TestKvpEncoding::test_encode_decode PASSED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_event_very_long PASSED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_events_with_higher_incarnation_not_over_written PASSED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_file_operation_issue PASSED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_finish_event_result_is_logged PASSED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_get_boot_telemetry PASSED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_get_system_info PASSED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_not_truncate_kvp_file_modified_after_boot PASSED [ 46%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_report_compressed_event PASSED [ 47%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_report_diagnostic_event_with_logger_func PASSED [ 47%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_report_diagnostic_event_without_logger_func PASSED [ 47%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_truncate_stale_kvp_file PASSED [ 47%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_unique_kvp_key PASSED [ 47%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_write_key PASSED [ 47%]
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_write_key_truncates PASSED [ 47%]
tests/unittests/reporting/test_webhook_handler.py::TestWebHookHandler::test_webhook_handler PASSED [ 47%]
tests/unittests/reporting/test_webhook_handler.py::TestWebHookHandler::test_404 PASSED [ 47%]
tests/unittests/reporting/test_webhook_handler.py::TestWebHookHandler::test_background_processing PASSED [ 47%]
tests/unittests/reporting/test_webhook_handler.py::TestWebHookHandler::test_failures_cancel_flush[2-2-False] PASSED [ 47%]
tests/unittests/reporting/test_webhook_handler.py::TestWebHookHandler::test_failures_cancel_flush[3-3-True] PASSED [ 47%]
tests/unittests/reporting/test_webhook_handler.py::TestWebHookHandler::test_failures_cancel_flush[50-3-True] PASSED [ 47%]
tests/unittests/reporting/test_webhook_handler.py::TestWebHookHandler::test_multiple_failures_no_flush PASSED [ 47%]
tests/unittests/runs/test_merge_run.py::TestMergeRun::test_none_ds PASSED [ 47%]
tests/unittests/runs/test_simple_run.py::TestSimpleRun::test_none_ds_forces_run_via_unverified_modules PASSED [ 47%]
tests/unittests/runs/test_simple_run.py::TestSimpleRun::test_none_ds_populates_var_lib_cloud PASSED [ 47%]
tests/unittests/runs/test_simple_run.py::TestSimpleRun::test_none_ds_run_with_no_config_modules PASSED [ 47%]
tests/unittests/runs/test_simple_run.py::TestSimpleRun::test_none_ds_runs_modules_which_distros_all PASSED [ 47%]
tests/unittests/runs/test_simple_run.py::TestSimpleRun::test_none_ds_runs_modules_which_do_not_define_distros PASSED [ 47%]
tests/unittests/runs/test_simple_run.py::TestSimpleRun::test_none_ds_skips_modules_which_define_unmatched_distros PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data0-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data0-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data0-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data1-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data1-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data1-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data2-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data2-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data2-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data3-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data3-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data3-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data4-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data4-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data4-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data5-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data5-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data5-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data6-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data6-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data6-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data7-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data7-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data7-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data8-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data8-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data8-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data9-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data9-foo bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data9-foo'bar] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data10-foo] PASSED [ 47%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data10-foo bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data10-foo'bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data11-foo] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data11-foo bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data11-foo'bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data12-foo] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data12-foo bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data12-foo'bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data13-foo] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data13-foo bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data13-foo'bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data14-foo] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data14-foo bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data14-foo'bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data15-foo] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data15-foo bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_reportable_errors[supporting_data15-foo'bar] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_dhcp_lease PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_dhcp_interface_not_found PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_imds_url_error[exception0-connection error querying IMDS] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_imds_url_error[exception1-connection timeout querying IMDS] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_imds_url_error[exception2-read timeout querying IMDS] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_imds_url_error[exception3-http error 404 querying IMDS] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_imds_url_error[exception4-http error 500 querying IMDS] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_imds_url_error[exception5-unexpected error querying IMDS] PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_imds_metadata_parsing_exception PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_ovf_parsing_exception PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_ovf_invalid_metadata_exception PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_unhandled_exception PASSED [ 48%]
tests/unittests/sources/azure/test_errors.py::test_imds_invalid_metadata PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestByteSwapSystemUuid::test_values[527c2691-029f-fe4c-b1f4-a4da7ebac2cf-91267c52-9f02-4cfe-b1f4-a4da7ebac2cf] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestByteSwapSystemUuid::test_values[527C2691-029F-FE4C-B1F4-A4DA7EBAC2CD-91267c52-9f02-4cfe-b1f4-a4da7ebac2cd] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestByteSwapSystemUuid::test_errors[] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestByteSwapSystemUuid::test_errors[g] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestByteSwapSystemUuid::test_errors[91267c52-9f02-4cfe-b1f4-a4da7ebac2c] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestByteSwapSystemUuid::test_errors[91267c52-9f02-4cfe-b1f4-a4da7ebac2ccc] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestByteSwapSystemUuid::test_errors[-----] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestConvertSystemUuidToVmId::test_gen1 PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestConvertSystemUuidToVmId::test_gen2 PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestIsVmGen1::test_gen1 PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestIsVmGen1::test_gen2_freebsd PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestIsVmGen1::test_gen2_linux PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestQuerySystemUuid::test_values[527c2691-029f-fe4c-b1f4-a4da7ebac2cf] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestQuerySystemUuid::test_values[527C2691-029F-FE4C-B1F4-A4DA7EBAC2CF] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestQuerySystemUuid::test_errors PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestQueryVmId::test_gen1 PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestQueryVmId::test_gen2 PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestChassisAssetTag::test_true_azure_cloud PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestChassisAssetTag::test_false_on_nonazure_chassis[None] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestChassisAssetTag::test_false_on_nonazure_chassis[] PASSED [ 48%]
tests/unittests/sources/azure/test_identity.py::TestChassisAssetTag::test_false_on_nonazure_chassis[notazure] PASSED [ 48%]
tests/unittests/sources/azure/test_imds.py::TestHeaders::test_headers_cb PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_basic[0.0] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_basic[1.0] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_basic[60.0] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_basic_fallback[0.0] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_basic_fallback[1.0] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_basic_fallback[60.0] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_retry_errors[1-2.0-404] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_retry_errors[1-2.0-410] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_retry_errors[1-2.0-429] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_retry_errors[1-2.0-500] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_retry_errors[1-2.0-error4] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_retry_errors[1-2.0-error5] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_retry_errors_on_fallback[3.0] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_retry_errors_on_fallback[30.0] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-1-0.0-404] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-1-0.0-410] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-1-0.0-429] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-1-0.0-500] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-1-0.0-error4] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-1-0.0-error5] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-2-1.0-404] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-2-1.0-410] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-2-1.0-429] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-2-1.0-500] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-2-1.0-error4] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-2-1.0-error5] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-301-300.0-404] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-301-300.0-410] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-301-300.0-429] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-301-300.0-500] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-301-300.0-error4] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[None-301-300.0-error5] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-1-0.0-404] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-1-0.0-410] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-1-0.0-429] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-1-0.0-500] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-1-0.0-error4] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-1-0.0-error5] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-2-1.0-404] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-2-1.0-410] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-2-1.0-429] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-2-1.0-500] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-2-1.0-error4] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-2-1.0-error5] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-301-300.0-404] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-301-300.0-410] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-301-300.0-429] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-301-300.0-500] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-301-300.0-error4] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[1-301-300.0-error5] PASSED [ 49%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-1-0.0-404] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-1-0.0-410] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-1-0.0-429] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-1-0.0-500] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-1-0.0-error4] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-1-0.0-error5] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-2-1.0-404] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-2-1.0-410] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-2-1.0-429] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-2-1.0-500] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-2-1.0-error4] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-2-1.0-error5] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-301-300.0-404] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-301-300.0-410] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-301-300.0-429] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-301-300.0-500] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-301-300.0-error4] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_retry_until_failure[11-301-300.0-error5] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_not_retry_errors[0.0-403] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_not_retry_errors[0.0-501] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_not_retry_errors[1.0-403] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_not_retry_errors[1.0-501] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_not_retry_errors[60.0-403] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_will_not_retry_errors[60.0-501] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[0.0-] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[0.0-invalid] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[0.0-<tag></tag>] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[1.0-] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[1.0-invalid] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[1.0-<tag></tag>] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[60.0-] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[60.0-invalid] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_non_json_repsonse[60.0-<tag></tag>] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchMetadataWithApiFallback::test_logs_all_errors PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_basic PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[1-error0] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[1-error1] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[1-error2] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[5-error0] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[5-error1] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[5-error2] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[100-error0] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[100-error1] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[100-error2] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[1000-error0] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[1000-error1] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_retry_errors[1000-error2] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-1-error0] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-1-error1] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-1-error2] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-5-error0] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-5-error1] PASSED [ 50%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-5-error2] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-100-error0] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-100-error1] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-100-error2] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-1000-error0] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-1000-error1] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_retry_until_failure[terminal_error0-1000-error2] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_not_retry_errors[error0] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_will_not_retry_errors[error1] PASSED [ 51%]
tests/unittests/sources/azure/test_imds.py::TestFetchReprovisionData::test_logs_unique_errors PASSED [ 51%]
tests/unittests/sources/azure/test_kvp.py::TestReportFailureToHost::test_report_failure_to_host PASSED [ 51%]
tests/unittests/sources/azure/test_kvp.py::TestReportFailureToHost::test_report_skipped_without_telemetry PASSED [ 51%]
tests/unittests/sources/azure/test_kvp.py::TestReportSuccessToHost::test_report_success_to_host PASSED [ 51%]
tests/unittests/sources/azure/test_kvp.py::TestReportSuccessToHost::test_report_skipped_without_telemetry PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_get_dmi_config[-expected_result0] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_get_dmi_config[als=0;ais=0-expected_result1] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_get_dmi_config[v4=0;v6=0;dhcp=0-expected_result2] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_get_dmi_config[pmp=ab:cd:-expected_result3] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_get_dmi_config[pmp=ab:cd:,12:34:-expected_result4] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_get_dmi_config[unrecognized-expected_result5] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_get_dmi_config[,;-expected_result6] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_is_on_akamai[Akamai-True] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_is_on_akamai[Linode-True] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_is_on_akamai[GCE-False] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_is_on_akamai[EC2-False] PASSED [ 51%]
tests/unittests/sources/helpers/test_akamai.py::TestAkamaiHelper::test_is_on_akamai[-False] PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_metadata_children_with_invalid_character PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_metadata_fetch_bdm PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_metadata_fetch_key PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_metadata_fetch_no_keys PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_metadata_fetch_with_2_keys PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_metadata_no_security_credentials PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_userdata_fetch PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_userdata_fetch_fail_not_found PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_userdata_fetch_fail_server_dead PASSED [ 51%]
tests/unittests/sources/helpers/test_ec2.py::TestEc2Util::test_userdata_fetch_fail_server_not_found PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestCreateBoundNetlinkSocket::test_socket_error_on_create PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestReadNetlinkSocket::test_netlink_read_timeout PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestReadNetlinkSocket::test_read_invalid_socket PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestReadNetlinkSocket::test_read_netlink_socket PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestParseNetlinkMessage::test_read_invalid_data_len PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestParseNetlinkMessage::test_read_invalid_rta_ifname_none PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestParseNetlinkMessage::test_read_invalid_rta_operstate_none PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestParseNetlinkMessage::test_read_none_data PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestParseNetlinkMessage::test_read_rta_oper_state PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestParseNetlinkMessage::test_unpack_rta_attr_invalid_offset PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestParseNetlinkMessage::test_unpack_rta_attr_none_data PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestNicAttachDetach::test_nic_attach_ignore_existing PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestNicAttachDetach::test_nic_attach_read_first PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestNicAttachDetach::test_nic_attached_oper_down PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestNicAttachDetach::test_nic_attached_oper_up PASSED [ 51%]
tests/unittests/sources/helpers/test_netlink.py::TestNicAttachDetach::test_nic_detached PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_invalid_msgtype_getlink PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_invalid_msgtype_setlink PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_media_down_up_scenario PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_netlink_invalid_operstate PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_netlink_invalid_switch_scenario PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_netlink_valid_inbetween_transitions PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_read_multiple_netlink_msgs PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_read_partial_netlink_msgs PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_wait_for_media_switch_diff_interface PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_wait_invalid_ifname PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_wait_invalid_rta_attr PASSED [ 52%]
tests/unittests/sources/helpers/test_netlink.py::TestWaitForMediaDisconnectConnect::test_wait_invalid_socket PASSED [ 52%]
tests/unittests/sources/helpers/test_openstack.py::TestConvertNetJson::test_phy_types PASSED [ 52%]
tests/unittests/sources/helpers/test_openstack.py::TestConvertNetJson::test_subnet_dns PASSED [ 52%]
tests/unittests/sources/helpers/test_openstack.py::TestConvertNetJson::test_bond_mac PASSED [ 52%]
tests/unittests/sources/helpers/test_openstack.py::TestConvertNetJson::test_dns_servers PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[aosiejfoij ci.ds=OpenStack -openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.ds=OpenStack-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[aosiejfoij ci.ds=OpenStack blah-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[aosiejfoij ci.ds=OpenStack faljskebflk-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.ds=OpenStack;-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.ds=openstack;-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[notci.ds=somecloud ci.ds=openstack-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[aosiejfoij ci.datasource=OpenStack -openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.datasource=OpenStack-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[aosiejfoij ci.datasource=OpenStack blah-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[aosiejfoij ci.datasource=OpenStack faljskebflk-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.datasource=OpenStack;-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.datasource=openstack;-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[notci.datasource=0 ci.datasource=nocloud-nocloud] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.datasource=OpenStack\n-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.datasource=OpenStack\t-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.datasource=OpenStack\r-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.datasource=OpenStack\x0b-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.ds=OpenStack\n-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.ds=OpenStack\t-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.ds=OpenStack\r-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.ds=OpenStack\x0b-openstack] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.ds=nocloud-net\x0b-nocloud-net] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ci.datasource=nocloud\x0b-nocloud] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[ds=nocloud-net-nocloud-net] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[foo ds=nocloud-net bar-nocloud-net] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[bonding.max_bonds=0-] PASSED [ 52%]
tests/unittests/sources/test___init__.py::test_ds_detect_kernel_command_line[foo bonding.max_bonds=0 ds=nocloud-net bar-nocloud-net] PASSED [ 52%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[token-False-ds_cfg0-http://169.254.169.254/v1/token] PASSED [ 52%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[metadata-False-ds_cfg1-http://169.254.169.254/v1/instance] PASSED [ 52%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[userdata-False-ds_cfg2-http://169.254.169.254/v1/user-data] PASSED [ 52%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[metadata-True-ds_cfg3-http://[fd00:a9fe:a9fe::1]/v1/instance] PASSED [ 52%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[token-True-ds_cfg4-http://[fd00:a9fe:a9fe::1]/v1/token] PASSED [ 52%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[userdata-True-ds_cfg5-http://[fd00:a9fe:a9fe::1]/v1/user-data] PASSED [ 52%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[token-False-ds_cfg6-http://[fd00:a9fe:a9fe::1]/v1/token] PASSED [ 52%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[token-False-ds_cfg7-http://169.254.169.254/changed] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_build_url[token-False-ds_cfg8-http://12.34.56.78/v1/token] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[True-ds_cfg0-MetadataAvailabilityResult.AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[False-ds_cfg1-MetadataAvailabilityResult.AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[True-ds_cfg2-MetadataAvailabilityResult.AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[True-ds_cfg3-MetadataAvailabilityResult.DEFER] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[False-ds_cfg4-MetadataAvailabilityResult.AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[False-ds_cfg5-MetadataAvailabilityResult.AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[True-ds_cfg6-MetadataAvailabilityResult.DEFER] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[False-ds_cfg7-MetadataAvailabilityResult.AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[True-ds_cfg8-MetadataAvailabilityResult.AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[False-ds_cfg9-MetadataAvailabilityResult.DEFER] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[True-ds_cfg10-MetadataAvailabilityResult.NOT_AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[False-ds_cfg11-MetadataAvailabilityResult.NOT_AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[True-ds_cfg12-MetadataAvailabilityResult.NOT_AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_should_fetch_data[False-ds_cfg13-MetadataAvailabilityResult.NOT_AVAILABLE] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[True-ds_cfg0-expected_manager_config0-eth0] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[True-ds_cfg1-expected_manager_config1-eth0] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[True-ds_cfg2-expected_manager_config2-eth0] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[True-ds_cfg3-expected_manager_config3-eth0] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[True-ds_cfg4-expected_manager_config4-eth1] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[False-ds_cfg5-expected_manager_config5-eth0] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[False-ds_cfg6-expected_manager_config6-eth0] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[False-ds_cfg7-expected_manager_config7-eth0] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[False-ds_cfg8-expected_manager_config8-eth0] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_get_network_context_managers[False-ds_cfg9-expected_manager_config9-eth1] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_fetch_metadata[False] PASSED [ 53%]
tests/unittests/sources/test_akamai.py::TestDataSourceAkamai::test_fetch_metadata[True] PASSED [ 53%]
tests/unittests/sources/test_aliyun.py::TestAliYunDatasource::test_aliyun_local_with_mock_server PASSED [ 53%]
tests/unittests/sources/test_aliyun.py::TestAliYunDatasource::test_parse_public_keys PASSED [ 53%]
tests/unittests/sources/test_aliyun.py::TestAliYunDatasource::test_returns_false_when_not_on_aliyun PASSED [ 53%]
tests/unittests/sources/test_aliyun.py::TestAliYunDatasource::test_route_metric_calculated_without_device_number PASSED [ 53%]
tests/unittests/sources/test_aliyun.py::TestAliYunDatasource::test_with_mock_server PASSED [ 53%]
tests/unittests/sources/test_aliyun.py::TestIsAliYun::test_false_on_empty_string PASSED [ 53%]
tests/unittests/sources/test_aliyun.py::TestIsAliYun::test_false_on_unknown_string PASSED [ 53%]
tests/unittests/sources/test_aliyun.py::TestIsAliYun::test_true_on_aliyun_product PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetCloudType::test_cloud_info_file PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetCloudType::test_cloud_info_file_ioerror PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetCloudType::test_rhev PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetCloudType::test_unknown PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetCloudType::test_vsphere PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetDataCloudInfoFile::test_fail_rhev PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetDataCloudInfoFile::test_fail_vsphere PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetDataCloudInfoFile::test_rhev PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetDataCloudInfoFile::test_unrecognized PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetDataCloudInfoFile::test_vsphere PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetDataNoCloudInfoFile::test_failure_no_cloud_file PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetDataNoCloudInfoFile::test_rhev_no_cloud_file PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestGetDataNoCloudInfoFile::test_vsphere_no_cloud_file PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestUserDataRhevm::test_modprobe_fails PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestUserDataRhevm::test_mount_cb_fails PASSED [ 53%]
tests/unittests/sources/test_altcloud.py::TestUserDataRhevm::test_no_modprobe_cmd PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestUserDataRhevm::test_no_udevadm_cmd PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestUserDataRhevm::test_udevadm_fails PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestUserDataVsphere::test_user_data_vsphere_mcb_fail PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestUserDataVsphere::test_user_data_vsphere_no_cdrom PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestUserDataVsphere::test_user_data_vsphere_success PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestReadUserDataCallback::test_callback_both PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestReadUserDataCallback::test_callback_dc PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestReadUserDataCallback::test_callback_non_dc PASSED [ 54%]
tests/unittests/sources/test_altcloud.py::TestReadUserDataCallback::test_callback_none PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[simple interface-metadata0-True-expected0] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[hv_netvsc driver-metadata1-True-expected1] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[unknown-metadata2-True-expected2] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[unknown with unknown matching VF-metadata3-True-expected3] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[multiple interfaces with increasing route metric-metadata4-True-expected4] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[secondary IPv4s are static-metadata5-True-expected5] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[secondary IPv4s are not configured-metadata6-False-expected6] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[ipv6 secondaries-metadata7-True-expected7] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestGenerateNetworkConfig::test_parsing_scenarios[ipv6 secondaries not configured-metadata8-False-expected8] PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestNetworkConfig::test_single_ipv4_nic_configuration PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestNetworkConfig::test_uses_fallback_cfg_when_apply_network_config_is_false PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestNetworkConfig::test_uses_fallback_cfg_when_imds_metadata_unset PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestNetworkConfig::test_uses_fallback_cfg_when_no_network_metadata PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestNetworkConfig::test_uses_fallback_cfg_when_no_interface_metadata PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_availability_zone_set_from_imds PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_basic_dev_file PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_basic_seed_dir PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_blacklist_through_distro PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_call_imds_once_no_reprovision PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_call_imds_twice_with_reprovision PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_exc_should_log_could_not_crawl_msg PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_exception_returns_no_datasource PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_exception_should_report_failure PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_raises_invalid_metadata_on_error PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_crawl_metadata_returns_structured_data_and_caches_nothing PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_data_dir_without_imds_data PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_default_ephemeral_configs_ephemeral_does_not_exist PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_default_ephemeral_configs_ephemeral_exists PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_disable_password_from_imds PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_dsaz_report_failure PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_dsaz_report_failure_no_net_uses_new_ephemeral_dhcp_lease PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_dsaz_report_failure_returns_false_and_does_not_propagate_exc PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_dsaz_report_failure_returns_true_when_report_succeeds PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_dsaz_report_failure_uses_cached_ephemeral_dhcp_ctx_lease PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_dsaz_report_ready_failure_reports_telemetry PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_dsaz_report_ready_returns_true_when_report_succeeds PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_exception_fetching_fabric_data_doesnt_propagate PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_fabric_data_included_in_metadata PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_get_data_non_ubuntu_will_not_remove_network_scripts PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_get_data_on_ubuntu_will_not_remove_network_scripts_disabled PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_get_data_on_ubuntu_will_remove_network_scripts PASSED [ 54%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_get_public_ssh_keys_with_imds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_get_public_ssh_keys_with_no_openssh_format PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_get_public_ssh_keys_without_imds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_get_resource_disk PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_hostname_from_imds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_instance_id_case_insensitive PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_instance_id_endianness PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_instance_id_from_dmidecode_used PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_instance_id_from_dmidecode_used_for_builtin PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_key_endswith_crlf_valid PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_key_with_crlf_invalid PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_key_without_crlf_valid PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_list_possible_azure_ds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_network_config_set_from_imds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_network_config_set_from_imds_for_secondary_nic_no_ip PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_network_config_set_from_imds_route_metric_for_secondary_nic PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_no_password_with_disable_ssh_pw_auth_false PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_no_password_with_disable_ssh_pw_auth_true PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_no_password_with_disable_ssh_pw_auth_unspecified PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_not_ds_detect_seed_should_return_no_datasource PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_ovf_can_include_unicode PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_ovf_env_arrives_in_waagent_dir PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_given PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_redacted_in_ovf PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_false PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_true PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_password_with_disable_ssh_pw_auth_unspecified PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_platform_viable_but_no_devs_should_return_no_datasource PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_region_set_from_imds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_sys_cfg_set_never_destroy_ntfs PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_user_not_locked_if_password_redacted PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_userdata_arrives PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_userdata_found PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_userdata_from_imds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_userdata_from_imds_with_customdata_from_OVF PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_username_from_imds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_username_used PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestAzureDataSource::test_waagent_d_has_0700_perms PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestLoadAzureDsDir::test_missing_ovf_env_xml_raises_non_azure_datasource_error PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestLoadAzureDsDir::test_wb_invalid_ovf_env_xml_calls_read_azure_ovf PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestReadAzureOvf::test_invalid_xml_raises_non_azure_ds PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestReadAzureOvf::test_load_with_pubkeys PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_never_destroy_ntfs_config_false PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_no_partitions_is_false PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_ntfs_mount_errors_true PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_ntfs_mount_logs PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_one_partition_not_ntfs_false PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_one_partition_ntfs_empty_is_true PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_one_partition_ntfs_empty_with_dataloss_file_is_true PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_one_partition_ntfs_empty_with_svi_file_is_true PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_one_partition_ntfs_populated_false PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_one_partition_through_realpath_is_true PASSED [ 55%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_three_partition_through_realpath_is_false PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_three_partitions_is_false PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_two_partitions_not_ntfs_false PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_two_partitions_ntfs_empty_is_true PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestCanDevBeReformatted::test_two_partitions_ntfs_populated_false PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestClearCachedData::test_clear_cached_attrs_clears_imds PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestAzureNetExists::test_azure_net_must_exist_for_legacy_objpkl PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningReadAzureOvfFlag::test_read_azure_ovf_with_false_flag PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningReadAzureOvfFlag::test_read_azure_ovf_with_proxy_guest_agent_false PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningReadAzureOvfFlag::test_read_azure_ovf_with_proxy_guest_agent_true PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningReadAzureOvfFlag::test_read_azure_ovf_with_running_type PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningReadAzureOvfFlag::test_read_azure_ovf_with_savable_type PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningReadAzureOvfFlag::test_read_azure_ovf_with_true_flag PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningReadAzureOvfFlag::test_read_azure_ovf_without_flag PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg0-imds_md0-PPSType.NONE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg1-imds_md1-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg2-imds_md2-PPSType.SAVABLE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg3-imds_md3-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg4-imds_md4-PPSType.NONE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg5-imds_md5-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg6-imds_md6-PPSType.SAVABLE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg7-imds_md7-PPSType.NONE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg8-imds_md8-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg9-imds_md9-PPSType.SAVABLE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_without_reprovision_marker[ovf_cfg10-imds_md10-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg0-imds_md0-PPSType.NONE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg1-imds_md1-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg2-imds_md2-PPSType.SAVABLE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg3-imds_md3-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg4-imds_md4-PPSType.NONE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg5-imds_md5-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg6-imds_md6-PPSType.SAVABLE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg7-imds_md7-PPSType.NONE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg8-imds_md8-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg9-imds_md9-PPSType.SAVABLE] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestDeterminePPSTypeScenarios::test_determine_pps_with_reprovision_marker[ovf_cfg10-imds_md10-PPSType.RUNNING] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_detect_nic_attach_reports_ready_and_waits_for_detach PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_wait_for_all_nics_ready_raises_if_socket_fails PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_wait_for_link_up_checks_link_after_sleep PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_wait_for_link_up_returns_if_already_up PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningHotAttachNics::test_wait_for_nic_attach_multinic_attach PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningPollIMDS::test_poll_imds_does_dhcp_on_retries_if_ctx_present PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningPollIMDS::test_poll_imds_re_dhcp_on_timeout PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestPreprovisioningPollIMDS::test_poll_imds_skips_dhcp_if_ctx_present PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestRemoveUbuntuNetworkConfigScripts::test_remove_network_scripts_default_removes_stock_scripts PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestRemoveUbuntuNetworkConfigScripts::test_remove_network_scripts_only_attempts_removal_if_path_exists PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestRemoveUbuntuNetworkConfigScripts::test_remove_network_scripts_removes_both_files_and_directories PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestIsPlatformViable::test_true_on_azure_chassis[7783-7084-3265-9085-8269-3286-77] PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestIsPlatformViable::test_true_on_azure_ovf_env_in_seed_dir PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestIsPlatformViable::test_false_on_no_matching_azure_criteria PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestRandomSeed::test_non_ascii_seed_is_serializable PASSED [ 56%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_basic_setup[None] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_basic_setup[fakeEth0] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_basic_setup_without_wireserver_opt[None] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_basic_setup_without_wireserver_opt[fakeEth0] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_no_retry_missing_dhclient_error PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_retry_interface_error PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_retry_process_error PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_retry_sleeps[NoDHCPLeaseInterfaceError-failure to find DHCP interface] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_retry_sleeps[NoDHCPLeaseError-failure to obtain DHCP lease] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_retry_times_out[NoDHCPLeaseInterfaceError-failure to find DHCP interface] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestEphemeralNetworking::test_retry_times_out[NoDHCPLeaseError-failure to obtain DHCP lease] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckIfPrimary::test_primary[static_routes0] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckIfPrimary::test_primary[static_routes1] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckIfPrimary::test_primary_via_wireserver_specified_in_option_245 PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckIfPrimary::test_secondary[static_routes0] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckIfPrimary::test_secondary[static_routes1] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckIfPrimary::test_secondary[static_routes2] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestInstanceId::test_metadata PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestInstanceId::test_fallback PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_no_pps PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_no_pps_gpa PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_no_pps_gpa_fail PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_stale_pps[Savable] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_stale_pps[Running] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_running_pps PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_running_pps_gpa PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_savable_pps PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_savable_pps_gpa PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_savable_pps_early_unplug[fabric_side_effect0] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_savable_pps_early_unplug[fabric_side_effect1] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_savable_pps_early_unplug[fabric_side_effect2] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_recovery_pps[Savable] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_recovery_pps[Running] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_recovery_pps[None] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_source_pps_fails_initial_dhcp[Savable] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_source_pps_fails_initial_dhcp[Running] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_source_pps_fails_initial_dhcp[Unknown] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_os_disk_pps[subp_side_effect0] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_os_disk_pps[subp_side_effect1] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestProvisioning::test_imds_failure_results_in_provisioning_failure PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckAzureProxyAgent::test_check_azure_proxy_agent_status PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckAzureProxyAgent::test_check_azure_proxy_agent_status_notfound PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestCheckAzureProxyAgent::test_check_azure_proxy_agent_status_failure PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestGetMetadataFromImds::test_errors[exception0-ReportableErrorImdsUrlError-False-False] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestGetMetadataFromImds::test_errors[exception0-ReportableErrorImdsUrlError-False-True] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestGetMetadataFromImds::test_errors[exception0-ReportableErrorImdsUrlError-True-False] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestGetMetadataFromImds::test_errors[exception0-ReportableErrorImdsUrlError-True-True] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestGetMetadataFromImds::test_errors[exception1-ReportableErrorImdsMetadataParsingException-False-False] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestGetMetadataFromImds::test_errors[exception1-ReportableErrorImdsMetadataParsingException-False-True] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestGetMetadataFromImds::test_errors[exception1-ReportableErrorImdsMetadataParsingException-True-False] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestGetMetadataFromImds::test_errors[exception1-ReportableErrorImdsMetadataParsingException-True-True] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestReportFailure::test_report_host_only_kvp_enabled[False] PASSED [ 57%]
tests/unittests/sources/test_azure.py::TestReportFailure::test_report_host_only_kvp_enabled[True] PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_normalize_scenarios[001122aabbcc-00:11:22:aa:bb:cc] PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_normalize_scenarios[001122AABBCC-00:11:22:aa:bb:cc] PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_normalize_scenarios[00:11:22:aa:bb:cc-00:11:22:aa:bb:cc] PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_normalize_scenarios[00:11:22:AA:BB:CC-00:11:22:aa:bb:cc] PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_normalize_scenarios[pass-through-the-unexpected-pass-through-the-unexpected] PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_normalize_scenarios[-] PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_empty PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_validates_one_nic PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_validates_multiple_nic PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_missing_all PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_missing_primary PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestValidateIMDSMetadata::test_missing_secondary PASSED [ 58%]
tests/unittests/sources/test_azure.py::TestDependencyFallback::test_dependency_fallback PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGetIpFromLeaseValue::test_get_ip_from_lease_value[62:4c:36:20-98.76.54.32] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGetIpFromLeaseValue::test_get_ip_from_lease_value[4:3:2:1-4.3.2.1] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGetIpFromLeaseValue::test_get_ip_from_lease_value[bL6 -98.76.54.32] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGetIpFromLeaseValue::test_get_ip_from_lease_value[dH\\"l-100.72.34.108] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGetIpFromLeaseValue::test_get_ip_from_lease_value[dH:l-100.72.58.108] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_certificates_xml_parsed_and_fetched_correctly PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_container_id_parsed_correctly PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_incarnation_parsed_correctly PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_instance_id_parsed_correctly PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_invalid_goal_state_xml_raises_parse_error PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_missing_certificates_skips_http_get PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_missing_container_id_in_goal_state_xml_raises_exc PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_missing_incarnation_in_goal_state_xml_raises_exc PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateParsing::test_missing_instance_id_in_goal_state_xml_raises_exc PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestAzureEndpointHttpClient::test_non_secure_get PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestAzureEndpointHttpClient::test_non_secure_get_raises_exception PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestAzureEndpointHttpClient::test_post PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestAzureEndpointHttpClient::test_post_raises_exception PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestAzureEndpointHttpClient::test_post_with_extra_headers PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestAzureEndpointHttpClient::test_post_with_sleep_with_extra_headers_raises_exception PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestAzureEndpointHttpClient::test_secure_get PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestAzureEndpointHttpClient::test_secure_get_raises_exception PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_timeouts[times0-1-5-0] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_timeouts[times1-1-5-1] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_timeouts[times2-2-5-1] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_timeouts[times3-4-5-1] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_timeouts[times4-2-5-10] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_network_unreachable PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_success[times0-1-5-0] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_success[times1-1-5-1] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_success[times2-2-5-1] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_success[times3-4-5-1] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestHttpWithRetries::test_success[times4-2-5-10] PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestOpenSSLManager::test_clean_up PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestOpenSSLManager::test_generate_certificate_uses_tmpdir PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestOpenSSLManager::test_openssl_manager_creates_a_tmpdir PASSED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestOpenSSLManagerActions::test_parse_certificates SKIPPED [ 58%]
tests/unittests/sources/test_azure_helper.py::TestOpenSSLManagerActions::test_pubkey_extract SKIPPED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_build_report_conforms_to_length_limits PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_build_report_escapes_chars PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_build_report_for_failure_signal_health_document PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_build_report_for_ready_signal_health_document PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_send_failure_signal_calls_build_report PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_send_failure_signal_sends_post_request PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_send_ready_signal_calls_build_report PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_send_ready_signal_sends_post_request PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGoalStateHealthReporter::test_trim_description_then_escape_conforms_to_len_limits_worst_case PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_absent_certificates_produces_empty_public_keys PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_certificates_used_to_determine_public_keys PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_clean_up_after_report_failure PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_clean_up_after_report_ready PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_clean_up_can_be_called_at_any_time PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_correct_url_used_for_goalstate_during_report_failure PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_correct_url_used_for_goalstate_during_report_ready PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_correct_url_used_for_report_failure PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_correct_url_used_for_report_ready PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_eject_iso_is_called PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_failure_to_send_report_failure_health_doc_bubbles_up PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_failure_to_send_report_ready_health_doc_bubbles_up PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_fetch_goalstate_during_report_failure_raises_exc_on_get_exc PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_fetch_goalstate_during_report_failure_raises_exc_on_parse_exc PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_fetch_goalstate_during_report_ready_raises_exc_on_get_exc PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_fetch_goalstate_during_report_ready_raises_exc_on_parse_exc PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_goal_state_values_used_for_report_failure PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_goal_state_values_used_for_report_ready PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_http_client_does_not_use_certificate_for_report_failure PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_http_client_does_not_use_certificate_for_report_ready PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_openssl_manager_not_instantiated_by_shim_report_status PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_register_with_azure_and_fetch_data_calls_send_ready_signal PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_register_with_azure_and_report_failure_calls_send_failure_signal PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_register_with_azure_and_report_failure_does_not_need_certificates PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_xml_elems_in_report_failure_post PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestWALinuxAgentShim::test_xml_elems_in_report_ready_post PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportReadyToFabric::test_calls_shim_register_with_azure_and_fetch_data PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportReadyToFabric::test_data_from_shim_returned PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportReadyToFabric::test_failure_in_registration_propagates_exc_and_calls_clean_up PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportReadyToFabric::test_instantiates_shim_with_kwargs PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportReadyToFabric::test_success_calls_clean_up PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportFailureToFabric::test_failure_in_shim_report_failure_propagates_exc_and_calls_clean_up PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportFailureToFabric::test_instantiates_shim_with_kwargs PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportFailureToFabric::test_report_failure_to_fabric_calls_shim_report_failure PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestGetMetadataGoalStateXMLAndReportFailureToFabric::test_success_calls_clean_up PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected0] PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected1] PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>other-user</ns1:UserName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected2] PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n<ns1:UserPassword>test-password</ns1:UserPassword>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected3] PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>other-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected4] PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n<ns1:SSH>\n<ns1:PublicKeys>\n</ns1:PublicKeys>\n</ns1:SSH>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected5] PASSED [ 59%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n<ns1:SSH>\n<ns1:PublicKeys>\n<ns1:PublicKey>\n<ns1:Fingerprint>fp1</ns1:Fingerprint>\n<ns1:Path>path1</ns1:Path>\n<ns1:Value></ns1:Value>\n</ns1:PublicKey>\n</ns1:PublicKeys>\n</ns1:SSH>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected6] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n<ns1:SSH>\n<ns1:PublicKeys>\n<ns1:PublicKey>\n<ns1:Fingerprint>fp1</ns1:Fingerprint>\n<ns1:Path>path1</ns1:Path>\n<ns1:Value></ns1:Value>\n</ns1:PublicKey>\n<ns1:PublicKey>\n<ns1:Fingerprint>fp2</ns1:Fingerprint>\n<ns1:Path>path2</ns1:Path>\n<ns1:Value>somevalue</ns1:Value>\n</ns1:PublicKey>\n</ns1:PublicKeys>\n</ns1:SSH>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected7] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n<ns1:CustomData>Zm9v</ns1:CustomData>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected8] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n<ns1:DisableSshPasswordAuthentication>true</ns1:DisableSshPasswordAuthentication>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected9] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVm>false</ns1:PreprovisionedVm>\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected10] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVm>true</ns1:PreprovisionedVm>\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected11] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_valid_ovf_scenarios[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n<ns1:UserName>test-user</ns1:UserName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType>testpps</ns1:PreprovisionedVMType>\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-expected12] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_missing_required_fields[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:HostName>test-host</ns1:HostName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-unexpected metadata parsing ovf-env.xml: missing configuration for 'UserName'] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_missing_required_fields[<?xml version="1.0" encoding="utf-8"?>\n<ns0:Environment xmlns="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns0="http://schemas.dmtf.org/ovf/environment/1"\nxmlns:ns1="http://schemas.microsoft.com/windowsazure"\nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">\n<ns1:ProvisioningSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:LinuxProvisioningConfigurationSet>\n<ns1:ConfigurationSetType>LinuxProvisioningConfiguration</ns1:ConfigurationSetType>\n<ns1:UserName>test-user</ns1:UserName>\n</ns1:LinuxProvisioningConfigurationSet>\n</ns1:ProvisioningSection>\n<ns1:PlatformSettingsSection>\n<ns1:Version>1.0</ns1:Version>\n<ns1:PlatformSettings>\n<ns1:KmsServerHostname>kms.core.windows.net</ns1:KmsServerHostname>\n<ns1:ProvisionGuestAgent>false</ns1:ProvisionGuestAgent>\n<ns1:GuestAgentPackageName xsi:nil="true" />\n<ns1:PreprovisionedVMType xsi:nil="true" />\n</ns1:PlatformSettings>\n</ns1:PlatformSettingsSection>\n</ns0:Environment>-unexpected metadata parsing ovf-env.xml: missing configuration for 'HostName'] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_multiple_sections_fails PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_multiple_properties_fails PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_non_azure_ovf PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_invalid_xml[-error parsing ovf-env.xml: no element found: line 1, column 0] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_invalid_xml[<!!!!>-error parsing ovf-env.xml: not well-formed (invalid token): line 1, column 2] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestOvfEnvXml::test_invalid_xml[badxml-error parsing ovf-env.xml: syntax error: line 1, column 0] PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestReportDmesgToKvp::test_report_dmesg_to_kvp PASSED [ 60%]
tests/unittests/sources/test_azure_helper.py::TestReportDmesgToKvp::test_report_dmesg_to_kvp_dmesg_error PASSED [ 60%]
tests/unittests/sources/test_bigstep.py::TestBigstep::test_get_data_honor_cloud_dir[False] PASSED [ 60%]
tests/unittests/sources/test_bigstep.py::TestBigstep::test_get_data_honor_cloud_dir[True] PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_encoded_user_data PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_get_hostname PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_get_instance_id PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_get_public_ssh_keys PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_lack_of_cloudinit_key_in_vendor_data PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_lack_of_vendor_data PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_metadata PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_platform PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_user_data PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DataSourceCloudSigmaTest::test_vendor_data PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DsLoads::test_get_datasource_list_returns_in_local PASSED [ 60%]
tests/unittests/sources/test_cloudsigma.py::DsLoads::test_list_sources_finds_ds PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackHostname::test_get_domainname_isc_dhclient PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackHostname::test_get_domainname_networkd PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackHostname::test_get_hostname_fqdn PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackHostname::test_get_hostname_fqdn_fallback PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackHostname::test_get_hostname_non_fqdn PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackPasswordFetching::test_bad_request_doesnt_stop_ds_from_working PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackPasswordFetching::test_empty_password_doesnt_create_config PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackPasswordFetching::test_password_not_saved_if_already_saved PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackPasswordFetching::test_password_not_saved_if_bad_request PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackPasswordFetching::test_password_not_saved_if_empty PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackPasswordFetching::test_password_sets_password PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackPasswordFetching::test_saved_password_doesnt_create_config PASSED [ 60%]
tests/unittests/sources/test_cloudstack.py::TestCloudStackPasswordFetching::test_valid_response_means_password_marked_as_saved PASSED [ 60%]
tests/unittests/sources/test_common.py::ExpectedDataSources::test_expected_default_local_sources_found PASSED [ 60%]
tests/unittests/sources/test_common.py::ExpectedDataSources::test_expected_default_network_sources_found PASSED [ 60%]
tests/unittests/sources/test_common.py::ExpectedDataSources::test_expected_nondefault_network_sources_found PASSED [ 60%]
tests/unittests/sources/test_common.py::TestDataSourceInvariants::test_data_sources_have_valid_network_config_sources PASSED [ 60%]
tests/unittests/sources/test_common.py::TestDataSourceInvariants::test_expected_dsname_defined PASSED [ 60%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_dev_ec2_map PASSED [ 60%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_dev_ec2_remap PASSED [ 60%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_dev_os_map PASSED [ 60%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_dev_os_remap PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_dir_valid PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_ec2_metadata PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_find_candidates PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_pubkeys_v2 PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_seed_dir_bad_json_metadata PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_seed_dir_missing PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_seed_dir_no_configdrive PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_seed_dir_valid_extra PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConfigDriveDataSource::test_subplatform_config_drive_when_starts_with_dev PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestNetJson::test_network_config_conversion_dhcp6 PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestNetJson::test_network_config_conversions PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestNetJson::test_network_config_is_converted PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestNetJson::test_network_data_is_found PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_bond_conversion PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_conversion_fills_names PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_conversion_with_route PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_conversion_with_tap PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_convert_raises_value_error_on_missing_name PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_convert_reads_system_prefers_name PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_mac_addrs_can_be_upper_case PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_unknown_device_types_accepted PASSED [ 61%]
tests/unittests/sources/test_configdrive.py::TestConvertNetworkData::test_vlan PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestDataSourceDigitalOcean::test_deprecation_log_on_init PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestDataSourceDigitalOcean::test_deprecation_log_on_unpick PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestDataSourceDigitalOcean::test_metadata PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestDataSourceDigitalOcean::test_multiple_ssh_keys PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestDataSourceDigitalOcean::test_returns_false_not_on_docean PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestNetworkConvert::test_convert_without_private PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestNetworkConvert::test_correct_gateways_defined PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestNetworkConvert::test_networking_defined PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestNetworkConvert::test_private_interface_defined PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestNetworkConvert::test_public_interface_anchor_ipv4 PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestNetworkConvert::test_public_interface_defined PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestNetworkConvert::test_public_interface_ipv4 PASSED [ 61%]
tests/unittests/sources/test_digitalocean.py::TestNetworkConvert::test_public_interface_ipv6 PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_network_config_property_returns_version_2_network_data PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_network_config_property_set_dhcp4 PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_network_config_property_secondary_private_ips PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_network_config_property_is_cached_in_datasource PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_network_config_cached_property_refreshed_on_upgrade PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_ec2_get_instance_id_refreshes_identity_on_upgrade PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_classic_instance_true PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_classic_instance_false PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_aws_inaccessible_imds_service_fails_with_retries PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_aws_token_403_fails_without_retries PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_aws_token_redacted PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_valid_platform_with_strict_true PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_valid_platform_with_strict_false PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_unknown_platform_with_strict_true PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_unknown_platform_with_strict_false PASSED [ 61%]
tests/unittests/sources/test_ec2.py::TestEc2::test_ec2_local_returns_false_on_non_aws PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestEc2::test_ec2_local_returns_false_on_bsd PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestEc2::test_ec2_local_performs_dhcp_on_non_bsd PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestEc2::test_get_instance_tags PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestGetSecondaryAddresses::test_md_with_no_secondary_addresses PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestGetSecondaryAddresses::test_md_with_secondary_v4_and_v6_addresses PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestGetSecondaryAddresses::test_invalid_ipv4_ipv6_cidr_metadata_logged_with_defaults PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[all_empty] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[all_empty_sort_by_nic_name] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[empty_macs_metadata] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[empty_macs] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[no-device-number-info] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[no-device-number-info-subset] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[device-numbers] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[network-cardes] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[network-card-partially-missing] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[macs-not-in-md] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[empty_macs_metadata_sort_by_nic_name] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[empty_macs_sort_by_nic_name] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[no-device-number-info-sort-by-nic-name] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[no-device-number-info-subset-sort-by-nic-name0] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[device-numbers-sort-by-nic-name] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[network-cardes-sort-by-nic-name] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[network-card-partially-missing-sort-by-nic-name] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[macs-not-in-md-sort-by-nic-name] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestBuildNicOrder::test_build_nic_order[no-device-number-info-subset-sort-by-nic-name1] PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_skips_absent_macs PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_handles_only_dhcp6 PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_local_only_dhcp4 PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_handles_absent_dhcp4 PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_handles_local_v4_and_v6 PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_multi_nics_ipv4 PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_multi_nics_ipv4_ipv6_multi_ip PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_multi_nics_ipv6_only PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_network_config_handles_dhcp4_and_dhcp6 PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestConvertEc2MetadataNetworkConfig::test_convert_ec2_metadata_gets_macs_from_get_interfaces_by_mac PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_identify_aws PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_identify_aws_endian PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_identify_aliyun PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_identify_zstack PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_identify_zstack_full_domain_only PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_identify_e24cloud PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_identify_e24cloud_negative PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_identify_outscale PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_false_on_wrong_sys_vendor PASSED [ 62%]
tests/unittests/sources/test_ec2.py::TestIdentifyPlatform::test_false_on_wrong_product_name PASSED [ 62%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_activate_removes_set_passwords_semaphore PASSED [ 62%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_get_data PASSED [ 62%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_get_data_no_password PASSED [ 62%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_get_data_saved_password PASSED [ 62%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_non_viable_platform PASSED [ 62%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_password PASSED [ 62%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_password_empty PASSED [ 63%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_password_saved PASSED [ 63%]
tests/unittests/sources/test_exoscale.py::TestDatasourceExoscale::test_read_metadata_when_password_server_unreachable PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_block_project_ssh_keys_override PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_cloudinit_ssh_keys PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_connection PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_datasource_doesnt_use_ephemeral_dhcp PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_default_user_ssh_keys PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_get_data_returns_false_if_not_on_gce PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_has_expired PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_instance_ssh_keys_override PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_local_datasource_tries_on_multi_nic PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_local_datasource_uses_ephemeral_dhcp PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_metadata PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_metadata_encoding PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_metadata_partial PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_missing_required_keys_return_false PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_no_ssh_keys_metadata PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_only_last_part_of_zone_used_for_availability_zone PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_parse_public_keys_non_ascii PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_publish_host_keys PASSED [ 63%]
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_userdata_no_encoding PASSED [ 63%]
tests/unittests/sources/test_hetzner.py::TestDataSourceHetzner::test_not_on_hetzner_returns_false PASSED [ 63%]
tests/unittests/sources/test_hetzner.py::TestDataSourceHetzner::test_read_data PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestGetIBMPlatform::test_id_os_code PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestGetIBMPlatform::test_id_os_code_must_match_uuid PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestGetIBMPlatform::test_id_template_live_metadata PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestGetIBMPlatform::test_id_template_prov_metadata PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestGetIBMPlatform::test_id_template_prov_nodata PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestReadMD::test_os_code_live PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestReadMD::test_os_code_live_no_userdata PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestReadMD::test_provisioning_md PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestReadMD::test_provisioning_no_metadata PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestReadMD::test_provisioning_not_ibm PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestReadMD::test_template_live PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestIsIBMProvisioning::test_config_and_log_no_reference PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestIsIBMProvisioning::test_config_only PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestIsIBMProvisioning::test_config_with_new_log PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestIsIBMProvisioning::test_config_with_old_log PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestIsIBMProvisioning::test_no_config PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestDataSourceIBMCloud::test_get_data_false PASSED [ 63%]
tests/unittests/sources/test_ibmcloud.py::TestDataSourceIBMCloud::test_get_data_processes_read_md PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test__get_data_unimplemented PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_clear_cached_attrs_noops_on_clean_cache PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_clear_cached_attrs_of_custom_attrs PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_clear_cached_attrs_resets_cached_attr_class_attributes PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_clear_cached_attrs_skips_non_attr_class_attributes PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_datasource_get_url_params_defaults PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_datasource_get_url_params_ds_config_override PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_datasource_get_url_params_is_zero_or_greater PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_datasource_get_url_params_subclassed PASSED [ 63%]
tests/unittests/sources/test_init.py::TestDataSource::test_datasource_get_url_uses_defaults_on_errors PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_datasource_init PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_datasource_init_gets_ds_cfg_using_dsname PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_fallback_interface_is_discovered PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_fallback_interface_logs_undiscovered PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_data_base64encodes_unserializable_bytes PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_data_calls_subclass__get_data PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_data_does_not_write_instance_data_on_failure PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_data_handles_redacted_unserializable_content PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_data_writes_json_instance_data_on_success PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_data_writes_json_instance_data_sensitive PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_data_writes_redacted_public_json_instance_data PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_hostname_strips_local_hostname_without_domain PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_hostname_subclass_support PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_hostname_with_fqdn_returns_local_hostname_with_domain PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_hostname_without_metadata_prefers_etc_hosts PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_hostname_without_metadata_returns_none PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_get_hostname_without_metadata_uses_system_hostname PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_persist_instance_data_writes_canonical_cloud_id_and_symlink PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_persist_instance_data_writes_ec2_metadata_when_set PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_persist_instance_data_writes_network_json_when_set PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_persist_instance_serializes_datasource_pickle PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_str_is_classname PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_update_metadata_only_acts_on_supported_update_events PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_update_metadata_returns_true_on_supported_update_event PASSED [ 64%]
tests/unittests/sources/test_init.py::TestDataSource::test_wb_fallback_interface_is_cached PASSED [ 64%]
tests/unittests/sources/test_init.py::TestRedactSensitiveData::test_redact_sensitive_data_does_redacts_with_default_string PASSED [ 64%]
tests/unittests/sources/test_init.py::TestRedactSensitiveData::test_redact_sensitive_data_noop_when_no_sensitive_keys_present PASSED [ 64%]
tests/unittests/sources/test_init.py::TestRedactSensitiveData::test_redact_sensitive_data_redacts_exact_match_name PASSED [ 64%]
tests/unittests/sources/test_init.py::TestCanonicalCloudID::test_cloud_id_aws_based_on_region_and_cloud_name PASSED [ 64%]
tests/unittests/sources/test_init.py::TestCanonicalCloudID::test_cloud_id_azure_based_on_region_and_cloud_name PASSED [ 64%]
tests/unittests/sources/test_init.py::TestCanonicalCloudID::test_cloud_id_returns_cloud_name_on_unknown_region PASSED [ 64%]
tests/unittests/sources/test_init.py::TestCanonicalCloudID::test_cloud_id_returns_platform_on_none PASSED [ 64%]
tests/unittests/sources/test_init.py::TestCanonicalCloudID::test_cloud_id_returns_platform_on_unknown_cloud_name PASSED [ 64%]
tests/unittests/sources/test_init.py::TestCanonicalCloudID::test_cloud_id_returns_platform_on_unknowns PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestGenerateFallbackNetworkConfig::test_net_v2_based_on_network_mode_virt_type_and_uname_machine[uname_machine0-None-expected0] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestGenerateFallbackNetworkConfig::test_net_v2_based_on_network_mode_virt_type_and_uname_machine[uname_machine1-None-expected1] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestGenerateFallbackNetworkConfig::test_net_v2_based_on_network_mode_virt_type_and_uname_machine[anything-lxc\n-expected2] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestGenerateFallbackNetworkConfig::test_net_v2_based_on_network_mode_virt_type_and_uname_machine[x86_64-kvm\n-expected3] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestGenerateFallbackNetworkConfig::test_net_v2_based_on_network_mode_virt_type_and_uname_machine[ppc64le-kvm\n-expected4] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestGenerateFallbackNetworkConfig::test_net_v2_based_on_network_mode_virt_type_and_uname_machine[s390x-kvm\n-expected5] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestNetworkConfig::test_provided_network_config PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestNetworkConfig::test_provided_devices[multi-device] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestNetworkConfig::test_provided_devices[no-eth0] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestNetworkConfig::test_provided_devices[no-eth1] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestNetworkConfig::test_provided_devices[device-list-empty] PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestDataSourceLXD::test_platform_info PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestDataSourceLXD::test_subplatform PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestDataSourceLXD::test__get_data PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestDataSourceLXD::test_network_config_when_unset PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestDataSourceLXD::test_network_config_crawled_metadata_no_network_config PASSED [ 64%]
tests/unittests/sources/test_lxd.py::TestIsPlatformViable::test_expected_viable[False-None-False] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestIsPlatformViable::test_expected_viable[True-32768-False] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestIsPlatformViable::test_expected_viable[True-49152-True] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_handles_unexpected_content_or_http_status[False-url_responses0-expected0-logs0] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_handles_unexpected_content_or_http_status[False-url_responses1-expected1-logs1] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_handles_unexpected_content_or_http_status[True-url_responses2-expected2-logs2] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_handles_unexpected_content_or_http_status[True-url_responses3-expected3-logs3] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_handles_unexpected_content_or_http_status[True-url_responses4-expected4-logs4] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_handles_unexpected_content_or_http_status[False-url_responses5-expected5-logs5] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_handles_unexpected_content_or_http_status[False-url_responses6-expected6-logs6] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_handles_unexpected_content_or_http_status[False-url_responses7-expected7-logs7] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_keys[MetaDataKeys.NONE-expected_get_urls0] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_keys[MetaDataKeys.META_DATA-expected_get_urls1] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_keys[MetaDataKeys.CONFIG-expected_get_urls2] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_keys[MetaDataKeys.DEVICES-expected_get_urls3] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_keys[MetaDataKeys.CONFIG|DEVICES-expected_get_urls4] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_read_metadata_keys[MetaDataKeys.ALL-expected_get_urls5] PASSED [ 65%]
tests/unittests/sources/test_lxd.py::TestReadMetadata::test_socket_retry PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::test_seed_dir_valid PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::test_seed_dir_valid_extra PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::test_seed_dir_invalid PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::test_seed_dir_none PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::test_seed_dir_missing PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::test_seed_url_valid PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::test_seed_url_vendor_data_dict PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::tests_wb_local_stage_detects_datasource_on_initramfs_network[no_maas_local_when_missing_run_files_and_cmdline] PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::tests_wb_local_stage_detects_datasource_on_initramfs_network[no_maas_local_when_run_files_and_no_cmdline] PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestMAASDataSource::tests_wb_local_stage_detects_datasource_on_initramfs_network[maas_local_when_run_and_ip_cmdline_present] PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestGetOauthHelper::test_all_required PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestGetOauthHelper::test_other_fields_not_passed_through PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestGetIdHash::test_v1_expected PASSED [ 65%]
tests/unittests/sources/test_maas.py::TestGetIdHash::test_v1_extra_fields_are_ignored PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_fs_config_lowercase_label PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_fs_config_lowercase_label_search_uppercase PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_fs_config_uppercase_label PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_fs_config_uppercase_label_search_uppercase PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_fs_label PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_metadata_network_config PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_metadata_network_config_over_interfaces PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_metadata_network_interfaces PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_no_datasource_expected PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_nocloud_get_devices_freebsd PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_nocloud_no_vendordata PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_nocloud_seed_dir_non_lxd_platform_is_nocloud PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_nocloud_seed_dir_on_lxd PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_nocloud_seed_with_vendordata PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_nocloud_seedfrom PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_nocloud_user_data_meta_data PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestNoCloudDataSource::test_seed_in_config PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestParseCommandLineData::test_parse_cmdline_data_none PASSED [ 65%]
tests/unittests/sources/test_nocloud.py::TestParseCommandLineData::test_parse_cmdline_data_valid PASSED [ 65%]
tests/unittests/sources/test_nwcs.py::TestDataSourceNWCS::test_get_interface_name PASSED [ 65%]
tests/unittests/sources/test_nwcs.py::TestDataSourceNWCS::test_not_on_nwcs_returns_false PASSED [ 66%]
tests/unittests/sources/test_nwcs.py::TestDataSourceNWCS::test_read_data PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_context_parser PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_find_candidates PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_get_data PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_get_data_broken_contextdisk PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_get_data_invalid_identity PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_get_data_non_contextdisk PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_hostname PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_network_interfaces PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_seed_dir_broken_context PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_seed_dir_empty1_context PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_seed_dir_empty2_context PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_seed_dir_non_contextdisk PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_ssh_key PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_user_data_base64_encoding PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_user_data_encoding_required_for_decode PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaDataSource::test_user_data_plain PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_context_devname PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_distro_passed_through PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_eth0 PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_eth0_override PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_eth0_v4v6_override PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_gen_conf_dns PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_gen_conf_gateway PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_gen_conf_gateway6 PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_gen_conf_ipv6address PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_gen_conf_mtu PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_field PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_field_emptycontext PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_field_nonecontext PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_field_withdefaultvalue PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_field_withdefaultvalue_emptycontext PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_gateway PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_gateway6 PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_ip PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_ip6 PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_ip6_dual PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_ip6_prefix PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_ip6_prefix_emptystring PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_ip6_ula PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_ip_emptystring PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_mask PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_mask_emptystring PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_mtu PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_get_nameservers PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestOpenNebulaNetwork::test_multiple_nics PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestParseShellConfig::test_no_seconds PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestGetPhysicalNicsByMac::test[interfaces_by_mac0-physical_devs0-expected_return0] PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestGetPhysicalNicsByMac::test[interfaces_by_mac1-physical_devs1-expected_return1] PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestGetPhysicalNicsByMac::test[interfaces_by_mac2-physical_devs2-expected_return2] PASSED [ 66%]
tests/unittests/sources/test_opennebula.py::TestGetPhysicalNicsByMac::test[interfaces_by_mac3-physical_devs3-expected_return3] PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_bad_datasource_meta PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_bad_metadata PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_bad_uuid PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_datasource PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_disabled_datasource PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_local_datasource PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_metadata_invalid PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_network_config_cached PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_network_config_disabled_by_datasource_config PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_network_config_from_network_json PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_no_datasource PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_no_ec2 PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_successful PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_userdata_empty PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_vendordata2_empty PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_vendordata2_invalid PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_vendordata_empty PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_vendordata_invalid PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestOpenStackDataSource::test_wb__crawl_metadata_does_not_persist PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestVendorDataLoading::test_vd_load_dict_ci_dict PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestVendorDataLoading::test_vd_load_dict_ci_list PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestVendorDataLoading::test_vd_load_dict_ci_string PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestVendorDataLoading::test_vd_load_dict_no_ci PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestVendorDataLoading::test_vd_load_list PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestVendorDataLoading::test_vd_load_none PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestVendorDataLoading::test_vd_load_string PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_by_proc_1_environ PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_compute_chassis_asset_tag PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_huaweicloud_chassis_asset_tag PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_intel_product_name_compute PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_non_intel_x86 PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_nova_chassis_asset_tag PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_opentelekomcloud_chassis_asset_tag PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_oraclecloud_chassis_asset_tag PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_ds_detect_sapccloud_chassis_asset_tag PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestDetectOpenStack::test_not_ds_detect_intel_x86_ec2 PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestMetadataReader::test__find_working_version PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestMetadataReader::test__find_working_version_uses_latest PASSED [ 67%]
tests/unittests/sources/test_openstack.py::TestMetadataReader::test_read_v2_os_ocata PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestDataSourceOracle::test_platform_info PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestDataSourceOracle::test_subplatform_before_fetch PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestDataSourceOracle::test_platform_info_after_fetch PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestDataSourceOracle::test_v1_platform_info_after_fetch[1] PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestDataSourceOracle::test_secondary_nics_disabled_by_default PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestDataSourceOracle::test_sys_cfg_can_enable_configure_secondary_nics PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestIsPlatformViable::test_ds_detect[OracleCloud.com-True] PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestIsPlatformViable::test_ds_detect[None-False] PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestIsPlatformViable::test_ds_detect[LetsGoCubs-False] PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_no_secondary_nics_does_not_mutate_input PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_bare_metal_machine_skipped PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_missing_mac_skipped[v1] PASSED [ 67%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_missing_mac_skipped[v2] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_imds_nic_setup_v1[True] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_imds_nic_setup_v1[False] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_secondary_nic_v2[True] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_secondary_nic_v2[False] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_network_config_log_errors[False-None] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_network_config_log_errors[False-Exception] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_network_config_log_errors[True-None] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFromOpcImds::test_network_config_log_errors[True-Exception] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFiltersNetFailover::test_ignore_network_config[bogus] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFiltersNetFailover::test_ignore_network_config[unknown_version] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFiltersNetFailover::test__ensure_netfailover_safe[checks_v1_type_physical_interfaces] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFiltersNetFailover::test__ensure_netfailover_safe[skips_v1_non_phys_interfaces] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFiltersNetFailover::test__ensure_netfailover_safe[checks_v2_type_ethernet_interfaces] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFiltersNetFailover::test__ensure_netfailover_safe[skips_v2_non_ethernet_interfaces] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFiltersNetFailover::test_removes_master_mac_property_v1 PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestNetworkConfigFiltersNetFailover::test_removes_master_mac_property_v2 PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestReadOpcMetadata::test_metadata_returned[2-_mock_v2_urls-instance_data0-True-vnics_data0] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestReadOpcMetadata::test_metadata_returned[2-_mock_v2_urls-instance_data1-False-None] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestReadOpcMetadata::test_metadata_returned[1-_mock_no_v2_urls-instance_data2-True-vnics_data2] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestReadOpcMetadata::test_metadata_returned[1-_mock_no_v2_urls-instance_data3-False-None] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestReadOpcMetadata::test_retry PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestReadOpcMetadata::test_fetch_vnics_max_wait PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestReadOpcMetadata::test_attempt_vnics_after_max_wait_expire PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestReadOpcMetadata::test_fetch_vnics_error PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_false_if_platform_not_viable[iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_false_if_platform_not_viable[non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[availability-zone-phx-ad-3-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[availability-zone-phx-ad-3-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[launch-index-0-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[launch-index-0-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[local-hostname-instance-20200320-1400-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[local-hostname-instance-20200320-1400-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[instance-id-ocid1.instance.oc1.phx.anyhqljtniwq6syc3nex55sep5w34qbwmw6TRUNCATED-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[instance-id-ocid1.instance.oc1.phx.anyhqljtniwq6syc3nex55sep5w34qbwmw6TRUNCATED-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[name-instance-20200320-1400-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[name-instance-20200320-1400-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[public_keys-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ truncated-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_metadata_keys_set_correctly[public_keys-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQ truncated-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_attributes_set_correctly[_crawled_metadata-expected_value0-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_attributes_set_correctly[_crawled_metadata-expected_value0-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_attributes_set_correctly[userdata_raw-#!/bin/sh\ntouch /tmp/foo-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_attributes_set_correctly[userdata_raw-#!/bin/sh\ntouch /tmp/foo-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_attributes_set_correctly[system_uuid-my-test-uuid-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_attributes_set_correctly[system_uuid-my-test-uuid-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_public_keys_handled_correctly[None-expected_value0-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_public_keys_handled_correctly[None-expected_value0-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_public_keys_handled_correctly[-expected_value1-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_public_keys_handled_correctly[-expected_value1-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_public_keys_handled_correctly[ssh-rsa ... test@test-expected_value2-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_public_keys_handled_correctly[ssh-rsa ... test@test-expected_value2-non-iscsi] PASSED [ 68%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_public_keys_handled_correctly[ssh-rsa ... test@test\nssh-rsa ... test2@test2-expected_value3-iscsi] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_public_keys_handled_correctly[ssh-rsa ... test@test\nssh-rsa ... test2@test2-expected_value3-non-iscsi] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_missing_user_data_handled_gracefully[iscsi] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_missing_user_data_handled_gracefully[non-iscsi] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_missing_metadata_handled_gracefully[iscsi] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestCommon_GetDataBehaviour::test_missing_metadata_handled_gracefully[non-iscsi] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNonIscsiRoot_GetDataBehaviour::test_run_net_files PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNonIscsiRoot_GetDataBehaviour::test_read_opc_metadata_called_with_ephemeral_dhcp PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_network_config_cached PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_secondary_nic_addition[True-True-expected_set_primary0] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_secondary_nic_addition[True-False-expected_set_primary1] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_secondary_nic_addition[False-True-expected_set_primary2] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_secondary_nic_addition[False-False-expected_set_primary3] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_secondary_nic_addition[None-True-expected_set_primary4] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_secondary_nic_addition[None-False-expected_set_primary5] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_secondary_nic_failure_isnt_blocking PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_ds_network_cfg_preferred_over_initramfs PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_system_network_cfg_preferred_over_ds PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test__add_network_config_from_opc_imds_no_vnics_data[True] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test__add_network_config_from_opc_imds_no_vnics_data[False] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_missing_mac_skipped PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_nics[True] PASSED [ 69%]
tests/unittests/sources/test_oracle.py::TestNetworkConfig::test_nics[False] PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestReadOvfEnv::test_with_b64_network_config_disable_read_network PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestReadOvfEnv::test_with_b64_network_config_enable_read_network PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestReadOvfEnv::test_with_b64_userdata PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestReadOvfEnv::test_with_no_userdata PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestReadOvfEnv::test_with_non_b64_network_config_enable_read_network PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestReadOvfEnv::test_with_non_b64_userdata PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestDatasourceOVF::test_get_data_iso9660_with_network_config PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestDatasourceOVF::test_get_data_seed_dir PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestDatasourceOVF::test_get_data_vmware_guestinfo_with_network_config PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_find_already_mounted PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_find_already_mounted_matches_kname PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_find_already_mounted_skips_non_iso9660 PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_maybe_cdrom_device_false_on_multi_dir_paths PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_maybe_cdrom_device_non_string_exception PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_maybe_cdrom_device_none PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_maybe_cdrom_device_true_on_hd_partitions PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_maybe_cdrom_device_true_on_valid_relative_paths PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_maybe_cdrom_device_true_on_xvd_partitions PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_mount_cb_called_on_blkdevs_with_iso9660 PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_mount_cb_called_on_blkdevs_with_iso9660_check_regex PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_mount_cb_called_require_iso_false PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportIso9660::test_mount_cb_not_called_no_matches PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportVmwareGuestinfo::test_found_when_guestinfo_present PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportVmwareGuestinfo::test_notfound_and_warns_on_unexpected_exit_code PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportVmwareGuestinfo::test_notfound_if_no_content_but_exit_zero PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportVmwareGuestinfo::test_notfound_on_exit_code_1 PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportVmwareGuestinfo::test_vmware_rpctool_fails_and_vmtoolsd_fails PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportVmwareGuestinfo::test_vmware_rpctool_fails_and_vmtoolsd_success PASSED [ 69%]
tests/unittests/sources/test_ovf.py::TestTransportVmwareGuestinfo::test_without_vmware_rpctool_and_with_vmtoolsd_returns_found PASSED [ 70%]
tests/unittests/sources/test_ovf.py::TestTransportVmwareGuestinfo::test_without_vmware_rpctool_and_without_vmtoolsd_returns_notfound PASSED [ 70%]
tests/unittests/sources/test_rbx.py::TestRbxDataSource::test_continue_on_arping_error PASSED [ 70%]
tests/unittests/sources/test_rbx.py::TestRbxDataSource::test_generate_network_config PASSED [ 70%]
tests/unittests/sources/test_rbx.py::TestRbxDataSource::test_gratuitous_arp_run_standard_arping PASSED [ 70%]
tests/unittests/sources/test_rbx.py::TestRbxDataSource::test_handle_rhel_like_arping PASSED [ 70%]
tests/unittests/sources/test_rbx.py::TestRbxDataSource::test_seed_read_user_data_callback_empty_file PASSED [ 70%]
tests/unittests/sources/test_rbx.py::TestRbxDataSource::test_seed_read_user_data_callback_userdata PASSED [ 70%]
tests/unittests/sources/test_rbx.py::TestRbxDataSource::test_seed_read_user_data_callback_valid_disk PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestOnScaleway::test_ds_detect_cmdline PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestOnScaleway::test_ds_detect_dmi PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestOnScaleway::test_ds_detect_var_run_scaleway PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestOnScaleway::test_not_ds_detect PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ipmob_additional_ipv4_config_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ipmob_primary_ipv4_config_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ipmob_primary_ipv4_v6_config_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ipmob_primary_ipv6_config_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ipv4_ipv6_metadata_timeout PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ipv4_metadata_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ipv4_metadata_timeout_ipv6_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_legacy_network_config_cached_none PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_legacy_network_config_existing PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_legacy_network_config_ipv6_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_legacy_network_config_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_legacy_network_config_unset PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_metadata_connection_errors_legacy_ipv4_url PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_metadata_connection_errors_two_urls PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_metadata_ipv4_404 PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_metadata_ipv4_rate_limit PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_set_metadata_url_ipv4_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_set_metadata_url_ipv6_ok PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ssh_keys_both PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ssh_keys_empty PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ssh_keys_only_conf PASSED [ 70%]
tests/unittests/sources/test_scaleway.py::TestDataSourceScaleway::test_ssh_keys_only_tags PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_default_ephemeral PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_default_vendor_data PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_disable_iptables_flag PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_hostname PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_hostname_b64 PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_hostname_if_no_sdc_hostname PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_motd_sys_info PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_no_base64 PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_override_disk_aliases PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_platform_info PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_reconfig_network_on_boot PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_root_keys PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_scripts_shebang_not_added PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_scripts_shebanged PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_sdc_hostname_if_no_hostname PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_sdc_nics PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_sdc_scripts PASSED [ 70%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_sdc_uuid_if_no_hostname_or_sdc_hostname PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_userdata PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_userdata_removed PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_uuid PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestSmartOSDataSource::test_vendor_data_not_default PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestIdentifyFile::test_file_happy_path PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestIdentifyFile::test_returns_none_on_error PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_flush_failure PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_flush_many_timeouts PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_base64_encodes_argument PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_calculates_length_correctly PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_checksums_correctly PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_line_starts_with_v2 PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_reads_a_line PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_returns_None_if_value_not_found PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_returns_valid_value PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_throws_exception_for_incorrect_crc PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_throws_exception_for_incorrect_length PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_throws_exception_for_request_id_mismatch PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_uses_appropriate_request_id PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_uses_get_command PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_uses_random_number_for_request_id PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_writes_a_single_line PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_get_metadata_writes_bytes PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_list_metadata_returns_empty_list_if_no_customer_metadata PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_list_metadata_returns_list PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_negotiate PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_negotiate_bad_response PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_negotiate_short_response PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestJoyentMetadataClient::test_serial_open_transport PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_convert_simple PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_convert_simple_alt PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_convert_simple_both_ipv4_ipv6 PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_convert_simple_dhcp PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_convert_simple_multi_ip PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_convert_simple_multi_ipv6 PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_convert_with_dns PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_gateways_not_on_all_nics PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestNetworkConversion::test_routes_on_all_nics PASSED [ 71%]
tests/unittests/sources/test_smartos.py::TestSerialConcurrency::test_all_keys SKIPPED [ 71%]
tests/unittests/sources/test_upcloud.py::TestUpCloudMetadata::test_metadata PASSED [ 71%]
tests/unittests/sources/test_upcloud.py::TestUpCloudMetadata::test_returns_false_not_on_upcloud PASSED [ 71%]
tests/unittests/sources/test_upcloud.py::TestUpCloudNetworkSetup::test_network_configuration PASSED [ 71%]
tests/unittests/sources/test_upcloud.py::TestUpCloudNetworkSetup::test_network_configured_metadata PASSED [ 71%]
tests/unittests/sources/test_upcloud.py::TestUpCloudDatasourceLoading::test_get_datasource_list_returns_in_local PASSED [ 71%]
tests/unittests/sources/test_upcloud.py::TestUpCloudDatasourceLoading::test_get_datasource_list_returns_in_normal PASSED [ 71%]
tests/unittests/sources/test_upcloud.py::TestUpCloudDatasourceLoading::test_list_sources_finds_ds PASSED [ 71%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_convert_to_netifaces_ipv4_format PASSED [ 71%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_convert_to_netifaces_ipv6_format PASSED [ 71%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_get_default_ip_addrs_dualstack PASSED [ 71%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_get_default_ip_addrs_ipv4only PASSED [ 71%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_get_default_ip_addrs_ipv6only PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_get_default_ip_addrs_multiaddr PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_get_default_ip_addrs_nodefault PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_get_host_info_dual PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_get_host_info_ipv4 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_get_host_info_ipv6 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_no_data_access_method PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMware::test_wait_on_network PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_get_data_metadata_b64 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_get_data_metadata_base64 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_get_data_metadata_gz_b64 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_get_data_metadata_gzip_base64 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_get_data_metadata_only PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_get_data_userdata_only PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_get_data_vendordata_only PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_get_subplatform PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_metadata_multiple_ssh_keys PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareEnvVars::test_metadata_single_ssh_key PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_ds_valid_on_vmware_platform PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_metadata_b64 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_metadata_base64 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_metadata_gz_b64 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_metadata_gzip_base64 PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_metadata_non_zero_exit_code_fallback_to_vmtoolsd PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_metadata_vmware_rpctool_not_found_fallback_to_vmtoolsd PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_metadata_with_vmware_rpctool PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_userdata_only PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_data_vendordata_only PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_get_subplatform PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_metadata_multiple_ssh_keys PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo::test_metadata_single_ssh_key PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareGuestInfo_InvalidPlatform::test_ds_invalid_on_non_vmware_platform PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_data_cloudinit_metadata_json PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_data_cloudinit_metadata_yaml PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_data_cloudinit_userdata PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_data_false_on_none_dmi_data PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_allow_raw_data_disabled PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_cloudinit_metadata_not_found PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_cloudinit_metadata_not_valid PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_cloudinit_userdata_not_found PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_cust_script_disabled PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_cust_script_enabled PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_force_run_post_script_is_yes PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_vmware_customization_disabled PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_vmware_customization_enabled PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC::test_get_imc_data_vmware_customization_sys_cfg_disabled PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC_MarkerFiles::test_false_when_markerid_none PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC_MarkerFiles::test_marker_file_setup PASSED [ 72%]
tests/unittests/sources/test_vmware.py::TestDataSourceVMwareIMC_MarkerFiles::test_markerid_file_exist PASSED [ 72%]
tests/unittests/sources/test_vultr.py::TestDataSourceVultr::test_datasource PASSED [ 72%]
tests/unittests/sources/test_vultr.py::TestDataSourceVultr::test_datasource_cloud_interfaces PASSED [ 72%]
tests/unittests/sources/test_vultr.py::TestDataSourceVultr::test_interface_seek PASSED [ 72%]
tests/unittests/sources/test_vultr.py::TestDataSourceVultr::test_network_config PASSED [ 73%]
tests/unittests/sources/test_vultr.py::TestDataSourceVultr::test_private_network_config PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_instance_name PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_mounted_drives PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_cmd_exe_ok PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_cmd_not_executable PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_cmd_exe_no_win_mounts PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_candidate_files[linux_distro_value0-files0] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_candidate_files[linux_distro_value1-files1] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_load_instance_metadata[default_md_on_no_md_file] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_load_instance_metadata[error_on_md_missing_instance_id_key] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLHelperFunctions::test_load_instance_metadata[error_on_md_invalid_yaml] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestMergeAgentLandscapeData::test_merged_data_excludes_empty_or_none[none_when_both_agent_and_ud_none] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestMergeAgentLandscapeData::test_merged_data_excludes_empty_or_none[none_when_agent_none_and_ud_empty] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestMergeAgentLandscapeData::test_merged_data_excludes_empty_or_none[none_when_agent_empty_and_ud_none] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestMergeAgentLandscapeData::test_merged_data_excludes_empty_or_none[none_when_both_agent_and_ud_empty] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestMergeAgentLandscapeData::test_merged_data_excludes_empty_or_none[agent_only_when_ud_empty] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestMergeAgentLandscapeData::test_merged_data_excludes_empty_or_none[ud_only_when_agent_empty] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestMergeAgentLandscapeData::test_merged_data_excludes_empty_or_none[merge_agent_and_landscape_ud_when_both_present] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_metadata_id_default PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_metadata_id PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_get_data_cc PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_get_data_sh PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_get_data_jinja PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_get_data_x[True] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_get_data_x[False] PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_data_precedence PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_interaction_with_pro PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_landscape_vs_local_user PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_landscape_provided_data PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_landscape_empty_data PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_landscape_shell_script PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_with_landscape_no_tags PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_with_no_tags_at_all PASSED [ 73%]
tests/unittests/sources/test_wsl.py::TestWSLDataSource::test_with_no_client_subkey PASSED [ 73%]
tests/unittests/sources/vmware/test_custom_script.py::TestVmwareCustomScript::test_execute_post_cust PASSED [ 73%]
tests/unittests/sources/vmware/test_custom_script.py::TestVmwareCustomScript::test_prepare_custom_script PASSED [ 73%]
tests/unittests/sources/vmware/test_guestcust_util.py::TestGuestCustUtil::test_get_tools_config_internal_exception PASSED [ 73%]
tests/unittests/sources/vmware/test_guestcust_util.py::TestGuestCustUtil::test_get_tools_config_normal PASSED [ 73%]
tests/unittests/sources/vmware/test_guestcust_util.py::TestGuestCustUtil::test_get_tools_config_not_installed PASSED [ 73%]
tests/unittests/sources/vmware/test_guestcust_util.py::TestGuestCustUtil::test_set_gc_status PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_config_file_dhcp_2nics PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_config_password PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_config_reset_passwd PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_configfile_static_2nics PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_configfile_with_instance_id PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_configfile_without_instance_id PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_custom_script PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_gen_subnet PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_get_config_dns_suffixes PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_get_config_nameservers PASSED [ 73%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_get_nics_list_dhcp PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_get_nics_list_static PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_no_default_run_post_script PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_post_gc_status PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_utility_methods PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareConfigFile::test_yes_default_run_post_script PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareNetConfig::test_a_primary_nic_with_gateway PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareNetConfig::test_cust_non_primary_nic_with_gateway_ PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareNetConfig::test_meta_data PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareNetConfig::test_non_primary_nic_with_gateway PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareNetConfig::test_non_primary_nic_without_gateway PASSED [ 74%]
tests/unittests/sources/vmware/test_vmware_config_file.py::TestVmwareNetConfig::test_user_data PASSED [ 74%]
tests/unittests/test__init__.py::TestWalkerHandleHandler::test_attribute_error PASSED [ 74%]
tests/unittests/test__init__.py::TestWalkerHandleHandler::test_import_error PASSED [ 74%]
tests/unittests/test__init__.py::TestWalkerHandleHandler::test_no_errors PASSED [ 74%]
tests/unittests/test__init__.py::TestHandlerHandlePart::test_exception_is_caught PASSED [ 74%]
tests/unittests/test__init__.py::TestHandlerHandlePart::test_modfreq_per_always PASSED [ 74%]
tests/unittests/test__init__.py::TestHandlerHandlePart::test_no_handle_when_modfreq_once PASSED [ 74%]
tests/unittests/test__init__.py::TestHandlerHandlePart::test_normal_version_1 PASSED [ 74%]
tests/unittests/test__init__.py::TestHandlerHandlePart::test_normal_version_2 PASSED [ 74%]
tests/unittests/test__init__.py::TestCmdlineUrl::test_parse_cmdline_url_nokey_raises_keyerror PASSED [ 74%]
tests/unittests/test__init__.py::TestCmdlineUrl::test_parse_cmdline_url_found PASSED [ 74%]
tests/unittests/test__init__.py::TestCmdlineUrl::test_invalid_content PASSED [ 74%]
tests/unittests/test__init__.py::TestCmdlineUrl::test_invalid_content_url PASSED [ 74%]
tests/unittests/test__init__.py::TestCmdlineUrl::test_valid_content PASSED [ 74%]
tests/unittests/test__init__.py::TestCmdlineUrl::test_valid_content_url PASSED [ 74%]
tests/unittests/test__init__.py::TestCmdlineUrl::test_no_key_found PASSED [ 74%]
tests/unittests/test__init__.py::TestCmdlineUrl::test_exception_warns PASSED [ 74%]
tests/unittests/test_all_stages.py::test_all_stages_times_out PASSED [ 74%]
tests/unittests/test_all_stages.py::test_all_stages PASSED [ 74%]
tests/unittests/test_all_stages.py::test_all_stages_threaded PASSED [ 74%]
tests/unittests/test_all_stages.py::test_all_stages_exception PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_can_attach_sensitive PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_attach_cloud_init_logs[True] PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_attach_cloud_init_logs[False] PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_add_bug_tags_assigns_proper_tags[report0-] PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_add_bug_tags_assigns_proper_tags[report1-ubuntu-desktop-installer] PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_add_bug_tags_assigns_proper_tags[report2-curtin subiquity] PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_add_bug_tags_assigns_proper_tags[report3-systemd-ordering ubuntu-desktop-installer] PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_attach_ubuntu_pro_info PASSED [ 74%]
tests/unittests/test_apport.py::TestApport::test_attach_ubuntu_pro_info_log_non_present PASSED [ 74%]
tests/unittests/test_atomic_helper.py::TestAtomicHelper::test_basic_usage PASSED [ 74%]
tests/unittests/test_atomic_helper.py::TestAtomicHelper::test_string PASSED [ 74%]
tests/unittests/test_atomic_helper.py::TestAtomicHelper::test_file_permissions PASSED [ 74%]
tests/unittests/test_atomic_helper.py::TestAtomicHelper::test_file_preserve_permissions PASSED [ 74%]
tests/unittests/test_atomic_helper.py::TestAtomicHelper::test_write_json PASSED [ 74%]
tests/unittests/test_atomic_helper.py::TestAtomicHelper::test_write_file_ensure_dirs PASSED [ 74%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_part_handler_defaults PASSED [ 74%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_part_handler_looks_up_sub_handler_types PASSED [ 74%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_part_handler_looks_up_subhandler_types PASSED [ 74%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_handle_noop_on_content_signals PASSED [ 74%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_handle_subhandler_v2_with_clean_payload PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_handle_subhandler_v3_with_clean_payload PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_handle_errors_on_missing_instance_data_json PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_handle_errors_on_unreadable_instance_data PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_handle_renders_jinja_content PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestJinjaTemplatePartHandler::test_jinja_template_handle_renders_jinja_content_missing_keys PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestConvertJinjaInstanceData::test_convert_instance_data_operators_to_underscores[False-data0-expected0] PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestConvertJinjaInstanceData::test_convert_instance_data_operators_to_underscores[True-data1-expected1] PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestConvertJinjaInstanceData::test_convert_instance_data_operators_to_underscores[False-data2-expected2] PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestConvertJinjaInstanceData::test_convert_instance_data_operators_to_underscores[True-data3-expected3] PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestConvertJinjaInstanceData::test_convert_instance_data_operators_to_underscores[True-data4-expected4] PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestConvertJinjaInstanceData::test_convert_instance_data_promotes_versioned_keys_to_top_level PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestConvertJinjaInstanceData::test_convert_instance_data_most_recent_version_of_promoted_keys PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestConvertJinjaInstanceData::test_convert_instance_data_decodes_decode_paths PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestRenderJinjaPayload::test_render_jinja_payload_logs_jinja_vars_on_debug PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestRenderJinjaPayload::test_render_jinja_payload_replaces_missing_variables_and_warns PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestShellScriptByFrequencyHandlers::test_get_script_folder_per_boot PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestShellScriptByFrequencyHandlers::test_get_script_folder_per_instance PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestShellScriptByFrequencyHandlers::test_get_script_folder_per_once PASSED [ 75%]
tests/unittests/test_builtin_handlers.py::TestBootHookHandler::test_handle_part PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_status_wrapper_errors[invalid_name] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_status_wrapper_errors[invalid_modes] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_status_wrapper_init_local_writes_fresh_status_info PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_status_wrapper_init_local_honor_cloud_dir PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_no_arguments_shows_usage PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_no_arguments_shows_error_message PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_all_subcommands_represented_in_help PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_subcommands_log_to_stderr_via_setup_basic_logging[init-False-mocks0] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_subcommands_log_to_stderr_via_setup_basic_logging[modules-False-mocks1] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_subcommands_log_to_stderr_via_setup_basic_logging[schema-True-mocks2] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_modules_subcommand_parser[init] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_modules_subcommand_parser[modules] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_conditional_subcommands_from_entry_point_sys_argv[analyze] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_conditional_subcommands_from_entry_point_sys_argv[clean] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_conditional_subcommands_from_entry_point_sys_argv[collect-logs] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_conditional_subcommands_from_entry_point_sys_argv[devel] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_conditional_subcommands_from_entry_point_sys_argv[status] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_conditional_subcommands_from_entry_point_sys_argv[schema] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_subcommand_parser[clean] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_subcommand_parser[collect-logs] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_subcommand_parser[status] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_subcommand_parser_multi_arg[args0-expected_subcommands0] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_subcommand_parser_multi_arg[args1-expected_subcommands1] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_wb_schema_subcommand_parser PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_wb_schema_subcommand[all_spot_check] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_wb_schema_subcommand[single_spot_check] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_wb_schema_subcommand[multiple_spot_check] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_wb_schema_subcommand[bad_arg_fails] PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_single_subcommand PASSED [ 75%]
tests/unittests/test_cli.py::TestCLI::test_features_hook_subcommand PASSED [ 75%]
tests/unittests/test_cli.py::TestSignalHandling::test_status_wrapper_signal_sys_exit PASSED [ 75%]
tests/unittests/test_cli.py::TestSignalHandling::test_status_wrapper_no_signal_sys_exit PASSED [ 75%]
tests/unittests/test_cli.py::TestSignalHandling::test_status_wrapper_signal_warnings PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsage::test_using_subp_raises_assertion_error PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsage::test_typeerrors_on_incorrect_usage PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsage::test_subp_exception_escapes_exception_handling PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsage::test_subp_usage_can_be_reenabled PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsage::test_subp_usage_can_be_conditionally_reenabled PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsage::test_subp_usage_can_be_conditionally_reenabled_for_multiple_cmds PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsage::test_both_marks_raise_an_error PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsageInTestSubclass::test_subp_usage_can_be_reenabled PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsageInTestSubclass::test_typeerrors_on_incorrect_usage PASSED [ 76%]
tests/unittests/test_conftest.py::TestDisableSubpUsageInTestSubclass::test_using_subp_raises_exception PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_simple_jsonp PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_simple_jsonp_vendor_and_vendor2_and_user PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_simple_jsonp_no_vendor_consumed PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_mixed_cloud_config PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_cloud_config_as_x_shell_script PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_vendor_user_yaml_cloud_config PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_vendordata_script PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_merging_cloud_config PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_unhandled_type_warning PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_mime_gzip_compressed PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_mime_text_plain PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_shellscript PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_mime_text_x_shellscript PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_mime_text_plain_shell PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_mime_application_octet_stream PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_cloud_config_archive PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserData::test_dont_allow_user_data PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserDataHttp::test_include PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserDataHttp::test_include_bad_url PASSED [ 76%]
tests/unittests/test_data.py::TestConsumeUserDataHttp::test_include_bad_url_no_fail PASSED [ 76%]
tests/unittests/test_data.py::TestUDProcess::test_bytes_in_userdata PASSED [ 76%]
tests/unittests/test_data.py::TestUDProcess::test_compressed_in_userdata PASSED [ 76%]
tests/unittests/test_data.py::TestUDProcess::test_string_in_userdata PASSED [ 76%]
tests/unittests/test_data.py::TestConvertString::test_handle_headers PASSED [ 76%]
tests/unittests/test_data.py::TestConvertString::test_handle_mime_parts PASSED [ 76%]
tests/unittests/test_data.py::TestConvertString::test_handles_binary_non_utf8_decodable PASSED [ 76%]
tests/unittests/test_data.py::TestConvertString::test_handles_binary_utf8_decodable PASSED [ 76%]
tests/unittests/test_data.py::TestFetchBaseConfig::test_only_builtin_gets_builtin PASSED [ 76%]
tests/unittests/test_data.py::TestFetchBaseConfig::test_conf_d_overrides_defaults PASSED [ 76%]
tests/unittests/test_data.py::TestFetchBaseConfig::test_confd_with_template PASSED [ 76%]
tests/unittests/test_data.py::TestFetchBaseConfig::test_cmdline_overrides_defaults PASSED [ 76%]
tests/unittests/test_data.py::TestFetchBaseConfig::test_cmdline_overrides_confd_runtime_and_defaults PASSED [ 76%]
tests/unittests/test_data.py::TestFetchBaseConfig::test_order_precedence_is_builtin_system_runtime_cmdline PASSED [ 76%]
tests/unittests/test_dmi.py::TestReadDMIData::test_container_returns_none PASSED [ 76%]
tests/unittests/test_dmi.py::TestReadDMIData::test_container_returns_none_on_unknown PASSED [ 76%]
tests/unittests/test_dmi.py::TestReadDMIData::test_dmidecode_not_used_on_arm PASSED [ 76%]
tests/unittests/test_dmi.py::TestReadDMIData::test_dmidecode_used_if_no_sysfs_file_on_disk PASSED [ 76%]
tests/unittests/test_dmi.py::TestReadDMIData::test_empty_string_returned_instead_of_foxfox PASSED [ 76%]
tests/unittests/test_dmi.py::TestReadDMIData::test_freebsd_uses_kenv PASSED [ 76%]
tests/unittests/test_dmi.py::TestReadDMIData::test_none_returned_if_dmidecode_not_in_path PASSED [ 76%]
tests/unittests/test_dmi.py::TestReadDMIData::test_none_returned_if_neither_source_has_data PASSED [ 77%]
tests/unittests/test_dmi.py::TestReadDMIData::test_openbsd_uses_kenv PASSED [ 77%]
tests/unittests/test_dmi.py::TestReadDMIData::test_sysfs_used_with_key_in_mapping_and_file_on_disk PASSED [ 77%]
tests/unittests/test_dmi.py::TestSubDMIVars::test_sub_dmi_vars[match_dmi_distro_agnostic_strings_warn_on_unknown] PASSED [ 77%]
tests/unittests/test_dmi.py::TestSubDMIVars::test_sub_dmi_vars[match_dmi_agnostic_and_freebsd_dmi_keys_warn_on_unknown] PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_aliyun_identified PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_aliyun_over_ec2 PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_aws_ec2_hvm PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_aws_ec2_hvm_endian PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_aws_ec2_hvm_env PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_aws_ec2_xen PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_azure_dmi_detection_from_chassis_asset_tag PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_azure_invalid_configuration PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_azure_seed_file_detection PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_bobrightbox_is_not_brightbox PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_brightbox_is_ec2 PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_config_drive PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_config_drive_interacts_with_ibmcloud_config_disk PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_config_drive_seed PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_config_drive_upper PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_configured_list_with_none PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_default_nocloud_as_vdb_iso9660 PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_default_openstack_intel_is_found PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_default_ovf_is_found PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_default_ovf_returns_not_found_on_azure PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_default_ovf_with_detect_virt_none_not_found PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_e24cloud_is_ec2 PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_e24cloud_not_active PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_flow_sequence PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_flow_sequence_control PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_freebsd_nocloud PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_gce_by_product_name PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_gce_by_product_name_env PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_gce_by_serial PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_hetzner_found PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_os_code PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_os_code_different_uuid PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_template_no_userdata PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_template_no_userdata_in_provisioning PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_template_userdata PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_template_userdata_in_provisioning PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_with_configdrive_seed PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_with_nocloud_seed PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_lxd_containers PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_lxd_kvm PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_lxd_kvm_jammy PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_lxd_kvm_jammy_env PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_maas_not_detected_1 XFAIL [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_maas_not_detected_2 PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_maas_not_detected_3 XFAIL [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_multiline_yaml XFAIL [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_fatboot PASSED [ 77%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_seed PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_seed_in_cfg PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_seed_ubuntu_core_writable PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_seedfrom PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_upper PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_nocloud_userdata_and_metadata PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_nwcs_found PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_openstack_asset_tag_copute PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_openstack_asset_tag_nova PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_openstack_huawei_cloud PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_openstack_on_non_intel_is_maybe PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_openstack_open_telekom_cloud PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_openstack_sap_ccloud PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_openstack_sap_ccloud_env PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_outscale_is_ec2 PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_outscale_not_active_productname PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_outscale_not_active_sysvendor PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ovf_on_vmware_guestinfo_found PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ovf_on_vmware_iso_found_by_cdrom_with_different_size PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ovf_on_vmware_iso_found_by_cdrom_with_matching_fs_label PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ovf_on_vmware_iso_found_by_cdrom_with_ovf_schema_match PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_path_env_gets_set_from_main PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_policy_config_disable_overrides_builtin PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_policy_disabled PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_rbx_cloud PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_rbx_cloud_lower PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_single_entry_defines_datasource PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_smartos_bhyve PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_smartos_lxbrand PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_smartos_lxbrand_env PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_smartos_lxbrand_requires_socket PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_smartos_lxbrand_requires_socket_env PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_envvar_activated_by_metadata PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_envvar_activated_by_userdata PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_envvar_activated_by_vendordata PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_envvar_no_data PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_envvar_no_virt_id PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_guestinfo_activated_by_metadata PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_guestinfo_activated_by_userdata PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_guestinfo_activated_by_vendordata PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_guestinfo_no_data PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_guestinfo_no_virt_id PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_no_valid_transports PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_64 PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_aarch64_linux_gnu PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_i386_linux_gnu PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_x86_64_linux_gnu PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_when_vmware_customization_is_enabled PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_wb_print_variables PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestDsIdentify::test_zstack_is_ec2 PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestAkamai::test_found_by_sys_vendor PASSED [ 78%]
tests/unittests/test_ds_identify.py::TestAkamai::test_found_by_sys_vendor_akamai PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestAkamai::test_not_found PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestBSDNoSys::test_dmi_dmidecode PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestBSDNoSys::test_dmi_kenv PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestBSDNoSys::test_dmi_sysctl PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestIsIBMProvisioning::test_config_only PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestIsIBMProvisioning::test_config_with_new_log PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestIsIBMProvisioning::test_config_with_old_log PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestIsIBMProvisioning::test_no_config PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestOracle::test_found_by_chassis PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestOracle::test_not_found PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestWSL::test_empty_cloudinitdir PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestWSL::test_found_fail_due_instance_name_parsing PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestWSL::test_found_via_userdata PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestWSL::test_found_via_userdata_version_codename PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestWSL::test_no_cloudinitdir_in_userprofile PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestWSL::test_no_fs_mounts PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestWSL::test_no_userprofile PASSED [ 79%]
tests/unittests/test_ds_identify.py::TestWSL::test_not_found_virt PASSED [ 79%]
tests/unittests/test_event.py::TestEvent::test_userdata_to_events PASSED [ 79%]
tests/unittests/test_event.py::TestEvent::test_invalid_scope PASSED [ 79%]
tests/unittests/test_event.py::TestEvent::test_invalid_event PASSED [ 79%]
tests/unittests/test_features.py::TestGetFeatures::test_feature_without_override PASSED [ 79%]
tests/unittests/test_gpg.py::TestGPGCommands::test_dearmor_bad_value PASSED [ 79%]
tests/unittests/test_gpg.py::TestGPGCommands::test_gpg_list_args PASSED [ 79%]
tests/unittests/test_gpg.py::TestGPGCommands::test_gpg_dearmor_args PASSED [ 79%]
tests/unittests/test_gpg.py::TestReceiveKeys::test_retries_on_subp_exc PASSED [ 79%]
tests/unittests/test_gpg.py::TestReceiveKeys::test_raises_error_after_retries PASSED [ 79%]
tests/unittests/test_gpg.py::TestReceiveKeys::test_no_retries_on_none PASSED [ 79%]
tests/unittests/test_gpg.py::TestReceiveKeys::test_expected_gpg_command PASSED [ 79%]
tests/unittests/test_gpg.py::TestReceiveKeys::test_kill_gpg_succeeds PASSED [ 79%]
tests/unittests/test_gpg.py::TestReceiveKeys::test_do_not_kill_unstarted_gpg PASSED [ 79%]
tests/unittests/test_gpg.py::TestReceiveKeys::test_kill_gpg_failover_succeeds PASSED [ 79%]
tests/unittests/test_helpers.py::TestPaths::test_get_ipath_and_empty_instance_id_returns_none PASSED [ 79%]
tests/unittests/test_helpers.py::TestPaths::test_get_ipath_and_instance_id_with_slashes PASSED [ 79%]
tests/unittests/test_helpers.py::Testcloud_init_project_dir::test_top_level_dir PASSED [ 79%]
tests/unittests/test_helpers.py::Testcloud_init_project_dir::test_cloud_init_project_dir PASSED [ 79%]
tests/unittests/test_importer.py::test_importer[nocloud-net is a special case, make sure it works] PASSED [ 79%]
tests/unittests/test_importer.py::test_importer[nocloud is a special case, make sure it works] PASSED [ 79%]
tests/unittests/test_importer.py::test_importer[gce, full name] PASSED [ 79%]
tests/unittests/test_importer.py::test_importer[gce, name match] PASSED [ 79%]
tests/unittests/test_log.py::TestCloudInitLogger::test_logger_uses_gmtime PASSED [ 79%]
tests/unittests/test_log.py::TestDeprecatedLogs::test_deprecated_log_level PASSED [ 79%]
tests/unittests/test_log.py::TestDeprecatedLogs::test_trace_log_level PASSED [ 79%]
tests/unittests/test_log.py::TestDeprecatedLogs::test_deprecate_log_level_based_on_features[test_same_deprecation_info_boundary_is_deprecated_level] PASSED [ 79%]
tests/unittests/test_log.py::TestDeprecatedLogs::test_deprecate_log_level_based_on_features[test_lower_deprecation_info_boundary_is_info_level] PASSED [ 79%]
tests/unittests/test_log.py::TestDeprecatedLogs::test_log_deduplication PASSED [ 79%]
tests/unittests/test_log.py::test_logger_prints_to_stderr PASSED [ 79%]
tests/unittests/test_merging.py::TestSimpleRun::test_compat_merge_sub_dict PASSED [ 79%]
tests/unittests/test_merging.py::TestSimpleRun::test_compat_merge_sub_dict2 PASSED [ 79%]
tests/unittests/test_merging.py::TestSimpleRun::test_compat_merge_sub_list PASSED [ 79%]
tests/unittests/test_merging.py::TestSimpleRun::test_compat_merges_dict PASSED [ 80%]
tests/unittests/test_merging.py::TestSimpleRun::test_compat_merges_dict2 PASSED [ 80%]
tests/unittests/test_merging.py::TestSimpleRun::test_compat_merges_list PASSED [ 80%]
tests/unittests/test_merging.py::TestSimpleRun::test_compat_merges_str PASSED [ 80%]
tests/unittests/test_merging.py::TestSimpleRun::test_merge_cc_samples PASSED [ 80%]
tests/unittests/test_merging.py::TestSimpleRun::test_seed_runs PASSED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config0-None] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config1-None] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config2-\\[\\] (is too short|should be non-empty|does not have enough properties)] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config3-is not of type] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config4-'append' is not of type 'array'] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config5-'name' is a required property] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config6-'settings' is a required property] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config7-Additional properties are not allowed \\('badkey' was unexpected\\)] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config8-'badvalue' is not one of] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config9-'badvalue'\\ is\\ not\\ one\\ of\\ \\['list',\\ 'dict',\\ 'str'\\]] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config10-None] SKIPPED [ 80%]
tests/unittests/test_merging.py::TestMergingSchema::test_schema_validation[config11-None] SKIPPED [ 80%]
tests/unittests/test_net.py::TestGenerateFallbackConfig::test_device_driver_v2 PASSED [ 80%]
tests/unittests/test_net.py::TestGenerateFallbackConfig::test_device_driver PASSED [ 80%]
tests/unittests/test_net.py::TestGenerateFallbackConfig::test_hv_netvsc_vf_filter PASSED [ 80%]
tests/unittests/test_net.py::TestGenerateFallbackConfig::test_unstable_names PASSED [ 80%]
tests/unittests/test_net.py::TestGenerateFallbackConfig::test_unstable_names_disabled PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_default_generation PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_multiple_ipv4_default_gateways PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_multiple_ipv6_default_gateways PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_invalid_network_mask_ipv6 PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_invalid_network_mask_ipv4 PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_openstack_rendering_samples PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_network_config_v1_samples PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_network_config_v1_multi_iface_samples PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config_with_explicit_loopback PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[bond_v1-yaml] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[bond_v2-yaml] XFAIL [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[vlan_v1-yaml] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[vlan_v2-yaml] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[bridge-yaml_v1] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[bridge-yaml_v2] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[manual-yaml] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[small_v1-yaml] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[small_v2-yaml] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[dhcpv6_only-yaml_v1] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[dhcpv6_only-yaml_v2] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[dhcpv6_accept_ra-yaml_v1] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[dhcpv6_accept_ra-yaml_v2] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[dhcpv6_reject_ra-yaml_v1] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[dhcpv6_reject_ra-yaml_v2] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[static6-yaml_v1] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[static6-yaml_v2] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[dhcpv6_stateless-yaml] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[dhcpv6_stateful-yaml] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[wakeonlan_disabled-yaml_v2] PASSED [ 80%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[wakeonlan_enabled-yaml_v2] PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[v1-dns-yaml] XFAIL [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[v2-dns-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_config[large_v2-yaml] XFAIL [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_large_v1_config PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_ipv4_and_ipv6_static_config[yaml_v1-v1_ipv4_and_ipv6_static] PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_ipv4_and_ipv6_static_config[yaml_v2-v2_ipv4_and_ipv6_static] PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_stattic6_from_json PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_netplan_dhcp_false_disable_dhcp_in_state PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_netplan_dhcp_false_no_dhcp_in_sysconfig PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_from_v2_vlan_mtu PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_from_v2_bond_mtu PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_from_v2_route_metric PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_from_v2_routes PASSED [ 81%]
tests/unittests/test_net.py::TestRhelSysConfigRendering::test_iface_name_from_device_with_matching_mac_address PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_default_generation PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_openstack_rendering_samples PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_network_config_v1_samples PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config_with_explicit_loopback PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[bond_v1-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[bond_v2-yaml] XFAIL [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[vlan_v1-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[vlan_v2-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[bridge-yaml_v1] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[bridge-yaml_v2] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[manual-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[small_v1-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[small_suse_dhcp6-yaml_v1] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[small_suse_dhcp6-yaml_v2] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[small_v2-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[v1_ipv4_and_ipv6_static-yaml_v1] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[v2_ipv4_and_ipv6_static-yaml_v2] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[dhcpv6_only-yaml_v1] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[dhcpv6_only-yaml_v2] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[ipv6_slaac-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[dhcpv6_stateless-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[wakeonlan_disabled-yaml_v2] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[wakeonlan_enabled-yaml_v2] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[v4_and_v6-yaml_v1] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[v4_and_v6-yaml_v2] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[v6_and_v4-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[v1-dns-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[v2-dns-yaml] PASSED [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_config[large_v2-yaml] XFAIL [ 81%]
tests/unittests/test_net.py::TestOpenSuseSysConfigRendering::test_large_v2_config PASSED [ 81%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_default_generation PASSED [ 81%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_openstack_rendering_samples PASSED [ 81%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_network_config_v1_samples PASSED [ 81%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config_with_explicit_loopback PASSED [ 81%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_ipv4_and_ipv6_static_config[yaml_v1-v1_ipv4_and_ipv6_static] PASSED [ 81%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_ipv4_and_ipv6_static_config[yaml_v2-v2_ipv4_and_ipv6_static] PASSED [ 81%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[bond_v1-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[bond_v2-yaml] XFAIL [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[vlan_v1-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[vlan_v2-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[bridge-yaml_v1] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[bridge-yaml_v2] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[manual-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[small_v1-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[small_v2-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[dhcpv6_only-yaml_v1] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[dhcpv6_only-yaml_v2] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[ipv6_slaac-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[dhcpv6_stateless-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[wakeonlan_disabled-yaml_v2] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[wakeonlan_enabled-yaml_v2] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v4_and_v6-yaml_v1] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v4_and_v6-yaml_v2] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v6_and_v4-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v1-dns-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v2-mixed-routes-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v2-dns-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v2-dns-no-if-ips-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v2-dns-no-dhcp-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[v2-route-no-gateway-yaml] PASSED [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_config[large_v2-yaml] XFAIL [ 82%]
tests/unittests/test_net.py::TestNetworkManagerRendering::test_large_v1_config PASSED [ 82%]
tests/unittests/test_net.py::TestEniNetRendering::test_default_generation PASSED [ 82%]
tests/unittests/test_net.py::TestEniNetRendering::test_config_with_explicit_loopback PASSED [ 82%]
tests/unittests/test_net.py::TestEniNetRendering::test_v2_route_metric_to_eni PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[default_generation] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[physical_gateway46] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[bond_gateway46] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[bridge_gateway46] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[vlan_gateway46] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[nameserver_gateway4] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[two_subnets_old_new_gateway46] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[one_subnet_old_new_gateway46] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanNetRendering::test_render[onlink_gateways] PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanCleanDefault::test_clean_known_config_cleaned PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanCleanDefault::test_clean_unknown_config_not_cleaned PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanCleanDefault::test_clean_known_config_cleans_only_expected PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanPostcommands::test_netplan_render_calls_postcmds PASSED [ 82%]
tests/unittests/test_net.py::TestNetplanPostcommands::test_netplan_postcmds PASSED [ 82%]
tests/unittests/test_net.py::TestEniNetworkStateToEni::test_no_header PASSED [ 82%]
tests/unittests/test_net.py::TestEniNetworkStateToEni::test_with_header PASSED [ 82%]
tests/unittests/test_net.py::TestEniNetworkStateToEni::test_no_hwaddress PASSED [ 82%]
tests/unittests/test_net.py::TestCmdlineConfigParsing::test_cmdline_convert_dhcp PASSED [ 82%]
tests/unittests/test_net.py::TestCmdlineConfigParsing::test_cmdline_convert_dhcp6 PASSED [ 82%]
tests/unittests/test_net.py::TestCmdlineConfigParsing::test_cmdline_convert_static PASSED [ 82%]
tests/unittests/test_net.py::TestCmdlineConfigParsing::test_config_from_cmdline_net_cfg PASSED [ 82%]
tests/unittests/test_net.py::TestCmdlineConfigParsing::test_cmdline_with_b64 PASSED [ 82%]
tests/unittests/test_net.py::TestCmdlineConfigParsing::test_cmdline_with_net_config_disabled PASSED [ 82%]
tests/unittests/test_net.py::TestCmdlineConfigParsing::test_cmdline_with_net_config_unencoded_logs_error PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineConfigParsing::test_cmdline_with_b64_gz PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_without_ip PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_with_ip PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_with_ip6 PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_with_no_ip_or_ip6 PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_with_faux_ip PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_empty_cmdline PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_whitespace_cmdline PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_cmdline_no_lhand PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_cmdline_embedded_ip PASSED [ 83%]
tests/unittests/test_net.py::TestCmdlineKlibcNetworkConfigSource::test_with_both_ip_ip6 PASSED [ 83%]
tests/unittests/test_net.py::TestReadInitramfsConfig::test_no_sources PASSED [ 83%]
tests/unittests/test_net.py::TestReadInitramfsConfig::test_no_applicable_sources PASSED [ 83%]
tests/unittests/test_net.py::TestReadInitramfsConfig::test_one_applicable_source PASSED [ 83%]
tests/unittests/test_net.py::TestReadInitramfsConfig::test_one_applicable_source_after_inapplicable_sources PASSED [ 83%]
tests/unittests/test_net.py::TestReadInitramfsConfig::test_first_applicable_source_is_used PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[bond_v1-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[bond_v2-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[small_v1-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[v4_and_v6-yaml_v1] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[v4_and_v6-yaml_v2] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[v1_ipv4_and_ipv6_static-yaml_v1] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[v2_ipv4_and_ipv6_static-yaml_v2] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[dhcpv6_only-yaml_v1] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[dhcpv6_only-yaml_v2] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[dhcpv6_accept_ra-yaml_v1] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[dhcpv6_reject_ra-yaml_v1] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[ipv6_slaac-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[dhcpv6_stateless-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[dhcpv6_stateful-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[wakeonlan_disabled-yaml_v2] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[wakeonlan_enabled-yaml_v2] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[large_v1-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[manual-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_config[v1-dns-yaml] XFAIL [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_render_output_has_yaml_no_aliases PASSED [ 83%]
tests/unittests/test_net.py::TestNetplanRoundTrip::test_render_output_supports_both_grat_arp_spelling PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::testsimple_convert_and_render PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[large_v1-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[large_v2-yaml] XFAIL [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[small_v1-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[small_v2-yaml] XFAIL [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[v4_and_v6-yaml_v1] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[v4_and_v6-yaml_v2] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[dhcpv6_only-yaml_v1] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[dhcpv6_only-yaml_v2] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[v1_ipv4_and_ipv6_static-yaml_v1] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[v2_ipv4_and_ipv6_static-yaml_v2] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[dhcpv6_stateless-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[ipv6_slaac-yaml] PASSED [ 83%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[dhcpv6_stateful-yaml] XFAIL [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[dhcpv6_accept_ra-yaml_v1] PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[dhcpv6_accept_ra-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[dhcpv6_reject_ra-yaml_v1] PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[dhcpv6_reject_ra-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[wakeonlan_disabled-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[wakeonlan_enabled-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[manual-yaml] PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[bond_v1-yaml] PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[bond_v2-yaml] XFAIL [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[v1-dns-yaml] XFAIL [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_config[v2-dns-yaml] XFAIL [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_routes_rendered PASSED [ 84%]
tests/unittests/test_net.py::TestEniRoundTrip::test_ipv6_static_routes PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdNetRendering::test_networkd_default_generation PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[v4_and_v6-yaml_v1] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[v4_and_v6-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[v1_ipv4_and_ipv6_static-yaml_v1] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[v2_ipv4_and_ipv6_static-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[dhcpv6_only-yaml_v1] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[dhcpv6_only-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[dhcpv6_accept_ra-yaml_v1] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[dhcpv6_accept_ra-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[dhcpv6_reject_ra-yaml_v1] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_config[dhcpv6_reject_ra-yaml_v2] PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::testsimple_render_small_networkd_v1 PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::testsimple_render_small_networkd_v2 PASSED [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_v1_dns XFAIL [ 84%]
tests/unittests/test_net.py::TestNetworkdRoundTrip::test_v2_dns PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[RendererNotFoundError-False-False-False-False-False] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[eni-False-True-False-False-False] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[eni-True-True-False-False-False] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[netplan-True-False-False-False-False0] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[netplan-True-False-False-False-False1] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[sysconfig-False-False-True-False-False] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[sysconfig-False-False-True-True-False] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[network-manager-False-False-False-True-False] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[network-manager-False-False-False-True-True] PASSED [ 84%]
tests/unittests/test_net.py::TestRenderersSelect::test_valid_renderer_from_defaults_depending_on_availability[networkd-False-False-False-False-True] PASSED [ 84%]
tests/unittests/test_net.py::TestNetRenderers::test_eni_and_sysconfig_available PASSED [ 84%]
tests/unittests/test_net.py::TestNetRenderers::test_search_returns_empty_on_none PASSED [ 84%]
tests/unittests/test_net.py::TestNetRenderers::test_first_in_priority PASSED [ 84%]
tests/unittests/test_net.py::TestNetRenderers::test_select_positive PASSED [ 84%]
tests/unittests/test_net.py::TestNetRenderers::test_select_none_found_raises PASSED [ 84%]
tests/unittests/test_net.py::TestNetRenderers::test_sysconfig_available_uses_variant_mapping PASSED [ 84%]
tests/unittests/test_net.py::TestNetRenderers::test_networkd_available PASSED [ 84%]
tests/unittests/test_net.py::TestGetInterfaces::test_gi_includes_duplicate_macs PASSED [ 84%]
tests/unittests/test_net.py::TestGetInterfaces::test_gi_excludes_any_without_mac_address PASSED [ 84%]
tests/unittests/test_net.py::TestGetInterfaces::test_gi_excludes_stolen_macs PASSED [ 84%]
tests/unittests/test_net.py::TestGetInterfaces::test_gi_excludes_bridges PASSED [ 84%]
tests/unittests/test_net.py::TestInterfaceHasOwnMac::test_non_strict_with_no_addr_assign_type PASSED [ 84%]
tests/unittests/test_net.py::TestInterfaceHasOwnMac::test_strict_with_no_addr_assign_type_raises PASSED [ 85%]
tests/unittests/test_net.py::TestInterfaceHasOwnMac::test_expected_values PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_raise_exception_on_duplicate_macs PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_raise_exception_on_duplicate_netvsc_macs PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_excludes_any_without_mac_address PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_excludes_stolen_macs PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_excludes_bridges PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_excludes_vlans PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_duplicates_of_empty_mac_are_ok PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_skip_all_zeros PASSED [ 85%]
tests/unittests/test_net.py::TestGetInterfacesByMac::test_ib PASSED [ 85%]
tests/unittests/test_net.py::TestDuplicateMac::test_duplicate_ignored_macs[mscc_felix] PASSED [ 85%]
tests/unittests/test_net.py::TestDuplicateMac::test_duplicate_ignored_macs[fsl_enetc] PASSED [ 85%]
tests/unittests/test_net.py::TestDuplicateMac::test_duplicate_ignored_macs[qmi_wwan] PASSED [ 85%]
tests/unittests/test_net.py::TestInterfacesSorting::test_natural_order PASSED [ 85%]
tests/unittests/test_net.py::TestGetIBHwaddrsByInterface::test_ethernet PASSED [ 85%]
tests/unittests/test_net.py::TestGetIBHwaddrsByInterface::test_ib PASSED [ 85%]
tests/unittests/test_net.py::TestRenameInterfaces::test_rename_all PASSED [ 85%]
tests/unittests/test_net.py::TestRenameInterfaces::test_rename_no_driver_no_device_id PASSED [ 85%]
tests/unittests/test_net.py::TestRenameInterfaces::test_rename_all_bounce PASSED [ 85%]
tests/unittests/test_net.py::TestRenameInterfaces::test_rename_duplicate_macs PASSED [ 85%]
tests/unittests/test_net.py::TestRenameInterfaces::test_rename_duplicate_macs_driver_no_devid PASSED [ 85%]
tests/unittests/test_net.py::TestRenameInterfaces::test_rename_multi_mac_dups PASSED [ 85%]
tests/unittests/test_net.py::TestRenameInterfaces::test_rename_macs_case_insensitive PASSED [ 85%]
tests/unittests/test_net.py::TestNetworkState::test_bcast_addr PASSED [ 85%]
tests/unittests/test_net_activators.py::TestSearchAndSelect::test_empty_list PASSED [ 85%]
tests/unittests/test_net_activators.py::TestSearchAndSelect::test_priority PASSED [ 85%]
tests/unittests/test_net_activators.py::TestSearchAndSelect::test_target PASSED [ 85%]
tests/unittests/test_net_activators.py::TestSearchAndSelect::test_first_not_available PASSED [ 85%]
tests/unittests/test_net_activators.py::TestSearchAndSelect::test_priority_not_exist PASSED [ 85%]
tests/unittests/test_net_activators.py::TestSearchAndSelect::test_none_available PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsAvailable::test_available[IfUpDownActivator-available_calls0] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsAvailable::test_available[NetplanActivator-available_calls1] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsAvailable::test_available[NetworkdActivator-available_calls2] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interface_log_level_on_stderr[IfUpDownActivator-expected_call_list0] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interface_log_level_on_stderr[NetplanActivator-expected_call_list1] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interface_log_level_on_stderr[NetworkManagerActivator-expected_call_list2] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interface_log_level_on_stderr[NetworkdActivator-expected_call_list3] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interface[IfUpDownActivator-expected_call_list0] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interface[NetplanActivator-expected_call_list1] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interface[NetworkManagerActivator-expected_call_list2] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interface[NetworkdActivator-expected_call_list3] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interfaces[IfUpDownActivator-expected_call_list0] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interfaces[NetplanActivator-expected_call_list1] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interfaces[NetworkManagerActivator-expected_call_list2] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_interfaces[NetworkdActivator-expected_call_list3] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_all_interfaces_v1[IfUpDownActivator-expected_call_list0] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_all_interfaces_v1[NetplanActivator-expected_call_list1] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_all_interfaces_v1[NetworkManagerActivator-expected_call_list2] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_all_interfaces_v1[NetworkdActivator-expected_call_list3] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_all_interfaces_v2[IfUpDownActivator-expected_call_list0] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_all_interfaces_v2[NetplanActivator-expected_call_list1] PASSED [ 85%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_all_interfaces_v2[NetworkManagerActivator-expected_call_list2] PASSED [ 86%]
tests/unittests/test_net_activators.py::TestActivatorsBringUp::test_bring_up_all_interfaces_v2[NetworkdActivator-expected_call_list3] PASSED [ 86%]
tests/unittests/test_net_activators.py::TestActivatorsBringDown::test_bring_down_interface[IfUpDownActivator-expected_call_list0] PASSED [ 86%]
tests/unittests/test_net_activators.py::TestActivatorsBringDown::test_bring_down_interface[NetplanActivator-expected_call_list1] PASSED [ 86%]
tests/unittests/test_net_activators.py::TestActivatorsBringDown::test_bring_down_interface[NetworkManagerActivator-expected_call_list2] PASSED [ 86%]
tests/unittests/test_net_activators.py::TestActivatorsBringDown::test_bring_down_interface[NetworkdActivator-expected_call_list3] PASSED [ 86%]
tests/unittests/test_net_activators.py::TestNetworkManagerActivatorBringUp::test_bring_up_interface_no_nm_conn PASSED [ 86%]
tests/unittests/test_net_activators.py::TestNetworkManagerActivatorBringUp::test_bring_up_interface_no_plugin_no_nm_conn PASSED [ 86%]
tests/unittests/test_net_activators.py::TestNetworkManagerActivatorBringUp::test_bring_up_interface_no_conn_file PASSED [ 86%]
tests/unittests/test_net_freebsd.py::TestInterfacesByMac::test_get_interfaces_by_mac PASSED [ 86%]
tests/unittests/test_net_freebsd.py::TestFreeBSDRoundTrip::test_render_output_has_yaml PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_old_nettools_pformat PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_new_nettools_pformat PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_freebsd_nettools_pformat PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_iproute_pformat[1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000\n link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n inet 127.0.0.1/8 scope host lo\\ valid_lft forever preferred_lft forever\n inet6 ::1/128 scope host \\ valid_lft forever preferred_lft forever\n2: enp0s25: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000\n link/ether 50:7b:9d:2c:af:91 brd ff:ff:ff:ff:ff:ff\n inet 192.168.2.18/24 metric 100 brd 192.168.2.255 scope global dynamic enp0s25\n valid_lft 84174sec preferred_lft 84174sec\n inet6 fe80::7777:2222:1111:eeee/64 scope global\n valid_lft forever preferred_lft forever\n inet6 fe80::8107:2b92:867e:f8a6/64 scope link\n valid_lft forever preferred_lft forever\n-False] PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_iproute_pformat[[\n {\n "ifindex": 1,\n "ifname": "lo",\n "flags": [\n "LOOPBACK",\n "UP",\n "LOWER_UP"\n ],\n "mtu": 65536,\n "qdisc": "noqueue",\n "operstate": "UNKNOWN",\n "group": "default",\n "txqlen": 1000,\n "link_type": "loopback",\n "address": "00:00:00:00:00:00",\n "broadcast": "00:00:00:00:00:00",\n "addr_info": [\n {\n "family": "inet",\n "local": "127.0.0.1",\n "prefixlen": 8,\n "scope": "host",\n "label": "lo",\n "valid_life_time": 4294967295,\n "preferred_life_time": 4294967295\n },\n {\n "family": "inet6",\n "local": "::1",\n "prefixlen": 128,\n "scope": "host",\n "valid_life_time": 4294967295,\n "preferred_life_time": 4294967295\n }\n ]\n },\n {\n "ifindex": 23,\n "link_index": 24,\n "ifname": "enp0s25",\n "flags": [\n "BROADCAST",\n "MULTICAST",\n "UP",\n "LOWER_UP"\n ],\n "mtu": 1500,\n "qdisc": "noqueue",\n "operstate": "UP",\n "group": "default",\n "txqlen": 1000,\n "link_type": "ether",\n "address": "50:7b:9d:2c:af:91",\n "broadcast": "ff:ff:ff:ff:ff:ff",\n "link_netnsid": 0,\n "addr_info": [\n {\n "family": "inet",\n "local": "192.168.2.18",\n "prefixlen": 24,\n "metric": 100,\n "broadcast": "192.168.2.255",\n "scope": "global",\n "dynamic": true,\n "label": "enp0s25",\n "valid_life_time": 2339,\n "preferred_life_time": 2339\n },\n {\n "family": "inet6",\n "local": "fe80::7777:2222:1111:eeee",\n "prefixlen": 64,\n "scope": "global",\n "dynamic": true,\n "mngtmpaddr": true,\n "noprefixroute": true,\n "valid_life_time": 6823,\n "preferred_life_time": 3223\n },\n {\n "family": "inet6",\n "local": "fe80::8107:2b92:867e:f8a6",\n "prefixlen": 64,\n "scope": "link",\n "valid_life_time": 4294967295,\n "preferred_life_time": 4294967295\n }\n ]\n }\n]\n-True] PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_warn_on_missing_commands PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_info_nettools_down PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_info_iproute_down[netinfo/sample-ipaddrshow-output-down-False] PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_info_iproute_down[netinfo/sample-ipaddrshow-json-down-True] PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_pformat_with_down PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_route_nettools_pformat PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_route_iproute_pformat PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_route_iproute_pformat_missing_gateway PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_route_warn_on_missing_commands PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_info_iproute_json[input0-expected0] PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_info_iproute_json[input1-expected1] PASSED [ 86%]
tests/unittests/test_netinfo.py::TestNetInfo::test_netdev_info_iproute_json[input2-expected2] PASSED [ 86%]
tests/unittests/test_pathprefix2dict.py::TestPathPrefix2Dict::test_no_required_and_optional PASSED [ 86%]
tests/unittests/test_pathprefix2dict.py::TestPathPrefix2Dict::test_required_and_optional PASSED [ 86%]
tests/unittests/test_pathprefix2dict.py::TestPathPrefix2Dict::test_required_missing PASSED [ 86%]
tests/unittests/test_pathprefix2dict.py::TestPathPrefix2Dict::test_required_only PASSED [ 86%]
tests/unittests/test_persistence.py::TestPickleMixin::test_unpickle_called PASSED [ 86%]
tests/unittests/test_persistence.py::TestPickleMixin::test_subclasses[InstanceVersionNotUsed] PASSED [ 86%]
tests/unittests/test_persistence.py::TestPickleMixin::test_subclasses[MissingVersionHandled] PASSED [ 86%]
tests/unittests/test_persistence.py::TestPickleMixin::test_subclasses[OverridenVersionHonored] PASSED [ 86%]
tests/unittests/test_persistence.py::TestPickleMixin::test_subclasses[StateIsRestored] PASSED [ 86%]
tests/unittests/test_persistence.py::TestPickleMixin::test_subclasses[UnpickleCanBeUnoverriden] PASSED [ 86%]
tests/unittests/test_persistence.py::TestPickleMixin::test_subclasses[VersionDefaultsToZero] PASSED [ 86%]
tests/unittests/test_persistence.py::TestPickleMixin::test_subclasses[VersionIsPoppedFromState] PASSED [ 86%]
tests/unittests/test_registry.py::TestDictRegistry::test_added_item_included_in_output PASSED [ 86%]
tests/unittests/test_registry.py::TestDictRegistry::test_keys_cannot_be_replaced PASSED [ 86%]
tests/unittests/test_registry.py::TestDictRegistry::test_modifying_registered_items_isnt_exposed_to_other_callers PASSED [ 86%]
tests/unittests/test_registry.py::TestDictRegistry::test_registry_starts_out_empty PASSED [ 86%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg_subp PASSED [ 86%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_prefix_in_cloud_cfg_subp PASSED [ 86%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[amazon] PASSED [ 86%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[arch] PASSED [ 86%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[azurelinux] PASSED [ 86%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[centos] PASSED [ 86%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[debian] PASSED [ 86%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[eurolinux] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[fedora] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[freebsd] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[gentoo] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[mariner] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[netbsd] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[openbsd] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[photon] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[rhel] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[suse] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[ubuntu] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_distro_in_cloud_cfg[unknown] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[amazon] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[arch] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[azurelinux] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[centos] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[debian] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[eurolinux] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[fedora] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[freebsd] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[gentoo] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[mariner] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[netbsd] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[openbsd] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[photon] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[rhel] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[suse] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[ubuntu] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_default_user_in_cloud_cfg[unknown] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_network_renderer_priority_in_cloud_cfg[freebsd-renderers0] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_network_renderer_priority_in_cloud_cfg[netbsd-renderers1] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_network_renderer_priority_in_cloud_cfg[openbsd-renderers2] PASSED [ 87%]
tests/unittests/test_render_template.py::TestRenderCloudCfg::test_variant_sets_network_renderer_priority_in_cloud_cfg[ubuntu-renderers3] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[invalid_nondict_config] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[handle_whitespace_and_comments] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[list_items] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[nested_dicts_within_dicts] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[nested_dicts_within_list] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[list_of_scalar] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[dict_of_lists_oneline] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[dict_of_lists_multiline] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[separate_dicts_scalar_vs_nested_list] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[separate_dicts_nested_lists] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[list_of_dict_items] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[list_of_dict_items_with_nested_lists] PASSED [ 87%]
tests/unittests/test_safeyaml.py::TestLoadWithMarks::test_schema_marks_preserved[list_of_dict_items_with_nested_lists_of_lists] PASSED [ 87%]
tests/unittests/test_simpletable.py::TestSimpleTable::test_authorized_keys PASSED [ 87%]
tests/unittests/test_simpletable.py::TestSimpleTable::test_get_string PASSED [ 87%]
tests/unittests/test_simpletable.py::TestSimpleTable::test_net_dev PASSED [ 87%]
tests/unittests/test_simpletable.py::TestSimpleTable::test_no_rows PASSED [ 87%]
tests/unittests/test_simpletable.py::TestSimpleTable::test_route_ipv4 PASSED [ 87%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-True-True] PASSED [ 87%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[rsa-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[rsa-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[rsa-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[rsa-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ed25519-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ed25519-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ed25519-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ed25519-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp256-cert-v01@openssh.com-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp256-cert-v01@openssh.com-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp256-cert-v01@openssh.com-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp256-cert-v01@openssh.com-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp256-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp256-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp256-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp256-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp384-cert-v01@openssh.com-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp384-cert-v01@openssh.com-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp384-cert-v01@openssh.com-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp384-cert-v01@openssh.com-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp384-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp384-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp384-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp384-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp521-cert-v01@openssh.com-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp521-cert-v01@openssh.com-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp521-cert-v01@openssh.com-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp521-cert-v01@openssh.com-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp521-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp521-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp521-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ecdsa-sha2-nistp521-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ecdsa-sha2-nistp256-cert-v01@openssh.com-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ecdsa-sha2-nistp256-cert-v01@openssh.com-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ecdsa-sha2-nistp256-cert-v01@openssh.com-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ecdsa-sha2-nistp256-cert-v01@openssh.com-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ecdsa-sha2-nistp256@openssh.com-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ecdsa-sha2-nistp256@openssh.com-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ecdsa-sha2-nistp256@openssh.com-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ecdsa-sha2-nistp256@openssh.com-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ssh-ed25519-cert-v01@openssh.com-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ssh-ed25519-cert-v01@openssh.com-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ssh-ed25519-cert-v01@openssh.com-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ssh-ed25519-cert-v01@openssh.com-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ssh-ed25519@openssh.com-True-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ssh-ed25519@openssh.com-True-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ssh-ed25519@openssh.com-False-True] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[sk-ssh-ed25519@openssh.com-False-False] PASSED [ 88%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-ed25519-cert-v01@openssh.com-True-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-ed25519-cert-v01@openssh.com-True-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-ed25519-cert-v01@openssh.com-False-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-ed25519-cert-v01@openssh.com-False-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-ed25519-True-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-ed25519-True-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-ed25519-False-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-ed25519-False-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-rsa-cert-v01@openssh.com-True-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-rsa-cert-v01@openssh.com-True-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-rsa-cert-v01@openssh.com-False-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-rsa-cert-v01@openssh.com-False-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-rsa-True-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-rsa-True-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-rsa-False-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-rsa-False-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-xmss-cert-v01@openssh.com-True-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-xmss-cert-v01@openssh.com-True-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-xmss-cert-v01@openssh.com-False-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-xmss-cert-v01@openssh.com-False-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-xmss@openssh.com-True-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-xmss@openssh.com-True-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-xmss@openssh.com-False-True] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse[ssh-xmss@openssh.com-False-False] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse_with_options_passed_in PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestAuthKeyLineParser::test_parse_invalid_keytype PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateAuthorizedKeys::test_new_keys_replace[new_entries0] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateAuthorizedKeys::test_new_keys_replace[skip-invalid-entries] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_dummy_file[empty-file] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_dummy_file[not-a-file] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_comment_line[comment_line] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_comment_line[two-comment_lines] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_blank_lines PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_case_config[lower-case] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_case_config[upper-case] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_case_config[lower-case-with-equals] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_case_config[upper-case-with-equals] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestParseSSHConfig::test_duplicated_keys PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfigLines::test_update_ssh_config_lines[new_option_added] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfigLines::test_update_ssh_config_lines[commented_out_not_updated_but_appended] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfigLines::test_option_without_value PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfigLines::test_single_option_updated PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfigLines::test_multiple_updates_with_add PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfigLines::test_return_empty_if_no_changes PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfigLines::test_keycase_not_modified PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfig::test_modified PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfig::test_not_modified PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfig::test_without_include PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfig::test_with_include[Include {mycfg}.d/*.conf] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfig::test_with_include[Include {mycfg}.d/*.conf # comment] PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfig::test_with_commented_include PASSED [ 89%]
tests/unittests/test_ssh_util.py::TestUpdateSshConfig::test_with_other_include PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestAppendSshConfig::test_append_ssh_config PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestBasicAuthorizedKeyParse::test_render_authorizedkeysfile_paths[user] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestBasicAuthorizedKeyParse::test_render_authorizedkeysfile_paths[user_file] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestBasicAuthorizedKeyParse::test_render_authorizedkeysfile_paths[user_file_2] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestBasicAuthorizedKeyParse::test_render_authorizedkeysfile_paths[multiple] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestBasicAuthorizedKeyParse::test_render_authorizedkeysfile_paths[multiple_2] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestBasicAuthorizedKeyParse::test_render_authorizedkeysfile_paths[relative] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestBasicAuthorizedKeyParse::test_render_authorizedkeysfile_paths[home] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestBasicAuthorizedKeyParse::test_render_authorizedkeysfile_paths[all] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_single_user_two_local_files[False] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_single_user_two_local_files[True] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_single_user_local_global_files[False] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_single_user_local_global_files[True] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_single_user_global_file PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_local_file_standard PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_local_file_custom PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_local_global_files PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_local_global_files_badguy PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_unaccessible_file PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_accessible_file PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_hardcoded_single_user_file[False] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_hardcoded_single_user_file[True] PASSED [ 90%]
tests/unittests/test_ssh_util.py::TestMultipleSshAuthorizedKeysFile::test_two_users_hardcoded_user_files PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content0-True-cfg0] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content0-True-cfg1] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content0-True-cfg2] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content0-True-cfg3] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content0-True-cfg4] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content1-False-cfg0] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content1-False-cfg1] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content1-False-cfg2] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content1-False-cfg3] PASSED [ 90%]
tests/unittests/test_stages.py::TestUpdateEventEnabled::test_hotplug_added_by_file[enabled_file_content1-False-cfg4] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled_by_kernel[net_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled_by_kernel[net_config1] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled_by_initrd[net_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled_by_initrd[net_config1] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled_by_datasrc[net_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled_by_datasrc[net_config1] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled_by_sysconfig[net_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_disabled_by_sysconfig[net_config1] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test__find_networking_config_uses_datasrc_order[in_config0-out_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test__find_networking_config_uses_datasrc_order[in_config1-out_config1] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test__find_networking_config_warns_if_datasrc_uses_invalid_src[in_config0-out_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test__find_networking_config_warns_if_datasrc_uses_invalid_src[in_config1-out_config1] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test__find_networking_config_warns_if_datasrc_uses_unavailable_src[in_config0-out_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test__find_networking_config_warns_if_datasrc_uses_unavailable_src[in_config1-out_config1] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_kernel[in_config0-out_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_kernel[in_config1-out_config1] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_initramfs[in_config0-out_config0] PASSED [ 90%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_initramfs[in_config1-out_config1] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_system_cfg[in_config0-out_config0] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_system_cfg[in_config1-out_config1] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_datasrc_cfg[in_config0-out_config0] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_datasrc_cfg[in_config1-out_config1] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_wb__find_networking_config_returns_fallback PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_warn_on_empty_network PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_apply_network_config_disabled PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_apply_network_on_new_instance[True] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_apply_network_on_new_instance[False] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_apply_network_on_same_instance_id PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_apply_network_allowed_when_default_boot PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_apply_network_disabled_when_no_default_boot PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_apply_network_allowed_with_userdata_overrides PASSED [ 91%]
tests/unittests/test_stages.py::TestInit::test_apply_network_disabled_when_unsupported PASSED [ 91%]
tests/unittests/test_stages.py::TestInit_InitializeFilesystem::test_ensure_file_not_called_if_no_log_file_configured PASSED [ 91%]
tests/unittests/test_stages.py::TestInit_InitializeFilesystem::test_log_files_existence_is_ensured_if_configured PASSED [ 91%]
tests/unittests/test_stages.py::TestInit_InitializeFilesystem::test_existing_file_permissions[511-416] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit_InitializeFilesystem::test_existing_file_permissions[416-416] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit_InitializeFilesystem::test_existing_file_permissions[390-384] PASSED [ 91%]
tests/unittests/test_stages.py::TestInit_InitializeFilesystem::test_existing_file_permissions[321-256] PASSED [ 91%]
tests/unittests/test_stages.py::test_strictest_permissions[511-416-416] PASSED [ 91%]
tests/unittests/test_stages.py::test_strictest_permissions[416-511-416] PASSED [ 91%]
tests/unittests/test_stages.py::test_strictest_permissions[416-353-288] PASSED [ 91%]
tests/unittests/test_stages.py::test_strictest_permissions[73-40-8] PASSED [ 91%]
tests/unittests/test_stages.py::test_strictest_permissions[409-416-384] PASSED [ 91%]
tests/unittests/test_stages.py::test_strictest_permissions[433-416-416] PASSED [ 91%]
tests/unittests/test_stages.py::test_strictest_permissions[299-393-265] PASSED [ 91%]
tests/unittests/test_subp.py::TestPrependBaseCommands::test_prepend_base_command_errors_on_neither_string_nor_list PASSED [ 91%]
tests/unittests/test_subp.py::TestPrependBaseCommands::test_prepend_base_command_prepends_on_non_base_list_commands PASSED [ 91%]
tests/unittests/test_subp.py::TestPrependBaseCommands::test_prepend_base_command_removes_first_item_when_none PASSED [ 91%]
tests/unittests/test_subp.py::TestPrependBaseCommands::test_prepend_base_command_warns_on_non_base_string_commands PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_bunch_of_slashes_in_path PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_c_lang_can_take_utf8_args PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_exception_has_out_err_are_bytes_if_decode_false PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_exception_has_out_err_are_bytes_if_decode_true PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_exception_invalid_command PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_returns_none_if_no_capture PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_capture_stderr PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_decode_ignore PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_decode_invalid_utf8_replaces PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_decode_strict_raises PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_decode_strict_valid_utf8 PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_handles_bytestrings PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_handles_strings PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_handles_utf8 PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_reads_env PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_respects_decode_false PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_update_env PASSED [ 91%]
tests/unittests/test_subp.py::TestSubp::test_subp_warn_missing_shebang PASSED [ 91%]
tests/unittests/test_temp_utils.py::TestTempUtils::test_mkdtemp_default_non_root PASSED [ 91%]
tests/unittests/test_temp_utils.py::TestTempUtils::test_mkdtemp_default_non_root_needs_exe PASSED [ 92%]
tests/unittests/test_temp_utils.py::TestTempUtils::test_mkdtemp_default_root PASSED [ 92%]
tests/unittests/test_temp_utils.py::TestTempUtils::test_mkstemp_default_non_root PASSED [ 92%]
tests/unittests/test_temp_utils.py::TestTempUtils::test_mkstemp_default_root PASSED [ 92%]
tests/unittests/test_temp_utils.py::TestTempUtils::test_tempdir_error_suppression PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_jinja_do_extension_render_to_string PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_jinja_nonascii_render_from_file PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_jinja_nonascii_render_to_file PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_jinja_nonascii_render_to_string PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_jinja_nonascii_render_undefined_variables_to_default_py3 PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_jinja_warns_on_missing_dep_and_uses_basic_renderer SKIPPED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_render_basic PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_render_basic2 PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_render_basic_deeper PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_render_basic_no_parens PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_render_basic_parens PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_render_default PASSED [ 92%]
tests/unittests/test_templating.py::TestTemplates::test_render_jinja PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_jinja_syntax_parsing_exception_message PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_functionality_for_various_syntax_errors[4-replace_tuple0-unexpected '}'] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_functionality_for_various_syntax_errors[6-replace_tuple1-expected token 'end of statement block', got '%'] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_functionality_for_various_syntax_errors[8-replace_tuple2-expected token 'end of statement block', got '%'] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_functionality_for_various_syntax_errors[4-replace_tuple3-unexpected '}'] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_functionality_for_various_syntax_errors[6-replace_tuple4-unexpected '}'] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_functionality_for_various_syntax_errors[8-replace_tuple5-unexpected '}'] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_functionality_for_various_syntax_errors[4-replace_tuple6-expected token 'end of statement block', got '='] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_functionality_for_various_syntax_errors[7-replace_tuple7-unexpected '}'] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_format_error_message_with_content_line PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_format_error_message_without_content_line[] PASSED [ 92%]
tests/unittests/test_templating.py::TestJinjaSyntaxParsingException::test_format_error_message_without_content_line[None] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_all_ds_init_vs_unpickle_attributes[mode0] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_all_ds_init_vs_unpickle_attributes[mode1] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_pkl_load_defines_all_init_side_effect_attributes[focal-20.1-10-g71af48df-0ubuntu5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_networking_set_on_distro[focal-20.1-10-g71af48df-0ubuntu5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_paths_has_run_dir_attribute[focal-20.1-10-g71af48df-0ubuntu5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_vendordata_exists[focal-20.1-10-g71af48df-0ubuntu5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_pkl_load_defines_all_init_side_effect_attributes[focal-azure-20.1-10-g71af48df-0ubuntu5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_networking_set_on_distro[focal-azure-20.1-10-g71af48df-0ubuntu5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_paths_has_run_dir_attribute[focal-azure-20.1-10-g71af48df-0ubuntu5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_vendordata_exists[focal-azure-20.1-10-g71af48df-0ubuntu5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_pkl_load_defines_all_init_side_effect_attributes[focal-20.3-2-g371b392c-0ubuntu1~20.04.1.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_networking_set_on_distro[focal-20.3-2-g371b392c-0ubuntu1~20.04.1.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_paths_has_run_dir_attribute[focal-20.3-2-g371b392c-0ubuntu1~20.04.1.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_vendordata_exists[focal-20.3-2-g371b392c-0ubuntu1~20.04.1.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_pkl_load_defines_all_init_side_effect_attributes[trusty-14.04.1-0.7.5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_networking_set_on_distro[trusty-14.04.1-0.7.5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_paths_has_run_dir_attribute[trusty-14.04.1-0.7.5.pkl] PASSED [ 92%]
tests/unittests/test_upgrade.py::TestUpgrade::test_vendordata_exists[trusty-14.04.1-0.7.5.pkl] PASSED [ 92%]
tests/unittests/test_url_helper.py::TestOAuthHeaders::test_oauth_headers_calls_oathlibclient_when_available PASSED [ 92%]
tests/unittests/test_url_helper.py::TestOAuthHeaders::test_oauth_headers_raises_not_implemented_when_oathlib_missing PASSED [ 92%]
tests/unittests/test_url_helper.py::TestReadFileOrUrl::test_read_file_or_url_str_from_file PASSED [ 92%]
tests/unittests/test_url_helper.py::TestReadFileOrUrl::test_read_file_or_url_str_from_url PASSED [ 92%]
tests/unittests/test_url_helper.py::TestReadFileOrUrl::test_read_file_or_url_str_from_url_redacting_headers_from_logs PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrl::test_read_file_or_url_str_from_url_redacts_noheaders PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrl::test_read_file_or_url_str_from_url_streamed PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrl::test_wb_read_url_defaults_honored_by_read_file_or_url_callers PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_read_file_or_url_passes_params_to_readurl[1_0] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_read_file_or_url_passes_params_to_readurl[1.2] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_read_file_or_url_passes_params_to_readurl[1_1] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_read_file_or_url_passes_params_to_readurl[timeout3] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_read_file_or_url_passes_params_to_readurl[timeout4] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_read_file_or_url_passes_params_to_readurl[timeout5] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[-1-0_0] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[-1-0_1] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[None-None] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[1-1.0_0] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[1.2-1.2] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[1-1.0_1] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[readurl_timeout6-request_timeout6] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[readurl_timeout7-request_timeout7] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadFileOrUrlParameters::test_readurl_timeout[readurl_timeout8-request_timeout8] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadUrl::test_headers[headers0] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadUrl::test_headers[headers1] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadUrl::test_headers_cb[headers0] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestReadUrl::test_headers_cb[headers1] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack[<lambda>-addresses0-1-1-one] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack[<lambda>-addresses1-1-0-None] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack[<lambda>-addresses2-0-1-two] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack[<lambda>-addresses3-0-1-one] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack[<lambda>-addresses4-0-1-two] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack[<lambda>-addresses5-0-1-tri] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack_exceptions[<lambda>-addresses0-0-1-division by zero-ZeroDivisionError] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack_exceptions[<lambda>-addresses1-0-1-division by zero-ZeroDivisionError] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack_exceptions[<lambda>-addresses2-0-1-list index out of range-IndexError] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack_exceptions[<lambda>-addresses3-0-1-soapstone is not effective soap-Exception] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestDualStack::test_dual_stack_staggered PASSED [ 93%]
tests/unittests/test_url_helper.py::TestUrlHelper::test_order[addresses0-0-SUCCESS] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestUrlHelper::test_order[addresses1-1-SUCCESS] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestUrlHelper::test_order[addresses2-2-SUCCESS] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestUrlHelper::test_order[addresses3-0-SUCCESS] PASSED [ 93%]
tests/unittests/test_url_helper.py::TestUrlHelper::test_timeout PASSED [ 93%]
tests/unittests/test_url_helper.py::TestUrlHelper::test_explicit_arguments PASSED [ 93%]
tests/unittests/test_url_helper.py::TestUrlHelper::test_shortened_timeout PASSED [ 93%]
tests/unittests/test_url_helper.py::TestUrlHelper::test_default_sleep_time PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_parse_mount_info_no_opts_no_arg PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_parse_mount_info_no_opts_arg PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_parse_mount_info_with_opts PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_has_mount_opt[rw-True] PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_has_mount_opt[relatime-True] PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_has_mount_opt[idmapped-True] PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_has_mount_opt[noexec-False] PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_mount_is_rw PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_mount_is_ro PASSED [ 93%]
tests/unittests/test_util.py::TestUtil::test_read_conf PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_with_template PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_with_failed_config_json PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_with_failed_instance_data_json PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_with_config_invalid_jinja_syntax[{"a": "{{c} } }"] PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_with_config_invalid_jinja_syntax[{"a": "{{c} } "] PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_with_config_invalid_jinja_syntax[{% if c %} C is present {% else % } C is NOT present {% endif %}] PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_d_no_permissions PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_with_confd_no_permissions[False-expected_call0] PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_read_conf_with_confd_no_permissions[True-expected_call1] PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_fetch_ssl_details[True] PASSED [ 94%]
tests/unittests/test_util.py::TestUtil::test_fetch_ssl_details[False] PASSED [ 94%]
tests/unittests/test_util.py::TestSymlink::test_sym_link_create_dangling PASSED [ 94%]
tests/unittests/test_util.py::TestSymlink::test_sym_link_dangling_link PASSED [ 94%]
tests/unittests/test_util.py::TestSymlink::test_sym_link_simple PASSED [ 94%]
tests/unittests/test_util.py::TestSymlink::test_sym_link_source_exists PASSED [ 94%]
tests/unittests/test_util.py::TestUptime::test_uptime_non_linux_path PASSED [ 94%]
tests/unittests/test_util.py::TestShellify::test_input_dict_raises_type_error PASSED [ 94%]
tests/unittests/test_util.py::TestShellify::test_input_str_raises_type_error PASSED [ 94%]
tests/unittests/test_util.py::TestShellify::test_supports_comments PASSED [ 94%]
tests/unittests/test_util.py::TestShellify::test_supports_strings_and_lists PASSED [ 94%]
tests/unittests/test_util.py::TestShellify::test_value_with_int_raises_type_error PASSED [ 94%]
tests/unittests/test_util.py::TestGetHostnameFqdn::test_get_hostname_fqdn_from_cfg_fqdn_and_hostname PASSED [ 94%]
tests/unittests/test_util.py::TestGetHostnameFqdn::test_get_hostname_fqdn_from_cfg_hostname_with_domain PASSED [ 94%]
tests/unittests/test_util.py::TestGetHostnameFqdn::test_get_hostname_fqdn_from_cfg_hostname_without_domain PASSED [ 94%]
tests/unittests/test_util.py::TestGetHostnameFqdn::test_get_hostname_fqdn_from_only_cfg_fqdn PASSED [ 94%]
tests/unittests/test_util.py::TestGetHostnameFqdn::test_get_hostname_fqdn_from_passes_metadata_only_to_cloud PASSED [ 94%]
tests/unittests/test_util.py::TestGetHostnameFqdn::test_get_hostname_fqdn_from_without_fqdn_or_hostname PASSED [ 94%]
tests/unittests/test_util.py::TestBlkid::test_blkid_no_cache_uses_no_cache PASSED [ 94%]
tests/unittests/test_util.py::TestBlkid::test_functional_blkid PASSED [ 94%]
tests/unittests/test_util.py::TestUdevadmSettle::test_subp_exception_raises_to_caller PASSED [ 94%]
tests/unittests/test_util.py::TestUdevadmSettle::test_udevadm_not_present PASSED [ 94%]
tests/unittests/test_util.py::TestUdevadmSettle::test_with_exists_and_file_exists PASSED [ 94%]
tests/unittests/test_util.py::TestUdevadmSettle::test_with_exists_and_not_exists PASSED [ 94%]
tests/unittests/test_util.py::TestUdevadmSettle::test_with_exists_and_timeout PASSED [ 94%]
tests/unittests/test_util.py::TestUdevadmSettle::test_with_no_params PASSED [ 94%]
tests/unittests/test_util.py::TestUdevadmSettle::test_with_timeout_int PASSED [ 94%]
tests/unittests/test_util.py::TestUdevadmSettle::test_with_timeout_string PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_almalinux8_osrelease PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_almalinux8_rhrelease PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_azurelinux_os_release PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_centos6 PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_centos7_redhat_release PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_cloud8_osrelease PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_cloud8_rhrelease PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_copr_centos PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_cos PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_debian PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_distro_bare_name PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_distro_no_data PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_distro_no_impl PASSED [ 94%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_distro_plat_data PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_distro_quoted_name PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_eurolinux7_osrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_eurolinux7_rhrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_eurolinux8_osrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_eurolinux8_rhrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_freebsd PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_mariner_os_release PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_miraclelinux8_osrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_miraclelinux8_rhrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_opencloudos PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_openeuler PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_openmandriva PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_opensuse PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_opensuse_l15 PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_opensuse_tw PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_photon_os_release PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_redhat6_rhrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_redhat7_osrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_redhat7_rhrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_rocky8_osrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_rocky8_rhrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_tencentos PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_virtuozzo8_osrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetLinuxDistro::test_get_linux_virtuozzo8_rhrelease PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info0-almalinux] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info1-alpine] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info2-arch] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info3-azurelinux] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info4-centos] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info5-cloudlinux] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info6-debian] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info7-eurolinux] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info8-fedora] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info9-mariner] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info10-openeuler] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info11-opencloudos] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info12-photon] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info13-rhel] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info14-rocky] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info15-suse] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info16-tencentos] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info17-virtuozzo] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info18-ubuntu] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info19-ubuntu] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info20-ubuntu] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info21-rhel] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info22-suse] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info23-suse] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info24-suse] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info25-suse] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info26-suse] PASSED [ 95%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info27-linux] PASSED [ 96%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info28-windows] PASSED [ 96%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info29-darwin] PASSED [ 96%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info30-freebsd] PASSED [ 96%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info31-netbsd] PASSED [ 96%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info32-openbsd] PASSED [ 96%]
tests/unittests/test_util.py::TestGetVariant::test_get_variant[info33-dragonfly] PASSED [ 96%]
tests/unittests/test_util.py::TestJsonDumps::test_is_str PASSED [ 96%]
tests/unittests/test_util.py::TestJsonDumps::test_non_utf8 PASSED [ 96%]
tests/unittests/test_util.py::TestJsonDumps::test_utf8 PASSED [ 96%]
tests/unittests/test_util.py::TestIsLXD::test_is_lxd_false_when_sock_device_absent PASSED [ 96%]
tests/unittests/test_util.py::TestIsLXD::test_is_lxd_true_on_sock_device PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[random_string] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[foo cc: end_cc bar-None] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[foo cc: ssh_pwauth: true-expected_cfg2] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[foo cc: ssh_pwauth: true\\n-expected_cfg3] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[foo cc: ssh_pwauth: true end_cc bar-expected_cfg4] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_import_id: [smoser, kirkland]\\n-expected_cfg5] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_import_id: %5Bsmoser, kirkland%5D end_cc-expected_cfg6] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_import_id%3A%20%5Buser1%2C%20user2%5D end_cc-expected_cfg7] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ntp: {enabled: true, ntp_client: myclient} end_cc-expected_cfg8] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_import_id: smoser end_cc-expected_cfg9] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_import_id: [smoser, bob]\\nruncmd: [ [ ls, -l ], echo hi ] end_cc-expected_cfg10] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_import_id: %5Bsmoser, bob%5D\\nruncmd: [ [ ls, -l ], echo hi ] end_cc-expected_cfg11] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_import_id%3A%20%5Bsmoser%2C%20bob%5D%5Cnruncmd%3A%20%5B%20%5B%20ls%2C%20-l%20%5D%2C%20echo%20hi%20%5D end_cc-expected_cfg12] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_import_id%3A%20%5Bsmoser%2C%20bob%5D%0Aruncmd%3A%20%5B%20%5B%20ls%2C%20-l%20%5D%2C%20echo%20hi%20%5D end_cc-expected_cfg13] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc:ssh_import_id: [smoser, bob] end_cc cc: runcmd: [ [ ls, -l ] ] end_cc-expected_cfg14] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc:ssh_import_id%3A%20%5Bsmoser%5D end_cc cc:runcmd%3A%20%5B%20%5B%20ls%2C%20-l%20%5D%20%5D end_cc-expected_cfg15] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[BOOTIF=aa:bb:cc:dd bar-None] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[BOOTIF=aa:bb:cc:dd cc: end_cc bar-None] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[BOOTIF=aa:bb:cc:dd cc: ssh_pwauth: true-expected_cfg18] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[BOOTIF=aa:bb:cc:dd cc: ssh_pwauth: true end_cc-expected_cfg19] PASSED [ 96%]
tests/unittests/test_util.py::TestReadCcFromCmdline::test_read_conf_from_cmdline_config[cc: ssh_pwauth: true end_cc BOOTIF=aa:bb:cc:dd-expected_cfg20] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_normalize_mtype_on_bsd[iso9660-cd9660] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_normalize_mtype_on_bsd[vfat-msdos] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_normalize_mtype_on_bsd[msdosfs-msdos] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_normalize_mtype_on_bsd[ufs-ufs] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_typeerror_raised_for_invalid_mtype[0] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_typeerror_raised_for_invalid_mtype[0.0] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_typeerror_raised_for_invalid_mtype[invalid_mtype2] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_already_mounted_does_not_mount_or_umount_anything PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_already_mounted_calls_callback[/] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_already_mounted_calls_callback[] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_already_mounted_calls_callback_with_data PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_mount_cb_log[True] PASSED [ 96%]
tests/unittests/test_util.py::TestMountCb::test_mount_cb_log[False] PASSED [ 96%]
tests/unittests/test_util.py::TestEnsureFile::test_parameters_passed_through PASSED [ 96%]
tests/unittests/test_util.py::TestEnsureFile::test_defaults[mode-420] PASSED [ 96%]
tests/unittests/test_util.py::TestEnsureFile::test_defaults[preserve_mode-False] PASSED [ 96%]
tests/unittests/test_util.py::TestEnsureFile::test_static_parameters_are_passed PASSED [ 96%]
tests/unittests/test_util.py::TestRedirectOutputPreexecFn::test_preexec_fn_sets_umask[outfmt] PASSED [ 96%]
tests/unittests/test_util.py::TestRedirectOutputPreexecFn::test_preexec_fn_sets_umask[errfmt] PASSED [ 97%]
tests/unittests/test_util.py::TestRedirectOutputPreexecFn::test_preexec_fn_sets_group_id_if_adm_group_present[outfmt] PASSED [ 97%]
tests/unittests/test_util.py::TestRedirectOutputPreexecFn::test_preexec_fn_sets_group_id_if_adm_group_present[errfmt] PASSED [ 97%]
tests/unittests/test_util.py::TestRedirectOutputPreexecFn::test_preexec_fn_handles_absent_adm_group_gracefully[outfmt] PASSED [ 97%]
tests/unittests/test_util.py::TestRedirectOutputPreexecFn::test_preexec_fn_handles_absent_adm_group_gracefully[errfmt] PASSED [ 97%]
tests/unittests/test_util.py::TestGetCfgOptionListOrStr::test_found_convert_to_list PASSED [ 97%]
tests/unittests/test_util.py::TestGetCfgOptionListOrStr::test_found_with_default PASSED [ 97%]
tests/unittests/test_util.py::TestGetCfgOptionListOrStr::test_not_found_no_default PASSED [ 97%]
tests/unittests/test_util.py::TestGetCfgOptionListOrStr::test_not_found_with_default PASSED [ 97%]
tests/unittests/test_util.py::TestGetCfgOptionListOrStr::test_value_is_none PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_basic_usage PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_custom_omode PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_dir_is_created_if_required PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_dir_is_not_created_if_ensure_dir_false PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_dir_ownership PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_explicit_mode PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_preserve_mode_no_existing PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_preserve_mode_with_existing PASSED [ 97%]
tests/unittests/test_util.py::TestWriteFile::test_restorecon_if_possible_is_called PASSED [ 97%]
tests/unittests/test_util.py::TestDeleteDirContents::test_deletes_empty_dirs PASSED [ 97%]
tests/unittests/test_util.py::TestDeleteDirContents::test_deletes_files PASSED [ 97%]
tests/unittests/test_util.py::TestDeleteDirContents::test_deletes_nested_dirs PASSED [ 97%]
tests/unittests/test_util.py::TestDeleteDirContents::test_deletes_non_empty_dirs PASSED [ 97%]
tests/unittests/test_util.py::TestDeleteDirContents::test_deletes_symlinks PASSED [ 97%]
tests/unittests/test_util.py::TestDeleteDirContents::test_does_not_delete_dir PASSED [ 97%]
tests/unittests/test_util.py::TestKeyValStrings::test_keyval_str_to_dict PASSED [ 97%]
tests/unittests/test_util.py::TestGetCmdline::test_cmdline_reads_debug_env PASSED [ 97%]
tests/unittests/test_util.py::TestFipsEnabled::test_fips_enabled_based_on_proc_crypto[false_when_no_fips_enabled_file] PASSED [ 97%]
tests/unittests/test_util.py::TestFipsEnabled::test_fips_enabled_based_on_proc_crypto[false_when_fips_disabled] PASSED [ 97%]
tests/unittests/test_util.py::TestFipsEnabled::test_fips_enabled_based_on_proc_crypto[true_when_fips_enabled] PASSED [ 97%]
tests/unittests/test_util.py::TestFipsEnabled::test_fips_enabled_based_on_proc_crypto[true_when_fips_enabled_no_newline] PASSED [ 97%]
tests/unittests/test_util.py::TestLoadYaml::test_bogus_parse_error_returns_default PASSED [ 97%]
tests/unittests/test_util.py::TestLoadYaml::test_bogus_scan_error_returns_default PASSED [ 97%]
tests/unittests/test_util.py::TestLoadYaml::test_nonallowed_returns_default PASSED [ 97%]
tests/unittests/test_util.py::TestLoadYaml::test_none_returns_default PASSED [ 97%]
tests/unittests/test_util.py::TestLoadYaml::test_python_unicode PASSED [ 97%]
tests/unittests/test_util.py::TestLoadYaml::test_simple PASSED [ 97%]
tests/unittests/test_util.py::TestLoadYaml::test_unsafe_types PASSED [ 97%]
tests/unittests/test_util.py::TestMountinfoParsing::test_invalid_mountinfo PASSED [ 97%]
tests/unittests/test_util.py::TestMountinfoParsing::test_parse_mount_with_ext PASSED [ 97%]
tests/unittests/test_util.py::TestMountinfoParsing::test_parse_mount_with_zfs PASSED [ 97%]
tests/unittests/test_util.py::TestMountinfoParsing::test_precise_ext4_root PASSED [ 97%]
tests/unittests/test_util.py::TestMountinfoParsing::test_raring_btrfs_root PASSED [ 97%]
tests/unittests/test_util.py::TestIsX86::test_is_x86_calls_uname_for_architecture PASSED [ 97%]
tests/unittests/test_util.py::TestIsX86::test_is_x86_matches_x86_types PASSED [ 97%]
tests/unittests/test_util.py::TestIsX86::test_is_x86_unmatched_types PASSED [ 97%]
tests/unittests/test_util.py::TestGetConfigLogfiles::test_default_log_file_present PASSED [ 97%]
tests/unittests/test_util.py::TestGetConfigLogfiles::test_empty_cfg_returns_empty_list PASSED [ 97%]
tests/unittests/test_util.py::TestGetConfigLogfiles::test_output_logs_parsed_when_appending PASSED [ 97%]
tests/unittests/test_util.py::TestGetConfigLogfiles::test_output_logs_parsed_when_redirecting PASSED [ 97%]
tests/unittests/test_util.py::TestGetConfigLogfiles::test_output_logs_parsed_when_teeing_files PASSED [ 97%]
tests/unittests/test_util.py::TestGetConfigLogfiles::test_output_logs_parsed_when_teeing_files_and_rotated PASSED [ 97%]
tests/unittests/test_util.py::TestMultiLog::test_given_log_level_used PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_log_level_defaults_to_debug PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_logs_dont_go_to_stdout_if_console_exists PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_logs_dont_go_to_stdout_if_fallback_to_stdout_is_false PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_logs_go_nowhere_if_writing_to_console_fails_and_fallback_false PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_logs_go_to_console_by_default PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_logs_go_to_log_if_given PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_logs_go_to_stdout_if_console_does_not_exist PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_logs_go_to_stdout_if_writing_to_console_fails_and_fallback_true PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_newlines_stripped_from_log_call PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_stderr_not_used_if_false PASSED [ 98%]
tests/unittests/test_util.py::TestMultiLog::test_stderr_used_by_default PASSED [ 98%]
tests/unittests/test_util.py::TestMessageFromString::test_unicode_not_messed_up PASSED [ 98%]
tests/unittests/test_util.py::TestReadOptionalSeed::test_read_optional_seed_sets_fill_on_success[seed_dir0-expected_fill0-False] PASSED [ 98%]
tests/unittests/test_util.py::TestReadOptionalSeed::test_read_optional_seed_sets_fill_on_success[seed_dir1-expected_fill1-False] PASSED [ 98%]
tests/unittests/test_util.py::TestReadOptionalSeed::test_read_optional_seed_sets_fill_on_success[seed_dir2-expected_fill2-True] PASSED [ 98%]
tests/unittests/test_util.py::TestReadOptionalSeed::test_read_optional_seed_sets_fill_on_success[seed_dir3-expected_fill3-True] PASSED [ 98%]
tests/unittests/test_util.py::TestReadOptionalSeed::test_read_optional_seed_sets_fill_on_success[seed_dir4-expected_fill4-True] PASSED [ 98%]
tests/unittests/test_util.py::TestReadSeeded::test_unicode_not_messed_up PASSED [ 98%]
tests/unittests/test_util.py::TestReadSeeded::test_handle_http_urls[expand_percent_s_to_data_route] PASSED [ 98%]
tests/unittests/test_util.py::TestReadSeeded::test_handle_http_urls[no_duplicate_forward_slash_when_already_present] PASSED [ 98%]
tests/unittests/test_util.py::TestReadSeeded::test_handle_http_urls[append_fwd_slash_on_routes_when_absent_and_no_query_str] PASSED [ 98%]
tests/unittests/test_util.py::TestReadSeeded::test_handle_http_urls[feature_off_append_fwd_slash_when_absent_and_no_query_str] PASSED [ 98%]
tests/unittests/test_util.py::TestReadSeeded::test_handle_http_urls[avoid_trailing_forward_slash_on_routes_with_query_strings] PASSED [ 98%]
tests/unittests/test_util.py::TestReadSeededWithoutVendorData::test_unicode_not_messed_up PASSED [ 98%]
tests/unittests/test_util.py::TestEncode::test_decode_binary_plain_text_with_hex PASSED [ 98%]
tests/unittests/test_util.py::TestProcessExecutionError::test_pexec_error_empty_msgs PASSED [ 98%]
tests/unittests/test_util.py::TestProcessExecutionError::test_pexec_error_indent_text PASSED [ 98%]
tests/unittests/test_util.py::TestProcessExecutionError::test_pexec_error_multi_line_msgs PASSED [ 98%]
tests/unittests/test_util.py::TestProcessExecutionError::test_pexec_error_single_line_msgs PASSED [ 98%]
tests/unittests/test_util.py::TestProcessExecutionError::test_pexec_error_type PASSED [ 98%]
tests/unittests/test_util.py::TestSystemIsSnappy::test_bad_content_in_os_release_no_effect PASSED [ 98%]
tests/unittests/test_util.py::TestSystemIsSnappy::test_channel_ini_with_snappy_is_snappy PASSED [ 98%]
tests/unittests/test_util.py::TestSystemIsSnappy::test_id_in_os_release PASSED [ 98%]
tests/unittests/test_util.py::TestSystemIsSnappy::test_id_in_os_release_quoted PASSED [ 98%]
tests/unittests/test_util.py::TestSystemIsSnappy::test_nothing_found_is_not_snappy PASSED [ 98%]
tests/unittests/test_util.py::TestSystemIsSnappy::test_snap_core_in_cmdline_is_snappy PASSED [ 98%]
tests/unittests/test_util.py::TestSystemIsSnappy::test_system_image_config_dir_is_snappy PASSED [ 98%]
tests/unittests/test_util.py::TestLoadShellContent::test_comments_handled_correctly PASSED [ 98%]
tests/unittests/test_util.py::TestGetProcEnv::test_all_utf8_encoded PASSED [ 98%]
tests/unittests/test_util.py::TestGetProcEnv::test_non_existing_file_returns_empty_dict PASSED [ 98%]
tests/unittests/test_util.py::TestGetProcEnv::test_non_utf8_in_environment PASSED [ 98%]
tests/unittests/test_util.py::TestGetProcPpid::test_get_proc_pgrp_linux PASSED [ 98%]
tests/unittests/test_util.py::TestGetProcPpid::test_get_proc_ppid_linux PASSED [ 98%]
tests/unittests/test_util.py::TestGetProcPpid::test_get_proc_ppid_mocked PASSED [ 98%]
tests/unittests/test_util.py::TestGetProcPpid::test_get_proc_ppid_ps PASSED [ 98%]
tests/unittests/test_util.py::TestHuman2Bytes::test_human2bytes PASSED [ 98%]
tests/unittests/test_util.py::TestHuman2Bytes::test_ibibytes2bytes PASSED [ 98%]
tests/unittests/test_util.py::TestKernelVersion::test_kernel_version[5.6.19-300.fc32.x86_64-expected0] PASSED [ 98%]
tests/unittests/test_util.py::TestKernelVersion::test_kernel_version[4.15.0-101-generic-expected1] PASSED [ 98%]
tests/unittests/test_util.py::TestKernelVersion::test_kernel_version[3.10.0-1062.12.1.vz7.131.10-expected2] PASSED [ 98%]
tests/unittests/test_util.py::TestKernelVersion::test_kernel_version[4.18.0-144.el8.x86_64-expected3] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_openbsd PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_openbsd_with_criteria PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_freebsd[None-expected_devlist0] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_freebsd[TYPE=iso9660-expected_devlist1] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_freebsd[TYPE=vfat-expected_devlist2] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_freebsd[LABEL_FATBOOT=A_LABEL-expected_devlist3] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_netbsd[None-expected_devlist0] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_netbsd[TYPE=iso9660-expected_devlist1] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_netbsd[TYPE=vfat-expected_devlist2] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_netbsd[LABEL_FATBOOT=A_LABEL-expected_devlist3] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_dragonflybsd[None-expected_devlist0] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_dragonflybsd[TYPE=iso9660-expected_devlist1] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_dragonflybsd[TYPE=vfat-expected_devlist2] PASSED [ 99%]
tests/unittests/test_util.py::TestFindDevs::test_find_devs_with_dragonflybsd[LABEL_FATBOOT=A_LABEL-expected_devlist3] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_eq[3.1.0-3.1.0-True] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_eq[3.1.0-3.1.1-False] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_eq[3.1-3.1.0.0-False] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_gt[3.1.0-3.1.0-False] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_gt[3.1.0-3.1.1-False] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_gt[3.1-3.1.0.0-False] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_gt[3.1.0.0-3.1-True] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_gt[3.1.1-3.1.0-True] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_to_version_and_back_to_str[3.1.0] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_to_version_and_back_to_str[3.0.1] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_to_version_and_back_to_str[3.1] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_to_version_and_back_to_str[3.1.0.0] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_to_version_and_back_to_str[3.1.1] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_from_str[0.0.0.0-cls_ver0] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_from_str[1.0.0.0-cls_ver1] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_from_str[1.0.2.0-cls_ver2] PASSED [ 99%]
tests/unittests/test_util.py::TestVersion::test_from_str[9.8.2.0-cls_ver3] PASSED [ 99%]
tests/unittests/test_util.py::TestResolvable::test_ips_need_not_be_resolved PASSED [ 99%]
tests/unittests/test_util.py::TestHashBuffer::test_in_memory PASSED [ 99%]
tests/unittests/test_util.py::TestHashBuffer::test_file PASSED [ 99%]
tests/unittests/test_util.py::TestMaybeB64Decode::test_raises_error_on_non_bytes[not bytes] PASSED [ 99%]
tests/unittests/test_util.py::TestMaybeB64Decode::test_raises_error_on_non_bytes[4] PASSED [ 99%]
tests/unittests/test_util.py::TestMaybeB64Decode::test_happy_path[this is my data-this is my data] PASSED [ 99%]
tests/unittests/test_util.py::TestMaybeB64Decode::test_happy_path[ZGF0YQ==-data] PASSED [ 99%]
tests/unittests/test_util.py::TestReadHotplugEnabledFile::test_file_not_found PASSED [ 99%]
tests/unittests/test_util.py::TestReadHotplugEnabledFile::test_json_decode_error PASSED [ 99%]
tests/unittests/test_util.py::TestReadHotplugEnabledFile::test_file_present[{"scopes": ["network"]}] PASSED [ 99%]
tests/unittests/test_util.py::TestLogExc::test_logexc PASSED [ 99%]
tests/unittests/test_util.py::TestLogExc::test_logexc_with_log_level[10] PASSED [ 99%]
tests/unittests/test_util.py::TestLogExc::test_logexc_with_log_level[20] PASSED [ 99%]
tests/unittests/test_util.py::TestLogExc::test_logexc_with_log_level[30] PASSED [ 99%]
tests/unittests/test_util.py::TestLogExc::test_logexc_with_log_level[40] PASSED [ 99%]
tests/unittests/test_version.py::TestExportsFeatures::test_has_network_config_v1 PASSED [ 99%]
tests/unittests/test_version.py::TestExportsFeatures::test_has_network_config_v2 PASSED [ 99%]
tests/unittests/test_version.py::TestVersionString::test_package_version_respected PASSED [ 99%]
tests/unittests/test_version.py::TestVersionString::test_package_version_skipped PASSED [100%]
=================================== FAILURES ===================================
_ TestVersionedSchemas.test_versioned_cloud_config_schema_is_valid_json[schema2-is not one of ['v1']] _
self = <tests.unittests.config.test_schema.TestVersionedSchemas object at 0xffffb9b8d810>
schema = {'version': 'v2'}, error_msg = "is not one of ['v1']"
@pytest.mark.parametrize(
"schema,error_msg",
(
({}, None),
({"version": "v1"}, None),
({"version": "v2"}, "is not one of ['v1']"),
(
{"version": "v1", "final_message": -1},
"is not of type 'string'",
),
({"version": "v1", "final_message": "some msg"}, None),
),
)
def test_versioned_cloud_config_schema_is_valid_json(
self, schema, error_msg
):
schema_dir = get_schema_dir()
version_schemafile = os.path.join(
schema_dir, VERSIONED_USERDATA_SCHEMA_FILE
)
# Point to local schema files avoid JSON resolver trying to pull the
# reference from our upstream raw file in github.
version_schema = json.loads(
re.sub(
r"https:\/\/raw.githubusercontent.com\/canonical\/"
r"cloud-init\/main\/cloudinit\/config\/schemas\/",
f"file://{schema_dir}/",
load_text_file(version_schemafile),
)
)
if error_msg:
> with pytest.raises(SchemaValidationError) as context_mgr:
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/config/test_schema.py:148: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:45 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/versions.schema.cloud-config.json (quiet=False)
2024-11-15 22:08:45 DEBUG cloudinit.util:util.py:1622 Read 557 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/versions.schema.cloud-config.json
2024-11-15 22:08:45 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestVersionedSchemas.test_versioned_cloud_config_schema_is_valid_json[schema3-is not of type 'string'] _
self = <tests.unittests.config.test_schema.TestVersionedSchemas object at 0xffffb9b8e8b0>
schema = {'final_message': -1, 'version': 'v1'}
error_msg = "is not of type 'string'"
@pytest.mark.parametrize(
"schema,error_msg",
(
({}, None),
({"version": "v1"}, None),
({"version": "v2"}, "is not one of ['v1']"),
(
{"version": "v1", "final_message": -1},
"is not of type 'string'",
),
({"version": "v1", "final_message": "some msg"}, None),
),
)
def test_versioned_cloud_config_schema_is_valid_json(
self, schema, error_msg
):
schema_dir = get_schema_dir()
version_schemafile = os.path.join(
schema_dir, VERSIONED_USERDATA_SCHEMA_FILE
)
# Point to local schema files avoid JSON resolver trying to pull the
# reference from our upstream raw file in github.
version_schema = json.loads(
re.sub(
r"https:\/\/raw.githubusercontent.com\/canonical\/"
r"cloud-init\/main\/cloudinit\/config\/schemas\/",
f"file://{schema_dir}/",
load_text_file(version_schemafile),
)
)
if error_msg:
> with pytest.raises(SchemaValidationError) as context_mgr:
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/config/test_schema.py:148: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:45 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/versions.schema.cloud-config.json (quiet=False)
2024-11-15 22:08:45 DEBUG cloudinit.util:util.py:1622 Read 557 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/versions.schema.cloud-config.json
2024-11-15 22:08:45 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_validates_config_file[None-#cloud-config\nntp:-Valid schema] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb9c4b980>
_netplan_available = <MagicMock name='available' id='281473767927696'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767929712'>
schema_type = None, content = b'#cloud-config\nntp:', expected = 'Valid schema'
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil0')
capsys = <_pytest.capture.CaptureFixture object at 0xffffb76f3e70>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb76f2890>
@pytest.mark.parametrize(
"schema_type,content,expected",
(
(None, b"#cloud-config\nntp:", "Valid schema"),
("cloud-config", b"#cloud-config\nntp:", "Valid schema"),
(
"network-config",
(
b"network: {'version': 2, 'ethernets':"
b" {'eth0': {'dhcp': true}}}"
),
"Valid schema",
),
(
"network-config",
(
b"network:\n version: 1\n config:\n - type: physical\n"
b" name: eth0\n subnets:\n - type: dhcp\n"
),
"Valid schema",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_config_file(
self,
_netplan_available,
_read_cfg_paths,
schema_type,
content,
expected,
tmpdir,
capsys,
caplog,
):
"""When --config-file parameter is provided, main validates schema."""
myyaml = tmpdir.join("my.yaml")
myargs = ["mycmd", "--config-file", myyaml.strpath]
if schema_type:
myargs += ["--schema-type", schema_type]
myyaml.write(content) # shortest ntp schema
with mock.patch("sys.argv", myargs):
# Always assert we have no netplan module which triggers
# schema skip of network-config version: 2 until cloud-init
# grows internal schema-network-config-v2.json.
with mock.patch.dict("sys.modules", netplan=ImportError()):
assert 0 == main(), "Expected 0 exit code"
out, _err = capsys.readouterr()
> assert expected in out
E AssertionError: assert 'Valid schema' in 'Skipping cloud-config schema validation. Jsonschema dependency missing.\n'
tests/unittests/config/test_schema.py:2010: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil0/my.yaml (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 18 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil0/my.yaml
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_validates_config_file[cloud-config-#cloud-config\nntp:-Valid schema] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb9c4ba70>
_netplan_available = <MagicMock name='available' id='281473770852704'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473770863792'>
schema_type = 'cloud-config', content = b'#cloud-config\nntp:'
expected = 'Valid schema'
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil1')
capsys = <_pytest.capture.CaptureFixture object at 0xffffb76f2e40>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb77371c0>
@pytest.mark.parametrize(
"schema_type,content,expected",
(
(None, b"#cloud-config\nntp:", "Valid schema"),
("cloud-config", b"#cloud-config\nntp:", "Valid schema"),
(
"network-config",
(
b"network: {'version': 2, 'ethernets':"
b" {'eth0': {'dhcp': true}}}"
),
"Valid schema",
),
(
"network-config",
(
b"network:\n version: 1\n config:\n - type: physical\n"
b" name: eth0\n subnets:\n - type: dhcp\n"
),
"Valid schema",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_config_file(
self,
_netplan_available,
_read_cfg_paths,
schema_type,
content,
expected,
tmpdir,
capsys,
caplog,
):
"""When --config-file parameter is provided, main validates schema."""
myyaml = tmpdir.join("my.yaml")
myargs = ["mycmd", "--config-file", myyaml.strpath]
if schema_type:
myargs += ["--schema-type", schema_type]
myyaml.write(content) # shortest ntp schema
with mock.patch("sys.argv", myargs):
# Always assert we have no netplan module which triggers
# schema skip of network-config version: 2 until cloud-init
# grows internal schema-network-config-v2.json.
with mock.patch.dict("sys.modules", netplan=ImportError()):
assert 0 == main(), "Expected 0 exit code"
out, _err = capsys.readouterr()
> assert expected in out
E AssertionError: assert 'Valid schema' in 'Skipping cloud-config schema validation. Jsonschema dependency missing.\n'
tests/unittests/config/test_schema.py:2010: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil1/my.yaml (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 18 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil1/my.yaml
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_validates_config_file[network-config-network: {'version': 2, 'ethernets': {'eth0': {'dhcp': true}}}-Valid schema] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb978cc90>
_netplan_available = <MagicMock name='available' id='281473763969408'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473763982512'>
schema_type = 'network-config'
content = b"network: {'version': 2, 'ethernets': {'eth0': {'dhcp': true}}}"
expected = 'Valid schema'
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil2')
capsys = <_pytest.capture.CaptureFixture object at 0xffffb73c8b40>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb73c8830>
@pytest.mark.parametrize(
"schema_type,content,expected",
(
(None, b"#cloud-config\nntp:", "Valid schema"),
("cloud-config", b"#cloud-config\nntp:", "Valid schema"),
(
"network-config",
(
b"network: {'version': 2, 'ethernets':"
b" {'eth0': {'dhcp': true}}}"
),
"Valid schema",
),
(
"network-config",
(
b"network:\n version: 1\n config:\n - type: physical\n"
b" name: eth0\n subnets:\n - type: dhcp\n"
),
"Valid schema",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_config_file(
self,
_netplan_available,
_read_cfg_paths,
schema_type,
content,
expected,
tmpdir,
capsys,
caplog,
):
"""When --config-file parameter is provided, main validates schema."""
myyaml = tmpdir.join("my.yaml")
myargs = ["mycmd", "--config-file", myyaml.strpath]
if schema_type:
myargs += ["--schema-type", schema_type]
myyaml.write(content) # shortest ntp schema
with mock.patch("sys.argv", myargs):
# Always assert we have no netplan module which triggers
# schema skip of network-config version: 2 until cloud-init
# grows internal schema-network-config-v2.json.
with mock.patch.dict("sys.modules", netplan=ImportError()):
assert 0 == main(), "Expected 0 exit code"
out, _err = capsys.readouterr()
> assert expected in out
E AssertionError: assert 'Valid schema' in 'Skipping network-config-v2 schema validation. Jsonschema dependency missing.\n'
tests/unittests/config/test_schema.py:2010: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil2/my.yaml (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 62 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil2/my.yaml
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:632 Skipping netplan schema validation. No netplan API available
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:632 Skipping netplan schema validation. No netplan API available
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_validates_config_file[network-config-network:\n version: 1\n config:\n - type: physical\n name: eth0\n subnets:\n - type: dhcp\n-Valid schema] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb978c830>
_netplan_available = <MagicMock name='available' id='281473763973440'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473763976128'>
schema_type = 'network-config'
content = b'network:\n version: 1\n config:\n - type: physical\n name: eth0\n subnets:\n - type: dhcp\n'
expected = 'Valid schema'
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil3')
capsys = <_pytest.capture.CaptureFixture object at 0xffffb73c8bb0>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb73ca120>
@pytest.mark.parametrize(
"schema_type,content,expected",
(
(None, b"#cloud-config\nntp:", "Valid schema"),
("cloud-config", b"#cloud-config\nntp:", "Valid schema"),
(
"network-config",
(
b"network: {'version': 2, 'ethernets':"
b" {'eth0': {'dhcp': true}}}"
),
"Valid schema",
),
(
"network-config",
(
b"network:\n version: 1\n config:\n - type: physical\n"
b" name: eth0\n subnets:\n - type: dhcp\n"
),
"Valid schema",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_config_file(
self,
_netplan_available,
_read_cfg_paths,
schema_type,
content,
expected,
tmpdir,
capsys,
caplog,
):
"""When --config-file parameter is provided, main validates schema."""
myyaml = tmpdir.join("my.yaml")
myargs = ["mycmd", "--config-file", myyaml.strpath]
if schema_type:
myargs += ["--schema-type", schema_type]
myyaml.write(content) # shortest ntp schema
with mock.patch("sys.argv", myargs):
# Always assert we have no netplan module which triggers
# schema skip of network-config version: 2 until cloud-init
# grows internal schema-network-config-v2.json.
with mock.patch.dict("sys.modules", netplan=ImportError()):
assert 0 == main(), "Expected 0 exit code"
out, _err = capsys.readouterr()
> assert expected in out
E AssertionError: assert 'Valid schema' in 'Skipping network-config-v1 schema validation. Jsonschema dependency missing.\n'
tests/unittests/config/test_schema.py:2010: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil3/my.yaml (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 96 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_config_fil3/my.yaml
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_processed_data_preference_over_raw_data[prefer_processed_data_when_present_and_non_empty] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb9ee86d0>
_read_cfg_paths = <MagicMock name='getuid' id='281473767929712'>
_getuid = <MagicMock name='read_cfg_paths' id='281473767927696'>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767924336'>
update_path_content_by_key = {}
expected_keys = {'net_key': 'network_config', 'ud_key': 'cloud_config', 'vd2_key': 'vendor2_cloud_config', 'vd_key': 'vendor_cloud_config'}
paths = <cloudinit.helpers.Paths object at 0xffffb769aa30>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb73c83d0>
@pytest.mark.parametrize(
"update_path_content_by_key, expected_keys",
(
pytest.param(
{},
{
"ud_key": "cloud_config",
"vd_key": "vendor_cloud_config",
"vd2_key": "vendor2_cloud_config",
"net_key": "network_config",
},
id="prefer_processed_data_when_present_and_non_empty",
),
pytest.param(
{
"cloud_config": "",
"vendor_cloud_config": "",
"vendor2_cloud_config": "",
},
{
"ud_key": "userdata_raw",
"vd_key": "vendordata_raw",
"vd2_key": "vendordata2_raw",
"net_key": "network_config",
},
id="prefer_raw_data_when_processed_is_empty",
),
pytest.param(
{"cloud_config": "", "userdata_raw": ""},
{
"ud_key": "cloud_config",
"vd_key": "vendor_cloud_config",
"vd2_key": "vendor2_cloud_config",
"net_key": "network_config",
},
id="prefer_processed_vd_file_path_when_raw_and_processed_empty",
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
@mock.patch(M_PATH + "os.getuid", return_value=0)
def test_main_processed_data_preference_over_raw_data(
self,
_read_cfg_paths,
_getuid,
read_cfg_paths,
update_path_content_by_key,
expected_keys,
paths,
capsys,
):
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
path_content_by_key = {
"cloud_config": "#cloud-config\n{}",
"vendor_cloud_config": "#cloud-config\n{}",
"vendor2_cloud_config": "#cloud-config\n{}",
"vendordata_raw": "#cloud-config\n{}",
"vendordata2_raw": "#cloud-config\n{}",
"network_config": "{version: 1, config: []}",
"userdata_raw": "#cloud-config\n{}",
}
expected_paths = dict(
(key, paths.get_ipath_cur(expected_keys[key]))
for key in expected_keys
)
path_content_by_key.update(update_path_content_by_key)
for path_key, path_content in path_content_by_key.items():
write_file(paths.get_ipath_cur(path_key), path_content)
data_types = "user-data, vendor-data, vendor2-data, network-config"
ud_msg = " Valid schema user-data"
if (
not path_content_by_key["cloud_config"]
and not path_content_by_key["userdata_raw"]
):
ud_msg = (
f"Empty 'cloud-config' found at {expected_paths['ud_key']}."
" Nothing to validate."
)
expected = dedent(
f"""\
Found cloud-config data types: {data_types}
1. user-data at {expected_paths["ud_key"]}:
{ud_msg}
2. vendor-data at {expected_paths['vd_key']}:
Valid schema vendor-data
3. vendor2-data at {expected_paths['vd2_key']}:
Valid schema vendor2-data
4. network-config at {expected_paths['net_key']}:
Valid schema network-config
"""
)
myargs = ["mycmd", "--system"]
with mock.patch("sys.argv", myargs):
main()
out, _err = capsys.readouterr()
> assert expected == out
E AssertionError: assert 'Found cloud-...work-config\n' == 'Found cloud-...cy missing.\n'
E
E Found cloud-config data types: user-data, vendor-data, vendor2-data, network-config
E
E 1. user-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/cloud-config.txt:
E - Skipping cloud-config schema validation. Jsonschema dependency missing.
E + Valid schema user-data
E ...
E
E ...Full output truncated (11 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2113: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/cloud-config.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/vendor-cloud-config.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/vendor2-cloud-config.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/vendor-data.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/vendor-data2.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/network-config.json - wb: [644] 24 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/user-data.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 16 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/vendor-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 16 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/vendor-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/vendor2-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 16 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/vendor2-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/network-config.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 24 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe0/cloud_dir/instance/network-config.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_processed_data_preference_over_raw_data[prefer_raw_data_when_processed_is_empty] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb982d250>
_read_cfg_paths = <MagicMock name='getuid' id='281473767926016'>
_getuid = <MagicMock name='read_cfg_paths' id='281473767928032'>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767921648'>
update_path_content_by_key = {'cloud_config': '', 'vendor2_cloud_config': '', 'vendor_cloud_config': ''}
expected_keys = {'net_key': 'network_config', 'ud_key': 'userdata_raw', 'vd2_key': 'vendordata2_raw', 'vd_key': 'vendordata_raw'}
paths = <cloudinit.helpers.Paths object at 0xffffb785c050>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb73ca270>
@pytest.mark.parametrize(
"update_path_content_by_key, expected_keys",
(
pytest.param(
{},
{
"ud_key": "cloud_config",
"vd_key": "vendor_cloud_config",
"vd2_key": "vendor2_cloud_config",
"net_key": "network_config",
},
id="prefer_processed_data_when_present_and_non_empty",
),
pytest.param(
{
"cloud_config": "",
"vendor_cloud_config": "",
"vendor2_cloud_config": "",
},
{
"ud_key": "userdata_raw",
"vd_key": "vendordata_raw",
"vd2_key": "vendordata2_raw",
"net_key": "network_config",
},
id="prefer_raw_data_when_processed_is_empty",
),
pytest.param(
{"cloud_config": "", "userdata_raw": ""},
{
"ud_key": "cloud_config",
"vd_key": "vendor_cloud_config",
"vd2_key": "vendor2_cloud_config",
"net_key": "network_config",
},
id="prefer_processed_vd_file_path_when_raw_and_processed_empty",
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
@mock.patch(M_PATH + "os.getuid", return_value=0)
def test_main_processed_data_preference_over_raw_data(
self,
_read_cfg_paths,
_getuid,
read_cfg_paths,
update_path_content_by_key,
expected_keys,
paths,
capsys,
):
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
path_content_by_key = {
"cloud_config": "#cloud-config\n{}",
"vendor_cloud_config": "#cloud-config\n{}",
"vendor2_cloud_config": "#cloud-config\n{}",
"vendordata_raw": "#cloud-config\n{}",
"vendordata2_raw": "#cloud-config\n{}",
"network_config": "{version: 1, config: []}",
"userdata_raw": "#cloud-config\n{}",
}
expected_paths = dict(
(key, paths.get_ipath_cur(expected_keys[key]))
for key in expected_keys
)
path_content_by_key.update(update_path_content_by_key)
for path_key, path_content in path_content_by_key.items():
write_file(paths.get_ipath_cur(path_key), path_content)
data_types = "user-data, vendor-data, vendor2-data, network-config"
ud_msg = " Valid schema user-data"
if (
not path_content_by_key["cloud_config"]
and not path_content_by_key["userdata_raw"]
):
ud_msg = (
f"Empty 'cloud-config' found at {expected_paths['ud_key']}."
" Nothing to validate."
)
expected = dedent(
f"""\
Found cloud-config data types: {data_types}
1. user-data at {expected_paths["ud_key"]}:
{ud_msg}
2. vendor-data at {expected_paths['vd_key']}:
Valid schema vendor-data
3. vendor2-data at {expected_paths['vd2_key']}:
Valid schema vendor2-data
4. network-config at {expected_paths['net_key']}:
Valid schema network-config
"""
)
myargs = ["mycmd", "--system"]
with mock.patch("sys.argv", myargs):
main()
out, _err = capsys.readouterr()
> assert expected == out
E AssertionError: assert 'Found cloud-...work-config\n' == 'Found cloud-...cy missing.\n'
E
E Found cloud-config data types: user-data, vendor-data, vendor2-data, network-config
E
E 1. user-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/user-data.txt:
E - Skipping cloud-config schema validation. Jsonschema dependency missing.
E + Valid schema user-data
E ...
E
E ...Full output truncated (11 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2113: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/cloud-config.txt - wb: [644] 0 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/vendor-cloud-config.txt - wb: [644] 0 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/vendor2-cloud-config.txt - wb: [644] 0 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/vendor-data.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/vendor-data2.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/network-config.json - wb: [644] 24 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/user-data.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/user-data.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 16 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/user-data.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/vendor-data.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 16 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/vendor-data.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/vendor-data2.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 16 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/vendor-data2.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/network-config.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 24 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe1/cloud_dir/instance/network-config.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_processed_data_preference_over_raw_data[prefer_processed_vd_file_path_when_raw_and_processed_empty] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb982d310>
_read_cfg_paths = <MagicMock name='getuid' id='281473767917616'>
_getuid = <MagicMock name='read_cfg_paths' id='281473767927024'>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767915600'>
update_path_content_by_key = {'cloud_config': '', 'userdata_raw': ''}
expected_keys = {'net_key': 'network_config', 'ud_key': 'cloud_config', 'vd2_key': 'vendor2_cloud_config', 'vd_key': 'vendor_cloud_config'}
paths = <cloudinit.helpers.Paths object at 0xffffb773ce10>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb73cb770>
@pytest.mark.parametrize(
"update_path_content_by_key, expected_keys",
(
pytest.param(
{},
{
"ud_key": "cloud_config",
"vd_key": "vendor_cloud_config",
"vd2_key": "vendor2_cloud_config",
"net_key": "network_config",
},
id="prefer_processed_data_when_present_and_non_empty",
),
pytest.param(
{
"cloud_config": "",
"vendor_cloud_config": "",
"vendor2_cloud_config": "",
},
{
"ud_key": "userdata_raw",
"vd_key": "vendordata_raw",
"vd2_key": "vendordata2_raw",
"net_key": "network_config",
},
id="prefer_raw_data_when_processed_is_empty",
),
pytest.param(
{"cloud_config": "", "userdata_raw": ""},
{
"ud_key": "cloud_config",
"vd_key": "vendor_cloud_config",
"vd2_key": "vendor2_cloud_config",
"net_key": "network_config",
},
id="prefer_processed_vd_file_path_when_raw_and_processed_empty",
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
@mock.patch(M_PATH + "os.getuid", return_value=0)
def test_main_processed_data_preference_over_raw_data(
self,
_read_cfg_paths,
_getuid,
read_cfg_paths,
update_path_content_by_key,
expected_keys,
paths,
capsys,
):
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
path_content_by_key = {
"cloud_config": "#cloud-config\n{}",
"vendor_cloud_config": "#cloud-config\n{}",
"vendor2_cloud_config": "#cloud-config\n{}",
"vendordata_raw": "#cloud-config\n{}",
"vendordata2_raw": "#cloud-config\n{}",
"network_config": "{version: 1, config: []}",
"userdata_raw": "#cloud-config\n{}",
}
expected_paths = dict(
(key, paths.get_ipath_cur(expected_keys[key]))
for key in expected_keys
)
path_content_by_key.update(update_path_content_by_key)
for path_key, path_content in path_content_by_key.items():
write_file(paths.get_ipath_cur(path_key), path_content)
data_types = "user-data, vendor-data, vendor2-data, network-config"
ud_msg = " Valid schema user-data"
if (
not path_content_by_key["cloud_config"]
and not path_content_by_key["userdata_raw"]
):
ud_msg = (
f"Empty 'cloud-config' found at {expected_paths['ud_key']}."
" Nothing to validate."
)
expected = dedent(
f"""\
Found cloud-config data types: {data_types}
1. user-data at {expected_paths["ud_key"]}:
{ud_msg}
2. vendor-data at {expected_paths['vd_key']}:
Valid schema vendor-data
3. vendor2-data at {expected_paths['vd2_key']}:
Valid schema vendor2-data
4. network-config at {expected_paths['net_key']}:
Valid schema network-config
"""
)
myargs = ["mycmd", "--system"]
with mock.patch("sys.argv", myargs):
main()
out, _err = capsys.readouterr()
> assert expected == out
E AssertionError: assert 'Found cloud-...work-config\n' == 'Found cloud-...cy missing.\n'
E
E Found cloud-config data types: user-data, vendor-data, vendor2-data, network-config
E
E 1. user-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/cloud-config.txt:
E Empty 'cloud-config' found at /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/cloud-config.txt. Nothing to validate.
E
E 2. vendor-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor-cloud-config.txt:...
E
E ...Full output truncated (10 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2113: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/cloud-config.txt - wb: [644] 0 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor-cloud-config.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor2-cloud-config.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor-data.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor-data2.txt - wb: [644] 16 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/network-config.json - wb: [644] 24 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/user-data.txt - wb: [644] 0 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 0 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 16 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor2-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 16 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/vendor2-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/network-config.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 24 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_processed_data_prefe2/cloud_dir/instance/network-config.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_validated] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb976dd30>
_netplan_available = <MagicMock name='available' id='281473766263168'>
_getuid = <MagicMock name='getuid' id='281473766262496'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473766266864'>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473766270896'>
net_config = 'network:\n version: 1\n config:\n - type: physical\n name: eth0\n subnets:\n - type: dhcp\n'
net_output = ' Valid schema network-config'
error_raised = <contextlib._GeneratorContextManager object at 0xffffb9e2f9a0>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb73c9b00>
mocker = <pytest_mock.plugin.MockerFixture object at 0xffffb770d8b0>
paths = <cloudinit.helpers.Paths object at 0xffffb78c1f90>
@pytest.mark.parametrize(
"net_config,net_output,error_raised",
(
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Valid schema network-config",
does_not_raise(),
id="netv1_schema_validated",
),
pytest.param(
"network:\n version: 2\n ethernets:\n eth0:\n"
" dhcp4: true\n",
" Valid schema network-config",
does_not_raise(),
id="netv2_schema_validated_non_netplan",
),
pytest.param(
"network: {}\n",
"Skipping network-config schema validation on empty config.",
does_not_raise(),
id="empty_net_validation_is_skipped",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_errors_handled",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth01234567890123\n subnets:\n"
" - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_error_on_nic_name_length",
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
@mock.patch(M_PATH + "os.getuid", return_value=0)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_system_userdata_vendordata_and_network_config(
self,
_netplan_available,
_getuid,
_read_cfg_paths,
read_cfg_paths,
net_config,
net_output,
error_raised,
capsys,
mocker,
paths,
):
"""When --system is provided, main validates all config userdata."""
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
cloud_config_file = paths.get_ipath_cur("cloud_config")
write_file(cloud_config_file, b"#cloud-config\nntp:")
vd_file = paths.get_ipath_cur("vendor_cloud_config")
write_file(vd_file, b"#cloud-config\nssh_import_id: [me]")
vd2_file = paths.get_ipath_cur("vendor2_cloud_config")
write_file(vd2_file, b"#cloud-config\nssh_pwauth: true")
network_file = paths.get_ipath_cur("network_config")
write_file(network_file, net_config)
myargs = ["mycmd", "--system"]
with error_raised:
# Always assert we have no netplan module which triggers
# schema skip of network-config version: 2 until cloud-init
# grows internal schema-network-config-v2.json.
with mock.patch.dict("sys.modules", netplan=ImportError()):
with mock.patch("sys.argv", myargs):
main()
out, _err = capsys.readouterr()
net_output = net_output.format(network_file=network_file)
data_types = "user-data, vendor-data, vendor2-data, network-config"
expected = dedent(
f"""\
Found cloud-config data types: {data_types}
1. user-data at {cloud_config_file}:
Valid schema user-data
2. vendor-data at {vd_file}:
Valid schema vendor-data
3. vendor2-data at {vd2_file}:
Valid schema vendor2-data
4. network-config at {network_file}:
{net_output}
"""
)
> assert expected == out
E AssertionError: assert 'Found cloud-...work-config\n' == 'Found cloud-...cy missing.\n'
E
E Found cloud-config data types: user-data, vendor-data, vendor2-data, network-config
E
E 1. user-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/cloud-config.txt:
E - Skipping cloud-config schema validation. Jsonschema dependency missing.
E + Valid schema user-data
E ...
E
E ...Full output truncated (11 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2211: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/cloud-config.txt - wb: [644] 18 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/vendor-cloud-config.txt - wb: [644] 33 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/vendor2-cloud-config.txt - wb: [644] 30 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/network-config.json - wb: [644] 96 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 18 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/vendor-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 33 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/vendor-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/vendor2-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 30 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/vendor2-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/network-config.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 96 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use0/cloud_dir/instance/network-config.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_validates_system_userdata_vendordata_and_network_config[netv2_schema_validated_non_netplan] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb976c1b0>
_netplan_available = <MagicMock name='available' id='281473767917952'>
_getuid = <MagicMock name='getuid' id='281473767928704'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767916608'>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767926016'>
net_config = 'network:\n version: 2\n ethernets:\n eth0:\n dhcp4: true\n'
net_output = ' Valid schema network-config'
error_raised = <contextlib._GeneratorContextManager object at 0xffffb9e2ef90>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb7735080>
mocker = <pytest_mock.plugin.MockerFixture object at 0xffffb755cfc0>
paths = <cloudinit.helpers.Paths object at 0xffffb785e530>
@pytest.mark.parametrize(
"net_config,net_output,error_raised",
(
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Valid schema network-config",
does_not_raise(),
id="netv1_schema_validated",
),
pytest.param(
"network:\n version: 2\n ethernets:\n eth0:\n"
" dhcp4: true\n",
" Valid schema network-config",
does_not_raise(),
id="netv2_schema_validated_non_netplan",
),
pytest.param(
"network: {}\n",
"Skipping network-config schema validation on empty config.",
does_not_raise(),
id="empty_net_validation_is_skipped",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_errors_handled",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth01234567890123\n subnets:\n"
" - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_error_on_nic_name_length",
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
@mock.patch(M_PATH + "os.getuid", return_value=0)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_system_userdata_vendordata_and_network_config(
self,
_netplan_available,
_getuid,
_read_cfg_paths,
read_cfg_paths,
net_config,
net_output,
error_raised,
capsys,
mocker,
paths,
):
"""When --system is provided, main validates all config userdata."""
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
cloud_config_file = paths.get_ipath_cur("cloud_config")
write_file(cloud_config_file, b"#cloud-config\nntp:")
vd_file = paths.get_ipath_cur("vendor_cloud_config")
write_file(vd_file, b"#cloud-config\nssh_import_id: [me]")
vd2_file = paths.get_ipath_cur("vendor2_cloud_config")
write_file(vd2_file, b"#cloud-config\nssh_pwauth: true")
network_file = paths.get_ipath_cur("network_config")
write_file(network_file, net_config)
myargs = ["mycmd", "--system"]
with error_raised:
# Always assert we have no netplan module which triggers
# schema skip of network-config version: 2 until cloud-init
# grows internal schema-network-config-v2.json.
with mock.patch.dict("sys.modules", netplan=ImportError()):
with mock.patch("sys.argv", myargs):
main()
out, _err = capsys.readouterr()
net_output = net_output.format(network_file=network_file)
data_types = "user-data, vendor-data, vendor2-data, network-config"
expected = dedent(
f"""\
Found cloud-config data types: {data_types}
1. user-data at {cloud_config_file}:
Valid schema user-data
2. vendor-data at {vd_file}:
Valid schema vendor-data
3. vendor2-data at {vd2_file}:
Valid schema vendor2-data
4. network-config at {network_file}:
{net_output}
"""
)
> assert expected == out
E AssertionError: assert 'Found cloud-...work-config\n' == 'Found cloud-...cy missing.\n'
E
E Found cloud-config data types: user-data, vendor-data, vendor2-data, network-config
E
E 1. user-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/cloud-config.txt:
E - Skipping cloud-config schema validation. Jsonschema dependency missing.
E + Valid schema user-data
E ...
E
E ...Full output truncated (11 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2211: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/cloud-config.txt - wb: [644] 18 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/vendor-cloud-config.txt - wb: [644] 33 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/vendor2-cloud-config.txt - wb: [644] 30 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/network-config.json - wb: [644] 56 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 18 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/vendor-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 33 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/vendor-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/vendor2-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 30 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/vendor2-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/network-config.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 56 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use1/cloud_dir/instance/network-config.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:632 Skipping netplan schema validation. No netplan API available
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:632 Skipping netplan schema validation. No netplan API available
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestMain.test_main_validates_system_userdata_vendordata_and_network_config[empty_net_validation_is_skipped] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb96c40f0>
_netplan_available = <MagicMock name='available' id='281473763988816'>
_getuid = <MagicMock name='getuid' id='281473763993856'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473763989152'>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473763985792'>
net_config = 'network: {}\n'
net_output = 'Skipping network-config schema validation on empty config.'
error_raised = <contextlib._GeneratorContextManager object at 0xffffb9e2fb60>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb9fb5390>
mocker = <pytest_mock.plugin.MockerFixture object at 0xffffb78513d0>
paths = <cloudinit.helpers.Paths object at 0xffffb773edf0>
@pytest.mark.parametrize(
"net_config,net_output,error_raised",
(
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Valid schema network-config",
does_not_raise(),
id="netv1_schema_validated",
),
pytest.param(
"network:\n version: 2\n ethernets:\n eth0:\n"
" dhcp4: true\n",
" Valid schema network-config",
does_not_raise(),
id="netv2_schema_validated_non_netplan",
),
pytest.param(
"network: {}\n",
"Skipping network-config schema validation on empty config.",
does_not_raise(),
id="empty_net_validation_is_skipped",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_errors_handled",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth01234567890123\n subnets:\n"
" - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_error_on_nic_name_length",
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
@mock.patch(M_PATH + "os.getuid", return_value=0)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_system_userdata_vendordata_and_network_config(
self,
_netplan_available,
_getuid,
_read_cfg_paths,
read_cfg_paths,
net_config,
net_output,
error_raised,
capsys,
mocker,
paths,
):
"""When --system is provided, main validates all config userdata."""
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
cloud_config_file = paths.get_ipath_cur("cloud_config")
write_file(cloud_config_file, b"#cloud-config\nntp:")
vd_file = paths.get_ipath_cur("vendor_cloud_config")
write_file(vd_file, b"#cloud-config\nssh_import_id: [me]")
vd2_file = paths.get_ipath_cur("vendor2_cloud_config")
write_file(vd2_file, b"#cloud-config\nssh_pwauth: true")
network_file = paths.get_ipath_cur("network_config")
write_file(network_file, net_config)
myargs = ["mycmd", "--system"]
with error_raised:
# Always assert we have no netplan module which triggers
# schema skip of network-config version: 2 until cloud-init
# grows internal schema-network-config-v2.json.
with mock.patch.dict("sys.modules", netplan=ImportError()):
with mock.patch("sys.argv", myargs):
main()
out, _err = capsys.readouterr()
net_output = net_output.format(network_file=network_file)
data_types = "user-data, vendor-data, vendor2-data, network-config"
expected = dedent(
f"""\
Found cloud-config data types: {data_types}
1. user-data at {cloud_config_file}:
Valid schema user-data
2. vendor-data at {vd_file}:
Valid schema vendor-data
3. vendor2-data at {vd2_file}:
Valid schema vendor2-data
4. network-config at {network_file}:
{net_output}
"""
)
> assert expected == out
E AssertionError: assert 'Found cloud-...pty config.\n' == 'Found cloud-...pty config.\n'
E
E Found cloud-config data types: user-data, vendor-data, vendor2-data, network-config
E
E 1. user-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/cloud-config.txt:
E - Skipping cloud-config schema validation. Jsonschema dependency missing.
E + Valid schema user-data
E ...
E
E ...Full output truncated (10 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2211: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/cloud-config.txt - wb: [644] 18 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/vendor-cloud-config.txt - wb: [644] 33 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/vendor2-cloud-config.txt - wb: [644] 30 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/network-config.json - wb: [644] 12 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 18 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/vendor-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 33 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/vendor-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/vendor2-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 30 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/vendor2-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/network-config.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 12 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use2/cloud_dir/instance/network-config.json
_ TestMain.test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_errors_handled] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb96c4550>
_netplan_available = <MagicMock name='available' id='281473763987808'>
_getuid = <MagicMock name='getuid' id='281473763990160'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473763999232'>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473763983776'>
net_config = 'network:\n version: 1\n config:\n - type: physical\n name: eth0\n subnets:\n - type: dhcp\n'
net_output = ' Invalid network-config /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/network-config.json'
error_raised = <_pytest.python_api.RaisesContext object at 0xffffb9e2fbd0>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb9f7cc90>
mocker = <pytest_mock.plugin.MockerFixture object at 0xffffb755c6d0>
paths = <cloudinit.helpers.Paths object at 0xffffb7a2d270>
@pytest.mark.parametrize(
"net_config,net_output,error_raised",
(
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Valid schema network-config",
does_not_raise(),
id="netv1_schema_validated",
),
pytest.param(
"network:\n version: 2\n ethernets:\n eth0:\n"
" dhcp4: true\n",
" Valid schema network-config",
does_not_raise(),
id="netv2_schema_validated_non_netplan",
),
pytest.param(
"network: {}\n",
"Skipping network-config schema validation on empty config.",
does_not_raise(),
id="empty_net_validation_is_skipped",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_errors_handled",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth01234567890123\n subnets:\n"
" - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_error_on_nic_name_length",
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
@mock.patch(M_PATH + "os.getuid", return_value=0)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_system_userdata_vendordata_and_network_config(
self,
_netplan_available,
_getuid,
_read_cfg_paths,
read_cfg_paths,
net_config,
net_output,
error_raised,
capsys,
mocker,
paths,
):
"""When --system is provided, main validates all config userdata."""
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
cloud_config_file = paths.get_ipath_cur("cloud_config")
write_file(cloud_config_file, b"#cloud-config\nntp:")
vd_file = paths.get_ipath_cur("vendor_cloud_config")
write_file(vd_file, b"#cloud-config\nssh_import_id: [me]")
vd2_file = paths.get_ipath_cur("vendor2_cloud_config")
write_file(vd2_file, b"#cloud-config\nssh_pwauth: true")
network_file = paths.get_ipath_cur("network_config")
write_file(network_file, net_config)
myargs = ["mycmd", "--system"]
with error_raised:
# Always assert we have no netplan module which triggers
# schema skip of network-config version: 2 until cloud-init
# grows internal schema-network-config-v2.json.
with mock.patch.dict("sys.modules", netplan=ImportError()):
with mock.patch("sys.argv", myargs):
main()
out, _err = capsys.readouterr()
net_output = net_output.format(network_file=network_file)
data_types = "user-data, vendor-data, vendor2-data, network-config"
expected = dedent(
f"""\
Found cloud-config data types: {data_types}
1. user-data at {cloud_config_file}:
Valid schema user-data
2. vendor-data at {vd_file}:
Valid schema vendor-data
3. vendor2-data at {vd2_file}:
Valid schema vendor2-data
4. network-config at {network_file}:
{net_output}
"""
)
> assert expected == out
E AssertionError: assert 'Found cloud-...config.json\n' == 'Found cloud-...config.json\n'
E
E Found cloud-config data types: user-data, vendor-data, vendor2-data, network-config
E
E 1. user-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/cloud-config.txt:
E - Skipping cloud-config schema validation. Jsonschema dependency missing.
E + Valid schema user-data
E ...
E
E ...Full output truncated (10 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2211: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/cloud-config.txt - wb: [644] 18 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/vendor-cloud-config.txt - wb: [644] 33 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/vendor2-cloud-config.txt - wb: [644] 30 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/network-config.json - wb: [644] 95 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 18 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/vendor-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 33 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/vendor-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/vendor2-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 30 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/vendor2-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/network-config.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 95 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use3/cloud_dir/instance/network-config.json
_ TestMain.test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_error_on_nic_name_length] _
self = <tests.unittests.config.test_schema.TestMain object at 0xffffb9dea690>
_netplan_available = <MagicMock name='available' id='281473764558224'>
_getuid = <MagicMock name='getuid' id='281473766996832'>
_read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767930720'>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767920304'>
net_config = 'network:\n version: 1\n config:\n - type: physical\n name: eth01234567890123\n subnets:\n - type: dhcp\n'
net_output = ' Invalid network-config {network_file}'
error_raised = <_pytest.python_api.RaisesContext object at 0xffffb9e2fc40>
capsys = <_pytest.capture.CaptureFixture object at 0xffffba1835b0>
mocker = <pytest_mock.plugin.MockerFixture object at 0xffffb755c600>
paths = <cloudinit.helpers.Paths object at 0xffffb7a0f930>
@pytest.mark.parametrize(
"net_config,net_output,error_raised",
(
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Valid schema network-config",
does_not_raise(),
id="netv1_schema_validated",
),
pytest.param(
"network:\n version: 2\n ethernets:\n eth0:\n"
" dhcp4: true\n",
" Valid schema network-config",
does_not_raise(),
id="netv2_schema_validated_non_netplan",
),
pytest.param(
"network: {}\n",
"Skipping network-config schema validation on empty config.",
does_not_raise(),
id="empty_net_validation_is_skipped",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth0\n subnets:\n - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_errors_handled",
),
pytest.param(
"network:\n version: 1\n config:\n - type: physical\n"
" name: eth01234567890123\n subnets:\n"
" - type: dhcp\n",
" Invalid network-config {network_file}",
pytest.raises(SystemExit),
id="netv1_schema_error_on_nic_name_length",
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
@mock.patch(M_PATH + "os.getuid", return_value=0)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_main_validates_system_userdata_vendordata_and_network_config(
self,
_netplan_available,
_getuid,
_read_cfg_paths,
read_cfg_paths,
net_config,
net_output,
error_raised,
capsys,
mocker,
paths,
):
"""When --system is provided, main validates all config userdata."""
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
cloud_config_file = paths.get_ipath_cur("cloud_config")
write_file(cloud_config_file, b"#cloud-config\nntp:")
vd_file = paths.get_ipath_cur("vendor_cloud_config")
write_file(vd_file, b"#cloud-config\nssh_import_id: [me]")
vd2_file = paths.get_ipath_cur("vendor2_cloud_config")
write_file(vd2_file, b"#cloud-config\nssh_pwauth: true")
network_file = paths.get_ipath_cur("network_config")
write_file(network_file, net_config)
myargs = ["mycmd", "--system"]
> with error_raised:
E Failed: DID NOT RAISE <class 'SystemExit'>
tests/unittests/config/test_schema.py:2183: Failed
----------------------------- Captured stdout call -----------------------------
Found cloud-config data types: user-data, vendor-data, vendor2-data, network-config
1. user-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/cloud-config.txt:
Skipping cloud-config schema validation. Jsonschema dependency missing.
2. vendor-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/vendor-cloud-config.txt:
Skipping cloud-config schema validation. Jsonschema dependency missing.
3. vendor2-data at /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/vendor2-cloud-config.txt:
Skipping cloud-config schema validation. Jsonschema dependency missing.
4. network-config at /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/network-config.json:
Skipping network-config-v1 schema validation. Jsonschema dependency missing.
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/cloud-config.txt - wb: [644] 18 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/vendor-cloud-config.txt - wb: [644] 33 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/vendor2-cloud-config.txt - wb: [644] 30 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:2345 Writing to /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/network-config.json - wb: [644] 109 bytes
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 18 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/vendor-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 33 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/vendor-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/vendor2-cloud-config.txt (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 30 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/vendor2-cloud-config.txt
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/network-config.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 109 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_main_validates_system_use4/cloud_dir/instance/network-config.json
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_________ TestNetworkSchema.test_network_schema[net_v2_invalid_config] _________
self = <tests.unittests.config.test_schema.TestNetworkSchema object at 0xffffb9e3ed50>
_netplan_available = <MagicMock name='available' id='281473771697360'>
src_config = {'network': {'config': [], 'version': 2}}
schema_type_version = <SchemaType.NETWORK_CONFIG_V2: 'network-config-v2'>
expectation = <_pytest.python_api.RaisesContext object at 0xffffb9e49860>
log = '', caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb8d1ec80>
@pytest.mark.parametrize(
"src_config, schema_type_version, expectation, log",
(
pytest.param(
{"network": {"config": [], "version": 2}},
SchemaType.NETWORK_CONFIG_V2,
pytest.raises(
SchemaValidationError,
match=re.escape(
"Additional properties are not allowed ('config' was "
"unexpected)"
),
),
"",
id="net_v2_invalid_config",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_simple_example",
),
pytest.param(
{
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_no_top_level",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {
"id0": {
"match": {
"macaddress": "00:11:22:33:44:55",
},
"wakeonlan": True,
"dhcp4": True,
"addresses": [
"192.168.14.2/24",
"2001:1::1/64",
],
"gateway4": "192.168.14.1",
"gateway6": "2001:1::2",
"nameservers": {
"search": ["foo.local", "bar.local"],
"addresses": ["8.8.8.8"],
},
"routes": [
{
"to": "192.0.2.0/24",
"via": "11.0.0.1",
"metric": 3,
},
],
},
"lom": {
"match": {"driver": "ixgbe"},
"set-name": "lom1",
"dhcp6": True,
},
"switchports": {
"match": {"name": "enp2*"},
"mtu": 1280,
},
},
"bonds": {
"bond0": {"interfaces": ["id0", "lom"]},
},
"bridges": {
"br0": {
"interfaces": ["wlp1s0", "switchports"],
"dhcp4": True,
},
},
"vlans": {
"en-intra": {
"id": 1,
"link": "id0",
"dhcp4": "yes",
},
},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_complex_example",
),
pytest.param(
{"network": {"version": 1}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=re.escape("'config' is a required property"),
),
"",
id="config_key_required",
),
pytest.param(
{"network": {"version": 1, "config": []}},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="config_key_required",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"name": "me", "type": "typo"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=(
r"network.config.0: {'name': 'me', 'type': 'typo'} is"
" not valid under any of the given schemas"
),
),
"",
id="unknown_config_type_item",
),
pytest.param(
{"network": {"version": 1, "config": [{"type": "physical"}]}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"network.config.0: 'name' is a required property.*",
),
"",
id="physical_requires_name_property",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"type": "physical", "name": "a"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_name_succeeds",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "a", "asdf": 1}
],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"Additional properties are not allowed.*",
),
"",
id="physical_no_additional_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_PHYSICAL_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_BOND_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="bond_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "eth0", "mtu": None},
{"type": "nameserver", "address": "8.8.8.8"},
],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="GH-4710_mtu_none_and_str_address",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_network_schema(
self,
_netplan_available,
src_config,
schema_type_version,
expectation,
log,
caplog,
):
net_schema = get_schema(schema_type=schema_type_version)
> with expectation:
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/config/test_schema.py:2564: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 17775 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v2.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:632 Skipping netplan schema validation. No netplan API available
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_________ TestNetworkSchema.test_network_schema[config_key_required0] __________
self = <tests.unittests.config.test_schema.TestNetworkSchema object at 0xffffb96a4290>
_netplan_available = <MagicMock name='available' id='281473763987136'>
src_config = {'network': {'version': 1}}
schema_type_version = <SchemaType.NETWORK_CONFIG_V1: 'network-config-v1'>
expectation = <_pytest.python_api.RaisesContext object at 0xffffb9e49a90>
log = '', caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb9693460>
@pytest.mark.parametrize(
"src_config, schema_type_version, expectation, log",
(
pytest.param(
{"network": {"config": [], "version": 2}},
SchemaType.NETWORK_CONFIG_V2,
pytest.raises(
SchemaValidationError,
match=re.escape(
"Additional properties are not allowed ('config' was "
"unexpected)"
),
),
"",
id="net_v2_invalid_config",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_simple_example",
),
pytest.param(
{
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_no_top_level",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {
"id0": {
"match": {
"macaddress": "00:11:22:33:44:55",
},
"wakeonlan": True,
"dhcp4": True,
"addresses": [
"192.168.14.2/24",
"2001:1::1/64",
],
"gateway4": "192.168.14.1",
"gateway6": "2001:1::2",
"nameservers": {
"search": ["foo.local", "bar.local"],
"addresses": ["8.8.8.8"],
},
"routes": [
{
"to": "192.0.2.0/24",
"via": "11.0.0.1",
"metric": 3,
},
],
},
"lom": {
"match": {"driver": "ixgbe"},
"set-name": "lom1",
"dhcp6": True,
},
"switchports": {
"match": {"name": "enp2*"},
"mtu": 1280,
},
},
"bonds": {
"bond0": {"interfaces": ["id0", "lom"]},
},
"bridges": {
"br0": {
"interfaces": ["wlp1s0", "switchports"],
"dhcp4": True,
},
},
"vlans": {
"en-intra": {
"id": 1,
"link": "id0",
"dhcp4": "yes",
},
},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_complex_example",
),
pytest.param(
{"network": {"version": 1}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=re.escape("'config' is a required property"),
),
"",
id="config_key_required",
),
pytest.param(
{"network": {"version": 1, "config": []}},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="config_key_required",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"name": "me", "type": "typo"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=(
r"network.config.0: {'name': 'me', 'type': 'typo'} is"
" not valid under any of the given schemas"
),
),
"",
id="unknown_config_type_item",
),
pytest.param(
{"network": {"version": 1, "config": [{"type": "physical"}]}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"network.config.0: 'name' is a required property.*",
),
"",
id="physical_requires_name_property",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"type": "physical", "name": "a"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_name_succeeds",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "a", "asdf": 1}
],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"Additional properties are not allowed.*",
),
"",
id="physical_no_additional_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_PHYSICAL_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_BOND_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="bond_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "eth0", "mtu": None},
{"type": "nameserver", "address": "8.8.8.8"},
],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="GH-4710_mtu_none_and_str_address",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_network_schema(
self,
_netplan_available,
src_config,
schema_type_version,
expectation,
log,
caplog,
):
net_schema = get_schema(schema_type=schema_type_version)
> with expectation:
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/config/test_schema.py:2564: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:46 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:46 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_______ TestNetworkSchema.test_network_schema[unknown_config_type_item] ________
self = <tests.unittests.config.test_schema.TestNetworkSchema object at 0xffffb9e50050>
_netplan_available = <MagicMock name='available' id='281473771692656'>
src_config = {'network': {'config': [{'name': 'me', 'type': 'typo'}], 'version': 1}}
schema_type_version = <SchemaType.NETWORK_CONFIG_V1: 'network-config-v1'>
expectation = <_pytest.python_api.RaisesContext object at 0xffffb9e49be0>
log = '', caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb7d4b150>
@pytest.mark.parametrize(
"src_config, schema_type_version, expectation, log",
(
pytest.param(
{"network": {"config": [], "version": 2}},
SchemaType.NETWORK_CONFIG_V2,
pytest.raises(
SchemaValidationError,
match=re.escape(
"Additional properties are not allowed ('config' was "
"unexpected)"
),
),
"",
id="net_v2_invalid_config",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_simple_example",
),
pytest.param(
{
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_no_top_level",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {
"id0": {
"match": {
"macaddress": "00:11:22:33:44:55",
},
"wakeonlan": True,
"dhcp4": True,
"addresses": [
"192.168.14.2/24",
"2001:1::1/64",
],
"gateway4": "192.168.14.1",
"gateway6": "2001:1::2",
"nameservers": {
"search": ["foo.local", "bar.local"],
"addresses": ["8.8.8.8"],
},
"routes": [
{
"to": "192.0.2.0/24",
"via": "11.0.0.1",
"metric": 3,
},
],
},
"lom": {
"match": {"driver": "ixgbe"},
"set-name": "lom1",
"dhcp6": True,
},
"switchports": {
"match": {"name": "enp2*"},
"mtu": 1280,
},
},
"bonds": {
"bond0": {"interfaces": ["id0", "lom"]},
},
"bridges": {
"br0": {
"interfaces": ["wlp1s0", "switchports"],
"dhcp4": True,
},
},
"vlans": {
"en-intra": {
"id": 1,
"link": "id0",
"dhcp4": "yes",
},
},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_complex_example",
),
pytest.param(
{"network": {"version": 1}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=re.escape("'config' is a required property"),
),
"",
id="config_key_required",
),
pytest.param(
{"network": {"version": 1, "config": []}},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="config_key_required",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"name": "me", "type": "typo"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=(
r"network.config.0: {'name': 'me', 'type': 'typo'} is"
" not valid under any of the given schemas"
),
),
"",
id="unknown_config_type_item",
),
pytest.param(
{"network": {"version": 1, "config": [{"type": "physical"}]}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"network.config.0: 'name' is a required property.*",
),
"",
id="physical_requires_name_property",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"type": "physical", "name": "a"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_name_succeeds",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "a", "asdf": 1}
],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"Additional properties are not allowed.*",
),
"",
id="physical_no_additional_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_PHYSICAL_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_BOND_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="bond_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "eth0", "mtu": None},
{"type": "nameserver", "address": "8.8.8.8"},
],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="GH-4710_mtu_none_and_str_address",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_network_schema(
self,
_netplan_available,
src_config,
schema_type_version,
expectation,
log,
caplog,
):
net_schema = get_schema(schema_type=schema_type_version)
> with expectation:
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/config/test_schema.py:2564: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
____ TestNetworkSchema.test_network_schema[physical_requires_name_property] ____
self = <tests.unittests.config.test_schema.TestNetworkSchema object at 0xffffb9d63950>
_netplan_available = <MagicMock name='available' id='281473764558224'>
src_config = {'network': {'config': [{'type': 'physical'}], 'version': 1}}
schema_type_version = <SchemaType.NETWORK_CONFIG_V1: 'network-config-v1'>
expectation = <_pytest.python_api.RaisesContext object at 0xffffb9e49cc0>
log = '', caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb7735be0>
@pytest.mark.parametrize(
"src_config, schema_type_version, expectation, log",
(
pytest.param(
{"network": {"config": [], "version": 2}},
SchemaType.NETWORK_CONFIG_V2,
pytest.raises(
SchemaValidationError,
match=re.escape(
"Additional properties are not allowed ('config' was "
"unexpected)"
),
),
"",
id="net_v2_invalid_config",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_simple_example",
),
pytest.param(
{
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_no_top_level",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {
"id0": {
"match": {
"macaddress": "00:11:22:33:44:55",
},
"wakeonlan": True,
"dhcp4": True,
"addresses": [
"192.168.14.2/24",
"2001:1::1/64",
],
"gateway4": "192.168.14.1",
"gateway6": "2001:1::2",
"nameservers": {
"search": ["foo.local", "bar.local"],
"addresses": ["8.8.8.8"],
},
"routes": [
{
"to": "192.0.2.0/24",
"via": "11.0.0.1",
"metric": 3,
},
],
},
"lom": {
"match": {"driver": "ixgbe"},
"set-name": "lom1",
"dhcp6": True,
},
"switchports": {
"match": {"name": "enp2*"},
"mtu": 1280,
},
},
"bonds": {
"bond0": {"interfaces": ["id0", "lom"]},
},
"bridges": {
"br0": {
"interfaces": ["wlp1s0", "switchports"],
"dhcp4": True,
},
},
"vlans": {
"en-intra": {
"id": 1,
"link": "id0",
"dhcp4": "yes",
},
},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_complex_example",
),
pytest.param(
{"network": {"version": 1}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=re.escape("'config' is a required property"),
),
"",
id="config_key_required",
),
pytest.param(
{"network": {"version": 1, "config": []}},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="config_key_required",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"name": "me", "type": "typo"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=(
r"network.config.0: {'name': 'me', 'type': 'typo'} is"
" not valid under any of the given schemas"
),
),
"",
id="unknown_config_type_item",
),
pytest.param(
{"network": {"version": 1, "config": [{"type": "physical"}]}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"network.config.0: 'name' is a required property.*",
),
"",
id="physical_requires_name_property",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"type": "physical", "name": "a"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_name_succeeds",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "a", "asdf": 1}
],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"Additional properties are not allowed.*",
),
"",
id="physical_no_additional_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_PHYSICAL_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_BOND_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="bond_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "eth0", "mtu": None},
{"type": "nameserver", "address": "8.8.8.8"},
],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="GH-4710_mtu_none_and_str_address",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_network_schema(
self,
_netplan_available,
src_config,
schema_type_version,
expectation,
log,
caplog,
):
net_schema = get_schema(schema_type=schema_type_version)
> with expectation:
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/config/test_schema.py:2564: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
___ TestNetworkSchema.test_network_schema[physical_no_additional_properties] ___
self = <tests.unittests.config.test_schema.TestNetworkSchema object at 0xffffb96954f0>
_netplan_available = <MagicMock name='available' id='281473763993856'>
src_config = {'network': {'config': [{'asdf': 1, 'name': 'a', 'type': 'physical'}], 'version': 1}}
schema_type_version = <SchemaType.NETWORK_CONFIG_V1: 'network-config-v1'>
expectation = <_pytest.python_api.RaisesContext object at 0xffffb9e49e10>
log = '', caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb73cb7e0>
@pytest.mark.parametrize(
"src_config, schema_type_version, expectation, log",
(
pytest.param(
{"network": {"config": [], "version": 2}},
SchemaType.NETWORK_CONFIG_V2,
pytest.raises(
SchemaValidationError,
match=re.escape(
"Additional properties are not allowed ('config' was "
"unexpected)"
),
),
"",
id="net_v2_invalid_config",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_simple_example",
),
pytest.param(
{
"version": 2,
"ethernets": {"eno1": {"dhcp4": True}},
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_no_top_level",
),
pytest.param(
{
"network": {
"version": 2,
"ethernets": {
"id0": {
"match": {
"macaddress": "00:11:22:33:44:55",
},
"wakeonlan": True,
"dhcp4": True,
"addresses": [
"192.168.14.2/24",
"2001:1::1/64",
],
"gateway4": "192.168.14.1",
"gateway6": "2001:1::2",
"nameservers": {
"search": ["foo.local", "bar.local"],
"addresses": ["8.8.8.8"],
},
"routes": [
{
"to": "192.0.2.0/24",
"via": "11.0.0.1",
"metric": 3,
},
],
},
"lom": {
"match": {"driver": "ixgbe"},
"set-name": "lom1",
"dhcp6": True,
},
"switchports": {
"match": {"name": "enp2*"},
"mtu": 1280,
},
},
"bonds": {
"bond0": {"interfaces": ["id0", "lom"]},
},
"bridges": {
"br0": {
"interfaces": ["wlp1s0", "switchports"],
"dhcp4": True,
},
},
"vlans": {
"en-intra": {
"id": 1,
"link": "id0",
"dhcp4": "yes",
},
},
}
},
SchemaType.NETWORK_CONFIG_V2,
does_not_raise(),
"",
id="net_v2_complex_example",
),
pytest.param(
{"network": {"version": 1}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=re.escape("'config' is a required property"),
),
"",
id="config_key_required",
),
pytest.param(
{"network": {"version": 1, "config": []}},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="config_key_required",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"name": "me", "type": "typo"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=(
r"network.config.0: {'name': 'me', 'type': 'typo'} is"
" not valid under any of the given schemas"
),
),
"",
id="unknown_config_type_item",
),
pytest.param(
{"network": {"version": 1, "config": [{"type": "physical"}]}},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"network.config.0: 'name' is a required property.*",
),
"",
id="physical_requires_name_property",
),
pytest.param(
{
"network": {
"version": 1,
"config": [{"type": "physical", "name": "a"}],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_name_succeeds",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "a", "asdf": 1}
],
}
},
SchemaType.NETWORK_CONFIG_V1,
pytest.raises(
SchemaValidationError,
match=r"Additional properties are not allowed.*",
),
"",
id="physical_no_additional_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_PHYSICAL_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="physical_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [VALID_BOND_CONFIG],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="bond_with_all_known_properties",
),
pytest.param(
{
"network": {
"version": 1,
"config": [
{"type": "physical", "name": "eth0", "mtu": None},
{"type": "nameserver", "address": "8.8.8.8"},
],
}
},
SchemaType.NETWORK_CONFIG_V1,
does_not_raise(),
"",
id="GH-4710_mtu_none_and_str_address",
),
),
)
@mock.patch("cloudinit.net.netplan.available", return_value=False)
def test_network_schema(
self,
_netplan_available,
src_config,
schema_type_version,
expectation,
log,
caplog,
):
net_schema = get_schema(schema_type=schema_type_version)
> with expectation:
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/config/test_schema.py:2564: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 21068 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-network-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestHandleSchemaArgs.test_handle_schema_unable_to_read_cfg_paths[failure0-expected_logs0] _
self = <tests.unittests.config.test_schema.TestHandleSchemaArgs object at 0xffffb9e3f4d0>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473763989152'>
failure = OSError('No permissions on /var/lib/cloud/instance')
expected_logs = ['Using default instance-data/user-data paths for non-root']
paths = <cloudinit.helpers.Paths object at 0xffffb773e170>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb79db070>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb77a91d0>
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_unable_to_r0')
@pytest.mark.parametrize(
"failure, expected_logs",
(
(
IOError("No permissions on /var/lib/cloud/instance"),
["Using default instance-data/user-data paths for non-root"],
),
(
DataSourceNotFoundException("No cached datasource found yet"),
["datasource not detected"],
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
def test_handle_schema_unable_to_read_cfg_paths(
self,
read_cfg_paths,
failure,
expected_logs,
paths,
capsys,
caplog,
tmpdir,
):
if isinstance(failure, IOError):
failure.errno = EACCES
read_cfg_paths.side_effect = [failure, paths]
user_data_fn = tmpdir.join("user-data")
with open(user_data_fn, "w") as f:
f.write(
dedent(
"""\
#cloud-config
packages: [sl]
"""
)
)
args = self.Args(
config_file=str(user_data_fn),
schema_type="cloud-config",
annotate=False,
docs=None,
system=None,
instance_data=None,
)
handle_schema_args("unused", args)
> assert "Valid schema" in capsys.readouterr().out
E AssertionError: assert 'Valid schema' in 'Skipping cloud-config schema validation. Jsonschema dependency missing.\n'
E + where 'Skipping cloud-config schema validation. Jsonschema dependency missing.\n' = CaptureResult(out='Skipping cloud-config schema validation. Jsonschema dependency missing.\n', err='').out
E + where CaptureResult(out='Skipping cloud-config schema validation. Jsonschema dependency missing.\n', err='') = readouterr()
E + where readouterr = <_pytest.capture.CaptureFixture object at 0xffffb79db070>.readouterr
tests/unittests/config/test_schema.py:2734: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:1782 Using default instance-data/user-data paths for non-root user
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_unable_to_r0/user-data (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 29 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_unable_to_r0/user-data
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestHandleSchemaArgs.test_handle_schema_unable_to_read_cfg_paths[failure1-expected_logs1] _
self = <tests.unittests.config.test_schema.TestHandleSchemaArgs object at 0xffffb9e3f610>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473764565280'>
failure = DataSourceNotFoundException('No cached datasource found yet')
expected_logs = ['datasource not detected']
paths = <cloudinit.helpers.Paths object at 0xffffb7f4fb10>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb77aad60>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb77aaf90>
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_unable_to_r1')
@pytest.mark.parametrize(
"failure, expected_logs",
(
(
IOError("No permissions on /var/lib/cloud/instance"),
["Using default instance-data/user-data paths for non-root"],
),
(
DataSourceNotFoundException("No cached datasource found yet"),
["datasource not detected"],
),
),
)
@mock.patch(M_PATH + "read_cfg_paths")
def test_handle_schema_unable_to_read_cfg_paths(
self,
read_cfg_paths,
failure,
expected_logs,
paths,
capsys,
caplog,
tmpdir,
):
if isinstance(failure, IOError):
failure.errno = EACCES
read_cfg_paths.side_effect = [failure, paths]
user_data_fn = tmpdir.join("user-data")
with open(user_data_fn, "w") as f:
f.write(
dedent(
"""\
#cloud-config
packages: [sl]
"""
)
)
args = self.Args(
config_file=str(user_data_fn),
schema_type="cloud-config",
annotate=False,
docs=None,
system=None,
instance_data=None,
)
handle_schema_args("unused", args)
> assert "Valid schema" in capsys.readouterr().out
E AssertionError: assert 'Valid schema' in 'Skipping cloud-config schema validation. Jsonschema dependency missing.\n'
E + where 'Skipping cloud-config schema validation. Jsonschema dependency missing.\n' = CaptureResult(out='Skipping cloud-config schema validation. Jsonschema dependency missing.\n', err='').out
E + where CaptureResult(out='Skipping cloud-config schema validation. Jsonschema dependency missing.\n', err='') = readouterr()
E + where readouterr = <_pytest.capture.CaptureFixture object at 0xffffb77aad60>.readouterr
tests/unittests/config/test_schema.py:2734: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:47 WARNING cloudinit.config.schema:schema.py:1790 datasource not detected, using default instance-data/user-data paths.
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_unable_to_r1/user-data (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 29 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_unable_to_r1/user-data
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestHandleSchemaArgs.test_handle_schema_args_annotate_deprecated_config[test_annotated_deprecation_info_boundary_devel_shows] _
self = <tests.unittests.config.test_schema.TestHandleSchemaArgs object at 0xffffb96b0510>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473767928032'>
annotate = True, deprecation_info_boundary = 'devel'
expected_output = '#cloud-config\npackages:\n- htop\napt_update: true # D1\napt_upgrade: true # D2\napt_reb...* instead.\n# D3: Deprecated in version 22.2. Use **package_reboot_if_required** instead.\n\nValid schema {cfg_file}\n'
paths = <cloudinit.helpers.Paths object at 0xffffb7a0ce10>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb77a8050>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb77a8bb0>
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota0')
mocker = <pytest_mock.plugin.MockerFixture object at 0xffffb8309d90>
@pytest.mark.parametrize(
"annotate, deprecation_info_boundary, expected_output",
[
pytest.param(
True,
"devel",
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true # D1
apt_upgrade: true # D2
apt_reboot_if_required: true # D3
# Deprecations: -------------
# D1: Deprecated in version 22.2. Use **package_update** instead.
# D2: Deprecated in version 22.2. Use **package_upgrade** instead.
# D3: Deprecated in version 22.2. Use **package_reboot_if_required** instead.
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_annotated_deprecation_info_boundary_devel_shows",
),
pytest.param(
True,
"22.1",
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true # D1
apt_upgrade: true # D2
apt_reboot_if_required: true # D3
# Deprecations: -------------
# D1: Deprecated in version 22.2. Use **package_update** instead.
# D2: Deprecated in version 22.2. Use **package_upgrade** instead.
# D3: Deprecated in version 22.2. Use **package_reboot_if_required** instead.
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_annotated_deprecation_info_boundary_below_unredacted",
),
pytest.param(
False,
"18.2",
dedent(
"""\
Cloud config schema deprecations: \
apt_reboot_if_required: Deprecated in version 22.2. Use\
**package_reboot_if_required** instead., apt_update: Deprecated in version\
22.2. Use **package_update** instead., apt_upgrade: Deprecated in version\
22.2. Use **package_upgrade** instead.\
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_deprecation_info_boundary_does_unannotated_unredacted",
),
],
)
@mock.patch(M_PATH + "read_cfg_paths")
def test_handle_schema_args_annotate_deprecated_config(
self,
read_cfg_paths,
annotate,
deprecation_info_boundary,
expected_output,
paths,
caplog,
capsys,
tmpdir,
mocker,
):
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
user_data_fn = tmpdir.join("user-data")
with open(user_data_fn, "w") as f:
f.write(
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true
apt_upgrade: true
apt_reboot_if_required: true
"""
)
)
mocker.patch.object(
features, "DEPRECATION_INFO_BOUNDARY", deprecation_info_boundary
)
args = self.Args(
config_file=str(user_data_fn),
schema_type="cloud-config",
annotate=annotate,
docs=None,
system=None,
instance_data=None,
)
handle_schema_args("unused", args)
out, err = capsys.readouterr()
> assert (
expected_output.format(cfg_file=user_data_fn).split()
== out.split()
)
E AssertionError: assert ['#cloud-conf..., 'true', ...] == ['Skipping', ...endency', ...]
E
E At index 0 diff: '#cloud-config' != 'Skipping'
E Left contains 42 more items, first extra item: 'D1'
E
E Full diff:
E [
E - 'Skipping',...
E
E ...Full output truncated (56 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2844: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota0/user-data (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 95 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota0/user-data
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestHandleSchemaArgs.test_handle_schema_args_annotate_deprecated_config[test_annotated_deprecation_info_boundary_below_unredacted] _
self = <tests.unittests.config.test_schema.TestHandleSchemaArgs object at 0xffffb96b0640>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473763984448'>
annotate = True, deprecation_info_boundary = '22.1'
expected_output = '#cloud-config\npackages:\n- htop\napt_update: true # D1\napt_upgrade: true # D2\napt_reb...* instead.\n# D3: Deprecated in version 22.2. Use **package_reboot_if_required** instead.\n\nValid schema {cfg_file}\n'
paths = <cloudinit.helpers.Paths object at 0xffffb7a0e170>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffba183f50>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb7d7df60>
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota1')
mocker = <pytest_mock.plugin.MockerFixture object at 0xffffb7b51e60>
@pytest.mark.parametrize(
"annotate, deprecation_info_boundary, expected_output",
[
pytest.param(
True,
"devel",
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true # D1
apt_upgrade: true # D2
apt_reboot_if_required: true # D3
# Deprecations: -------------
# D1: Deprecated in version 22.2. Use **package_update** instead.
# D2: Deprecated in version 22.2. Use **package_upgrade** instead.
# D3: Deprecated in version 22.2. Use **package_reboot_if_required** instead.
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_annotated_deprecation_info_boundary_devel_shows",
),
pytest.param(
True,
"22.1",
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true # D1
apt_upgrade: true # D2
apt_reboot_if_required: true # D3
# Deprecations: -------------
# D1: Deprecated in version 22.2. Use **package_update** instead.
# D2: Deprecated in version 22.2. Use **package_upgrade** instead.
# D3: Deprecated in version 22.2. Use **package_reboot_if_required** instead.
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_annotated_deprecation_info_boundary_below_unredacted",
),
pytest.param(
False,
"18.2",
dedent(
"""\
Cloud config schema deprecations: \
apt_reboot_if_required: Deprecated in version 22.2. Use\
**package_reboot_if_required** instead., apt_update: Deprecated in version\
22.2. Use **package_update** instead., apt_upgrade: Deprecated in version\
22.2. Use **package_upgrade** instead.\
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_deprecation_info_boundary_does_unannotated_unredacted",
),
],
)
@mock.patch(M_PATH + "read_cfg_paths")
def test_handle_schema_args_annotate_deprecated_config(
self,
read_cfg_paths,
annotate,
deprecation_info_boundary,
expected_output,
paths,
caplog,
capsys,
tmpdir,
mocker,
):
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
user_data_fn = tmpdir.join("user-data")
with open(user_data_fn, "w") as f:
f.write(
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true
apt_upgrade: true
apt_reboot_if_required: true
"""
)
)
mocker.patch.object(
features, "DEPRECATION_INFO_BOUNDARY", deprecation_info_boundary
)
args = self.Args(
config_file=str(user_data_fn),
schema_type="cloud-config",
annotate=annotate,
docs=None,
system=None,
instance_data=None,
)
handle_schema_args("unused", args)
out, err = capsys.readouterr()
> assert (
expected_output.format(cfg_file=user_data_fn).split()
== out.split()
)
E AssertionError: assert ['#cloud-conf..., 'true', ...] == ['Skipping', ...endency', ...]
E
E At index 0 diff: '#cloud-config' != 'Skipping'
E Left contains 42 more items, first extra item: 'D1'
E
E Full diff:
E [
E - 'Skipping',...
E
E ...Full output truncated (56 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2844: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota1/user-data (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 95 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota1/user-data
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestHandleSchemaArgs.test_handle_schema_args_annotate_deprecated_config[test_deprecation_info_boundary_does_unannotated_unredacted] _
self = <tests.unittests.config.test_schema.TestHandleSchemaArgs object at 0xffffb9781a30>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473783309248'>
annotate = False, deprecation_info_boundary = '18.2'
expected_output = 'Cloud config schema deprecations: apt_reboot_if_required: Deprecated in version 22.2. Use **package_reboot_if_require...apt_upgrade: Deprecated in version 22.2. Use **package_upgrade** instead. Valid schema {cfg_file}\n'
paths = <cloudinit.helpers.Paths object at 0xffffb8cf23f0>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb8d1f2a0>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb8d1ec10>
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota2')
mocker = <pytest_mock.plugin.MockerFixture object at 0xffffb8d58870>
@pytest.mark.parametrize(
"annotate, deprecation_info_boundary, expected_output",
[
pytest.param(
True,
"devel",
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true # D1
apt_upgrade: true # D2
apt_reboot_if_required: true # D3
# Deprecations: -------------
# D1: Deprecated in version 22.2. Use **package_update** instead.
# D2: Deprecated in version 22.2. Use **package_upgrade** instead.
# D3: Deprecated in version 22.2. Use **package_reboot_if_required** instead.
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_annotated_deprecation_info_boundary_devel_shows",
),
pytest.param(
True,
"22.1",
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true # D1
apt_upgrade: true # D2
apt_reboot_if_required: true # D3
# Deprecations: -------------
# D1: Deprecated in version 22.2. Use **package_update** instead.
# D2: Deprecated in version 22.2. Use **package_upgrade** instead.
# D3: Deprecated in version 22.2. Use **package_reboot_if_required** instead.
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_annotated_deprecation_info_boundary_below_unredacted",
),
pytest.param(
False,
"18.2",
dedent(
"""\
Cloud config schema deprecations: \
apt_reboot_if_required: Deprecated in version 22.2. Use\
**package_reboot_if_required** instead., apt_update: Deprecated in version\
22.2. Use **package_update** instead., apt_upgrade: Deprecated in version\
22.2. Use **package_upgrade** instead.\
Valid schema {cfg_file}
""" # noqa: E501
),
id="test_deprecation_info_boundary_does_unannotated_unredacted",
),
],
)
@mock.patch(M_PATH + "read_cfg_paths")
def test_handle_schema_args_annotate_deprecated_config(
self,
read_cfg_paths,
annotate,
deprecation_info_boundary,
expected_output,
paths,
caplog,
capsys,
tmpdir,
mocker,
):
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
user_data_fn = tmpdir.join("user-data")
with open(user_data_fn, "w") as f:
f.write(
dedent(
"""\
#cloud-config
packages:
- htop
apt_update: true
apt_upgrade: true
apt_reboot_if_required: true
"""
)
)
mocker.patch.object(
features, "DEPRECATION_INFO_BOUNDARY", deprecation_info_boundary
)
args = self.Args(
config_file=str(user_data_fn),
schema_type="cloud-config",
annotate=annotate,
docs=None,
system=None,
instance_data=None,
)
handle_schema_args("unused", args)
out, err = capsys.readouterr()
> assert (
expected_output.format(cfg_file=user_data_fn).split()
== out.split()
)
E AssertionError: assert ['Cloud', 'co...recated', ...] == ['Skipping', ...endency', ...]
E
E At index 0 diff: 'Cloud' != 'Skipping'
E Left contains 24 more items, first extra item: 'version'
E
E Full diff:
E [
E - 'Skipping',...
E
E ...Full output truncated (39 lines hidden), use '-vv' to show
tests/unittests/config/test_schema.py:2844: AssertionError
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota2/user-data (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 95 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_annota2/user-data
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestHandleSchemaArgs.test_handle_schema_args_jinja_with_errors[root_annotate_errors_with_exception] _
self = <tests.unittests.config.test_schema.TestHandleSchemaArgs object at 0xffffb9e51480>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473783306224'>
getuid = <MagicMock name='getuid' id='281473771692656'>, uid = 0
annotate = True
expected_out = "#cloud-config\nhostname: 123\t\t# E1\n\n# Errors: -------------\n# E1: 123 is not of type 'string'\n\n\n"
expected_err = 'Error: Invalid schema: user-data\n\n'
expectation = <_pytest.python_api.RaisesContext object at 0xffffb9e4a0b0>
paths = <cloudinit.helpers.Paths object at 0xffffb8335090>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb8d1d940>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb8d1ef20>
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_0')
@pytest.mark.parametrize(
"uid, annotate, expected_out, expected_err, expectation",
[
pytest.param(
0,
True,
dedent(
"""\
#cloud-config
hostname: 123 # E1
# Errors: -------------
# E1: 123 is not of type 'string'
""" # noqa: E501
),
"""Error: Invalid schema: user-data\n\n""",
pytest.raises(SystemExit),
id="root_annotate_errors_with_exception",
),
pytest.param(
0,
False,
dedent(
"""\
Invalid user-data {cfg_file}
""" # noqa: E501
),
dedent(
"""\
Error: Cloud config schema errors: hostname: 123 is not of type 'string'
Error: Invalid schema: user-data
""" # noqa: E501
),
pytest.raises(SystemExit),
id="root_no_annotate_exception_with_unique_errors",
),
],
)
@mock.patch(M_PATH + "os.getuid")
@mock.patch(M_PATH + "read_cfg_paths")
def test_handle_schema_args_jinja_with_errors(
self,
read_cfg_paths,
getuid,
uid,
annotate,
expected_out,
expected_err,
expectation,
paths,
caplog,
capsys,
tmpdir,
):
getuid.return_value = uid
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
user_data_fn = tmpdir.join("user-data")
if uid == 0:
id_path = paths.get_runpath("instance_data_sensitive")
else:
id_path = paths.get_runpath("instance_data")
with open(id_path, "w") as f:
f.write(json.dumps({"ds": {"asdf": 123}}))
with open(user_data_fn, "w") as f:
f.write(
dedent(
"""\
## template: jinja
#cloud-config
hostname: {{ ds.asdf }}
"""
)
)
args = self.Args(
config_file=str(user_data_fn),
schema_type="cloud-config",
annotate=annotate,
docs=None,
system=None,
instance_data=None,
)
> with expectation:
E Failed: DID NOT RAISE <class 'SystemExit'>
tests/unittests/config/test_schema.py:2937: Failed
----------------------------- Captured stdout call -----------------------------
Skipping cloud-config schema validation. Jsonschema dependency missing.
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_0/user-data (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 57 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_0/user-data
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_0/run_dir/instance-data-sensitive.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 21 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_0/run_dir/instance-data-sensitive.json
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestHandleSchemaArgs.test_handle_schema_args_jinja_with_errors[root_no_annotate_exception_with_unique_errors] _
self = <tests.unittests.config.test_schema.TestHandleSchemaArgs object at 0xffffb9e51590>
read_cfg_paths = <MagicMock name='read_cfg_paths' id='281473771696016'>
getuid = <MagicMock name='getuid' id='281473771696688'>, uid = 0
annotate = False, expected_out = 'Invalid user-data {cfg_file}\n'
expected_err = "Error: Cloud config schema errors: hostname: 123 is not of type 'string'\n\nError: Invalid schema: user-data\n\n"
expectation = <_pytest.python_api.RaisesContext object at 0xffffb9e4b540>
paths = <cloudinit.helpers.Paths object at 0xffffb7d594f0>
caplog = <_pytest.logging.LogCaptureFixture object at 0xffffb73c2430>
capsys = <_pytest.capture.CaptureFixture object at 0xffffb73c2350>
tmpdir = local('/tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_1')
@pytest.mark.parametrize(
"uid, annotate, expected_out, expected_err, expectation",
[
pytest.param(
0,
True,
dedent(
"""\
#cloud-config
hostname: 123 # E1
# Errors: -------------
# E1: 123 is not of type 'string'
""" # noqa: E501
),
"""Error: Invalid schema: user-data\n\n""",
pytest.raises(SystemExit),
id="root_annotate_errors_with_exception",
),
pytest.param(
0,
False,
dedent(
"""\
Invalid user-data {cfg_file}
""" # noqa: E501
),
dedent(
"""\
Error: Cloud config schema errors: hostname: 123 is not of type 'string'
Error: Invalid schema: user-data
""" # noqa: E501
),
pytest.raises(SystemExit),
id="root_no_annotate_exception_with_unique_errors",
),
],
)
@mock.patch(M_PATH + "os.getuid")
@mock.patch(M_PATH + "read_cfg_paths")
def test_handle_schema_args_jinja_with_errors(
self,
read_cfg_paths,
getuid,
uid,
annotate,
expected_out,
expected_err,
expectation,
paths,
caplog,
capsys,
tmpdir,
):
getuid.return_value = uid
paths.get_ipath = paths.get_ipath_cur
read_cfg_paths.return_value = paths
user_data_fn = tmpdir.join("user-data")
if uid == 0:
id_path = paths.get_runpath("instance_data_sensitive")
else:
id_path = paths.get_runpath("instance_data")
with open(id_path, "w") as f:
f.write(json.dumps({"ds": {"asdf": 123}}))
with open(user_data_fn, "w") as f:
f.write(
dedent(
"""\
## template: jinja
#cloud-config
hostname: {{ ds.asdf }}
"""
)
)
args = self.Args(
config_file=str(user_data_fn),
schema_type="cloud-config",
annotate=annotate,
docs=None,
system=None,
instance_data=None,
)
> with expectation:
E Failed: DID NOT RAISE <class 'SystemExit'>
tests/unittests/config/test_schema.py:2937: Failed
----------------------------- Captured stdout call -----------------------------
Skipping cloud-config schema validation. Jsonschema dependency missing.
------------------------------ Captured log call -------------------------------
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_1/user-data (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 57 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_1/user-data
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1613 Reading from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_1/run_dir/instance-data-sensitive.json (quiet=False)
2024-11-15 22:08:47 DEBUG cloudinit.util:util.py:1622 Read 21 bytes from /tmp/pytest-of-debusine-worker/pytest-0/test_handle_schema_args_jinja_1/run_dir/instance-data-sensitive.json
2024-11-15 22:08:47 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestReportingSchema.test_schema_validation[config8-'a' is not of type 'object'] _
self = <test_reporting.TestReportingSchema object at 0xffffb99adc50>
config = {'reporting': 'a'}, error_msg = "'a' is not of type 'object'"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestReportingSchema.test_schema_validation[config9-'b' is not of type 'object'] _
self = <test_reporting.TestReportingSchema object at 0xffffb9989c70>
config = {'reporting': {'a': 'b'}}, error_msg = "'b' is not of type 'object'"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestReportingSchema.test_schema_validation[config10-'b'\\ is\\ not\\ one\\ of\\ \\['log'\\]] _
self = <test_reporting.TestReportingSchema object at 0xffffb9989d60>
config = {'reporting': {'a': {'type': 'b'}}}
error_msg = "'b'\\ is\\ not\\ one\\ of\\ \\['log'\\]"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
___ TestReportingSchema.test_schema_validation[config11-'a' was unexpected] ____
self = <test_reporting.TestReportingSchema object at 0xffffb95f8130>
config = {'reporting': {'a': {'a': 'b', 'type': 'print'}}}
error_msg = "'a' was unexpected"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
___ TestReportingSchema.test_schema_validation[config12-'a' was unexpected] ____
self = <test_reporting.TestReportingSchema object at 0xffffb95f82f0>
config = {'reporting': {'a': {'a': 'b', 'type': 'log'}}}
error_msg = "'a' was unexpected"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
___ TestReportingSchema.test_schema_validation[config13-'a' was unexpected] ____
self = <test_reporting.TestReportingSchema object at 0xffffb9620e20>
config = {'reporting': {'a': {'a': 'b', 'endpoint': 'http://a', 'type': 'webhook'}}}
error_msg = "'a' was unexpected"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
___ TestReportingSchema.test_schema_validation[config14-'a' was unexpected] ____
self = <test_reporting.TestReportingSchema object at 0xffffb95db110>
config = {'reporting': {'a': {'a': 'b', 'type': 'hyperv'}}}
error_msg = "'a' was unexpected"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
__ TestReportingSchema.test_schema_validation[config15-'type' is a required] ___
self = <test_reporting.TestReportingSchema object at 0xffffb95db590>
config = {'reporting': {'a': {'level': 'FATAL'}}}
error_msg = "'type' is a required"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
__ TestReportingSchema.test_schema_validation[config16-'type' is a required] ___
self = <test_reporting.TestReportingSchema object at 0xffffb9276ba0>
config = {'reporting': {'a': {'endpoint': 'http://a'}}}
error_msg = "'type' is a required"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestReportingSchema.test_schema_validation[config17-'endpoint' is a required] _
self = <test_reporting.TestReportingSchema object at 0xffffb9276d00>
config = {'reporting': {'a': {'kvp_file_path': '/a/b'}}}
error_msg = "'endpoint' is a required"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
_ TestReportingSchema.test_schema_validation[config18-'endpoint' is a required] _
self = <test_reporting.TestReportingSchema object at 0xffffb960eb70>
config = {'reporting': {'a': {'type': 'webhook'}}}
error_msg = "'endpoint' is a required"
@pytest.mark.parametrize(
"config, error_msg",
[
# GOOD: Minimum valid parameters
({"reporting": {"a": {"type": "print"}}}, None),
({"reporting": {"a": {"type": "log"}}}, None),
(
{
"reporting": {
"a": {"type": "webhook", "endpoint": "http://a"}
}
},
None,
),
({"reporting": {"a": {"type": "hyperv"}}}, None),
# GOOD: All valid parameters
({"reporting": {"a": {"type": "log", "level": "WARN"}}}, None),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
}
}
},
None,
),
(
{
"reporting": {
"a": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
}
}
},
None,
),
# GOOD: All combined together
(
{
"reporting": {
"a": {"type": "print"},
"b": {"type": "log", "level": "WARN"},
"c": {
"type": "webhook",
"endpoint": "http://a",
"timeout": 1,
"retries": 1,
"consumer_key": "somekey",
"token_key": "somekey",
"token_secret": "somesecret",
"consumer_secret": "somesecret",
},
"d": {
"type": "hyperv",
"kvp_file_path": "/some/path",
"event_types": ["a", "b"],
},
}
},
None,
),
# BAD: no top level objects
({"reporting": "a"}, "'a' is not of type 'object'"),
({"reporting": {"a": "b"}}, "'b' is not of type 'object'"),
# BAD: invalid type
(
{"reporting": {"a": {"type": "b"}}},
re.escape("'b' is not one of ['log']"),
),
# BAD: invalid additional properties
(
{"reporting": {"a": {"type": "print", "a": "b"}}},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "log", "a": "b"}}},
"'a' was unexpected",
),
(
{
"reporting": {
"a": {
"type": "webhook",
"endpoint": "http://a",
"a": "b",
}
}
},
"'a' was unexpected",
),
(
{"reporting": {"a": {"type": "hyperv", "a": "b"}}},
"'a' was unexpected",
),
# BAD: missing required properties
({"reporting": {"a": {"level": "FATAL"}}}, "'type' is a required"),
(
{"reporting": {"a": {"endpoint": "http://a"}}},
"'type' is a required",
),
(
{"reporting": {"a": {"kvp_file_path": "/a/b"}}},
"'endpoint' is a required",
),
(
{"reporting": {"a": {"type": "webhook"}}},
"'endpoint' is a required",
),
],
)
def test_schema_validation(self, config, error_msg):
if error_msg is None:
validate_cloudconfig_schema(config, get_schema(), strict=True)
else:
> with pytest.raises(SchemaValidationError, match=error_msg):
E Failed: DID NOT RAISE <class 'cloudinit.config.schema.SchemaValidationError'>
tests/unittests/reporting/test_reporting.py:590: Failed
------------------------------ Captured log call -------------------------------
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1613 Reading from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json (quiet=False)
2024-11-15 22:09:02 DEBUG cloudinit.util:util.py:1622 Read 150110 bytes from /<<PKGBUILDDIR>>/cloudinit/config/schemas/schema-cloud-config-v1.json
2024-11-15 22:09:02 DEBUG cloudinit.config.schema:schema.py:769 Ignoring schema validation. jsonschema is not present
=============================== warnings summary ===============================
tests/unittests/distros/package_management/test_apt.py:122
/<<PKGBUILDDIR>>/tests/unittests/distros/package_management/test_apt.py:122: PytestCollectionWarning: cannot collect test class 'TestUpdatePackageSources' because it has a __init__ constructor (from: tests/unittests/distros/package_management/test_apt.py)
@mock.patch.object(
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_boot_invalid_distro
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_no_ci_log_line
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line
/<<PKGBUILDDIR>>/cloudinit/analyze/__init__.py:131: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
kernel_start_timestamp = datetime.utcfromtimestamp(kernel_start)
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_boot_invalid_distro
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_no_ci_log_line
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line
/<<PKGBUILDDIR>>/cloudinit/analyze/__init__.py:132: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
kernel_end_timestamp = datetime.utcfromtimestamp(kernel_end)
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_boot_invalid_distro
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_no_ci_log_line
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line
/<<PKGBUILDDIR>>/cloudinit/analyze/__init__.py:133: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
ci_sysd_start_timestamp = datetime.utcfromtimestamp(ci_sysd_start)
tests/unittests/analyze/test_boot.py::TestAnalyzeBoot::test_container_ci_log_line
/<<PKGBUILDDIR>>/cloudinit/analyze/__init__.py:141: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
ci_start = datetime.utcfromtimestamp(last_init_local["timestamp"])
tests/unittests/analyze/test_dump.py::TestParseCILogLine::test_parse_logline_returns_event_for_amazon_linux_2_line
/<<PKGBUILDDIR>>/tests/unittests/analyze/test_dump.py:201: DeprecationWarning: Parsing dates involving a day of month without a year specified is ambiguious
and fails to parse leap day. The default behavior will change in Python 3.15
to either always raise an exception or to use a different default year (TBD).
To avoid trouble, add a specific year to the input & format.
See https://github.com/python/cpython/issues/70647.
datetime.strptime("Apr 30 19:39:11", "%b %d %H:%M:%S")
tests/unittests/cmd/devel/test_logs.py::TestCollectLogs::test_collect_logs_end_to_end
/<<PKGBUILDDIR>>/tests/unittests/cmd/devel/test_logs.py:144: DeprecationWarning: Python 3.14 will, by default, filter extracted tar archives and reject files or modify their metadata. Use the filter argument to control this behavior.
tar.extractall(extract_to)
tests/unittests/reporting/test_reporting_hyperv.py: 13 warnings
/<<PKGBUILDDIR>>/cloudinit/reporting/handlers.py:376: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
datetime.utcfromtimestamp(event.timestamp).isoformat() + "Z"
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_get_boot_telemetry
/<<PKGBUILDDIR>>/cloudinit/sources/helpers/azure.py:125: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
datetime.utcfromtimestamp(kernel_start).isoformat() + "Z",
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_get_boot_telemetry
/<<PKGBUILDDIR>>/cloudinit/sources/helpers/azure.py:126: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
datetime.utcfromtimestamp(user_start).isoformat() + "Z",
tests/unittests/reporting/test_reporting_hyperv.py::TextKvpReporter::test_get_boot_telemetry
/<<PKGBUILDDIR>>/cloudinit/sources/helpers/azure.py:127: DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, datetime.UTC).
datetime.utcfromtimestamp(cloudinit_activation).isoformat() + "Z",
tests/unittests/sources/azure/test_errors.py: 48 warnings
/<<PKGBUILDDIR>>/tests/unittests/sources/azure/test_errors.py:23: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
timestamp = datetime.datetime.utcnow()
tests/unittests/sources/azure/test_errors.py: 13 warnings
tests/unittests/sources/azure/test_kvp.py: 2 warnings
tests/unittests/sources/test_azure.py: 107 warnings
tests/unittests/sources/test_azure_helper.py: 11 warnings
/<<PKGBUILDDIR>>/cloudinit/sources/azure/errors.py:55: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
self.timestamp = datetime.utcnow()
tests/unittests/sources/azure/test_kvp.py::TestReportSuccessToHost::test_report_success_to_host
/<<PKGBUILDDIR>>/tests/unittests/sources/azure/test_kvp.py:14: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
timestamp = datetime.utcnow()
tests/unittests/sources/azure/test_kvp.py: 1 warning
tests/unittests/sources/test_azure.py: 49 warnings
/<<PKGBUILDDIR>>/cloudinit/sources/azure/kvp.py:52: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
f"timestamp={datetime.utcnow().isoformat()}",
tests/unittests/sources/test_azure.py: 72 warnings
tests/unittests/sources/test_azure_helper.py: 17 warnings
/<<PKGBUILDDIR>>/cloudinit/sources/helpers/azure.py:1014: DeprecationWarning: Testing an element's truth value will always return True in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.
if not root.find("./wa:ProvisioningSection", cls.NAMESPACES):
tests/unittests/sources/test_azure.py: 24 warnings
/<<PKGBUILDDIR>>/tests/unittests/sources/test_azure.py:318: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
timestamp = datetime.datetime.utcnow()
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_has_expired
tests/unittests/sources/test_gce.py::TestDataSourceGCE::test_has_expired
/<<PKGBUILDDIR>>/cloudinit/sources/DataSourceGCE.py:236: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
return datetime.datetime.utcnow() > expire_time
tests/unittests/test_cli.py: 16 warnings
/<<PKGBUILDDIR>>/tests/unittests/test_cli.py:36: PytestMockWarning: Mocks returned by pytest-mock do not need to be used as context managers. The mocker fixture automatically undoes mocking at the end of a test. This warning can be ignored if it was triggered by mocking a context manager. https://pytest-mock.readthedocs.io/en/latest/remarks.html#usage-as-context-manager
with mocker.patch(
tests/unittests/test_cli.py: 16 warnings
/<<PKGBUILDDIR>>/tests/unittests/test_cli.py:39: PytestMockWarning: Mocks returned by pytest-mock do not need to be used as context managers. The mocker fixture automatically undoes mocking at the end of a test. This warning can be ignored if it was triggered by mocking a context manager. https://pytest-mock.readthedocs.io/en/latest/remarks.html#usage-as-context-manager
), mocker.patch(
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_template_no_userdata_in_provisioning
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestDsIdentify.test_ibmcloud_template_no_userdata_in_provisioning of <tests.unittests.test_ds_identify.TestDsIdentify testMethod=test_ibmcloud_template_no_userdata_in_provisioning>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestDsIdentify::test_ibmcloud_template_userdata_in_provisioning
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestDsIdentify.test_ibmcloud_template_userdata_in_provisioning of <tests.unittests.test_ds_identify.TestDsIdentify testMethod=test_ibmcloud_template_userdata_in_provisioning>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_64
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestDsIdentify.test_vmware_on_vmware_open_vm_tools_64 of <tests.unittests.test_ds_identify.TestDsIdentify testMethod=test_vmware_on_vmware_open_vm_tools_64>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_aarch64_linux_gnu
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestDsIdentify.test_vmware_on_vmware_open_vm_tools_aarch64_linux_gnu of <tests.unittests.test_ds_identify.TestDsIdentify testMethod=test_vmware_on_vmware_open_vm_tools_aarch64_linux_gnu>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_i386_linux_gnu
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestDsIdentify.test_vmware_on_vmware_open_vm_tools_i386_linux_gnu of <tests.unittests.test_ds_identify.TestDsIdentify testMethod=test_vmware_on_vmware_open_vm_tools_i386_linux_gnu>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestDsIdentify::test_vmware_on_vmware_open_vm_tools_x86_64_linux_gnu
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestDsIdentify.test_vmware_on_vmware_open_vm_tools_x86_64_linux_gnu of <tests.unittests.test_ds_identify.TestDsIdentify testMethod=test_vmware_on_vmware_open_vm_tools_x86_64_linux_gnu>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestWSL::test_empty_cloudinitdir
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestWSL.test_empty_cloudinitdir of <tests.unittests.test_ds_identify.TestWSL testMethod=test_empty_cloudinitdir>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestWSL::test_found_via_userdata
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestWSL.test_found_via_userdata of <tests.unittests.test_ds_identify.TestWSL testMethod=test_found_via_userdata>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestWSL::test_no_cloudinitdir_in_userprofile
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestWSL.test_no_cloudinitdir_in_userprofile of <tests.unittests.test_ds_identify.TestWSL testMethod=test_no_cloudinitdir_in_userprofile>>)
return self.run(*args, **kwds)
tests/unittests/test_ds_identify.py::TestWSL::test_no_userprofile
/usr/lib/python3.13/unittest/case.py:707: DeprecationWarning: It is deprecated to return a value that is not None from a test case (<bound method TestWSL.test_no_userprofile of <tests.unittests.test_ds_identify.TestWSL testMethod=test_no_userprofile>>)
return self.run(*args, **kwds)
tests/unittests/test_log.py::TestCloudInitLogger::test_logger_uses_gmtime
/<<PKGBUILDDIR>>/tests/unittests/test_log.py:47: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
utc_before = datetime.datetime.utcnow() - datetime.timedelta(0, 0.5)
tests/unittests/test_log.py::TestCloudInitLogger::test_logger_uses_gmtime
/<<PKGBUILDDIR>>/tests/unittests/test_log.py:49: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
utc_after = datetime.datetime.utcnow() + datetime.timedelta(0, 0.5)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema2-is not one of ['v1']]
FAILED tests/unittests/config/test_schema.py::TestVersionedSchemas::test_versioned_cloud_config_schema_is_valid_json[schema3-is not of type 'string']
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_config_file[None-#cloud-config\nntp:-Valid schema]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_config_file[cloud-config-#cloud-config\nntp:-Valid schema]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_config_file[network-config-network: {'version': 2, 'ethernets': {'eth0': {'dhcp': true}}}-Valid schema]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_config_file[network-config-network:\n version: 1\n config:\n - type: physical\n name: eth0\n subnets:\n - type: dhcp\n-Valid schema]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_processed_data_preference_over_raw_data[prefer_processed_data_when_present_and_non_empty]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_processed_data_preference_over_raw_data[prefer_raw_data_when_processed_is_empty]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_processed_data_preference_over_raw_data[prefer_processed_vd_file_path_when_raw_and_processed_empty]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_validated]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[netv2_schema_validated_non_netplan]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[empty_net_validation_is_skipped]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_errors_handled]
FAILED tests/unittests/config/test_schema.py::TestMain::test_main_validates_system_userdata_vendordata_and_network_config[netv1_schema_error_on_nic_name_length]
FAILED tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[net_v2_invalid_config]
FAILED tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[config_key_required0]
FAILED tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[unknown_config_type_item]
FAILED tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[physical_requires_name_property]
FAILED tests/unittests/config/test_schema.py::TestNetworkSchema::test_network_schema[physical_no_additional_properties]
FAILED tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_unable_to_read_cfg_paths[failure0-expected_logs0]
FAILED tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_unable_to_read_cfg_paths[failure1-expected_logs1]
FAILED tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_annotate_deprecated_config[test_annotated_deprecation_info_boundary_devel_shows]
FAILED tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_annotate_deprecated_config[test_annotated_deprecation_info_boundary_below_unredacted]
FAILED tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_annotate_deprecated_config[test_deprecation_info_boundary_does_unannotated_unredacted]
FAILED tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_jinja_with_errors[root_annotate_errors_with_exception]
FAILED tests/unittests/config/test_schema.py::TestHandleSchemaArgs::test_handle_schema_args_jinja_with_errors[root_no_annotate_exception_with_unique_errors]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config8-'a' is not of type 'object']
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config9-'b' is not of type 'object']
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config10-'b'\\ is\\ not\\ one\\ of\\ \\['log'\\]]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config11-'a' was unexpected]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config12-'a' was unexpected]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config13-'a' was unexpected]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config14-'a' was unexpected]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config15-'type' is a required]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config16-'type' is a required]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config17-'endpoint' is a required]
FAILED tests/unittests/reporting/test_reporting.py::TestReportingSchema::test_schema_validation[config18-'endpoint' is a required]
= 37 failed, 4596 passed, 489 skipped, 18 xfailed, 420 warnings in 77.77s (0:01:17) =
make[1]: *** [debian/rules:10: override_dh_auto_test] Error 1
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:7: binary] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-11-15T22:09:53Z
Finished
--------
+------------------------------------------------------------------------------+
| Cleanup |
+------------------------------------------------------------------------------+
Purging /<<BUILDDIR>>
Not cleaning session: cloned chroot in use
E: Build failure (dpkg-buildpackage died)
+------------------------------------------------------------------------------+
| Summary |
+------------------------------------------------------------------------------+
Build Architecture: arm64
Build Type: binary
Build-Space: 28252
Build-Time: 86
Distribution: sid
Fail-Stage: build
Host Architecture: arm64
Install-Time: 57
Job: /tmp/debusine-fetch-exec-upload-76m8sxld/cloud-init_24.3.1-2.dsc
Machine Architecture: arm64
Package: cloud-init
Package-Time: 180
Source-Version: 24.3.1-2
Space: 28252
Status: attempted
Version: 24.3.1-2
--------------------------------------------------------------------------------
Finished at 2024-11-15T22:09:53Z
Build needed 00:03:00, 28252k disk space