Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 872705 Details for
Bug 915684
sys-power/autosuspend-5.0.0 fails test - E AttributeError: ContentServer object has no attribute expect_request
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
sys-power:autosuspend-5.0.0:20231013-141250.log
sys-power:autosuspend-5.0.0:20231013-141250.log (text/plain), 155.48 KB, created by
Toralf Förster
on 2023-10-13 14:23:37 UTC
(
hide
)
Description:
sys-power:autosuspend-5.0.0:20231013-141250.log
Filename:
MIME Type:
Creator:
Toralf Förster
Created:
2023-10-13 14:23:37 UTC
Size:
155.48 KB
patch
obsolete
> * Package: sys-power/autosuspend-5.0.0:0 > * Repository: gentoo > * Maintainer: flow@gentoo.org > * USE: abi_x86_64 amd64 doc elibc_glibc kernel_linux python_targets_python3_11 test > * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox > >>>> Unpacking source... >>>> Unpacking autosuspend-5.0.0.gh.tar.gz to /var/tmp/portage/sys-power/autosuspend-5.0.0/work >>>> Source unpacked in /var/tmp/portage/sys-power/autosuspend-5.0.0/work >>>> Preparing source in /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0 ... > * Build system packages: > * dev-python/gpep517 : 15 > * dev-python/installer : 0.7.0 > * dev-python/setuptools : 68.2.2 > * dev-python/setuptools-rust : 1.7.0 > * dev-python/setuptools-scm : 8.0.4 > * dev-python/wheel : 0.41.2 >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0 ... > * python3_11: running distutils-r1_run_phase distutils-r1_python_compile > * Building the wheel for autosuspend-5.0.0 via setuptools.build_meta:__legacy__ >gpep517 build-wheel --prefix=/usr --backend setuptools.build_meta:__legacy__ --output-fd 3 --wheel-dir /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/wheel >2023-10-13 14:12:54,233 gpep517 INFO Building wheel via backend setuptools.build_meta:__legacy__ >2023-10-13 14:12:54,722 root INFO running bdist_wheel >2023-10-13 14:12:54,885 root INFO running build >2023-10-13 14:12:54,885 root INFO running build_py >2023-10-13 14:12:54,918 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build >2023-10-13 14:12:54,918 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib >2023-10-13 14:12:54,919 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend >2023-10-13 14:12:54,919 root INFO copying src/autosuspend/__init__.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend >2023-10-13 14:12:54,919 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/util >2023-10-13 14:12:54,920 root INFO copying src/autosuspend/util/systemd.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/util >2023-10-13 14:12:54,920 root INFO copying src/autosuspend/util/datetime.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/util >2023-10-13 14:12:54,920 root INFO copying src/autosuspend/util/__init__.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/util >2023-10-13 14:12:54,921 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,921 root INFO copying src/autosuspend/checks/xpath.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,921 root INFO copying src/autosuspend/checks/xorg.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,922 root INFO copying src/autosuspend/checks/wakeup.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,922 root INFO copying src/autosuspend/checks/util.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,923 root INFO copying src/autosuspend/checks/systemd.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,923 root INFO copying src/autosuspend/checks/stub.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,923 root INFO copying src/autosuspend/checks/smb.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,923 root INFO copying src/autosuspend/checks/mpd.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,924 root INFO copying src/autosuspend/checks/logs.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,924 root INFO copying src/autosuspend/checks/linux.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,924 root INFO copying src/autosuspend/checks/kodi.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,925 root INFO copying src/autosuspend/checks/json.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,925 root INFO copying src/autosuspend/checks/ical.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,926 root INFO copying src/autosuspend/checks/command.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,926 root INFO copying src/autosuspend/checks/activity.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,926 root INFO copying src/autosuspend/checks/__init__.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks >2023-10-13 14:12:54,927 root WARNING warning: build_py: byte-compiling is disabled, skipping. > >2023-10-13 14:12:54,997 wheel INFO installing to /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel >2023-10-13 14:12:54,997 root INFO running install >2023-10-13 14:12:55,011 root INFO running install_lib >2023-10-13 14:12:55,043 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64 >2023-10-13 14:12:55,043 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel >2023-10-13 14:12:55,044 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend >2023-10-13 14:12:55,044 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,044 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/__init__.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,044 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/activity.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,045 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/command.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,045 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/ical.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,046 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/json.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,046 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/kodi.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,047 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/linux.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,047 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/logs.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,047 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/mpd.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,048 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/smb.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,048 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/stub.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,049 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/systemd.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,049 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/util.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,049 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/wakeup.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,050 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/xorg.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,050 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/checks/xpath.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/checks >2023-10-13 14:12:55,051 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/util >2023-10-13 14:12:55,051 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/util/__init__.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/util >2023-10-13 14:12:55,051 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/util/datetime.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/util >2023-10-13 14:12:55,051 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/util/systemd.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend/util >2023-10-13 14:12:55,052 root INFO copying /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/lib/autosuspend/__init__.py -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend >2023-10-13 14:12:55,052 root WARNING warning: install_lib: byte-compiling is disabled, skipping. > >2023-10-13 14:12:55,052 root INFO running install_data >2023-10-13 14:12:55,087 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data >2023-10-13 14:12:55,088 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data >2023-10-13 14:12:55,088 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data/etc >2023-10-13 14:12:55,088 root INFO copying data/autosuspend.conf -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data/etc >2023-10-13 14:12:55,088 root INFO copying data/autosuspend-logging.conf -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data/etc >2023-10-13 14:12:55,089 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data/lib >2023-10-13 14:12:55,089 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data/lib/systemd >2023-10-13 14:12:55,089 root INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data/lib/systemd/system >2023-10-13 14:12:55,089 root INFO copying data/autosuspend.service -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data/lib/systemd/system >2023-10-13 14:12:55,090 root INFO copying data/autosuspend-detect-suspend.service -> /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.data/data/lib/systemd/system >2023-10-13 14:12:55,090 root INFO running install_egg_info >2023-10-13 14:12:55,139 root INFO running egg_info >2023-10-13 14:12:55,139 root INFO creating src/autosuspend.egg-info >2023-10-13 14:12:55,168 root INFO writing src/autosuspend.egg-info/PKG-INFO >2023-10-13 14:12:55,173 root INFO writing dependency_links to src/autosuspend.egg-info/dependency_links.txt >2023-10-13 14:12:55,173 root INFO writing entry points to src/autosuspend.egg-info/entry_points.txt >2023-10-13 14:12:55,175 root INFO writing requirements to src/autosuspend.egg-info/requires.txt >2023-10-13 14:12:55,175 root INFO writing top-level names to src/autosuspend.egg-info/top_level.txt >2023-10-13 14:12:55,177 root INFO writing manifest file 'src/autosuspend.egg-info/SOURCES.txt' >[10/13/23 14:12:55] ERROR listing git files failed - pretending git.py:24 > there aren't any >2023-10-13 14:12:55,311 root INFO reading manifest file 'src/autosuspend.egg-info/SOURCES.txt' >2023-10-13 14:12:55,311 root INFO reading manifest template 'MANIFEST.in' >2023-10-13 14:12:55,312 root INFO adding license file 'LICENSE.txt' >2023-10-13 14:12:55,313 root INFO writing manifest file 'src/autosuspend.egg-info/SOURCES.txt' >2023-10-13 14:12:55,313 root INFO Copying src/autosuspend.egg-info to /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0-py3.11.egg-info >2023-10-13 14:12:55,316 root INFO running install_scripts >2023-10-13 14:12:55,322 wheel INFO creating /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel/autosuspend-5.0.0.dist-info/WHEEL >2023-10-13 14:12:55,323 wheel INFO creating '/var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/wheel/.tmp-22j2ebhd/autosuspend-5.0.0-py3-none-any.whl' and adding '/var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel' to it >2023-10-13 14:12:55,323 wheel INFO adding 'autosuspend/__init__.py' >2023-10-13 14:12:55,324 wheel INFO adding 'autosuspend/checks/__init__.py' >2023-10-13 14:12:55,324 wheel INFO adding 'autosuspend/checks/activity.py' >2023-10-13 14:12:55,324 wheel INFO adding 'autosuspend/checks/command.py' >2023-10-13 14:12:55,324 wheel INFO adding 'autosuspend/checks/ical.py' >2023-10-13 14:12:55,324 wheel INFO adding 'autosuspend/checks/json.py' >2023-10-13 14:12:55,325 wheel INFO adding 'autosuspend/checks/kodi.py' >2023-10-13 14:12:55,325 wheel INFO adding 'autosuspend/checks/linux.py' >2023-10-13 14:12:55,325 wheel INFO adding 'autosuspend/checks/logs.py' >2023-10-13 14:12:55,325 wheel INFO adding 'autosuspend/checks/mpd.py' >2023-10-13 14:12:55,326 wheel INFO adding 'autosuspend/checks/smb.py' >2023-10-13 14:12:55,326 wheel INFO adding 'autosuspend/checks/stub.py' >2023-10-13 14:12:55,326 wheel INFO adding 'autosuspend/checks/systemd.py' >2023-10-13 14:12:55,326 wheel INFO adding 'autosuspend/checks/util.py' >2023-10-13 14:12:55,327 wheel INFO adding 'autosuspend/checks/wakeup.py' >2023-10-13 14:12:55,327 wheel INFO adding 'autosuspend/checks/xorg.py' >2023-10-13 14:12:55,327 wheel INFO adding 'autosuspend/checks/xpath.py' >2023-10-13 14:12:55,327 wheel INFO adding 'autosuspend/util/__init__.py' >2023-10-13 14:12:55,327 wheel INFO adding 'autosuspend/util/datetime.py' >2023-10-13 14:12:55,328 wheel INFO adding 'autosuspend/util/systemd.py' >2023-10-13 14:12:55,328 wheel INFO adding 'autosuspend-5.0.0.data/data/etc/autosuspend-logging.conf' >2023-10-13 14:12:55,328 wheel INFO adding 'autosuspend-5.0.0.data/data/etc/autosuspend.conf' >2023-10-13 14:12:55,329 wheel INFO adding 'autosuspend-5.0.0.data/data/lib/systemd/system/autosuspend-detect-suspend.service' >2023-10-13 14:12:55,329 wheel INFO adding 'autosuspend-5.0.0.data/data/lib/systemd/system/autosuspend.service' >2023-10-13 14:12:55,329 wheel INFO adding 'autosuspend-5.0.0.dist-info/LICENSE.txt' >2023-10-13 14:12:55,330 wheel INFO adding 'autosuspend-5.0.0.dist-info/METADATA' >2023-10-13 14:12:55,330 wheel INFO adding 'autosuspend-5.0.0.dist-info/WHEEL' >2023-10-13 14:12:55,330 wheel INFO adding 'autosuspend-5.0.0.dist-info/entry_points.txt' >2023-10-13 14:12:55,330 wheel INFO adding 'autosuspend-5.0.0.dist-info/top_level.txt' >2023-10-13 14:12:55,330 wheel INFO adding 'autosuspend-5.0.0.dist-info/RECORD' >2023-10-13 14:12:55,331 wheel INFO removing /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/build/bdist.linux-x86_64/wheel >2023-10-13 14:12:55,333 gpep517 INFO The backend produced /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/wheel/autosuspend-5.0.0-py3-none-any.whl > * Installing autosuspend-5.0.0-py3-none-any.whl to /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/install >gpep517 install-wheel --destdir=/var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/install --interpreter=/usr/bin/python3.11 --prefix=/usr --optimize=all /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/wheel/autosuspend-5.0.0-py3-none-any.whl >2023-10-13 14:12:55,515 gpep517 INFO Installing /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/wheel/autosuspend-5.0.0-py3-none-any.whl into /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/install >2023-10-13 14:12:55,623 gpep517 INFO Installation complete > * Checking whether python3_11 is suitable ... > * dev-lang/python:3.11 ... > [ ok ] > * python_check_deps ... > * >=dev-python/sphinx-5.3.0[python_targets_python3_11(-)] ... > [ ok ] > * dev-python/furo[python_targets_python3_11(-)] ... > [ ok ] > * dev-python/recommonmark[python_targets_python3_11(-)] ... > [ ok ] > * dev-python/sphinx-autodoc-typehints[python_targets_python3_11(-)] ... > [ ok ] > * dev-python/sphinx-issues[python_targets_python3_11(-)] ... > [ ok ] > * dev-python/sphinxcontrib-plantuml[python_targets_python3_11(-)] ... > [ ok ] > [ ok ] > * Using python3.11 in global scope > * python3_11: running distutils-r1_run_phase python_compile_all >python3.11 -m sphinx.cmd.build -b html -d doc/source/_build/doctrees doc/source doc/source/_build/html >Running Sphinx v7.2.6 >making output directory... done >building [mo]: targets for 0 po files that are out of date >writing output... >building [html]: targets for 17 source files that are out of date >updating environment: [new config] 17 added, 0 changed, 0 removed >/usr/lib/python3.11/site-packages/recommonmark/parser.py:75: UserWarning: Container node skipped: type=document > warn("Container node skipped: type={0}".format(mdnode.t)) >reading sources... [100%] systemd_integration >looking for now-outdated files... none found >pickling environment... done >checking consistency... done >preparing documents... done >copying assets... copying static files... done >copying extra files... done >done >writing output... [100%] systemd_integrationtivity_scripts >/var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0/doc/source/index.rst:68: WARNING: plantuml command 'plantuml' cannot be run >/var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0/doc/source/options.rst:23: WARNING: undefined label: 'python:logging-config-fileformat' >generating indices... genindex done >writing additional pages... search done >dumping search index in English (code: en)... done >dumping object inventory... done >build succeeded, 2 warnings. > >The HTML pages are in doc/source/_build/html. >>>> Source compiled. >>>> Test phase: sys-power/autosuspend-5.0.0 > * python3_11: running distutils-r1_run_phase python_test >python3.11 -m pytest -vv -ra -l -Wdefault --color=no -o console_output_style=count -p no:cov -p no:flake8 -p no:flakes -p no:pylint -p no:markdown -p no:sugar -p no:xvfb -p no:tavern --deselect tests/test_checks_util.py::TestNetworkMixin::test_file_url -o addopts= >============================= test session starts ============================== >platform linux -- Python 3.11.6, pytest-7.4.2, pluggy-1.3.0 -- /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0-python3_11/install/usr/bin/python3.11 >cachedir: .pytest_cache >hypothesis profile 'default' -> database=DirectoryBasedExampleDatabase(PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0/.hypothesis/examples')) >rootdir: /var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0 >configfile: setup.cfg >plugins: forked-1.6.0, xdist-3.3.1, bdd-7.0.0, pytest_httpserver-1.0.8, verbose-parametrize-1.7.0, Faker-19.10.0, pyfakefs-5.3.0, flaky-3.7.0, localserver-0.8.1, env-1.0.1, asyncio-0.21.1, timeout-2.2.0, hypothesis-6.87.4, anyio-4.0.0, datadir-1.5.0, mock-3.11.1 >asyncio: mode=Mode.STRICT >collecting ... collected 350 items / 1 deselected / 349 selected > >tests/test_autosuspend.py::TestExecuteSuspend::test_smoke PASSED [ 1/349] >tests/test_autosuspend.py::TestExecuteSuspend::test_call_exception PASSED [ 2/349] >tests/test_autosuspend.py::TestScheduleWakeup::test_smoke PASSED [ 3/349] >tests/test_autosuspend.py::TestScheduleWakeup::test_call_exception PASSED [ 4/349] >tests/test_autosuspend.py::TestConfigureLogging::test_debug PASSED [ 5/349] >tests/test_autosuspend.py::TestConfigureLogging::test_standard PASSED [ 6/349] >tests/test_autosuspend.py::TestConfigureLogging::test_file PASSED [ 7/349] >tests/test_autosuspend.py::TestConfigureLogging::test_file_fallback PASSED [ 8/349] >tests/test_autosuspend.py::TestSetUpChecks::test_smoke PASSED [ 9/349] >tests/test_autosuspend.py::TestSetUpChecks::test_external_class PASSED [ 10/349] >tests/test_autosuspend.py::TestSetUpChecks::test_not_enabled PASSED [ 11/349] >tests/test_autosuspend.py::TestSetUpChecks::test_not_enabled_continues_with_next PASSED [ 12/349] >tests/test_autosuspend.py::TestSetUpChecks::test_no_such_class PASSED [ 13/349] >tests/test_autosuspend.py::TestSetUpChecks::test_not_a_check PASSED [ 14/349] >tests/test_autosuspend.py::TestSetUpChecks::test_passwords_redacted PASSED [ 15/349] >tests/test_autosuspend.py::TestExecuteChecks::test_no_checks PASSED [ 16/349] >tests/test_autosuspend.py::TestExecuteChecks::test_matches PASSED [ 17/349] >tests/test_autosuspend.py::TestExecuteChecks::test_only_first_called PASSED [ 18/349] >tests/test_autosuspend.py::TestExecuteChecks::test_all_called PASSED [ 19/349] >tests/test_autosuspend.py::TestExecuteChecks::test_ignore_temporary_errors PASSED [ 20/349] >tests/test_autosuspend.py::TestExecuteWakeups::test_no_wakeups PASSED [ 21/349] >tests/test_autosuspend.py::TestExecuteWakeups::test_all_none PASSED [ 22/349] >tests/test_autosuspend.py::TestExecuteWakeups::test_skips_none_outdated_and_continues[None] PASSED [ 23/349] >tests/test_autosuspend.py::TestExecuteWakeups::test_skips_none_outdated_and_continues[2004-06-05 09:00:00+00:00] PASSED [ 24/349] >tests/test_autosuspend.py::TestExecuteWakeups::test_basic_return PASSED [ 25/349] >tests/test_autosuspend.py::TestExecuteWakeups::test_soonest_taken PASSED [ 26/349] >tests/test_autosuspend.py::TestExecuteWakeups::test_ignore_temporary_errors PASSED [ 27/349] >tests/test_autosuspend.py::TestExecuteWakeups::test_ignore_too_early PASSED [ 28/349] >tests/test_autosuspend.py::TestNotifySuspend::test_date PASSED [ 29/349] >tests/test_autosuspend.py::TestNotifySuspend::test_date_no_command PASSED [ 30/349] >tests/test_autosuspend.py::TestNotifySuspend::test_no_date PASSED [ 31/349] >tests/test_autosuspend.py::TestNotifySuspend::test_no_date_no_command PASSED [ 32/349] >tests/test_autosuspend.py::TestNotifySuspend::test_ignore_execution_errors PASSED [ 33/349] >tests/test_autosuspend.py::TestNotifySuspend::test_info_no_command PASSED [ 34/349] >tests/test_autosuspend.py::TestConfigureProcessor::test_minimal_config PASSED [ 35/349] >tests/test_autosuspend.py::test_notify_and_suspend PASSED [ 36/349] >tests/test_autosuspend.py::TestProcessor::test_smoke PASSED [ 37/349] >tests/test_autosuspend.py::TestProcessor::test_just_woke_up_handling PASSED [ 38/349] >tests/test_autosuspend.py::TestProcessor::test_wakeup_blocks_sleep PASSED [ 39/349] >tests/test_autosuspend.py::TestProcessor::test_wakeup_exact_hit_does_not_block PASSED [ 40/349] >tests/test_autosuspend.py::TestProcessor::test_wakeup_scheduled PASSED [ 41/349] >tests/test_autosuspend.py::TestProcessor::test_wakeup_delta_blocks PASSED [ 42/349] >tests/test_autosuspend.py::TestProcessor::test_wakeup_delta_applied PASSED [ 43/349] >tests/test_checks.py::TestCheck::TestName::test_returns_the_provided_name PASSED [ 44/349] >tests/test_checks.py::TestCheck::TestName::test_has_a_sensible_default PASSED [ 45/349] >tests/test_checks.py::TestCheck::test_has_a_string_representation PASSED [ 46/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[ActiveCalendarEvent] PASSED [ 47/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[ActiveConnection] PASSED [ 48/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[ExternalCommand] PASSED [ 49/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[JsonPath] PASSED [ 50/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[Kodi] PASSED [ 51/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[KodiIdleTime] PASSED [ 52/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[LastLogActivity] PASSED [ 53/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[Load] PASSED [ 54/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[LogindSessionsIdle] PASSED [ 55/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[Mpd] PASSED [ 56/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[NetworkBandwidth] PASSED [ 57/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[Ping] PASSED [ 58/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[Processes] PASSED [ 59/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[Smb] PASSED [ 60/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[Users] PASSED [ 61/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[XIdleTime] PASSED [ 62/349] >tests/test_checks_activity.py::test_legacy_check_names_are_available[XPath] PASSED [ 63/349] >tests/test_checks_command.py::TestCommandMixin::TestCreate::test_it_works PASSED [ 64/349] >tests/test_checks_command.py::TestCommandMixin::TestCreate::test_throws_if_no_command_is_configured PASSED [ 65/349] >tests/test_checks_command.py::TestCommandActivity::test_the_configured_name_is_used <- tests/__init__.py PASSED [ 66/349] >tests/test_checks_command.py::TestCommandActivity::test_reports_activity_if_the_command_succeeds PASSED [ 67/349] >tests/test_checks_command.py::TestCommandActivity::test_reports_no_activity_if_the_command_fails PASSED [ 68/349] >tests/test_checks_command.py::TestCommandActivity::test_reports_missing_commands PASSED [ 69/349] >tests/test_checks_command.py::TestCommandWakeup::test_the_configured_name_is_used <- tests/__init__.py PASSED [ 70/349] >tests/test_checks_command.py::TestCommandWakeup::test_reports_the_wakup_time_received_from_the_command PASSED [ 71/349] >tests/test_checks_command.py::TestCommandWakeup::test_reports_no_wakeup_without_command_output PASSED [ 72/349] >tests/test_checks_command.py::TestCommandWakeup::test_raises_an_error_if_the_command_output_cannot_be_parsed PASSED [ 73/349] >tests/test_checks_command.py::TestCommandWakeup::test_uses_only_the_first_output_line PASSED [ 74/349] >tests/test_checks_command.py::TestCommandWakeup::test_uses_only_the_first_line_even_if_empty PASSED [ 75/349] >tests/test_checks_command.py::TestCommandWakeup::test_raises_if_the_called_command_fails PASSED [ 76/349] >tests/test_checks_command.py::TestCommandWakeup::test_reports_missing_executables PASSED [ 77/349] >tests/test_checks_ical.py::TestCalendarEvent::test_str PASSED [ 78/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_simple_recurring FAILED [ 79/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_recurrence_different_dst FAILED [ 80/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_all_day_events PASSED [ 81/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_normal_events FAILED [ 82/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_floating_time PASSED [ 83/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_floating_time_other_dst PASSED [ 84/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_exclusions FAILED [ 85/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_reucrring_single_changes FAILED [ 86/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_reucrring_change_dst FAILED [ 87/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_recurring_start_and_end_inclusive FAILED [ 88/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_single_start_end_inclusive FAILED [ 89/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_single_all_day_start_end_inclusive PASSED [ 90/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_longer_single_all_day_start_end_inclusive PASSED [ 91/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_recurring_all_day_start_end_inclusive PASSED [ 92/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_recurring_all_day_start_in_between PASSED [ 93/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_recurring_all_day_exclusions PASSED [ 94/349] >tests/test_checks_ical.py::TestListCalendarEvents::test_recurring_all_day_exclusions_end PASSED [ 95/349] >tests/test_checks_ical.py::TestActiveCalendarEvent::test_the_configured_name_is_used <- tests/__init__.py PASSED [ 96/349] >tests/test_checks_ical.py::TestActiveCalendarEvent::test_smoke FAILED [ 97/349] >tests/test_checks_ical.py::TestActiveCalendarEvent::test_exact_range FAILED [ 98/349] >tests/test_checks_ical.py::TestActiveCalendarEvent::test_before_exact_range FAILED [ 99/349] >tests/test_checks_ical.py::TestActiveCalendarEvent::test_no_event FAILED [100/349] >tests/test_checks_ical.py::TestActiveCalendarEvent::test_create PASSED [101/349] >tests/test_checks_ical.py::TestCalendar::test_the_configured_name_is_used <- tests/__init__.py PASSED [102/349] >tests/test_checks_ical.py::TestCalendar::test_create PASSED [103/349] >tests/test_checks_ical.py::TestCalendar::test_empty FAILED [104/349] >tests/test_checks_ical.py::TestCalendar::test_smoke FAILED [105/349] >tests/test_checks_ical.py::TestCalendar::test_select_earliest FAILED [106/349] >tests/test_checks_ical.py::TestCalendar::test_ignore_running FAILED [107/349] >tests/test_checks_ical.py::TestCalendar::test_limited_horizon FAILED [108/349] >tests/test_checks_json.py::TestJsonPath::test_the_configured_name_is_used <- tests/__init__.py PASSED [109/349] >tests/test_checks_json.py::TestJsonPath::test_matching PASSED [110/349] >tests/test_checks_json.py::TestJsonPath::test_filter_expressions_work PASSED [111/349] >tests/test_checks_json.py::TestJsonPath::test_not_matching PASSED [112/349] >tests/test_checks_json.py::TestJsonPath::test_network_errors_are_passed FAILED [113/349] >tests/test_checks_json.py::TestJsonPath::test_not_json FAILED [114/349] >tests/test_checks_json.py::TestJsonPath::TestCreate::test_it_works PASSED [115/349] >tests/test_checks_json.py::TestJsonPath::TestCreate::test_raises_on_missing_json_path PASSED [116/349] >tests/test_checks_json.py::TestJsonPath::TestCreate::test_raises_on_invalid_json_path PASSED [117/349] >tests/test_checks_kodi.py::TestKodi::test_the_configured_name_is_used <- tests/__init__.py PASSED [118/349] >tests/test_checks_kodi.py::TestKodi::test_playing PASSED [119/349] >tests/test_checks_kodi.py::TestKodi::test_not_playing PASSED [120/349] >tests/test_checks_kodi.py::TestKodi::test_playing_suspend_while_paused PASSED [121/349] >tests/test_checks_kodi.py::TestKodi::test_not_playing_suspend_while_paused PASSED [122/349] >tests/test_checks_kodi.py::TestKodi::test_assertion_no_result PASSED [123/349] >tests/test_checks_kodi.py::TestKodi::test_request_error PASSED [124/349] >tests/test_checks_kodi.py::TestKodi::test_json_error PASSED [125/349] >tests/test_checks_kodi.py::TestKodi::test_create PASSED [126/349] >tests/test_checks_kodi.py::TestKodi::test_create_default_url PASSED [127/349] >tests/test_checks_kodi.py::TestKodi::test_create_timeout_no_number PASSED [128/349] >tests/test_checks_kodi.py::TestKodi::test_create_suspend_while_paused PASSED [129/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_the_configured_name_is_used <- tests/__init__.py PASSED [130/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_create PASSED [131/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_create_default_url PASSED [132/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_create_timeout_no_number PASSED [133/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_create_idle_time_no_number PASSED [134/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_no_result PASSED [135/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_result_is_list PASSED [136/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_result_no_entry PASSED [137/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_result_wrong_entry PASSED [138/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_active PASSED [139/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_inactive PASSED [140/349] >tests/test_checks_kodi.py::TestKodiIdleTime::test_request_error PASSED [141/349] >tests/test_checks_linux.py::TestUsers::test_the_configured_name_is_used <- tests/__init__.py PASSED [142/349] >tests/test_checks_linux.py::TestUsers::test_reports_no_activity_without_users PASSED [143/349] >tests/test_checks_linux.py::TestUsers::test_matching_users PASSED [144/349] >tests/test_checks_linux.py::TestUsers::test_detect_no_activity_if_no_matching_user_exists PASSED [145/349] >tests/test_checks_linux.py::TestUsers::TestCreate::test_it_works_with_a_valid_config PASSED [146/349] >tests/test_checks_linux.py::TestUsers::TestCreate::test_raises_with_invalid_expression PASSED [147/349] >tests/test_checks_linux.py::TestProcesses::test_the_configured_name_is_used <- tests/__init__.py PASSED [148/349] >tests/test_checks_linux.py::TestProcesses::test_detects_activity_with_matching_process PASSED [149/349] >tests/test_checks_linux.py::TestProcesses::test_ignores_no_such_process_errors PASSED [150/349] >tests/test_checks_linux.py::TestProcesses::test_detect_no_activity_for_non_matching_processes PASSED [151/349] >tests/test_checks_linux.py::TestProcesses::TestCreate::test_it_works_with_a_valid_config PASSED [152/349] >tests/test_checks_linux.py::TestProcesses::TestCreate::test_raises_if_no_processes_are_configured PASSED [153/349] >tests/test_checks_linux.py::TestActiveConnection::test_the_configured_name_is_used <- tests/__init__.py PASSED [154/349] >tests/test_checks_linux.py::TestActiveConnection::test_detect_activity_if_port_is_connected[-1-2-1-('123.456.123.456', 22)-('42.42.42.42', 42)-ESTABLISHE...] PASSED [155/349] >tests/test_checks_linux.py::TestActiveConnection::test_detect_activity_if_port_is_connected[-1-10-1-('fe80::5193:518c:5c69:aedb',...-('42.42.42.42', 42)-...] PASSED [156/349] >tests/test_checks_linux.py::TestActiveConnection::test_detect_activity_if_port_is_connected[-1-10-1-('fe80::5193:518c:5c69:cccc',...-('42.42.42.42', 42)-...] PASSED [157/349] >tests/test_checks_linux.py::TestActiveConnection::test_detect_activity_if_port_is_connected[-1-10-1-('::ffff:123.456.123.456', 22)-('42.42.42.42', 42)-ES...] PASSED [158/349] >tests/test_checks_linux.py::TestActiveConnection::test_detects_no_activity_if_port_is_not_connected[-1-2-1-('123.456.123.456', 32)-('42.42.42.42', 42)-ESTABLISHE...] PASSED [159/349] >tests/test_checks_linux.py::TestActiveConnection::test_detects_no_activity_if_port_is_not_connected[-1-2-1-('33.33.33.33', 22)-('42.42.42.42', 42)-ESTABLISHED-None] PASSED [160/349] >tests/test_checks_linux.py::TestActiveConnection::test_detects_no_activity_if_port_is_not_connected[-1-2-1-('123.456.123.456', 22)-('42.42.42.42', 42)-NARF-None] PASSED [161/349] >tests/test_checks_linux.py::TestActiveConnection::test_detects_no_activity_if_port_is_not_connected[-1-2-1-('42.42.42.42', 42)-('123.456.123.456', 22)-NARF-None] PASSED [162/349] >tests/test_checks_linux.py::TestActiveConnection::TestCreate::test_it_works_with_a_valid_config PASSED [163/349] >tests/test_checks_linux.py::TestActiveConnection::TestCreate::test_raises_if_no_ports_are_configured PASSED [164/349] >tests/test_checks_linux.py::TestActiveConnection::TestCreate::test_raises_if_ports_are_not_numeric PASSED [165/349] >tests/test_checks_linux.py::TestLoad::test_the_configured_name_is_used <- tests/__init__.py PASSED [166/349] >tests/test_checks_linux.py::TestLoad::test_detects_no_activity_below_threshold PASSED [167/349] >tests/test_checks_linux.py::TestLoad::test_detects_activity_above_threshold PASSED [168/349] >tests/test_checks_linux.py::TestLoad::TestCreate::test_it_works_with_a_valid_config PASSED [169/349] >tests/test_checks_linux.py::TestLoad::TestCreate::test_raises_if_threshold_is_not_numeric PASSED [170/349] >tests/test_checks_linux.py::TestNetworkBandwidth::test_the_configured_name_is_used <- tests/__init__.py PASSED [171/349] >tests/test_checks_linux.py::TestNetworkBandwidth::test_detects_non_mocked_activity ERROR [172/349] >tests/test_checks_linux.py::TestNetworkBandwidth::TestCreate::test_it_works_with_a_valid_config PASSED [173/349] >tests/test_checks_linux.py::TestNetworkBandwidth::TestCreate::test_default_values_work PASSED [174/349] >tests/test_checks_linux.py::TestNetworkBandwidth::TestCreate::test_raises_with_an_invalid_config[{'interfaces': 'foo, NOTEXIST...-does not exist] PASSED [175/349] >tests/test_checks_linux.py::TestNetworkBandwidth::TestCreate::test_raises_with_an_invalid_config[{'threshold_send': '200', 'th...-configuration key: \\'interfa...] PASSED [176/349] >tests/test_checks_linux.py::TestNetworkBandwidth::TestCreate::test_raises_with_an_invalid_config[{'interfaces': '', 'threshold...-No interfaces configured] PASSED [177/349] >tests/test_checks_linux.py::TestNetworkBandwidth::TestCreate::test_raises_with_an_invalid_config[{'interfaces': 'foo, bar', 't...-Threshold in wrong format] PASSED [178/349] >tests/test_checks_linux.py::TestNetworkBandwidth::TestCreate::test_raises_with_an_invalid_config[{'interfaces': 'foo, bar', 't...-Threshold in wrong format#4] PASSED [179/349] >tests/test_checks_linux.py::TestNetworkBandwidth::test_detects_activity_in_direction[1.7976931348623157e+308-0-receive] ERROR [180/349] >tests/test_checks_linux.py::TestNetworkBandwidth::test_detects_activity_in_direction[0-1.7976931348623157e+308-sending] ERROR [181/349] >tests/test_checks_linux.py::TestNetworkBandwidth::test_reports_no_activity_below_threshold ERROR [182/349] >tests/test_checks_linux.py::TestNetworkBandwidth::test_internal_state_updating_works ERROR [183/349] >tests/test_checks_linux.py::TestNetworkBandwidth::test_delta_calculation_send_work PASSED [184/349] >tests/test_checks_linux.py::TestNetworkBandwidth::test_delta_calculation_receive_work PASSED [185/349] >tests/test_checks_linux.py::TestPing::test_the_configured_name_is_used <- tests/__init__.py PASSED [186/349] >tests/test_checks_linux.py::TestPing::test_calls_ping_correctly PASSED [187/349] >tests/test_checks_linux.py::TestPing::test_raises_if_the_ping_binary_is_missing PASSED [188/349] >tests/test_checks_linux.py::TestPing::test_detect_activity_if_ping_succeeds PASSED [189/349] >tests/test_checks_linux.py::TestPing::TestCreate::test_raises_if_hosts_are_missing PASSED [190/349] >tests/test_checks_linux.py::TestPing::TestCreate::test_comma_separated_hosts_are_split PASSED [191/349] >tests/test_checks_linux.py::TestFile::test_the_configured_name_is_used <- tests/__init__.py PASSED [192/349] >tests/test_checks_linux.py::TestFile::TestCreate::test_it_works_with_a_valid_config PASSED [193/349] >tests/test_checks_linux.py::TestFile::TestCreate::test_raises_without_path PASSED [194/349] >tests/test_checks_linux.py::TestFile::test_extracts_data_from_file PASSED [195/349] >tests/test_checks_linux.py::TestFile::test_reports_no_wakeup_if_file_does_not_exist PASSED [196/349] >tests/test_checks_linux.py::TestFile::test_raises_on_permissions_errors PASSED [197/349] >tests/test_checks_linux.py::TestFile::test_raises_on_io_errors PASSED [198/349] >tests/test_checks_linux.py::TestFile::test_raises_if_file_contents_are_not_a_timestamp PASSED [199/349] >tests/test_checks_logs.py::TestLastLogActivity::test_the_configured_name_is_used <- tests/__init__.py PASSED [200/349] >tests/test_checks_logs.py::TestLastLogActivity::test_is_active PASSED [201/349] >tests/test_checks_logs.py::TestLastLogActivity::test_is_not_active PASSED [202/349] >tests/test_checks_logs.py::TestLastLogActivity::test_uses_last_line PASSED [203/349] >tests/test_checks_logs.py::TestLastLogActivity::test_ignores_lines_that_do_not_match PASSED [204/349] >tests/test_checks_logs.py::TestLastLogActivity::test_uses_pattern PASSED [205/349] >tests/test_checks_logs.py::TestLastLogActivity::test_uses_given_timezone PASSED [206/349] >tests/test_checks_logs.py::TestLastLogActivity::test_prefers_parsed_timezone PASSED [207/349] >tests/test_checks_logs.py::TestLastLogActivity::test_fails_if_dates_cannot_be_parsed PASSED [208/349] >tests/test_checks_logs.py::TestLastLogActivity::test_fails_if_dates_are_in_the_future PASSED [209/349] >tests/test_checks_logs.py::TestLastLogActivity::test_fails_if_file_cannot_be_read PASSED [210/349] >tests/test_checks_logs.py::TestLastLogActivity::test_create PASSED [211/349] >tests/test_checks_logs.py::TestLastLogActivity::test_create_handles_pattern_errors PASSED [212/349] >tests/test_checks_logs.py::TestLastLogActivity::test_create_handles_delta_errors PASSED [213/349] >tests/test_checks_logs.py::TestLastLogActivity::test_create_handles_negative_deltas PASSED [214/349] >tests/test_checks_logs.py::TestLastLogActivity::test_create_handles_missing_pattern_groups PASSED [215/349] >tests/test_checks_logs.py::TestLastLogActivity::test_create_handles_missing_keys PASSED [216/349] >tests/test_checks_mpd.py::TestMpd::test_the_configured_name_is_used <- tests/__init__.py PASSED [217/349] >tests/test_checks_mpd.py::TestMpd::test_playing PASSED [218/349] >tests/test_checks_mpd.py::TestMpd::test_not_playing PASSED [219/349] >tests/test_checks_mpd.py::TestMpd::test_correct_mpd_interaction PASSED [220/349] >tests/test_checks_mpd.py::TestMpd::test_handle_connection_errors[ConnectionError] PASSED [221/349] >tests/test_checks_mpd.py::TestMpd::test_handle_connection_errors[ConnectionError#1] PASSED [222/349] >tests/test_checks_mpd.py::TestMpd::test_create PASSED [223/349] >tests/test_checks_mpd.py::TestMpd::test_create_port_no_number PASSED [224/349] >tests/test_checks_mpd.py::TestMpd::test_create_timeout_no_number PASSED [225/349] >tests/test_checks_smb.py::TestSmb::test_the_configured_name_is_used <- tests/__init__.py PASSED [226/349] >tests/test_checks_smb.py::TestSmb::test_no_connections PASSED [227/349] >tests/test_checks_smb.py::TestSmb::test_with_connections PASSED [228/349] >tests/test_checks_smb.py::TestSmb::test_call_error PASSED [229/349] >tests/test_checks_smb.py::TestSmb::test_missing_executable PASSED [230/349] >tests/test_checks_smb.py::TestSmb::test_create PASSED [231/349] >tests/test_checks_stub.py::TestPeriodic::test_the_configured_name_is_used <- tests/__init__.py PASSED [232/349] >tests/test_checks_stub.py::TestPeriodic::test_create PASSED [233/349] >tests/test_checks_stub.py::TestPeriodic::test_create_wrong_unit PASSED [234/349] >tests/test_checks_stub.py::TestPeriodic::test_create_not_numeric PASSED [235/349] >tests/test_checks_stub.py::TestPeriodic::test_create_no_unit PASSED [236/349] >tests/test_checks_stub.py::TestPeriodic::test_create_float PASSED [237/349] >tests/test_checks_stub.py::TestPeriodic::test_check PASSED [238/349] >tests/test_checks_systemd.py::test_next_timer_executions SKIPPED (No >dbusmock implementation available) [239/349] >tests/test_checks_systemd.py::TestSystemdTimer::test_the_configured_name_is_used <- tests/__init__.py PASSED [240/349] >tests/test_checks_systemd.py::TestSystemdTimer::test_create_handles_incorrect_expressions PASSED [241/349] >tests/test_checks_systemd.py::TestSystemdTimer::test_create_raises_if_match_is_missing PASSED [242/349] >tests/test_checks_systemd.py::TestSystemdTimer::test_works_without_timers PASSED [243/349] >tests/test_checks_systemd.py::TestSystemdTimer::test_ignores_non_matching_timers PASSED [244/349] >tests/test_checks_systemd.py::TestSystemdTimer::test_finds_matching_timers PASSED [245/349] >tests/test_checks_systemd.py::TestSystemdTimer::test_selects_the_closest_execution_if_multiple_match PASSED [246/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_the_configured_name_is_used <- tests/__init__.py PASSED [247/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_active PASSED [248/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_inactive SKIPPED [249/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_ignore_unknow_type PASSED [250/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_ignore_unknown_class PASSED [251/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_configure_defaults PASSED [252/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_configure_types PASSED [253/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_configure_states PASSED [254/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_configure_classes PASSED [255/349] >tests/test_checks_systemd.py::TestLogindSessionsIdle::test_dbus_error PASSED [256/349] >tests/test_checks_util.py::TestNetworkMixin::test_collect_missing_url PASSED [257/349] >tests/test_checks_util.py::TestNetworkMixin::test_username_missing PASSED [258/349] >tests/test_checks_util.py::TestNetworkMixin::test_password_missing PASSED [259/349] >tests/test_checks_util.py::TestNetworkMixin::test_collect_default_timeout PASSED [260/349] >tests/test_checks_util.py::TestNetworkMixin::test_collect_timeout PASSED [261/349] >tests/test_checks_util.py::TestNetworkMixin::test_collect_invalid_timeout PASSED [262/349] >tests/test_checks_util.py::TestNetworkMixin::test_request FAILED [263/349] >tests/test_checks_util.py::TestNetworkMixin::test_requests_exception PASSED [264/349] >tests/test_checks_util.py::TestNetworkMixin::test_smoke FAILED [265/349] >tests/test_checks_util.py::TestNetworkMixin::test_exception_404 FAILED [266/349] >tests/test_checks_util.py::TestNetworkMixin::test_authentication FAILED [267/349] >tests/test_checks_util.py::TestNetworkMixin::test_invalid_authentication FAILED [268/349] >tests/test_checks_util.py::TestNetworkMixin::test_content_type PASSED [269/349] >tests/test_checks_wakeup.py::test_legacy_check_names_are_available[Calendar] PASSED [270/349] >tests/test_checks_wakeup.py::test_legacy_check_names_are_available[Command] PASSED [271/349] >tests/test_checks_wakeup.py::test_legacy_check_names_are_available[File] PASSED [272/349] >tests/test_checks_wakeup.py::test_legacy_check_names_are_available[Periodic] PASSED [273/349] >tests/test_checks_wakeup.py::test_legacy_check_names_are_available[SystemdTimer] PASSED [274/349] >tests/test_checks_wakeup.py::test_legacy_check_names_are_available[XPath] PASSED [275/349] >tests/test_checks_wakeup.py::test_legacy_check_names_are_available[XPathDelta] PASSED [276/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_empty PASSED [277/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_extracts_valid_sockets[0] PASSED [278/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_extracts_valid_sockets[10] PASSED [279/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_extracts_valid_sockets[1024] PASSED [280/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_ignores_and_warns_on_invalid_numbers[] PASSED [281/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_ignores_and_warns_on_invalid_numbers[string] PASSED [282/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_ignores_and_warns_on_invalid_numbers[ ] PASSED [283/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_ignores_and_warns_on_unknown_users PASSED [284/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_ignores_other_files PASSED [285/349] >tests/test_checks_xorg.py::TestListSessionsSockets::test_returns_multiple PASSED [286/349] >tests/test_checks_xorg.py::TestListSessionsLogind::test_extracts_valid_sessions PASSED [287/349] >tests/test_checks_xorg.py::TestListSessionsLogind::test_ignores_sessions_with_missing_properties PASSED [288/349] >tests/test_checks_xorg.py::TestListSessionsLogind::test_ignores_and_warns_on_invalid_display_numbers PASSED [289/349] >tests/test_checks_xorg.py::TestXIdleTime::test_the_configured_name_is_used <- tests/__init__.py PASSED [290/349] >tests/test_checks_xorg.py::TestXIdleTime::test_smoke PASSED [291/349] >tests/test_checks_xorg.py::TestXIdleTime::test_no_activity PASSED [292/349] >tests/test_checks_xorg.py::TestXIdleTime::test_multiple_sessions PASSED [293/349] >tests/test_checks_xorg.py::TestXIdleTime::test_handle_call_error PASSED [294/349] >tests/test_checks_xorg.py::TestXIdleTime::test_create_default PASSED [295/349] >tests/test_checks_xorg.py::TestXIdleTime::test_create PASSED [296/349] >tests/test_checks_xorg.py::TestXIdleTime::test_create_no_int PASSED [297/349] >tests/test_checks_xorg.py::TestXIdleTime::test_create_broken_process_re PASSED [298/349] >tests/test_checks_xorg.py::TestXIdleTime::test_create_broken_users_re PASSED [299/349] >tests/test_checks_xorg.py::TestXIdleTime::test_create_unknown_method PASSED [300/349] >tests/test_checks_xorg.py::TestXIdleTime::test_list_sessions_logind_dbus_error PASSED [301/349] >tests/test_checks_xorg.py::TestXIdleTime::test_sudo_not_found PASSED [302/349] >tests/test_checks_xpath.py::TestXPathMixin::test_smoke FAILED [303/349] >tests/test_checks_xpath.py::TestXPathMixin::test_broken_xml PASSED [304/349] >tests/test_checks_xpath.py::TestXPathMixin::test_xml_with_encoding PASSED [305/349] >tests/test_checks_xpath.py::TestXPathMixin::test_xpath_prevalidation PASSED [306/349] >tests/test_checks_xpath.py::TestXPathMixin::test_missing_config_entry[xpath] PASSED [307/349] >tests/test_checks_xpath.py::TestXPathMixin::test_missing_config_entry[url] PASSED [308/349] >tests/test_checks_xpath.py::TestXPathMixin::test_invalid_config_entry PASSED [309/349] >tests/test_checks_xpath.py::TestXPathActivity::test_the_configured_name_is_used <- tests/__init__.py PASSED [310/349] >tests/test_checks_xpath.py::TestXPathActivity::test_matching PASSED [311/349] >tests/test_checks_xpath.py::TestXPathActivity::test_not_matching PASSED [312/349] >tests/test_checks_xpath.py::TestXPathActivity::test_create PASSED [313/349] >tests/test_checks_xpath.py::TestXPathActivity::test_network_errors_are_passed FAILED [314/349] >tests/test_checks_xpath.py::TestXPathWakeup::test_the_configured_name_is_used <- tests/__init__.py PASSED [315/349] >tests/test_checks_xpath.py::TestXPathWakeup::test_matching PASSED [316/349] >tests/test_checks_xpath.py::TestXPathWakeup::test_not_matching PASSED [317/349] >tests/test_checks_xpath.py::TestXPathWakeup::test_not_a_string PASSED [318/349] >tests/test_checks_xpath.py::TestXPathWakeup::test_not_a_number PASSED [319/349] >tests/test_checks_xpath.py::TestXPathWakeup::test_multiple_min PASSED [320/349] >tests/test_checks_xpath.py::TestXPathWakeup::test_create PASSED [321/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_the_configured_name_is_used <- tests/__init__.py PASSED [322/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_smoke[microseconds-1e-06] PASSED [323/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_smoke[milliseconds-0.001] PASSED [324/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_smoke[seconds-1] PASSED [325/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_smoke[minutes-60] PASSED [326/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_smoke[hours-3600] PASSED [327/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_smoke[days-86400] PASSED [328/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_smoke[weeks-604800] PASSED [329/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_create PASSED [330/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_create_wrong_unit PASSED [331/349] >tests/test_checks_xpath.py::TestXPathDeltaWakeup::test_init_wrong_unit PASSED [332/349] >tests/test_integration.py::test_no_suspend_if_matching PASSED [333/349] >tests/test_integration.py::test_suspend PASSED [334/349] >tests/test_integration.py::test_wakeup_scheduled PASSED [335/349] >tests/test_integration.py::test_woke_up_file_removed PASSED [336/349] >tests/test_integration.py::test_notify_call PASSED [337/349] >tests/test_integration.py::test_notify_call_wakeup PASSED [338/349] >tests/test_integration.py::test_error_no_checks_configured PASSED [339/349] >tests/test_integration.py::test_temporary_errors_logged PASSED [340/349] >tests/test_integration.py::test_loop_defaults PASSED [341/349] >tests/test_integration.py::test_hook_success PASSED [342/349] >tests/test_integration.py::test_hook_call_wakeup PASSED [343/349] >tests/test_util.py::TestLoggerByClass::test_smoke PASSED [344/349] >tests/test_util.py::TestLoggerByClass::test_name PASSED [345/349] >tests/test_util.py::TestLoggerByClassInstance::test_smoke PASSED [346/349] >tests/test_util.py::TestLoggerByClassInstance::test_name PASSED [347/349] >tests/test_util_systemd.py::test_list_logind_sessions_empty PASSED [348/349] >tests/test_util_systemd.py::test_list_logind_sessions_dbus_error PASSED [349/349] > >==================================== ERRORS ==================================== >___ ERROR at setup of TestNetworkBandwidth.test_detects_non_mocked_activity ____ > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > > @staticmethod > @pytest.fixture() > def serve_data_url(httpserver: HTTPServer) -> str: >> httpserver.expect_request("").respond_with_json({"foo": "bar"}) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > >tests/test_checks_linux.py:357: AttributeError >_ ERROR at setup of TestNetworkBandwidth.test_detects_activity_in_direction[1.7976931348623157e+308-0-receive] _ > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > > @staticmethod > @pytest.fixture() > def serve_data_url(httpserver: HTTPServer) -> str: >> httpserver.expect_request("").respond_with_json({"foo": "bar"}) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > >tests/test_checks_linux.py:357: AttributeError >_ ERROR at setup of TestNetworkBandwidth.test_detects_activity_in_direction[0-1.7976931348623157e+308-sending] _ > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > > @staticmethod > @pytest.fixture() > def serve_data_url(httpserver: HTTPServer) -> str: >> httpserver.expect_request("").respond_with_json({"foo": "bar"}) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > >tests/test_checks_linux.py:357: AttributeError >_ ERROR at setup of TestNetworkBandwidth.test_reports_no_activity_below_threshold _ > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > > @staticmethod > @pytest.fixture() > def serve_data_url(httpserver: HTTPServer) -> str: >> httpserver.expect_request("").respond_with_json({"foo": "bar"}) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > >tests/test_checks_linux.py:357: AttributeError >__ ERROR at setup of TestNetworkBandwidth.test_internal_state_updating_works ___ > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > > @staticmethod > @pytest.fixture() > def serve_data_url(httpserver: HTTPServer) -> str: >> httpserver.expect_request("").respond_with_json({"foo": "bar"}) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > >tests/test_checks_linux.py:357: AttributeError >=================================== FAILURES =================================== >_________________ TestListCalendarEvents.test_simple_recurring _________________ > >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6aed6110> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_simple_recurring0/test_checks_ical') > > def test_simple_recurring(self, datadir: Path) -> None: > """Tests for basic recurrence. > > Events are collected with the same DST setting as their original > creation. > """ > with (datadir / "simple-recurring.ics").open("rb") as f: > start = parser.parse("2018-06-18 04:00:00 UTC") > end = start + timedelta(weeks=2) > events = list_calendar_events(f, start, end) > > expected_start_times = [ > parser.parse("2018-06-18 07:00:00 UTC"), > parser.parse("2018-06-19 07:00:00 UTC"), > parser.parse("2018-06-20 07:00:00 UTC"), > parser.parse("2018-06-21 07:00:00 UTC"), > parser.parse("2018-06-22 07:00:00 UTC"), > parser.parse("2018-06-25 07:00:00 UTC"), > parser.parse("2018-06-26 07:00:00 UTC"), > parser.parse("2018-06-27 07:00:00 UTC"), > parser.parse("2018-06-28 07:00:00 UTC"), > parser.parse("2018-06-29 07:00:00 UTC"), > ] > > expected_end_times = [ > parser.parse("2018-06-18 16:00:00 UTC"), > parser.parse("2018-06-19 16:00:00 UTC"), > parser.parse("2018-06-20 16:00:00 UTC"), > parser.parse("2018-06-21 16:00:00 UTC"), > parser.parse("2018-06-22 16:00:00 UTC"), > parser.parse("2018-06-25 16:00:00 UTC"), > parser.parse("2018-06-26 16:00:00 UTC"), > parser.parse("2018-06-27 16:00:00 UTC"), > parser.parse("2018-06-28 16:00:00 UTC"), > parser.parse("2018-06-29 16:00:00 UTC"), > ] > >> assert expected_start_times == [e.start for e in events] >E AssertionError: assert [datetime.datetime(2018, 6, 18, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 19, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 20, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 21, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 22, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 25, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 26, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 27, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 28, 7, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 29, 7, 0, tzinfo=tzlocal())] == [datetime.datetime(2018, 6, 18, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 19, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 20, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 21, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 22, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 25, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 26, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 27, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 28, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 29, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)] >E At index 0 diff: datetime.datetime(2018, 6, 18, 7, 0, tzinfo=tzlocal()) != datetime.datetime(2018, 6, 18, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>) >E Full diff: >E [ >E - datetime.datetime(2018, 6, 18, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 19, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 20, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 21, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 22, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 25, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 26, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 27, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 28, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 29, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 18, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 19, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 20, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 21, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 22, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 25, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 26, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 27, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 28, 7, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 29, 7, 0, tzinfo=tzlocal()), >E ] > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_simple_recurring0/test_checks_ical') >end = datetime.datetime(2018, 7, 2, 4, 0, tzinfo=tzlocal()) >events = [CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 18, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 18, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 19, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 19, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 20, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 20, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 21, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 21, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 22, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 22, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 25, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 25, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 26, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 26, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 27, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 27, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 28, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 28, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 6, 29, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 29, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>))] >expected_end_times = [datetime.datetime(2018, 6, 18, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 19, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 20, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 21, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 22, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 25, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 26, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 27, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 28, 16, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 29, 16, 0, tzinfo=tzlocal())] >expected_start_times = [datetime.datetime(2018, 6, 18, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 19, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 20, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 21, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 22, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 25, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 26, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 27, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 28, 7, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 29, 7, 0, tzinfo=tzlocal())] >f = <_io.BufferedReader name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_simple_recurring0/test_checks_ical/simple-recurring.ics'> >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6aed6110> >start = datetime.datetime(2018, 6, 18, 4, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:68: AssertionError >_____________ TestListCalendarEvents.test_recurrence_different_dst _____________ > >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6aed6c50> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_recurrence_different_dst0/test_checks_ical') > > def test_recurrence_different_dst(self, datadir: Path) -> None: > with (datadir / "simple-recurring.ics").open("rb") as f: > start = parser.parse("2018-11-19 04:00:00 UTC") > end = start + timedelta(weeks=2) > events = list_calendar_events(f, start, end) > > expected_start_times = [ > parser.parse("2018-11-19 08:00:00 UTC"), > parser.parse("2018-11-20 08:00:00 UTC"), > parser.parse("2018-11-21 08:00:00 UTC"), > parser.parse("2018-11-22 08:00:00 UTC"), > parser.parse("2018-11-23 08:00:00 UTC"), > parser.parse("2018-11-26 08:00:00 UTC"), > parser.parse("2018-11-27 08:00:00 UTC"), > parser.parse("2018-11-28 08:00:00 UTC"), > parser.parse("2018-11-29 08:00:00 UTC"), > parser.parse("2018-11-30 08:00:00 UTC"), > ] > >> assert expected_start_times == [e.start for e in events] >E AssertionError: assert [datetime.datetime(2018, 11, 19, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 20, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 21, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 22, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 23, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 26, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 27, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 28, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 29, 8, 0, tzinfo=tzlocal()), datetime.datetime(2018, 11, 30, 8, 0, tzinfo=tzlocal())] == [datetime.datetime(2018, 11, 19, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 20, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 21, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 22, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 23, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 26, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 27, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 28, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 29, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 11, 30, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)] >E At index 0 diff: datetime.datetime(2018, 11, 19, 8, 0, tzinfo=tzlocal()) != datetime.datetime(2018, 11, 19, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>) >E Full diff: >E [ >E - datetime.datetime(2018, 11, 19, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 20, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 21, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 22, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 23, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 26, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 27, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 28, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 29, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 11, 30, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 11, 19, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 20, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 21, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 22, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 23, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 26, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 27, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 28, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 29, 8, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 11, 30, 8, 0, tzinfo=tzlocal()), >E ] > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_recurrence_different_dst0/test_checks_ical') >end = datetime.datetime(2018, 12, 3, 4, 0, tzinfo=tzlocal()) >events = [CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 19, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 19, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 20, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 20, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 21, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 21, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 22, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 22, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 23, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 23, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 26, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 26, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 27, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 27, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 28, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 28, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 29, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 29, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='Stay awake', > start=datetime.datetime(2018, 11, 30, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 11, 30, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>))] >expected_start_times = [datetime.datetime(2018, 11, 19, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 20, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 21, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 22, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 23, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 26, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 27, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 28, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 29, 8, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 11, 30, 8, 0, tzinfo=tzlocal())] >f = <_io.BufferedReader name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_recurrence_different_dst0/test_checks_ical/simple-recurring.ics'> >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6aed6c50> >start = datetime.datetime(2018, 11, 19, 4, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:90: AssertionError >__________________ TestListCalendarEvents.test_normal_events ___________________ > >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab91050> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_normal_events0/test_checks_ical') > > def test_normal_events(self, datadir: Path) -> None: > with (datadir / "normal-events-corner-cases.ics").open("rb") as f: > start = parser.parse("2018-06-04 00:00:00 +0200") > end = start + timedelta(weeks=1) > events = list_calendar_events(f, start, end) > > expected = [ > ( > "overlapping", > parser.parse("2018-06-02 20:00:00 +0200"), > parser.parse("2018-06-12 23:00:00 +0200"), > ), > ( > "before include", > parser.parse("2018-06-03 21:00:00 +0200"), > parser.parse("2018-06-04 02:00:00 +0200"), > ), > ( > "direct start", > parser.parse("2018-06-04 00:00:00 +0200"), > parser.parse("2018-06-04 03:00:00 +0200"), > ), > ( > "in between", > parser.parse("2018-06-07 04:00:00 +0200"), > parser.parse("2018-06-07 09:00:00 +0200"), > ), > ( > "end overlap", > parser.parse("2018-06-10 21:00:00 +0200"), > parser.parse("2018-06-11 02:00:00 +0200"), > ), > ( > "direct end", > parser.parse("2018-06-10 22:00:00 +0200"), > parser.parse("2018-06-11 00:00:00 +0200"), > ), > ] > >> assert [(e.summary, e.start, e.end) for e in events] == expected >E AssertionError: assert [('overlapping', datetime.datetime(2018, 6, 2, 20, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 12, 23, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), ('before include', datetime.datetime(2018, 6, 3, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 4, 2, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), ('before do not include', datetime.datetime(2018, 6, 3, 22, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 4, 0, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), ('direct start', datetime.datetime(2018, 6, 4, 0, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 4, 3, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), ('in between', datetime.datetime(2018, 6, 7, 4, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 7, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), ('end overlap', datetime.datetime(2018, 6, 10, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 11, 2, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>))] == [('overlapping', datetime.datetime(2018, 6, 2, 20, 0, tzinfo=tzoffset(None, 7200)), datetime.datetime(2018, 6, 12, 23, 0, tzinfo=tzoffset(None, 7200))), ('before include', datetime.datetime(2018, 6, 3, 21, 0, tzinfo=tzoffset(None, 7200)), datetime.datetime(2018, 6, 4, 2, 0, tzinfo=tzoffset(None, 7200))), ('direct start', datetime.datetime(2018, 6, 4, 0, 0, tzinfo=tzoffset(None, 7200)), datetime.datetime(2018, 6, 4, 3, 0, tzinfo=tzoffset(None, 7200))), ('in between', datetime.datetime(2018, 6, 7, 4, 0, tzinfo=tzoffset(None, 7200)), datetime.datetime(2018, 6, 7, 9, 0, tzinfo=tzoffset(None, 7200))), ('end overlap', datetime.datetime(2018, 6, 10, 21, 0, tzinfo=tzoffset(None, 7200)), datetime.datetime(2018, 6, 11, 2, 0, tzinfo=tzoffset(None, 7200))), ('direct end', datetime.datetime(2018, 6, 10, 22, 0, tzinfo=tzoffset(None, 7200)), datetime.datetime(2018, 6, 11, 0, 0, tzinfo=tzoffset(None, 7200)))] >E At index 0 diff: ('overlapping', datetime.datetime(2018, 6, 2, 20, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 12, 23, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)) != ('overlapping', datetime.datetime(2018, 6, 2, 20, 0, tzinfo=tzoffset(None, 7200)), datetime.datetime(2018, 6, 12, 23, 0, tzinfo=tzoffset(None, 7200))) >E Full diff: >E [ >E ('overlapping', >E - datetime.datetime(2018, 6, 2, 20, 0, tzinfo=tzoffset(None, 7200)), >E - datetime.datetime(2018, 6, 12, 23, 0, tzinfo=tzoffset(None, 7200))), >E + datetime.datetime(2018, 6, 2, 20, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 12, 23, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), >E ('before include', >E - datetime.datetime(2018, 6, 3, 21, 0, tzinfo=tzoffset(None, 7200)), >E - datetime.datetime(2018, 6, 4, 2, 0, tzinfo=tzoffset(None, 7200))), >E + datetime.datetime(2018, 6, 3, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 4, 2, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), >E + ('before do not include', >E + datetime.datetime(2018, 6, 3, 22, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 4, 0, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), >E ('direct start', >E - datetime.datetime(2018, 6, 4, 0, 0, tzinfo=tzoffset(None, 7200)), >E - datetime.datetime(2018, 6, 4, 3, 0, tzinfo=tzoffset(None, 7200))), >E + datetime.datetime(2018, 6, 4, 0, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 4, 3, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), >E ('in between', >E - datetime.datetime(2018, 6, 7, 4, 0, tzinfo=tzoffset(None, 7200)), >E - datetime.datetime(2018, 6, 7, 9, 0, tzinfo=tzoffset(None, 7200))), >E + datetime.datetime(2018, 6, 7, 4, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 7, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), >E ('end overlap', >E + datetime.datetime(2018, 6, 10, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 11, 2, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), >E - datetime.datetime(2018, 6, 10, 21, 0, tzinfo=tzoffset(None, 7200)), >E - datetime.datetime(2018, 6, 11, 2, 0, tzinfo=tzoffset(None, 7200))), >E - ('direct end', >E - datetime.datetime(2018, 6, 10, 22, 0, tzinfo=tzoffset(None, 7200)), >E - datetime.datetime(2018, 6, 11, 0, 0, tzinfo=tzoffset(None, 7200))), >E ] > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_normal_events0/test_checks_ical') >end = datetime.datetime(2018, 6, 11, 0, 0, tzinfo=tzoffset(None, 7200)) >events = [CalendarEvent(summary='overlapping', > start=datetime.datetime(2018, 6, 2, 20, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 12, 23, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='before include', > start=datetime.datetime(2018, 6, 3, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 4, 2, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='before do not include', > start=datetime.datetime(2018, 6, 3, 22, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 4, 0, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='direct start', > start=datetime.datetime(2018, 6, 4, 0, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 4, 3, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='in between', > start=datetime.datetime(2018, 6, 7, 4, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 7, 9, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='end overlap', > start=datetime.datetime(2018, 6, 10, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 11, 2, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>))] >expected = [('overlapping', > datetime.datetime(2018, 6, 2, 20, 0, tzinfo=tzoffset(None, 7200)), > datetime.datetime(2018, 6, 12, 23, 0, tzinfo=tzoffset(None, 7200))), > ('before include', > datetime.datetime(2018, 6, 3, 21, 0, tzinfo=tzoffset(None, 7200)), > datetime.datetime(2018, 6, 4, 2, 0, tzinfo=tzoffset(None, 7200))), > ('direct start', > datetime.datetime(2018, 6, 4, 0, 0, tzinfo=tzoffset(None, 7200)), > datetime.datetime(2018, 6, 4, 3, 0, tzinfo=tzoffset(None, 7200))), > ('in between', > datetime.datetime(2018, 6, 7, 4, 0, tzinfo=tzoffset(None, 7200)), > datetime.datetime(2018, 6, 7, 9, 0, tzinfo=tzoffset(None, 7200))), > ('end overlap', > datetime.datetime(2018, 6, 10, 21, 0, tzinfo=tzoffset(None, 7200)), > datetime.datetime(2018, 6, 11, 2, 0, tzinfo=tzoffset(None, 7200))), > ('direct end', > datetime.datetime(2018, 6, 10, 22, 0, tzinfo=tzoffset(None, 7200)), > datetime.datetime(2018, 6, 11, 0, 0, tzinfo=tzoffset(None, 7200)))] >f = <_io.BufferedReader name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_normal_events0/test_checks_ical/normal-events-corner-cases.ics'> >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab91050> >start = datetime.datetime(2018, 6, 4, 0, 0, tzinfo=tzoffset(None, 7200)) > >tests/test_checks_ical.py:141: AssertionError >____________________ TestListCalendarEvents.test_exclusions ____________________ > >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab92650> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_exclusions0/test_checks_ical') > > def test_exclusions(self, datadir: Path) -> None: > with (datadir / "exclusions.ics").open("rb") as f: > start = parser.parse("2018-06-09 04:00:00 UTC") > end = start + timedelta(weeks=2) > events = list_calendar_events(f, start, end) > > expected_start_times = [ > parser.parse("2018-06-11 12:00:00 UTC"), > parser.parse("2018-06-12 12:00:00 UTC"), > parser.parse("2018-06-13 12:00:00 UTC"), > parser.parse("2018-06-15 12:00:00 UTC"), > parser.parse("2018-06-16 12:00:00 UTC"), > parser.parse("2018-06-17 12:00:00 UTC"), > ] > >> assert expected_start_times == [e.start for e in events] >E AssertionError: assert [datetime.datetime(2018, 6, 11, 12, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 12, 12, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 13, 12, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 15, 12, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 16, 12, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 17, 12, 0, tzinfo=tzlocal())] == [datetime.datetime(2018, 6, 11, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 12, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 13, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 14, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 15, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 16, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)] >E At index 0 diff: datetime.datetime(2018, 6, 11, 12, 0, tzinfo=tzlocal()) != datetime.datetime(2018, 6, 11, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>) >E Full diff: >E [ >E - datetime.datetime(2018, 6, 11, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 12, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 13, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 14, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 15, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 16, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 11, 12, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 12, 12, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 13, 12, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 15, 12, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 16, 12, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 17, 12, 0, tzinfo=tzlocal()), >E ] > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_exclusions0/test_checks_ical') >end = datetime.datetime(2018, 6, 23, 4, 0, tzinfo=tzlocal()) >events = [CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 11, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 11, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 12, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 12, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 13, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 13, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 14, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 14, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 15, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 15, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 16, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 16, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>))] >expected_start_times = [datetime.datetime(2018, 6, 11, 12, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 12, 12, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 13, 12, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 15, 12, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 16, 12, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 17, 12, 0, tzinfo=tzlocal())] >f = <_io.BufferedReader name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_exclusions0/test_checks_ical/exclusions.ics'> >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab92650> >start = datetime.datetime(2018, 6, 9, 4, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:244: AssertionError >_____________ TestListCalendarEvents.test_reucrring_single_changes _____________ > >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab92890> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_reucrring_single_changes0/test_checks_ical') > > def test_reucrring_single_changes(self, datadir: Path) -> None: > with (datadir / "single-change.ics").open("rb") as f: > start = parser.parse("2018-06-11 00:00:00 UTC") > end = start + timedelta(weeks=1) > events = list_calendar_events(f, start, end) > > expected_start_times = [ > parser.parse("2018-06-11 11:00:00 UTC"), > parser.parse("2018-06-12 11:00:00 UTC"), > parser.parse("2018-06-13 14:00:00 UTC"), > parser.parse("2018-06-14 11:00:00 UTC"), > parser.parse("2018-06-15 09:00:00 UTC"), > parser.parse("2018-06-16 11:00:00 UTC"), > parser.parse("2018-06-17 11:00:00 UTC"), > ] > >> assert expected_start_times == [e.start for e in events] >E AssertionError: assert [datetime.datetime(2018, 6, 11, 11, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 12, 11, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 13, 14, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 14, 11, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 15, 9, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 16, 11, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 17, 11, 0, tzinfo=tzlocal())] == [datetime.datetime(2018, 6, 11, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 12, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 13, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 14, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 15, 11, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 16, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 17, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)] >E At index 0 diff: datetime.datetime(2018, 6, 11, 11, 0, tzinfo=tzlocal()) != datetime.datetime(2018, 6, 11, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>) >E Full diff: >E [ >E - datetime.datetime(2018, 6, 11, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 12, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 13, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 14, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 15, 11, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 16, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 17, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 11, 11, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 12, 11, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 13, 14, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 14, 11, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 15, 9, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 16, 11, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 17, 11, 0, tzinfo=tzlocal()), >E ] > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_reucrring_single_changes0/test_checks_ical') >end = datetime.datetime(2018, 6, 18, 0, 0, tzinfo=tzlocal()) >events = [CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 11, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 11, 15, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 12, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 12, 15, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 13, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 13, 18, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 14, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 14, 15, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 15, 11, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 15, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 16, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 16, 15, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 6, 17, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 17, 15, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>))] >expected_start_times = [datetime.datetime(2018, 6, 11, 11, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 12, 11, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 13, 14, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 14, 11, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 15, 9, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 16, 11, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 17, 11, 0, tzinfo=tzlocal())] >f = <_io.BufferedReader name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_reucrring_single_changes0/test_checks_ical/single-change.ics'> >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab92890> >start = datetime.datetime(2018, 6, 11, 0, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:262: AssertionError >_______________ TestListCalendarEvents.test_reucrring_change_dst _______________ > >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab91450> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_reucrring_change_dst0/test_checks_ical') > > def test_reucrring_change_dst(self, datadir: Path) -> None: > with (datadir / "recurring-change-dst.ics").open("rb") as f: > start = parser.parse("2018-12-10 00:00:00 UTC") > end = start + timedelta(weeks=1) > events = list_calendar_events(f, start, end) > > expected_start_times = [ > parser.parse("2018-12-10 13:00:00 UTC"), > parser.parse("2018-12-11 13:00:00 UTC"), > parser.parse("2018-12-12 10:00:00 UTC"), > parser.parse("2018-12-13 13:00:00 UTC"), > parser.parse("2018-12-15 13:00:00 UTC"), > parser.parse("2018-12-16 13:00:00 UTC"), > ] > >> assert expected_start_times == [e.start for e in events] >E AssertionError: assert [datetime.datetime(2018, 12, 10, 13, 0, tzinfo=tzlocal()), datetime.datetime(2018, 12, 11, 13, 0, tzinfo=tzlocal()), datetime.datetime(2018, 12, 12, 10, 0, tzinfo=tzlocal()), datetime.datetime(2018, 12, 13, 13, 0, tzinfo=tzlocal()), datetime.datetime(2018, 12, 15, 13, 0, tzinfo=tzlocal()), datetime.datetime(2018, 12, 16, 13, 0, tzinfo=tzlocal())] == [datetime.datetime(2018, 12, 10, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 12, 11, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 12, 12, 11, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 12, 13, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 12, 14, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 12, 15, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 12, 16, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)] >E At index 0 diff: datetime.datetime(2018, 12, 10, 13, 0, tzinfo=tzlocal()) != datetime.datetime(2018, 12, 10, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>) >E Right contains one more item: datetime.datetime(2018, 12, 16, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>) >E Full diff: >E [ >E + datetime.datetime(2018, 12, 10, 13, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 12, 11, 13, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 12, 12, 10, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 12, 13, 13, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 12, 15, 13, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 12, 16, 13, 0, tzinfo=tzlocal()), >E - datetime.datetime(2018, 12, 10, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 12, 11, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 12, 12, 11, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 12, 13, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 12, 14, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 12, 15, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 12, 16, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E ] > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_reucrring_change_dst0/test_checks_ical') >end = datetime.datetime(2018, 12, 17, 0, 0, tzinfo=tzlocal()) >events = [CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 12, 10, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 12, 10, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 12, 11, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 12, 11, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 12, 12, 11, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 12, 12, 13, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 12, 13, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 12, 13, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 12, 14, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 12, 14, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 12, 15, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 12, 15, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='recurring', > start=datetime.datetime(2018, 12, 16, 14, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 12, 16, 16, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>))] >expected_start_times = [datetime.datetime(2018, 12, 10, 13, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 12, 11, 13, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 12, 12, 10, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 12, 13, 13, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 12, 15, 13, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 12, 16, 13, 0, tzinfo=tzlocal())] >f = <_io.BufferedReader name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_reucrring_change_dst0/test_checks_ical/recurring-change-dst.ics'> >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab91450> >start = datetime.datetime(2018, 12, 10, 0, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:279: AssertionError >________ TestListCalendarEvents.test_recurring_start_and_end_inclusive _________ > >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab93b10> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_recurring_start_and_end_i0/test_checks_ical') > > def test_recurring_start_and_end_inclusive(self, datadir: Path) -> None: > with (datadir / "issue-41.ics").open("rb") as f: > start = parser.parse("2018-06-26 15:13:51 UTC") > end = start + timedelta(weeks=1) > events = list_calendar_events(f, start, end) > > expected_start_times = [ > parser.parse("2018-06-26 15:00:00 UTC"), > parser.parse("2018-06-27 15:00:00 UTC"), > parser.parse("2018-06-28 15:00:00 UTC"), > parser.parse("2018-06-29 15:00:00 UTC"), > parser.parse("2018-06-30 15:00:00 UTC"), > parser.parse("2018-07-01 15:00:00 UTC"), > parser.parse("2018-07-02 15:00:00 UTC"), > parser.parse("2018-07-03 15:00:00 UTC"), > ] > >> assert expected_start_times == [e.start for e in events] >E AssertionError: assert [datetime.datetime(2018, 6, 26, 15, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 27, 15, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 28, 15, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 29, 15, 0, tzinfo=tzlocal()), datetime.datetime(2018, 6, 30, 15, 0, tzinfo=tzlocal()), datetime.datetime(2018, 7, 1, 15, 0, tzinfo=tzlocal()), datetime.datetime(2018, 7, 2, 15, 0, tzinfo=tzlocal()), datetime.datetime(2018, 7, 3, 15, 0, tzinfo=tzlocal())] == [datetime.datetime(2018, 6, 26, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 27, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 28, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 29, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 6, 30, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 7, 1, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), datetime.datetime(2018, 7, 2, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)] >E At index 0 diff: datetime.datetime(2018, 6, 26, 15, 0, tzinfo=tzlocal()) != datetime.datetime(2018, 6, 26, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>) >E Left contains one more item: datetime.datetime(2018, 7, 3, 15, 0, tzinfo=tzlocal()) >E Full diff: >E [ >E - datetime.datetime(2018, 6, 26, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 27, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 28, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 29, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 6, 30, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 7, 1, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E - datetime.datetime(2018, 7, 2, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), >E + datetime.datetime(2018, 6, 26, 15, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 27, 15, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 28, 15, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 29, 15, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 6, 30, 15, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 7, 1, 15, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 7, 2, 15, 0, tzinfo=tzlocal()), >E + datetime.datetime(2018, 7, 3, 15, 0, tzinfo=tzlocal()), >E ] > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_recurring_start_and_end_i0/test_checks_ical') >end = datetime.datetime(2018, 7, 3, 15, 13, 51, tzinfo=tzlocal()) >events = [CalendarEvent(summary='StayAlive', > start=datetime.datetime(2018, 6, 26, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 26, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='StayAlive', > start=datetime.datetime(2018, 6, 27, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 27, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='StayAlive', > start=datetime.datetime(2018, 6, 28, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 28, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='StayAlive', > start=datetime.datetime(2018, 6, 29, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 29, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='StayAlive', > start=datetime.datetime(2018, 6, 30, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 6, 30, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='StayAlive', > start=datetime.datetime(2018, 7, 1, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 7, 1, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>)), > CalendarEvent(summary='StayAlive', > start=datetime.datetime(2018, 7, 2, 17, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>), > end=datetime.datetime(2018, 7, 2, 21, 0, tzinfo=<StaticTzInfo 'Europe/Berlin'>))] >expected_start_times = [datetime.datetime(2018, 6, 26, 15, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 27, 15, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 28, 15, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 29, 15, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 6, 30, 15, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 7, 1, 15, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 7, 2, 15, 0, tzinfo=tzlocal()), > datetime.datetime(2018, 7, 3, 15, 0, tzinfo=tzlocal())] >f = <_io.BufferedReader name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_recurring_start_and_end_i0/test_checks_ical/issue-41.ics'> >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab93b10> >start = datetime.datetime(2018, 6, 26, 15, 13, 51, tzinfo=tzlocal()) > >tests/test_checks_ical.py:298: AssertionError >____________ TestListCalendarEvents.test_single_start_end_inclusive ____________ > >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab90ed0> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_single_start_end_inclusiv0/test_checks_ical') > > def test_single_start_end_inclusive(self, datadir: Path) -> None: > with (datadir / "old-event.ics").open("rb") as f: > start = parser.parse("2004-06-05 11:15:00 UTC") > end = start + timedelta(hours=1) > events = list_calendar_events(f, start, end) > > expected_start_times = [ > parser.parse("2004-06-05 11:00:00 UTC"), > ] > >> assert expected_start_times == [e.start for e in events] >E assert [datetime.datetime(2004, 6, 5, 11, 0, tzinfo=tzlocal())] == [] >E Left contains one more item: datetime.datetime(2004, 6, 5, 11, 0, tzinfo=tzlocal()) >E Full diff: >E - [] >E + [datetime.datetime(2004, 6, 5, 11, 0, tzinfo=tzlocal())] > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_single_start_end_inclusiv0/test_checks_ical') >end = datetime.datetime(2004, 6, 5, 12, 15, tzinfo=tzlocal()) >events = [] >expected_start_times = [datetime.datetime(2004, 6, 5, 11, 0, tzinfo=tzlocal())] >f = <_io.BufferedReader name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_single_start_end_inclusiv0/test_checks_ical/old-event.ics'> >self = <tests.test_checks_ical.TestListCalendarEvents object at 0x7f2c6ab90ed0> >start = datetime.datetime(2004, 6, 5, 11, 15, tzinfo=tzlocal()) > >tests/test_checks_ical.py:310: AssertionError >______________________ TestActiveCalendarEvent.test_smoke ______________________ > >self = <tests.test_checks_ical.TestActiveCalendarEvent object at 0x7f2c6aeb1bd0> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke0/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a26eca0> > > def test_smoke(self, datadir: Path, serve_file: Callable[[Path], str]) -> None: > result = ActiveCalendarEvent( > "test", >> url=serve_file(datadir / "long-event.ics"), > timeout=3, > ).check() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke0/test_checks_ical') >self = <tests.test_checks_ical.TestActiveCalendarEvent object at 0x7f2c6aeb1bd0> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a26eca0> > >tests/test_checks_ical.py:411: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke0/test_checks_ical/long-event.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/long-event.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke0/test_checks_ical/long-event.ics') > >tests/conftest.py:25: AttributeError >___________________ TestActiveCalendarEvent.test_exact_range ___________________ > >self = <tests.test_checks_ical.TestActiveCalendarEvent object at 0x7f2c6aeb1110> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_exact_range0/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a26f2e0> > > def test_exact_range( > self, datadir: Path, serve_file: Callable[[Path], str] > ) -> None: > with freeze_time("2016-06-05 13:00:00", tz_offset=-2): > result = ActiveCalendarEvent( > "test", >> url=serve_file(datadir / "long-event.ics"), > timeout=3, > ).check() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_exact_range0/test_checks_ical') >self = <tests.test_checks_ical.TestActiveCalendarEvent object at 0x7f2c6aeb1110> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a26f2e0> > >tests/test_checks_ical.py:423: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_exact_range0/test_checks_ical/long-event.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/long-event.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_exact_range0/test_checks_ical/long-event.ics') > >tests/conftest.py:25: AttributeError >_______________ TestActiveCalendarEvent.test_before_exact_range ________________ > >self = <tests.test_checks_ical.TestActiveCalendarEvent object at 0x7f2c6aeb08d0> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_before_exact_range0/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a364a40> > > def test_before_exact_range( > self, datadir: Path, serve_file: Callable[[Path], str] > ) -> None: > with freeze_time("2016-06-05 12:58:00", tz_offset=-2): > result = ActiveCalendarEvent( > "test", >> url=serve_file(datadir / "long-event.ics"), > timeout=3, > ).check() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_before_exact_range0/test_checks_ical') >self = <tests.test_checks_ical.TestActiveCalendarEvent object at 0x7f2c6aeb08d0> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a364a40> > >tests/test_checks_ical.py:435: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_before_exact_range0/test_checks_ical/long-event.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/long-event.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_before_exact_range0/test_checks_ical/long-event.ics') > >tests/conftest.py:25: AttributeError >____________________ TestActiveCalendarEvent.test_no_event _____________________ > >self = <tests.test_checks_ical.TestActiveCalendarEvent object at 0x7f2c6ab92750> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_no_event0/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a364e00> > > def test_no_event(self, datadir: Path, serve_file: Callable[[Path], str]) -> None: >> assert ( > ActiveCalendarEvent( > "test", > url=serve_file(datadir / "old-event.ics"), > timeout=3, > ).check() > is None > ) > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_no_event0/test_checks_ical') >self = <tests.test_checks_ical.TestActiveCalendarEvent object at 0x7f2c6ab92750> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a364e00> > >tests/test_checks_ical.py:441: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_no_event0/test_checks_ical/old-event.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/old-event.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_no_event0/test_checks_ical/old-event.ics') > >tests/conftest.py:25: AttributeError >___________________________ TestCalendar.test_empty ____________________________ > >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6b03afd0> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_empty0/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a3658a0> > > def test_empty(self, datadir: Path, serve_file: Callable[[Path], str]) -> None: > timestamp = parser.parse("20050605T130000Z") >> assert ( > Calendar( > "test", > url=serve_file(datadir / "old-event.ics"), > timeout=3, > ).check(timestamp) > is None > ) > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_empty0/test_checks_ical') >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6b03afd0> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a3658a0> >timestamp = datetime.datetime(2005, 6, 5, 13, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:492: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_empty0/test_checks_ical/old-event.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/old-event.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_empty0/test_checks_ical/old-event.ics') > >tests/conftest.py:25: AttributeError >___________________________ TestCalendar.test_smoke ____________________________ > >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6b0390d0> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke1/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a3660c0> > > def test_smoke(self, datadir: Path, serve_file: Callable[[Path], str]) -> None: > timestamp = parser.parse("20040605T090000Z") > desired_start = parser.parse("20040605T110000Z") > >> assert ( > Calendar( > "test", > url=serve_file(datadir / "old-event.ics"), > timeout=3, > ).check(timestamp) > == desired_start > ) > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke1/test_checks_ical') >desired_start = datetime.datetime(2004, 6, 5, 11, 0, tzinfo=tzlocal()) >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6b0390d0> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a3660c0> >timestamp = datetime.datetime(2004, 6, 5, 9, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:505: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke1/test_checks_ical/old-event.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/old-event.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke1/test_checks_ical/old-event.ics') > >tests/conftest.py:25: AttributeError >______________________ TestCalendar.test_select_earliest _______________________ > >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6b03b790> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_select_earliest0/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a366840> > > def test_select_earliest( > self, datadir: Path, serve_file: Callable[[Path], str] > ) -> None: > timestamp = parser.parse("20040401T090000Z") > desired_start = parser.parse("20040405T110000Z") > >> assert ( > Calendar( > "test", > url=serve_file(datadir / "multiple.ics"), > timeout=3, > ).check(timestamp) > == desired_start > ) > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_select_earliest0/test_checks_ical') >desired_start = datetime.datetime(2004, 4, 5, 11, 0, tzinfo=tzlocal()) >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6b03b790> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a366840> >timestamp = datetime.datetime(2004, 4, 1, 9, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:520: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_select_earliest0/test_checks_ical/multiple.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/multiple.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_select_earliest0/test_checks_ical/multiple.ics') > >tests/conftest.py:25: AttributeError >_______________________ TestCalendar.test_ignore_running _______________________ > >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6aa34810> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_ignore_running0/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a366e80> > > def test_ignore_running( > self, datadir: Path, serve_file: Callable[[Path], str] > ) -> None: >> url = serve_file(datadir / "old-event.ics") > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_ignore_running0/test_checks_ical') >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6aa34810> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a366e80> > >tests/test_checks_ical.py:532: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_ignore_running0/test_checks_ical/old-event.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/old-event.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_ignore_running0/test_checks_ical/old-event.ics') > >tests/conftest.py:25: AttributeError >______________________ TestCalendar.test_limited_horizon _______________________ > >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6aa362d0> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_limited_horizon0/test_checks_ical') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a367560> > > def test_limited_horizon( > self, datadir: Path, serve_file: Callable[[Path], str] > ) -> None: > timestamp = parser.parse("20040101T000000Z") > >> assert ( > Calendar( > "test", > url=serve_file(datadir / "after-horizon.ics"), > timeout=3, > ).check(timestamp) > is None > ) > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_limited_horizon0/test_checks_ical') >self = <tests.test_checks_ical.TestCalendar object at 0x7f2c6aa362d0> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a367560> >timestamp = datetime.datetime(2004, 1, 1, 0, 0, tzinfo=tzlocal()) > >tests/test_checks_ical.py:544: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_limited_horizon0/test_checks_ical/after-horizon.ics') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/after-horizon.ics' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_limited_horizon0/test_checks_ical/after-horizon.ics') > >tests/conftest.py:25: AttributeError >_________________ TestJsonPath.test_network_errors_are_passed __________________ > >self = <tests.test_checks_json.TestJsonPath object at 0x7f2c6b1e7c10> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_network_errors_are_passed0/test_checks_json') >serve_protected = <function serve_protected.<locals>.serve at 0x7f2c6a155ee0> > > def test_network_errors_are_passed( > self, datadir: Path, serve_protected: Callable[[Path], Tuple[str, str, str]] > ) -> None: > with pytest.raises(TemporaryCheckError): > JsonPath( > name="name", >> url=serve_protected(datadir / "data.txt")[0], > timeout=5, > username="wrong", > password="wrong", > jsonpath=parse("b"), > ).check() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_network_errors_are_passed0/test_checks_json') >self = <tests.test_checks_json.TestJsonPath object at 0x7f2c6b1e7c10> >serve_protected = <function serve_protected.<locals>.serve at 0x7f2c6a155ee0> > >tests/test_checks_json.py:77: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_network_errors_are_passed0/test_checks_json/data.txt') > > def serve(the_file: Path) -> Tuple[str, str, str]: > def handler(request: Request) -> Response: > auth = request.authorization > > if not auth or not ( > auth.username == username and auth.password == password > ): > return Response( > "Authentication required", > 401, > {"WWW-Authenticate": f"Basic realm={realm}"}, > ) > > else: > return Response(the_file.read_bytes()) > > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_handler(handler) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >handler = <function serve_protected.<locals>.serve.<locals>.handler at 0x7f2c6a154ae0> >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >password = 'the_password' >path = '/data.txt' >realm = 'the_realm' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_network_errors_are_passed0/test_checks_json/data.txt') >username = 'the_user' > >tests/conftest.py:60: AttributeError >__________________________ TestJsonPath.test_not_json __________________________ > >self = <tests.test_checks_json.TestJsonPath object at 0x7f2c6b1f8390> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_not_json0/test_checks_json') >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a1568e0> > > def test_not_json(self, datadir: Path, serve_file: Callable[[Path], str]) -> None: > with pytest.raises(TemporaryCheckError): > JsonPath( > name="name", >> url=serve_file(datadir / "invalid.json"), > timeout=5, > jsonpath=parse("b"), > ).check() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_not_json0/test_checks_json') >self = <tests.test_checks_json.TestJsonPath object at 0x7f2c6b1f8390> >serve_file = <function serve_file.<locals>.serve at 0x7f2c6a1568e0> > >tests/test_checks_json.py:88: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_not_json0/test_checks_json/invalid.json') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/invalid.json' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_not_json0/test_checks_json/invalid.json') > >tests/conftest.py:25: AttributeError >________________________ TestNetworkMixin.test_request _________________________ > >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad46510> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_request0/test_checks_util') >serve_file = <function serve_file.<locals>.serve at 0x7f2c69ef37e0> > > def test_request(self, datadir: Path, serve_file: Callable[[Path], str]) -> None: > reply = NetworkMixin( >> serve_file(datadir / "xml_with_encoding.xml"), > 5, > ).request() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_request0/test_checks_util') >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad46510> >serve_file = <function serve_file.<locals>.serve at 0x7f2c69ef37e0> > >tests/test_checks_util.py:51: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_request0/test_checks_util/xml_with_encoding.xml') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/xml_with_encoding.xml' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_request0/test_checks_util/xml_with_encoding.xml') > >tests/conftest.py:25: AttributeError >_________________________ TestNetworkMixin.test_smoke __________________________ > >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad46c10> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke2/test_checks_util') >serve_file = <function serve_file.<locals>.serve at 0x7f2c69f10220> > > def test_smoke(self, datadir: Path, serve_file: Callable[[Path], str]) -> None: >> response = NetworkMixin(serve_file(datadir / "data.txt"), timeout=5).request() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke2/test_checks_util') >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad46c10> >serve_file = <function serve_file.<locals>.serve at 0x7f2c69f10220> > >tests/test_checks_util.py:65: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke2/test_checks_util/data.txt') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/data.txt' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke2/test_checks_util/data.txt') > >tests/conftest.py:25: AttributeError >_____________________ TestNetworkMixin.test_exception_404 ______________________ > >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad47e50> >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> > > def test_exception_404(self, httpserver: HTTPServer) -> None: > with pytest.raises(TemporaryCheckError): >> NetworkMixin(httpserver.url_for("/does/not/exist"), timeout=5).request() >E AttributeError: 'ContentServer' object has no attribute 'url_for' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad47e50> > >tests/test_checks_util.py:71: AttributeError >_____________________ TestNetworkMixin.test_authentication _____________________ > >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad457d0> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_authentication0/test_checks_util') >serve_protected = <function serve_protected.<locals>.serve at 0x7f2c69f109a0> > > def test_authentication( > self, datadir: Path, serve_protected: Callable[[Path], Tuple[str, str, str]] > ) -> None: >> url, username, password = serve_protected(datadir / "data.txt") > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_authentication0/test_checks_util') >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad457d0> >serve_protected = <function serve_protected.<locals>.serve at 0x7f2c69f109a0> > >tests/test_checks_util.py:76: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_authentication0/test_checks_util/data.txt') > > def serve(the_file: Path) -> Tuple[str, str, str]: > def handler(request: Request) -> Response: > auth = request.authorization > > if not auth or not ( > auth.username == username and auth.password == password > ): > return Response( > "Authentication required", > 401, > {"WWW-Authenticate": f"Basic realm={realm}"}, > ) > > else: > return Response(the_file.read_bytes()) > > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_handler(handler) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >handler = <function serve_protected.<locals>.serve.<locals>.handler at 0x7f2c69f10c20> >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >password = 'the_password' >path = '/data.txt' >realm = 'the_realm' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_authentication0/test_checks_util/data.txt') >username = 'the_user' > >tests/conftest.py:60: AttributeError >_________________ TestNetworkMixin.test_invalid_authentication _________________ > >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad47bd0> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_invalid_authentication0/test_checks_util') >serve_protected = <function serve_protected.<locals>.serve at 0x7f2c69f11120> > > def test_invalid_authentication( > self, datadir: Path, serve_protected: Callable[[Path], Tuple[str, str, str]] > ) -> None: > with pytest.raises(TemporaryCheckError): > NetworkMixin( >> serve_protected(datadir / "data.txt")[0], > 5, > username="userx", > password="pass", > ).request() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_invalid_authentication0/test_checks_util') >self = <tests.test_checks_util.TestNetworkMixin object at 0x7f2c6ad47bd0> >serve_protected = <function serve_protected.<locals>.serve at 0x7f2c69f11120> > >tests/test_checks_util.py:84: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_invalid_authentication0/test_checks_util/data.txt') > > def serve(the_file: Path) -> Tuple[str, str, str]: > def handler(request: Request) -> Response: > auth = request.authorization > > if not auth or not ( > auth.username == username and auth.password == password > ): > return Response( > "Authentication required", > 401, > {"WWW-Authenticate": f"Basic realm={realm}"}, > ) > > else: > return Response(the_file.read_bytes()) > > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_handler(handler) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >handler = <function serve_protected.<locals>.serve.<locals>.handler at 0x7f2c69f113a0> >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >password = 'the_password' >path = '/data.txt' >realm = 'the_realm' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_invalid_authentication0/test_checks_util/data.txt') >username = 'the_user' > >tests/conftest.py:60: AttributeError >__________________________ TestXPathMixin.test_smoke ___________________________ > >self = <tests.test_checks_xpath.TestXPathMixin object at 0x7f2c6ad33c90> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke3/test_checks_xpath') >serve_file = <function serve_file.<locals>.serve at 0x7f2c69f39940> > > def test_smoke(self, datadir: Path, serve_file: Callable[[Path], str]) -> None: > result = _XPathMixinSub( > "foo", > xpath="/b", >> url=serve_file(datadir / "xml_with_encoding.xml"), > timeout=5, > ).evaluate() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke3/test_checks_xpath') >self = <tests.test_checks_xpath.TestXPathMixin object at 0x7f2c6ad33c90> >serve_file = <function serve_file.<locals>.serve at 0x7f2c69f39940> > >tests/test_checks_xpath.py:34: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke3/test_checks_xpath/xml_with_encoding.xml') > > def serve(the_file: Path) -> str: > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_data(the_file.read_bytes()) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >path = '/xml_with_encoding.xml' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_smoke3/test_checks_xpath/xml_with_encoding.xml') > >tests/conftest.py:25: AttributeError >_______________ TestXPathActivity.test_network_errors_are_passed _______________ > >self = <tests.test_checks_xpath.TestXPathActivity object at 0x7f2c6a98ae90> >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_network_errors_are_passed1/test_checks_xpath') >serve_protected = <function serve_protected.<locals>.serve at 0x7f2c69f3aac0> > > def test_network_errors_are_passed( > self, datadir: Path, serve_protected: Callable[[Path], Tuple[str, str, str]] > ) -> None: > with pytest.raises(TemporaryCheckError): > XPathActivity( > name="name", >> url=serve_protected(datadir / "data.txt")[0], > timeout=5, > username="wrong", > password="wrong", > xpath="/b", > ).request() > >datadir = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_network_errors_are_passed1/test_checks_xpath') >self = <tests.test_checks_xpath.TestXPathActivity object at 0x7f2c6a98ae90> >serve_protected = <function serve_protected.<locals>.serve at 0x7f2c69f3aac0> > >tests/test_checks_xpath.py:142: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_network_errors_are_passed1/test_checks_xpath/data.txt') > > def serve(the_file: Path) -> Tuple[str, str, str]: > def handler(request: Request) -> Response: > auth = request.authorization > > if not auth or not ( > auth.username == username and auth.password == password > ): > return Response( > "Authentication required", > 401, > {"WWW-Authenticate": f"Basic realm={realm}"}, > ) > > else: > return Response(the_file.read_bytes()) > > path = f"/{the_file.name}" >> httpserver.expect_request(path).respond_with_handler(handler) >E AttributeError: 'ContentServer' object has no attribute 'expect_request' > >handler = <function serve_protected.<locals>.serve.<locals>.handler at 0x7f2c69f3ad40> >httpserver = <ContentServer(<class 'pytest_localserver.http.ContentServer'>, started 139828727559872)> >password = 'the_password' >path = '/data.txt' >realm = 'the_realm' >the_file = PosixPath('/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_network_errors_are_passed1/test_checks_xpath/data.txt') >username = 'the_user' > >tests/conftest.py:60: AttributeError >=============================== warnings summary =============================== >tests/test_integration.py::test_no_suspend_if_matching > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_no_suspend_if_matching0/dont_suspend.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_suspend > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_suspend0/would_suspend.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_wakeup_scheduled > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_wakeup_scheduled0/would_schedule.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_woke_up_file_removed > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_woke_up_file_removed0/dont_suspend.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_notify_call > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_notify_call0/notify.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_notify_call_wakeup > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_notify_call_wakeup0/notify_wakeup.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_error_no_checks_configured > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_error_no_checks_configure0/no_checks.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_temporary_errors_logged > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_temporary_errors_logged0/temporary_error.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_loop_defaults > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_loop_defaults0/minimal.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_hook_success > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_hook_success0/would_suspend.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >tests/test_integration.py::test_hook_call_wakeup > /usr/lib/python3.11/site-packages/_pytest/stash.py:104: ResourceWarning: unclosed file <_io.TextIOWrapper name='/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/pytest-of-portage/pytest-0/test_hook_call_wakeup0/would_schedule.conf' mode='r' encoding='UTF-8'> > del self._storage[key] > Enable tracemalloc to get traceback where the object was allocated. > See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. > >-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html >=========================== short test summary info ============================ >SKIPPED [1] tests/test_checks_systemd.py:20: No dbusmock implementation available >SKIPPED [1] tests/test_checks_systemd.py:83: No known way to set idle hint in dbus mock right now >ERROR tests/test_checks_linux.py::TestNetworkBandwidth::test_detects_non_mocked_activity >ERROR tests/test_checks_linux.py::TestNetworkBandwidth::test_detects_activity_in_direction[1.7976931348623157e+308-0-receive] >ERROR tests/test_checks_linux.py::TestNetworkBandwidth::test_detects_activity_in_direction[0-1.7976931348623157e+308-sending] >ERROR tests/test_checks_linux.py::TestNetworkBandwidth::test_reports_no_activity_below_threshold >ERROR tests/test_checks_linux.py::TestNetworkBandwidth::test_internal_state_updating_works >FAILED tests/test_checks_ical.py::TestListCalendarEvents::test_simple_recurring >FAILED tests/test_checks_ical.py::TestListCalendarEvents::test_recurrence_different_dst >FAILED tests/test_checks_ical.py::TestListCalendarEvents::test_normal_events >FAILED tests/test_checks_ical.py::TestListCalendarEvents::test_exclusions - A... >FAILED tests/test_checks_ical.py::TestListCalendarEvents::test_reucrring_single_changes >FAILED tests/test_checks_ical.py::TestListCalendarEvents::test_reucrring_change_dst >FAILED tests/test_checks_ical.py::TestListCalendarEvents::test_recurring_start_and_end_inclusive >FAILED tests/test_checks_ical.py::TestListCalendarEvents::test_single_start_end_inclusive >FAILED tests/test_checks_ical.py::TestActiveCalendarEvent::test_smoke - Attri... >FAILED tests/test_checks_ical.py::TestActiveCalendarEvent::test_exact_range >FAILED tests/test_checks_ical.py::TestActiveCalendarEvent::test_before_exact_range >FAILED tests/test_checks_ical.py::TestActiveCalendarEvent::test_no_event - At... >FAILED tests/test_checks_ical.py::TestCalendar::test_empty - AttributeError: ... >FAILED tests/test_checks_ical.py::TestCalendar::test_smoke - AttributeError: ... >FAILED tests/test_checks_ical.py::TestCalendar::test_select_earliest - Attrib... >FAILED tests/test_checks_ical.py::TestCalendar::test_ignore_running - Attribu... >FAILED tests/test_checks_ical.py::TestCalendar::test_limited_horizon - Attrib... >FAILED tests/test_checks_json.py::TestJsonPath::test_network_errors_are_passed >FAILED tests/test_checks_json.py::TestJsonPath::test_not_json - AttributeErro... >FAILED tests/test_checks_util.py::TestNetworkMixin::test_request - AttributeE... >FAILED tests/test_checks_util.py::TestNetworkMixin::test_smoke - AttributeErr... >FAILED tests/test_checks_util.py::TestNetworkMixin::test_exception_404 - Attr... >FAILED tests/test_checks_util.py::TestNetworkMixin::test_authentication - Att... >FAILED tests/test_checks_util.py::TestNetworkMixin::test_invalid_authentication >FAILED tests/test_checks_xpath.py::TestXPathMixin::test_smoke - AttributeErro... >FAILED tests/test_checks_xpath.py::TestXPathActivity::test_network_errors_are_passed >= 26 failed, 316 passed, 2 skipped, 1 deselected, 11 warnings, 5 errors in 16.83s = > * ERROR: sys-power/autosuspend-5.0.0::gentoo failed (test phase): > * pytest failed with python3.11 > * > * Call stack: > * ebuild.sh, line 136: Called src_test > * environment, line 4026: Called distutils-r1_src_test > * environment, line 2015: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 782: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 3605: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 3119: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 3117: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 1214: Called distutils-r1_run_phase 'python_test' > * environment, line 1938: Called python_test > * environment, line 3887: Called epytest '-o' 'addopts=' > * environment, line 2541: Called die > * The specific snippet of code: > * "${@}" || die -n "pytest failed with ${EPYTHON}"; > * > * If you need support, post the output of `emerge --info '=sys-power/autosuspend-5.0.0::gentoo'`, > * the complete build log and the output of `emerge -pqv '=sys-power/autosuspend-5.0.0::gentoo'`. > * The complete build log is located at '/var/log/portage/sys-power:autosuspend-5.0.0:20231013-141250.log'. > * For convenience, a symlink to the build log is located at '/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/sys-power/autosuspend-5.0.0/temp/environment'. > * Working directory: '/var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0' > * S: '/var/tmp/portage/sys-power/autosuspend-5.0.0/work/autosuspend-5.0.0' >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 915684
:
872700
|
872701
|
872702
|
872703
|
872704
| 872705 |
872706
|
872707