Your message dated Tue, 03 Feb 2026 13:35:00 +0000
with message-id <[email protected]>
and subject line Bug#1090274: fixed in python-foobot-async 1.0.1-3
has caused the Debian Bug report #1090274,
regarding python-foobot-async: FTBFS: E TypeError: 'Timeout' object does not 
support the context manager protocol
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
1090274: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1090274
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: src:python-foobot-async
Version: 1.0.1-2
Severity: serious
Tags: ftbfs

Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:

--------------------------------------------------------------------------------
[...]
 debian/rules build
make: pyversions: No such file or directory
py3versions: no X-Python3-Version in control file, using supported versions
dh build --buildsystem=pybuild --with python3
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" 
module
I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13  
* Building wheel...
/usr/lib/python3/dist-packages/setuptools/dist.py:491: 
SetuptoolsDeprecationWarning: Invalid dash-separated options
!!

        
********************************************************************************
        Usage of dash-separated 'description-file' will not be supported in 
future
        versions. Please use the underscore name 'description_file' instead.

        By 2025-Mar-03, you need to update your project and remove deprecated 
calls
        or your builds will no longer be supported.

        See 
https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for 
details.
        
********************************************************************************

!!
  opt = self.warn_dash_deprecation(opt, section)
running bdist_wheel
running build
running build_py
creating build/lib/foobot_async
copying foobot_async/__init__.py -> build/lib/foobot_async
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/foobot_async
copying build/lib/foobot_async/__init__.py -> 
build/bdist.linux-x86_64/wheel/./foobot_async
running install_egg_info
running egg_info
creating foobot_async.egg-info
writing foobot_async.egg-info/PKG-INFO
writing dependency_links to foobot_async.egg-info/dependency_links.txt
writing requirements to foobot_async.egg-info/requires.txt
writing top-level names to foobot_async.egg-info/top_level.txt
writing manifest file 'foobot_async.egg-info/SOURCES.txt'
reading manifest file 'foobot_async.egg-info/SOURCES.txt'
writing manifest file 'foobot_async.egg-info/SOURCES.txt'
Copying foobot_async.egg-info to 
build/bdist.linux-x86_64/wheel/./foobot_async-1.0.1.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/foobot_async-1.0.1.dist-info/WHEEL
creating 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/.tmp-orbvnmdv/foobot_async-1.0.1-py3-none-any.whl'
 and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'foobot_async/__init__.py'
adding 'foobot_async-1.0.1.dist-info/METADATA'
adding 'foobot_async-1.0.1.dist-info/WHEEL'
adding 'foobot_async-1.0.1.dist-info/top_level.txt'
adding 'foobot_async-1.0.1.dist-info/zip-safe'
adding 'foobot_async-1.0.1.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built foobot_async-1.0.1-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with 
"installer" module
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" 
module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12  
* Building wheel...
/usr/lib/python3/dist-packages/setuptools/dist.py:491: 
SetuptoolsDeprecationWarning: Invalid dash-separated options
!!

        
********************************************************************************
        Usage of dash-separated 'description-file' will not be supported in 
future
        versions. Please use the underscore name 'description_file' instead.

        By 2025-Mar-03, you need to update your project and remove deprecated 
calls
        or your builds will no longer be supported.

        See 
https://setuptools.pypa.io/en/latest/userguide/declarative_config.html for 
details.
        
********************************************************************************

!!
  opt = self.warn_dash_deprecation(opt, section)
running bdist_wheel
running build
running build_py
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/foobot_async
copying build/lib/foobot_async/__init__.py -> 
build/bdist.linux-x86_64/wheel/./foobot_async
running install_egg_info
running egg_info
writing foobot_async.egg-info/PKG-INFO
writing dependency_links to foobot_async.egg-info/dependency_links.txt
writing requirements to foobot_async.egg-info/requires.txt
writing top-level names to foobot_async.egg-info/top_level.txt
reading manifest file 'foobot_async.egg-info/SOURCES.txt'
writing manifest file 'foobot_async.egg-info/SOURCES.txt'
Copying foobot_async.egg-info to 
build/bdist.linux-x86_64/wheel/./foobot_async-1.0.1.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/foobot_async-1.0.1.dist-info/WHEEL
creating 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/.tmp-veh0p147/foobot_async-1.0.1-py3-none-any.whl'
 and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'foobot_async/__init__.py'
adding 'foobot_async-1.0.1.dist-info/METADATA'
adding 'foobot_async-1.0.1.dist-info/WHEEL'
adding 'foobot_async-1.0.1.dist-info/top_level.txt'
adding 'foobot_async-1.0.1.dist-info/zip-safe'
adding 'foobot_async-1.0.1.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built foobot_async-1.0.1-py3-none-any.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with 
"installer" module
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; 
python3.13 -m pytest -v /<<PKGBUILDDIR>>/foobot_async/tests
============================= test session starts ==============================
platform linux -- Python 3.13.1, pytest-8.3.4, pluggy-1.5.0 -- 
/usr/bin/python3.13
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>
plugins: typeguard-4.4.1
collecting ... collected 10 items

../../../foobot_async/tests/test_foobot_async.py::test_get_devices_request 
FAILED [ 10%]
../../../foobot_async/tests/test_foobot_async.py::test_failed_auth_request 
FAILED [ 20%]
../../../foobot_async/tests/test_foobot_async.py::test_failed_bad_format_request
 FAILED [ 30%]
../../../foobot_async/tests/test_foobot_async.py::test_forbidden_access_request 
FAILED [ 40%]
../../../foobot_async/tests/test_foobot_async.py::test_overquota_request FAILED 
[ 50%]
../../../foobot_async/tests/test_foobot_async.py::test_internal_error_request 
FAILED [ 60%]
../../../foobot_async/tests/test_foobot_async.py::test_unhandled_error_request 
FAILED [ 70%]
../../../foobot_async/tests/test_foobot_async.py::test_get_last_data_request 
FAILED [ 80%]
../../../foobot_async/tests/test_foobot_async.py::test_get_historical_data_request
 FAILED [ 90%]
../../../foobot_async/tests/test_foobot_async.py::test_get_bad_data_request 
FAILED [100%]

=================================== FAILURES ===================================
___________________________ test_get_devices_request ___________________________

    def test_get_devices_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=200, body='''[{"uuid": "1234127987696AB",
                                           "userId": 2353,
                                           "mac": "013843C3C20A",
                                           "name": "FooBot"}]''')
>           resp = loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
___________________________ test_failed_auth_request ___________________________

    def test_failed_auth_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=401, body='{"message": "invalid key provided"}')
    
            with pytest.raises(FoobotClient.AuthFailure):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
________________________ test_failed_bad_format_request ________________________

    def test_failed_bad_format_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=400, body='''{"state": 400,
                                            "message": "ParseException : Bad 
date format : bad date format [test]",
                                            "requestedUri": 
"/v2/device/26025766336015C0/datapoint/test/last/test/",
                                            "stack": "[obfuscated]",
                                            "propagatedException": null}''')
    
            with pytest.raises(FoobotClient.BadFormat):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
________________________ test_forbidden_access_request _________________________

    def test_forbidden_access_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=403, body='''{"{"state": 403, "message": null,
                                             "stack": "403 - Forbidden",
                                             "propagatedException": null }":
                                             "invalid key provided"}''')
    
            with pytest.raises(FoobotClient.ForbiddenAccess):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:76: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
____________________________ test_overquota_request ____________________________

    def test_overquota_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=429, body='')
    
            with pytest.raises(FoobotClient.TooManyRequests):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:85: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
_________________________ test_internal_error_request __________________________

    def test_internal_error_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=500, body='')
    
            with pytest.raises(FoobotClient.InternalError):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:94: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
_________________________ test_unhandled_error_request _________________________

    def test_unhandled_error_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=404, body='')
    
            with pytest.raises(FoobotClient.ClientError):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:103: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
__________________________ test_get_last_data_request __________________________

    def test_get_last_data_request():
        body = '''{"uuid": "1234127987696AB",
                   "start": 1518131274,
                   "end": 1518131874,
                   "sensors": ["time", "pm", "tmp", "hum", "co2", "voc", 
"allpollu"],
                   "units": [ "s", "ugm3", "C", "pc", "ppm", "ppb", "%" ],
                   "datapoints": [ [ 1518131274, 135.70001, 21.046001, 46.6885, 
1178.0,
                                   325.5, 131.19643 ] ] }'''
    
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/device/1234127987696AB/datapoint/600/last/601/',
                       status=200, body=body)
    
>           resp = 
> loop.run_until_complete(client.get_last_data("1234127987696AB",
                                                                600, 601))

../../../foobot_async/tests/test_foobot_async.py:118: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:86: in get_last_data
    return self.parse_data((await self._get(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 'https://api.foobot.io/v2/device/1234127987696AB/datapoint/600/last/601/'
kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
_______________________ test_get_historical_data_request _______________________

    def test_get_historical_data_request():
        body = '''{"uuid": "1234127987696AB",
                   "start": 1518131274,
                   "end": 1518131874,
                   "sensors": ["time", "pm", "tmp", "hum", "co2", "voc", 
"allpollu"],
                   "units": [ "s", "ugm3", "C", "pc", "ppm", "ppb", "%" ],
                   "datapoints": [ [ 1518131274, 135.70001, 21.046001, 46.6885, 
1178.0,
                                   325.5, 131.19643 ] ] }'''
    
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/device/1234127987696AB/datapoint/1518121274/1518131274/3600/',
                       status=200, body=body)
    
>           resp = 
> loop.run_until_complete(client.get_historical_data("1234127987696AB",
                                                                      
datetime.utcfromtimestamp(1518121274),
                                                                      
datetime.utcfromtimestamp(1518131274),
                                                                      3600))

../../../foobot_async/tests/test_foobot_async.py:142: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:117: in get_historical_data
    return self.parse_data((await self._get(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 
'https://api.foobot.io/v2/device/1234127987696AB/datapoint/1518121274/1518131274/3600/'
kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
__________________________ test_get_bad_data_request ___________________________

    def test_get_bad_data_request():
        body = '''{"uuid": "1234127987696AB",
                   "start": 1518131274,
                   "end": 1518131874}'''
    
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/device/1234127987696AB/datapoint/1518121274/1518131274/3600/',
                       status=200, body=body)
    
            with pytest.raises(FoobotClient.InvalidData):
>               
> loop.run_until_complete(client.get_historical_data("1234127987696AB",
                                                                   
datetime.utcfromtimestamp(1518121274),
                                                                   
datetime.utcfromtimestamp(1518131274),
                                                                   3600))

../../../foobot_async/tests/test_foobot_async.py:165: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/asyncio/base_events.py:720: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:117: in get_historical_data
    return self.parse_data((await self._get(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7fe7d3c26cf0>
path = 
'https://api.foobot.io/v2/device/1234127987696AB/datapoint/1518121274/1518131274/3600/'
kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
=============================== warnings summary ===============================
foobot_async/tests/test_foobot_async.py::test_get_historical_data_request
  /<<PKGBUILDDIR>>/foobot_async/tests/test_foobot_async.py:143: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    datetime.utcfromtimestamp(1518121274),

foobot_async/tests/test_foobot_async.py::test_get_historical_data_request
  /<<PKGBUILDDIR>>/foobot_async/tests/test_foobot_async.py:144: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    datetime.utcfromtimestamp(1518131274),

foobot_async/tests/test_foobot_async.py::test_get_bad_data_request
  /<<PKGBUILDDIR>>/foobot_async/tests/test_foobot_async.py:166: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    datetime.utcfromtimestamp(1518121274),

foobot_async/tests/test_foobot_async.py::test_get_bad_data_request
  /<<PKGBUILDDIR>>/foobot_async/tests/test_foobot_async.py:167: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    datetime.utcfromtimestamp(1518131274),

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_get_devices_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_failed_auth_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_failed_bad_format_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_forbidden_access_request
FAILED ../../../foobot_async/tests/test_foobot_async.py::test_overquota_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_internal_error_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_unhandled_error_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_get_last_data_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_get_historical_data_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_get_bad_data_request
======================== 10 failed, 4 warnings in 0.26s ========================
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7fe7d3c27a10>
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13/build; python3.13 -m pytest -v 
/<<PKGBUILDDIR>>/foobot_async/tests
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; 
python3.12 -m pytest -v /<<PKGBUILDDIR>>/foobot_async/tests
============================= test session starts ==============================
platform linux -- Python 3.12.8, pytest-8.3.4, pluggy-1.5.0 -- 
/usr/bin/python3.12
cachedir: .pytest_cache
rootdir: /<<PKGBUILDDIR>>
plugins: typeguard-4.4.1
collecting ... collected 10 items

../../../foobot_async/tests/test_foobot_async.py::test_get_devices_request 
FAILED [ 10%]
../../../foobot_async/tests/test_foobot_async.py::test_failed_auth_request 
FAILED [ 20%]
../../../foobot_async/tests/test_foobot_async.py::test_failed_bad_format_request
 FAILED [ 30%]
../../../foobot_async/tests/test_foobot_async.py::test_forbidden_access_request 
FAILED [ 40%]
../../../foobot_async/tests/test_foobot_async.py::test_overquota_request FAILED 
[ 50%]
../../../foobot_async/tests/test_foobot_async.py::test_internal_error_request 
FAILED [ 60%]
../../../foobot_async/tests/test_foobot_async.py::test_unhandled_error_request 
FAILED [ 70%]
../../../foobot_async/tests/test_foobot_async.py::test_get_last_data_request 
FAILED [ 80%]
../../../foobot_async/tests/test_foobot_async.py::test_get_historical_data_request
 FAILED [ 90%]
../../../foobot_async/tests/test_foobot_async.py::test_get_bad_data_request 
FAILED [100%]

=================================== FAILURES ===================================
___________________________ test_get_devices_request ___________________________

    def test_get_devices_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=200, body='''[{"uuid": "1234127987696AB",
                                           "userId": 2353,
                                           "mac": "013843C3C20A",
                                           "name": "FooBot"}]''')
>           resp = loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
___________________________ test_failed_auth_request ___________________________

    def test_failed_auth_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=401, body='{"message": "invalid key provided"}')
    
            with pytest.raises(FoobotClient.AuthFailure):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:51: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
________________________ test_failed_bad_format_request ________________________

    def test_failed_bad_format_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=400, body='''{"state": 400,
                                            "message": "ParseException : Bad 
date format : bad date format [test]",
                                            "requestedUri": 
"/v2/device/26025766336015C0/datapoint/test/last/test/",
                                            "stack": "[obfuscated]",
                                            "propagatedException": null}''')
    
            with pytest.raises(FoobotClient.BadFormat):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:64: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
________________________ test_forbidden_access_request _________________________

    def test_forbidden_access_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=403, body='''{"{"state": 403, "message": null,
                                             "stack": "403 - Forbidden",
                                             "propagatedException": null }":
                                             "invalid key provided"}''')
    
            with pytest.raises(FoobotClient.ForbiddenAccess):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:76: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
____________________________ test_overquota_request ____________________________

    def test_overquota_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=429, body='')
    
            with pytest.raises(FoobotClient.TooManyRequests):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:85: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
_________________________ test_internal_error_request __________________________

    def test_internal_error_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=500, body='')
    
            with pytest.raises(FoobotClient.InternalError):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:94: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
_________________________ test_unhandled_error_request _________________________

    def test_unhandled_error_request():
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/owner/[email protected]/device/',
                       status=404, body='')
    
            with pytest.raises(FoobotClient.ClientError):
>               loop.run_until_complete(client.get_devices())

../../../foobot_async/tests/test_foobot_async.py:103: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:59: in get_devices
    return (await self._get(DEVICE_URL.format(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 'https://api.foobot.io/v2/owner/[email protected]/device/', kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
__________________________ test_get_last_data_request __________________________

    def test_get_last_data_request():
        body = '''{"uuid": "1234127987696AB",
                   "start": 1518131274,
                   "end": 1518131874,
                   "sensors": ["time", "pm", "tmp", "hum", "co2", "voc", 
"allpollu"],
                   "units": [ "s", "ugm3", "C", "pc", "ppm", "ppb", "%" ],
                   "datapoints": [ [ 1518131274, 135.70001, 21.046001, 46.6885, 
1178.0,
                                   325.5, 131.19643 ] ] }'''
    
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/device/1234127987696AB/datapoint/600/last/601/',
                       status=200, body=body)
    
>           resp = 
> loop.run_until_complete(client.get_last_data("1234127987696AB",
                                                                600, 601))

../../../foobot_async/tests/test_foobot_async.py:118: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:86: in get_last_data
    return self.parse_data((await self._get(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 'https://api.foobot.io/v2/device/1234127987696AB/datapoint/600/last/601/'
kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
_______________________ test_get_historical_data_request _______________________

    def test_get_historical_data_request():
        body = '''{"uuid": "1234127987696AB",
                   "start": 1518131274,
                   "end": 1518131874,
                   "sensors": ["time", "pm", "tmp", "hum", "co2", "voc", 
"allpollu"],
                   "units": [ "s", "ugm3", "C", "pc", "ppm", "ppb", "%" ],
                   "datapoints": [ [ 1518131274, 135.70001, 21.046001, 46.6885, 
1178.0,
                                   325.5, 131.19643 ] ] }'''
    
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/device/1234127987696AB/datapoint/1518121274/1518131274/3600/',
                       status=200, body=body)
    
>           resp = 
> loop.run_until_complete(client.get_historical_data("1234127987696AB",
                                                                      
datetime.utcfromtimestamp(1518121274),
                                                                      
datetime.utcfromtimestamp(1518131274),
                                                                      3600))

../../../foobot_async/tests/test_foobot_async.py:142: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:117: in get_historical_data
    return self.parse_data((await self._get(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 
'https://api.foobot.io/v2/device/1234127987696AB/datapoint/1518121274/1518131274/3600/'
kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
__________________________ test_get_bad_data_request ___________________________

    def test_get_bad_data_request():
        body = '''{"uuid": "1234127987696AB",
                   "start": 1518131274,
                   "end": 1518131874}'''
    
        with aioresponses() as mocked:
            
mocked.get('https://api.foobot.io/v2/device/1234127987696AB/datapoint/1518121274/1518131274/3600/',
                       status=200, body=body)
    
            with pytest.raises(FoobotClient.InvalidData):
>               
> loop.run_until_complete(client.get_historical_data("1234127987696AB",
                                                                   
datetime.utcfromtimestamp(1518121274),
                                                                   
datetime.utcfromtimestamp(1518131274),
                                                                   3600))

../../../foobot_async/tests/test_foobot_async.py:165: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.12/asyncio/base_events.py:686: in run_until_complete
    return future.result()
../../../foobot_async/__init__.py:117: in get_historical_data
    return self.parse_data((await self._get(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <foobot_async.FoobotClient object at 0x7f0acacb3260>
path = 
'https://api.foobot.io/v2/device/1234127987696AB/datapoint/1518121274/1518131274/3600/'
kwargs = {}

    async def _get(self, path, **kwargs):
        if not hasattr(self, '_session'):
            self._session = aiohttp.ClientSession()
>       with async_timeout.timeout(self._timeout):
E       TypeError: 'Timeout' object does not support the context manager 
protocol

../../../foobot_async/__init__.py:158: TypeError
=============================== warnings summary ===============================
foobot_async/tests/test_foobot_async.py::test_get_historical_data_request
  /<<PKGBUILDDIR>>/foobot_async/tests/test_foobot_async.py:143: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    datetime.utcfromtimestamp(1518121274),

foobot_async/tests/test_foobot_async.py::test_get_historical_data_request
  /<<PKGBUILDDIR>>/foobot_async/tests/test_foobot_async.py:144: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    datetime.utcfromtimestamp(1518131274),

foobot_async/tests/test_foobot_async.py::test_get_bad_data_request
  /<<PKGBUILDDIR>>/foobot_async/tests/test_foobot_async.py:166: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    datetime.utcfromtimestamp(1518121274),

foobot_async/tests/test_foobot_async.py::test_get_bad_data_request
  /<<PKGBUILDDIR>>/foobot_async/tests/test_foobot_async.py:167: 
DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    datetime.utcfromtimestamp(1518131274),

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_get_devices_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_failed_auth_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_failed_bad_format_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_forbidden_access_request
FAILED ../../../foobot_async/tests/test_foobot_async.py::test_overquota_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_internal_error_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_unhandled_error_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_get_last_data_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_get_historical_data_request
FAILED 
../../../foobot_async/tests/test_foobot_async.py::test_get_bad_data_request
======================== 10 failed, 4 warnings in 0.29s ========================
Unclosed client session
client_session: <aiohttp.client.ClientSession object at 0x7f0aca987aa0>
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12/build; python3.12 -m pytest -v 
/<<PKGBUILDDIR>>/foobot_async/tests
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" returned exit code 13
make: *** [debian/rules:9: build] Error 25
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2
--------------------------------------------------------------------------------

The above is just how the build ends and not necessarily the most relevant part.
If required, the full build log is available here:

https://people.debian.org/~sanvila/build-logs/202412/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you could not reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and affects, so that this is still visible in the BTS web
page for this package.

Thanks.

--- End Message ---
--- Begin Message ---
Source: python-foobot-async
Source-Version: 1.0.1-3
Done: Edward Betts <[email protected]>

We believe that the bug you reported is fixed in the latest version of
python-foobot-async, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Edward Betts <[email protected]> (supplier of updated python-foobot-async 
package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

Format: 1.8
Date: Tue, 03 Feb 2026 13:10:45 +0000
Source: python-foobot-async
Architecture: source
Version: 1.0.1-3
Distribution: unstable
Urgency: medium
Maintainer: Home Assistant Team <[email protected]>
Changed-By: Edward Betts <[email protected]>
Closes: 1090274 1124563
Changes:
 python-foobot-async (1.0.1-3) unstable; urgency=medium
 .
   * Patch to fix for new version of async_timeout.
     (Closes: #1090274, #1124563)
   * Add my name to copyright and Uploaders.
   * Remove 'Priority: optional', now the default.
   * Add <!nocheck> to test dependencies.
   * Update debhelper-compat to version 13.
   * Update Standards-Version.
   * Update debian/watch to format version 5.
   * Add debian/salsa-ci.yml.
Checksums-Sha1:
 c62bdb2a0fbe459af63b80fed3036e7f476e03f0 2424 python-foobot-async_1.0.1-3.dsc
 3119d0918e7b3b6bb849463a8d98519580461c6e 2712 
python-foobot-async_1.0.1-3.debian.tar.xz
 03d2e237c4dd4f2b19c6b853294008d304a8c028 7231 
python-foobot-async_1.0.1-3_source.buildinfo
Checksums-Sha256:
 ed427f645e5690e6691d07254055bd7e7a6deb0d1859f7c85eb80024658392a5 2424 
python-foobot-async_1.0.1-3.dsc
 fa610e9897cf0017d7cfbf9072e6a6ca8453f60bbc5b0bb76747339f2206c915 2712 
python-foobot-async_1.0.1-3.debian.tar.xz
 7d0870722efaa4370970fcea00338ea4cd34bb65d6f290f2d6af3fda90bb6554 7231 
python-foobot-async_1.0.1-3_source.buildinfo
Files:
 99f6b4654d46171c71ab6c3bfddc2511 2424 python optional 
python-foobot-async_1.0.1-3.dsc
 f6a264776eea501dc424a68d1fdeb604 2712 python optional 
python-foobot-async_1.0.1-3.debian.tar.xz
 879347d48d2153f7f610b41a13a1468a 7231 python optional 
python-foobot-async_1.0.1-3_source.buildinfo

-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEE+4rPp4xyYInDitAmlgWhCYxjuSoFAmmB9GIACgkQlgWhCYxj
uSozkQ//QniFM4tXm6NnjVELHDVwmGqxNUza2mhgS5eBmHotzuxiOwAGrxX6jwDl
aGBGZ4oZ+6T/gmz2GyhkyhoHJmw0qzmoETyMYzETrEe2Wabf07LbWI4O15yxdXAu
utiTJK6ORWKBSN3llI+Klm7uQPYlQl6zBIablk68gSKxV9JY4OUMnlj9IfEeazvP
+fT5T6oeSGIqexQZWJZVzOEAicijnY4mCN+z29cSIW/gcvEcusUSvVH40pDp1kL6
p28ob8aJL75nNSykNChEmTIcAx2NtS9XM3rKHMnyoiLVHLrT44zyX4AqeqfNknk5
lSX/Kjl1RiRKhlDOUlln6A9aDc0NhlGVLeu6+QgRYDHJwErxhZnTT6NPV7RQJqFT
O2U8MIayWOpy7o2x8vJfuOYWQgwjpEeMv5woR3POLmrQyqkDUUk2GkvGEko/2UXf
Jv8oFTtBqaFtM0Z0NU5EA95ZWflJjC1x0tKl21zEvB2JYo3mZ0Nq3W0a/A5ABfig
299RVJoXPyOkrt/NiZCQCV41bm/wgzBjRQDQQPiCny6w/Zv2WjdjKnDUmEpdHnPa
I8g/blESepboCAfyiO7PTM7oLNM9c2n2mpjjuHyXdYQbnnzyhn7xHED2qTkXo1CG
Jgkvga+eobEHX4rngLJWokt3ljM96w1ZiXdHmeBbeGMu3avwT+c=
=Qs6u
-----END PGP SIGNATURE-----

Attachment: pgpTCSdhveDeK.pgp
Description: PGP signature


--- End Message ---

Reply via email to