Source: aiocoap Version: 0.4.3-0.1 Severity: serious Justification: FTBFS Tags: bookworm sid ftbfs User: lu...@debian.org Usertags: ftbfs-20220624 ftbfs-bookworm
Hi, During a rebuild of all packages in sid, your package failed to build on amd64. Relevant part (hopefully): > debian/rules build > dh build --with python3,sphinxdoc --buildsystem=pybuild > dh_update_autotools_config -O--buildsystem=pybuild > dh_autoreconf -O--buildsystem=pybuild > dh_auto_configure -O--buildsystem=pybuild > I: pybuild base:239: python3.9 setup.py config > running config > I: pybuild base:239: python3.10 setup.py config > running config > dh_auto_build -O--buildsystem=pybuild > I: pybuild base:239: /usr/bin/python3.9 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/credentials.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/optiontypes.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/messagemanager.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/options.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/interfaces.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/message.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/resource.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/defaults.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/oscore_sitewrapper.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/tokenmanager.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/protocol.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/oscore.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/meta.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > copying aiocoap/error.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/generic_udp.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/rfc8323common.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/simplesocketserver.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/udp6.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/ws.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/simple6.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/tinydtls.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/tcp.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/tinydtls_server.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/tls.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > copying aiocoap/transports/oscore.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/transports > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/socknumbers.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/linkformat_pygments.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/cli.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/prettyprint.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/uri.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/contenttype.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/cryptography_additions.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > copying aiocoap/util/linkformat.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/optionnumbers.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/codes.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/constants.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/types.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/numbers > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/resourcedirectory > copying aiocoap/resourcedirectory/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/resourcedirectory > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/cli > copying aiocoap/cli/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/cli > copying aiocoap/cli/defaults.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/cli > copying aiocoap/cli/client.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/cli > copying aiocoap/cli/fileserver.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/cli > copying aiocoap/cli/common.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/cli > copying aiocoap/cli/proxy.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/cli > copying aiocoap/cli/rd.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/cli > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/proxy > copying aiocoap/proxy/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/proxy > copying aiocoap/proxy/client.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/proxy > copying aiocoap/proxy/server.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/proxy > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util/asyncio > copying aiocoap/util/asyncio/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util/asyncio > copying aiocoap/util/asyncio/recvmsg.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/util/asyncio > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/resourcedirectory/client > copying aiocoap/resourcedirectory/client/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/resourcedirectory/client > copying aiocoap/resourcedirectory/client/register.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/resourcedirectory/client > I: pybuild base:239: /usr/bin/python3 setup.py build > running build > running build_py > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/credentials.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/optiontypes.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/messagemanager.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/options.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/interfaces.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/message.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/resource.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/defaults.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/oscore_sitewrapper.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/tokenmanager.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/protocol.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/oscore.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/meta.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > copying aiocoap/error.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/generic_udp.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/rfc8323common.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/simplesocketserver.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/udp6.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/ws.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/simple6.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/tinydtls.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/tcp.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/tinydtls_server.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/tls.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > copying aiocoap/transports/oscore.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/transports > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/socknumbers.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/linkformat_pygments.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/cli.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/prettyprint.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/uri.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/contenttype.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/cryptography_additions.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > copying aiocoap/util/linkformat.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/optionnumbers.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/codes.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/constants.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/numbers > copying aiocoap/numbers/types.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/numbers > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/resourcedirectory > copying aiocoap/resourcedirectory/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/resourcedirectory > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/cli > copying aiocoap/cli/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/cli > copying aiocoap/cli/defaults.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/cli > copying aiocoap/cli/client.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/cli > copying aiocoap/cli/fileserver.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/cli > copying aiocoap/cli/common.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/cli > copying aiocoap/cli/proxy.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/cli > copying aiocoap/cli/rd.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/cli > creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/proxy > copying aiocoap/proxy/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/proxy > copying aiocoap/proxy/client.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/proxy > copying aiocoap/proxy/server.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/proxy > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util/asyncio > copying aiocoap/util/asyncio/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util/asyncio > copying aiocoap/util/asyncio/recvmsg.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/util/asyncio > creating > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/resourcedirectory/client > copying aiocoap/resourcedirectory/client/__init__.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/resourcedirectory/client > copying aiocoap/resourcedirectory/client/register.py -> > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/resourcedirectory/client > dh_auto_test -O--buildsystem=pybuild > I: pybuild base:239: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build; > python3.9 -m pytest -k 'not test_commandline' > ============================= test session starts > ============================== > platform linux -- Python 3.9.13, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 > rootdir: /<<PKGBUILDDIR>> > collected 211 items / 5 deselected / 206 selected > > tests/test_blockwise.py .s. [ > 1%] > tests/test_client.py FE.FE.... [ > 4%] > tests/test_credentials.py ..s [ > 6%] > tests/test_dtls.py ssssssssssss [ > 12%] > tests/test_encoding.py ........... [ > 17%] > tests/test_group_oscore.py ssssssssssssssssssssssss [ > 29%] > tests/test_noncoap_client.py .......ss [ > 33%] > tests/test_noncoap_tcp_client.py ........... [ > 38%] > tests/test_observe.py .......x.... [ > 44%] > tests/test_oscore.py ssssssssssssssssssssss [ > 55%] > tests/test_oscore_plugtest.py ssssssssssssssssssssssssssssssssssssssssss [ > 75%] > ssssss [ > 78%] > tests/test_rd_examples.py ss [ > 79%] > tests/test_reverseproxy.py FF [ > 80%] > tests/test_server.py ........................ssssssssssss [ > 98%] > tests/test_tls.py FE [ > 98%] > tests/test_uri_handling.py .. [ > 99%] > tests/test_util_cryptography.py s > [100%] > > ==================================== ERRORS > ==================================== > __________ ERROR at teardown of TestClientWithSetHost.test_uri_parser > __________ > > self = <tests.test_client.TestClientWithSetHost testMethod=test_uri_parser> > > def tearDown(self): > super(WithLogMonitoring, self).tearDown() > > logging.root.removeHandler(self.handler) > > complete_log = " Complete log:\n" + "\n".join( > x.preformatted for x in self.handler.list if x.name != > 'asyncio') > > if 'AIOCOAP_TESTS_SHOWLOG' in os.environ: > print(complete_log, file=sys.stderr) > complete_log = "was just printed unconditionally anyway" > > > self.assertTrue(is_test_successful(self), > "Previous errors were raised." + complete_log) > E AssertionError: False is not true : Previous errors were raised. > Complete log: > E 2022-06-24 05:50:52,932:DEBUG:coap:Sending request - Token: 6929, > Remote: <UDP6EndpointAddress [::1]> > E 2022-06-24 05:50:52,932:DEBUG:coap:Sending message <aiocoap.Message > at 0x7f3925e74ac0: Type.CON GET (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > E 2022-06-24 05:50:52,932:DEBUG:coap:Exchange added, message ID: 23941. > E 2022-06-24 05:50:52,933:DEBUG:coap-server:Incoming message > <aiocoap.Message at 0x7f3925e86a00: Type.CON GET (MID 23941, token 6929) > remote <UDP6EndpointAddress [::1]:52231 (locally ::1%lo)>, 2 option(s)> > E 2022-06-24 05:50:52,933:DEBUG:coap-server:New unique message received > E 2022-06-24 05:50:52,933:DEBUG:coap-server:Sending message > <aiocoap.Message at 0x7f3925561310: Type.ACK 2.05 Content (MID 23941, token > 6929) remote <UDP6EndpointAddress [::1]:52231 (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:50:52,934:DEBUG:coap:Incoming message <aiocoap.Message > at 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:50:52,934:DEBUG:coap:Exchange removed, message ID: > 23941. > E 2022-06-24 05:50:52,934:DEBUG:coap:Received Response: > <aiocoap.Message at 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token > 6929) remote <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:50:52,934:DEBUG:coap:Response <aiocoap.Message at > 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7f3925e86a90 around <aiocoap.Message at 0x7f3925e74ac0: > Type.CON GET (MID 23941, token 6929) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > E 2022-06-24 05:50:52,945:DEBUG:coap-server:Shutting down context > E 2022-06-24 05:50:52,946:DEBUG:coap:Shutting down context > > tests/fixtures.py:116: AssertionError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap:tokenmanager.py:209 Sending request - Token: 6929, Remote: > <UDP6EndpointAddress [::1]> > DEBUG coap:messagemanager.py:423 Sending message <aiocoap.Message at > 0x7f3925e74ac0: Type.CON GET (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > DEBUG coap:messagemanager.py:209 Exchange added, message ID: 23941. > DEBUG coap-server:messagemanager.py:83 Incoming message <aiocoap.Message > at 0x7f3925e86a00: Type.CON GET (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1]:52231 (locally ::1%lo)>, 2 option(s)> > DEBUG coap-server:messagemanager.py:175 New unique message received > DEBUG coap-server:messagemanager.py:423 Sending message <aiocoap.Message > at 0x7f3925561310: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1]:52231 (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:83 Incoming message <aiocoap.Message at > 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:224 Exchange removed, message ID: 23941. > DEBUG coap:messagemanager.py:332 Received Response: <aiocoap.Message at > 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:tokenmanager.py:170 Response <aiocoap.Message at > 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7f3925e86a90 around <aiocoap.Message at 0x7f3925e74ac0: > Type.CON GET (MID 23941, token 6929) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > _____ ERROR at teardown of TestClientWithHostlessMessages.test_uri_parser > ______ > > self = <tests.test_client.TestClientWithHostlessMessages > testMethod=test_uri_parser> > > def tearDown(self): > super(WithLogMonitoring, self).tearDown() > > logging.root.removeHandler(self.handler) > > complete_log = " Complete log:\n" + "\n".join( > x.preformatted for x in self.handler.list if x.name != > 'asyncio') > > if 'AIOCOAP_TESTS_SHOWLOG' in os.environ: > print(complete_log, file=sys.stderr) > complete_log = "was just printed unconditionally anyway" > > > self.assertTrue(is_test_successful(self), > "Previous errors were raised." + complete_log) > E AssertionError: False is not true : Previous errors were raised. > Complete log: > E 2022-06-24 05:50:53,169:DEBUG:coap:Sending request - Token: 4718, > Remote: <UDP6EndpointAddress [::1]> > E 2022-06-24 05:50:53,169:DEBUG:coap:Sending message <aiocoap.Message > at 0x7f39254ef3d0: Type.CON GET (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > E 2022-06-24 05:50:53,169:DEBUG:coap:Exchange added, message ID: 38050. > E 2022-06-24 05:50:53,170:DEBUG:coap-server:Incoming message > <aiocoap.Message at 0x7f3925527f10: Type.CON GET (MID 38050, token 4718) > remote <UDP6EndpointAddress [::1]:41122 (locally ::1%lo)>, 2 option(s)> > E 2022-06-24 05:50:53,170:DEBUG:coap-server:New unique message received > E 2022-06-24 05:50:53,170:DEBUG:coap-server:Sending message > <aiocoap.Message at 0x7f3925393d60: Type.ACK 2.05 Content (MID 38050, token > 4718) remote <UDP6EndpointAddress [::1]:41122 (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:50:53,171:DEBUG:coap:Incoming message <aiocoap.Message > at 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:50:53,171:DEBUG:coap:Exchange removed, message ID: > 38050. > E 2022-06-24 05:50:53,171:DEBUG:coap:Received Response: > <aiocoap.Message at 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token > 4718) remote <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:50:53,171:DEBUG:coap:Response <aiocoap.Message at > 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7f3925527850 around <aiocoap.Message at 0x7f39254ef3d0: > Type.CON GET (MID 38050, token 4718) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > E 2022-06-24 05:50:53,182:DEBUG:coap-server:Shutting down context > E 2022-06-24 05:50:53,182:DEBUG:coap:Shutting down context > > tests/fixtures.py:116: AssertionError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap:tokenmanager.py:209 Sending request - Token: 4718, Remote: > <UDP6EndpointAddress [::1]> > DEBUG coap:messagemanager.py:423 Sending message <aiocoap.Message at > 0x7f39254ef3d0: Type.CON GET (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > DEBUG coap:messagemanager.py:209 Exchange added, message ID: 38050. > DEBUG coap-server:messagemanager.py:83 Incoming message <aiocoap.Message > at 0x7f3925527f10: Type.CON GET (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1]:41122 (locally ::1%lo)>, 2 option(s)> > DEBUG coap-server:messagemanager.py:175 New unique message received > DEBUG coap-server:messagemanager.py:423 Sending message <aiocoap.Message > at 0x7f3925393d60: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1]:41122 (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:83 Incoming message <aiocoap.Message at > 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:224 Exchange removed, message ID: 38050. > DEBUG coap:messagemanager.py:332 Received Response: <aiocoap.Message at > 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:tokenmanager.py:170 Response <aiocoap.Message at > 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7f3925527850 around <aiocoap.Message at 0x7f39254ef3d0: > Type.CON GET (MID 38050, token 4718) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > ____________________ ERROR at teardown of TestTLS.test_tls > _____________________ > > self = <tests.test_tls.TestTLS testMethod=test_tls> > > def tearDown(self): > super(WithLogMonitoring, self).tearDown() > > logging.root.removeHandler(self.handler) > > complete_log = " Complete log:\n" + "\n".join( > x.preformatted for x in self.handler.list if x.name != > 'asyncio') > > if 'AIOCOAP_TESTS_SHOWLOG' in os.environ: > print(complete_log, file=sys.stderr) > complete_log = "was just printed unconditionally anyway" > > > self.assertTrue(is_test_successful(self), > "Previous errors were raised." + complete_log) > E AssertionError: False is not true : Previous errors were raised. > Complete log: > E 2022-06-24 05:51:11,975:DEBUG:coap-server:Shutting down context > E 2022-06-24 05:51:11,976:DEBUG:coap:Shutting down context > > tests/fixtures.py:116: AssertionError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > =================================== FAILURES > =================================== > ____________________ TestClientWithSetHost.test_uri_parser > _____________________ > > self = <tests.test_client.TestClientWithSetHost testMethod=test_uri_parser> > function = <function TestClientWithSetHost.test_uri_parser at 0x7f3926074430> > args = (), startcount = 0 > > def wrapped(self, *args, function=function): > # assertLogs does not work as assertDoesntLog anyway without major > # tricking, and it interacts badly with WithLogMonitoring as they both > # try to change the root logger's level. > > startcount = len(self.handler.list) > > result = function(self, *args) > > tests/fixtures.py:75: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/fixtures.py:57: in wrapper > return self.loop.run_until_complete(f) > /usr/lib/python3.9/asyncio/base_events.py:647: in run_until_complete > return future.result() > /usr/lib/python3.9/asyncio/tasks.py:611: in _wait_for_one > return f.result() # May raise f.exception(). > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <tests.test_client.TestClientWithSetHost testMethod=test_uri_parser> > > @no_warnings > @asynctest > async def test_uri_parser(self): > request = aiocoap.Message(code=aiocoap.GET) > request_uri = "coap://" + self.servernetloc + "/empty?query=a&query=b" > request.set_request_uri(request_uri, set_uri_host=self.set_uri_host) > self.assertEqual(request.get_request_uri(), request_uri, "Request URL > does not round-trip in request") > response = await self.client.request(request).response > self.assertEqual(response.get_request_uri(), request_uri, "Request > URL does not round-trip in response") > self.assertEqual(response.code, aiocoap.CONTENT, "Request URL > building failed") > > request = aiocoap.Message(code=aiocoap.GET) > > request.set_request_uri("coap://" + self.servernamealias + "/empty", > > set_uri_host=self.set_uri_host) > E TypeError: can only concatenate str (not "NoneType") to str > > tests/test_client.py:31: TypeError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap:tokenmanager.py:209 Sending request - Token: 6929, Remote: > <UDP6EndpointAddress [::1]> > DEBUG coap:messagemanager.py:423 Sending message <aiocoap.Message at > 0x7f3925e74ac0: Type.CON GET (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > DEBUG coap:messagemanager.py:209 Exchange added, message ID: 23941. > DEBUG coap-server:messagemanager.py:83 Incoming message <aiocoap.Message > at 0x7f3925e86a00: Type.CON GET (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1]:52231 (locally ::1%lo)>, 2 option(s)> > DEBUG coap-server:messagemanager.py:175 New unique message received > DEBUG coap-server:messagemanager.py:423 Sending message <aiocoap.Message > at 0x7f3925561310: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1]:52231 (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:83 Incoming message <aiocoap.Message at > 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:224 Exchange removed, message ID: 23941. > DEBUG coap:messagemanager.py:332 Received Response: <aiocoap.Message at > 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:tokenmanager.py:170 Response <aiocoap.Message at > 0x7f3925561520: Type.ACK 2.05 Content (MID 23941, token 6929) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7f3925e86a90 around <aiocoap.Message at 0x7f3925e74ac0: > Type.CON GET (MID 23941, token 6929) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > ________________ TestClientWithHostlessMessages.test_uri_parser > ________________ > > self = <tests.test_client.TestClientWithHostlessMessages > testMethod=test_uri_parser> > function = <function TestClientWithSetHost.test_uri_parser at 0x7f3926074430> > args = (), startcount = 0 > > def wrapped(self, *args, function=function): > # assertLogs does not work as assertDoesntLog anyway without major > # tricking, and it interacts badly with WithLogMonitoring as they both > # try to change the root logger's level. > > startcount = len(self.handler.list) > > result = function(self, *args) > > tests/fixtures.py:75: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/fixtures.py:57: in wrapper > return self.loop.run_until_complete(f) > /usr/lib/python3.9/asyncio/base_events.py:647: in run_until_complete > return future.result() > /usr/lib/python3.9/asyncio/tasks.py:611: in _wait_for_one > return f.result() # May raise f.exception(). > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <tests.test_client.TestClientWithHostlessMessages > testMethod=test_uri_parser> > > @no_warnings > @asynctest > async def test_uri_parser(self): > request = aiocoap.Message(code=aiocoap.GET) > request_uri = "coap://" + self.servernetloc + "/empty?query=a&query=b" > request.set_request_uri(request_uri, set_uri_host=self.set_uri_host) > self.assertEqual(request.get_request_uri(), request_uri, "Request URL > does not round-trip in request") > response = await self.client.request(request).response > self.assertEqual(response.get_request_uri(), request_uri, "Request > URL does not round-trip in response") > self.assertEqual(response.code, aiocoap.CONTENT, "Request URL > building failed") > > request = aiocoap.Message(code=aiocoap.GET) > > request.set_request_uri("coap://" + self.servernamealias + "/empty", > > set_uri_host=self.set_uri_host) > E TypeError: can only concatenate str (not "NoneType") to str > > tests/test_client.py:31: TypeError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap:tokenmanager.py:209 Sending request - Token: 4718, Remote: > <UDP6EndpointAddress [::1]> > DEBUG coap:messagemanager.py:423 Sending message <aiocoap.Message at > 0x7f39254ef3d0: Type.CON GET (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > DEBUG coap:messagemanager.py:209 Exchange added, message ID: 38050. > DEBUG coap-server:messagemanager.py:83 Incoming message <aiocoap.Message > at 0x7f3925527f10: Type.CON GET (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1]:41122 (locally ::1%lo)>, 2 option(s)> > DEBUG coap-server:messagemanager.py:175 New unique message received > DEBUG coap-server:messagemanager.py:423 Sending message <aiocoap.Message > at 0x7f3925393d60: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1]:41122 (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:83 Incoming message <aiocoap.Message at > 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:224 Exchange removed, message ID: 38050. > DEBUG coap:messagemanager.py:332 Received Response: <aiocoap.Message at > 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:tokenmanager.py:170 Response <aiocoap.Message at > 0x7f3925527d90: Type.ACK 2.05 Content (MID 38050, token 4718) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7f3925527850 around <aiocoap.Message at 0x7f39254ef3d0: > Type.CON GET (MID 38050, token 4718) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > ________________________ TestReverseProxy.test_options > _________________________ > > self = <tests.test_reverseproxy.TestReverseProxy testMethod=test_options> > > def setUp(self): > super(WithReverseProxy, self).setUp() > > self.reverseproxy = aiocoap.cli.proxy.Main( > > ["--reverse", "--bind", hostportjoin(self.proxyhost, > > self.proxyport), "--namebased", "%s:%s"%(self.name_for_real_server, > > self.servernetloc), "--pathbased", > > "%s:%s"%("/".join(self.path_for_real_server), self.servernetloc)], > loop=self.loop, > ) > > tests/test_reverseproxy.py:23: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > host = None, port = 56839 > > def hostportjoin(host, port=None): > """Join a host and optionally port into a hostinfo-style host:port > string > > >>> hostportjoin('example.com') > 'example.com' > >>> hostportjoin('example.com', 1234) > 'example.com:1234' > >>> hostportjoin('127.0.0.1', 1234) > '127.0.0.1:1234' > > This is lax with respect to whether host is an IPv6 literal in > brackets or > not, and accepts either form; IP-future literals that do not contain a > colon must be already presented in their bracketed form: > > >>> hostportjoin('2001:db8::1') > '[2001:db8::1]' > >>> hostportjoin('2001:db8::1', 1234) > '[2001:db8::1]:1234' > >>> hostportjoin('[2001:db8::1]', 1234) > '[2001:db8::1]:1234' > """ > > if ':' in host and not (host.startswith('[') and host.endswith(']')): > E TypeError: argument of type 'NoneType' is not iterable > > aiocoap/util/__init__.py:86: TypeError > ________________________ TestReverseProxy.test_routing > _________________________ > > self = <tests.test_reverseproxy.TestReverseProxy testMethod=test_routing> > > def setUp(self): > super(WithReverseProxy, self).setUp() > > self.reverseproxy = aiocoap.cli.proxy.Main( > > ["--reverse", "--bind", hostportjoin(self.proxyhost, > > self.proxyport), "--namebased", "%s:%s"%(self.name_for_real_server, > > self.servernetloc), "--pathbased", > > "%s:%s"%("/".join(self.path_for_real_server), self.servernetloc)], > loop=self.loop, > ) > > tests/test_reverseproxy.py:23: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > host = None, port = 56839 > > def hostportjoin(host, port=None): > """Join a host and optionally port into a hostinfo-style host:port > string > > >>> hostportjoin('example.com') > 'example.com' > >>> hostportjoin('example.com', 1234) > 'example.com:1234' > >>> hostportjoin('127.0.0.1', 1234) > '127.0.0.1:1234' > > This is lax with respect to whether host is an IPv6 literal in > brackets or > not, and accepts either form; IP-future literals that do not contain a > colon must be already presented in their bracketed form: > > >>> hostportjoin('2001:db8::1') > '[2001:db8::1]' > >>> hostportjoin('2001:db8::1', 1234) > '[2001:db8::1]:1234' > >>> hostportjoin('[2001:db8::1]', 1234) > '[2001:db8::1]:1234' > """ > > if ':' in host and not (host.startswith('[') and host.endswith(']')): > E TypeError: argument of type 'NoneType' is not iterable > > aiocoap/util/__init__.py:86: TypeError > _______________________________ TestTLS.test_tls > _______________________________ > > self = <aiocoap.transports.tls.TLSClient object at 0x7f3925326be0> > message = <aiocoap.Message at 0x7f39255823a0: no mtype, GET (no MID, empty > token) remote UndecidedRemote(scheme='coaps+tcp', hostinfo='None'), 1 > option(s)> > > async def _spawn_protocol(self, message): > if message.unresolved_remote is None: > host = message.opt.uri_host > port = message.opt.uri_port or self._default_port > if host is None: > raise ValueError("No location found to send message to > (neither in .opt.uri_host nor in .remote)") > else: > host, port = util.hostportsplit(message.unresolved_remote) > port = port or self._default_port > > if (host, port) in self._pool: > return self._pool[(host, port)] > > try: > > _, protocol = await self.loop.create_connection( > lambda: TcpConnection(self, self.log, self.loop, > is_server=False), > host, port, > ssl=self._ssl_context_factory(message.unresolved_remote)) > > aiocoap/transports/tcp.py:343: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > protocol_factory = <function TCPClient._spawn_protocol.<locals>.<lambda> at > 0x7f39254f6e50> > host = 'none', port = 5684 > > async def create_connection( > self, protocol_factory, host=None, port=None, > *, ssl=None, family=0, > proto=0, flags=0, sock=None, > local_addr=None, server_hostname=None, > ssl_handshake_timeout=None, > happy_eyeballs_delay=None, interleave=None): > """Connect to a TCP server. > > Create a streaming transport connection to a given Internet host and > port: socket family AF_INET or socket.AF_INET6 depending on host (or > family if specified), socket type SOCK_STREAM. protocol_factory must > be > a callable returning a protocol instance. > > This method is a coroutine which will try to establish the connection > in the background. When successful, the coroutine returns a > (transport, protocol) pair. > """ > if server_hostname is not None and not ssl: > raise ValueError('server_hostname is only meaningful with ssl') > > if server_hostname is None and ssl: > # Use host as default for server_hostname. It is an error > # if host is empty or not set, e.g. when an > # already-connected socket was passed or when only a port > # is given. To avoid this error, you can pass > # server_hostname='' -- this will bypass the hostname > # check. (This also means that if host is a numeric > # IP/IPv6 address, we will attempt to verify that exact > # address; this will probably fail, but it is possible to > # create a certificate for a specific IP address, so we > # don't judge it here.) > if not host: > raise ValueError('You must set server_hostname ' > 'when using ssl without a host') > server_hostname = host > > if ssl_handshake_timeout is not None and not ssl: > raise ValueError( > 'ssl_handshake_timeout is only meaningful with ssl') > > if sock is not None: > _check_ssl_socket(sock) > > if happy_eyeballs_delay is not None and interleave is None: > # If using happy eyeballs, default to interleave addresses by > family > interleave = 1 > > if host is not None or port is not None: > if sock is not None: > raise ValueError( > 'host/port and sock can not be specified at the same > time') > > > infos = await self._ensure_resolved( > (host, port), family=family, > type=socket.SOCK_STREAM, proto=proto, flags=flags, loop=self) > > /usr/lib/python3.9/asyncio/base_events.py:1026: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > address = ('none', 5684) > > async def _ensure_resolved(self, address, *, > family=0, type=socket.SOCK_STREAM, > proto=0, flags=0, loop): > host, port = address[:2] > info = _ipaddr_info(host, port, family, type, proto, *address[2:]) > if info is not None: > # "host" is already a resolved IP. > return [info] > else: > > return await loop.getaddrinfo(host, port, family=family, > > type=type, > proto=proto, flags=flags) > > /usr/lib/python3.9/asyncio/base_events.py:1405: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > host = 'none', port = 5684 > > async def getaddrinfo(self, host, port, *, > family=0, type=0, proto=0, flags=0): > if self._debug: > getaddr_func = self._getaddrinfo_debug > else: > getaddr_func = socket.getaddrinfo > > > return await self.run_in_executor( > None, getaddr_func, host, port, family, type, proto, flags) > > /usr/lib/python3.9/asyncio/base_events.py:861: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = None > > def run(self): > if not self.future.set_running_or_notify_cancel(): > return > > try: > > result = self.fn(*self.args, **self.kwargs) > > /usr/lib/python3.9/concurrent/futures/thread.py:58: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > host = 'none', port = 5684, family = 0, type = <SocketKind.SOCK_STREAM: 1> > proto = 0, flags = 0 > > def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): > """Resolve host and port into list of address info entries. > > Translate the host/port argument into a sequence of 5-tuples that > contain > all the necessary arguments for creating a socket connected to that > service. > host is a domain name, a string representation of an IPv4/v6 address > or > None. port is a string service name such as 'http', a numeric port > number or > None. By passing None as the value of host and port, you can pass > NULL to > the underlying C API. > > The family, type and proto arguments can be optionally specified in > order to > narrow the list of addresses returned. Passing zero as a value for > each of > these arguments selects the full range of results. > """ > # We override this function since we want to translate the numeric > family > # and socket type values to enum constants. > addrlist = [] > > for res in _socket.getaddrinfo(host, port, family, type, proto, > > flags): > E socket.gaierror: [Errno -2] Name or service not known > > /usr/lib/python3.9/socket.py:954: gaierror > > During handling of the above exception, another exception occurred: > > self = <tests.test_tls.TestTLS testMethod=test_tls> > function = <function TestTLS.test_tls at 0x7f3925f04af0>, args = () > startcount = 0 > > def wrapped(self, *args, function=function): > # assertLogs does not work as assertDoesntLog anyway without major > # tricking, and it interacts badly with WithLogMonitoring as they both > # try to change the root logger's level. > > startcount = len(self.handler.list) > > result = function(self, *args) > > tests/fixtures.py:75: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/fixtures.py:57: in wrapper > return self.loop.run_until_complete(f) > /usr/lib/python3.9/asyncio/base_events.py:647: in run_until_complete > return future.result() > /usr/lib/python3.9/asyncio/tasks.py:611: in _wait_for_one > return f.result() # May raise f.exception(). > tests/test_tls.py:84: in test_tls > response = await self.client.request(request).response_raising > aiocoap/protocol.py:643: in response_raising > response = await self.response > aiocoap/protocol.py:842: in _run_outer > await cls._run(app_request, response, weak_observation, protocol, log) > aiocoap/protocol.py:867: in _run > await protocol.find_remote_and_interface(app_request) > aiocoap/protocol.py:340: in find_remote_and_interface > if await ri.fill_or_recognize_remote(message): > aiocoap/tokenmanager.py:194: in fill_or_recognize_remote > return await self.token_interface.fill_or_recognize_remote(message) > aiocoap/transports/tcp.py:398: in fill_or_recognize_remote > message.remote = await self._spawn_protocol(message) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <aiocoap.transports.tls.TLSClient object at 0x7f3925326be0> > message = <aiocoap.Message at 0x7f39255823a0: no mtype, GET (no MID, empty > token) remote UndecidedRemote(scheme='coaps+tcp', hostinfo='None'), 1 > option(s)> > > async def _spawn_protocol(self, message): > if message.unresolved_remote is None: > host = message.opt.uri_host > port = message.opt.uri_port or self._default_port > if host is None: > raise ValueError("No location found to send message to > (neither in .opt.uri_host nor in .remote)") > else: > host, port = util.hostportsplit(message.unresolved_remote) > port = port or self._default_port > > if (host, port) in self._pool: > return self._pool[(host, port)] > > try: > _, protocol = await self.loop.create_connection( > lambda: TcpConnection(self, self.log, self.loop, > is_server=False), > host, port, > ssl=self._ssl_context_factory(message.unresolved_remote)) > except socket.gaierror: > > raise error.ResolutionError("No address information found for > > requests to %r" % host) > E aiocoap.error.ResolutionError: No address information found for > requests to 'none' > > aiocoap/transports/tcp.py:349: ResolutionError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > =============================== warnings summary > =============================== > aiocoap/resource.py:266 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/aiocoap/resource.py:266: > DeprecationWarning: invalid escape sequence \ > """Class that indicates that a resource promises to parse the uri_path > > tests/test_server.py:116 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/tests/test_server.py:116: > PytestCollectionWarning: cannot collect test class 'TestingSite' because it > has a __init__ constructor (from: > .pybuild/cpython3_3.9_aiocoap/build/tests/test_blockwise.py) > class TestingSite(aiocoap.resource.Site): > > tests/test_server.py:116 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build/tests/test_server.py:116: > PytestCollectionWarning: cannot collect test class 'TestingSite' because it > has a __init__ constructor (from: > .pybuild/cpython3_3.9_aiocoap/build/tests/test_server.py) > class TestingSite(aiocoap.resource.Site): > > -- Docs: https://docs.pytest.org/en/stable/warnings.html > =========================== short test summary info > ============================ > FAILED tests/test_client.py::TestClientWithSetHost::test_uri_parser - > TypeErr... > FAILED tests/test_client.py::TestClientWithHostlessMessages::test_uri_parser > FAILED tests/test_reverseproxy.py::TestReverseProxy::test_options - > TypeError... > FAILED tests/test_reverseproxy.py::TestReverseProxy::test_routing - > TypeError... > FAILED tests/test_tls.py::TestTLS::test_tls - aiocoap.error.ResolutionError: > ... > ERROR tests/test_client.py::TestClientWithSetHost::test_uri_parser - > Assertio... > ERROR tests/test_client.py::TestClientWithHostlessMessages::test_uri_parser > ERROR tests/test_tls.py::TestTLS::test_tls - AssertionError: False is not > tru... > = 5 failed, 75 passed, 125 skipped, 5 deselected, 1 xfailed, 3 warnings, 3 > errors in 20.62s = > E: pybuild pybuild:369: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_aiocoap/build; python3.9 -m pytest -k > 'not test_commandline' > I: pybuild base:239: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build; python3.10 -m pytest > -k 'not test_commandline' > ============================= test session starts > ============================== > platform linux -- Python 3.10.5, pytest-6.2.5, py-1.10.0, pluggy-1.0.0 > rootdir: /<<PKGBUILDDIR>> > collected 211 items / 5 deselected / 206 selected > > tests/test_blockwise.py .s. [ > 1%] > tests/test_client.py FE.FE.... [ > 4%] > tests/test_credentials.py ..s [ > 6%] > tests/test_dtls.py ssssssssssss [ > 12%] > tests/test_encoding.py ........... [ > 17%] > tests/test_group_oscore.py ssssssssssssssssssssssss [ > 29%] > tests/test_noncoap_client.py .......ss [ > 33%] > tests/test_noncoap_tcp_client.py ........... [ > 38%] > tests/test_observe.py .......x.... [ > 44%] > tests/test_oscore.py ssssssssssssssssssssss [ > 55%] > tests/test_oscore_plugtest.py ssssssssssssssssssssssssssssssssssssssssss [ > 75%] > ssssss [ > 78%] > tests/test_rd_examples.py ss [ > 79%] > tests/test_reverseproxy.py FF [ > 80%] > tests/test_server.py ........................ssssssssssss [ > 98%] > tests/test_tls.py FE [ > 98%] > tests/test_uri_handling.py .. [ > 99%] > tests/test_util_cryptography.py s > [100%] > > ==================================== ERRORS > ==================================== > __________ ERROR at teardown of TestClientWithSetHost.test_uri_parser > __________ > > self = <tests.test_client.TestClientWithSetHost testMethod=test_uri_parser> > > def tearDown(self): > super(WithLogMonitoring, self).tearDown() > > logging.root.removeHandler(self.handler) > > complete_log = " Complete log:\n" + "\n".join( > x.preformatted for x in self.handler.list if x.name != > 'asyncio') > > if 'AIOCOAP_TESTS_SHOWLOG' in os.environ: > print(complete_log, file=sys.stderr) > complete_log = "was just printed unconditionally anyway" > > > self.assertTrue(is_test_successful(self), > "Previous errors were raised." + complete_log) > E AssertionError: False is not true : Previous errors were raised. > Complete log: > E 2022-06-24 05:51:13,878:DEBUG:coap:Sending request - Token: 76ff, > Remote: <UDP6EndpointAddress [::1]> > E 2022-06-24 05:51:13,878:DEBUG:coap:Sending message <aiocoap.Message > at 0x7fe89670e740: Type.CON GET (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > E 2022-06-24 05:51:13,879:DEBUG:coap:Exchange added, message ID: 10639. > E 2022-06-24 05:51:13,879:DEBUG:coap-server:Incoming message > <aiocoap.Message at 0x7fe89670d600: Type.CON GET (MID 10639, token 76ff) > remote <UDP6EndpointAddress [::1]:35157 (locally ::1%lo)>, 2 option(s)> > E 2022-06-24 05:51:13,879:DEBUG:coap-server:New unique message received > E 2022-06-24 05:51:13,879:DEBUG:coap-server:Sending message > <aiocoap.Message at 0x7fe896694190: Type.ACK 2.05 Content (MID 10639, token > 76ff) remote <UDP6EndpointAddress [::1]:35157 (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:51:13,880:DEBUG:coap:Incoming message <aiocoap.Message > at 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:51:13,880:DEBUG:coap:Exchange removed, message ID: > 10639. > E 2022-06-24 05:51:13,880:DEBUG:coap:Received Response: > <aiocoap.Message at 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token > 76ff) remote <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:51:13,880:DEBUG:coap:Response <aiocoap.Message at > 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7fe89670c790 around <aiocoap.Message at 0x7fe89670e740: > Type.CON GET (MID 10639, token 76ff) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > E 2022-06-24 05:51:13,891:DEBUG:coap-server:Shutting down context > E 2022-06-24 05:51:13,892:DEBUG:coap:Shutting down context > > tests/fixtures.py:116: AssertionError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap:tokenmanager.py:209 Sending request - Token: 76ff, Remote: > <UDP6EndpointAddress [::1]> > DEBUG coap:messagemanager.py:423 Sending message <aiocoap.Message at > 0x7fe89670e740: Type.CON GET (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > DEBUG coap:messagemanager.py:209 Exchange added, message ID: 10639. > DEBUG coap-server:messagemanager.py:83 Incoming message <aiocoap.Message > at 0x7fe89670d600: Type.CON GET (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1]:35157 (locally ::1%lo)>, 2 option(s)> > DEBUG coap-server:messagemanager.py:175 New unique message received > DEBUG coap-server:messagemanager.py:423 Sending message <aiocoap.Message > at 0x7fe896694190: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1]:35157 (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:83 Incoming message <aiocoap.Message at > 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:224 Exchange removed, message ID: 10639. > DEBUG coap:messagemanager.py:332 Received Response: <aiocoap.Message at > 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:tokenmanager.py:170 Response <aiocoap.Message at > 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7fe89670c790 around <aiocoap.Message at 0x7fe89670e740: > Type.CON GET (MID 10639, token 76ff) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > _____ ERROR at teardown of TestClientWithHostlessMessages.test_uri_parser > ______ > > self = <tests.test_client.TestClientWithHostlessMessages > testMethod=test_uri_parser> > > def tearDown(self): > super(WithLogMonitoring, self).tearDown() > > logging.root.removeHandler(self.handler) > > complete_log = " Complete log:\n" + "\n".join( > x.preformatted for x in self.handler.list if x.name != > 'asyncio') > > if 'AIOCOAP_TESTS_SHOWLOG' in os.environ: > print(complete_log, file=sys.stderr) > complete_log = "was just printed unconditionally anyway" > > > self.assertTrue(is_test_successful(self), > "Previous errors were raised." + complete_log) > E AssertionError: False is not true : Previous errors were raised. > Complete log: > E 2022-06-24 05:51:14,132:DEBUG:coap:Sending request - Token: bb8a, > Remote: <UDP6EndpointAddress [::1]> > E 2022-06-24 05:51:14,133:DEBUG:coap:Sending message <aiocoap.Message > at 0x7fe89639d720: Type.CON GET (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > E 2022-06-24 05:51:14,133:DEBUG:coap:Exchange added, message ID: 5906. > E 2022-06-24 05:51:14,133:DEBUG:coap-server:Incoming message > <aiocoap.Message at 0x7fe89639f220: Type.CON GET (MID 5906, token bb8a) > remote <UDP6EndpointAddress [::1]:59776 (locally ::1%lo)>, 2 option(s)> > E 2022-06-24 05:51:14,133:DEBUG:coap-server:New unique message received > E 2022-06-24 05:51:14,134:DEBUG:coap-server:Sending message > <aiocoap.Message at 0x7fe896704ee0: Type.ACK 2.05 Content (MID 5906, token > bb8a) remote <UDP6EndpointAddress [::1]:59776 (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:51:14,134:DEBUG:coap:Incoming message <aiocoap.Message > at 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:51:14,135:DEBUG:coap:Exchange removed, message ID: 5906. > E 2022-06-24 05:51:14,135:DEBUG:coap:Received Response: > <aiocoap.Message at 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token > bb8a) remote <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > E 2022-06-24 05:51:14,135:DEBUG:coap:Response <aiocoap.Message at > 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7fe89639d960 around <aiocoap.Message at 0x7fe89639d720: > Type.CON GET (MID 5906, token bb8a) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > E 2022-06-24 05:51:14,146:DEBUG:coap-server:Shutting down context > E 2022-06-24 05:51:14,146:DEBUG:coap:Shutting down context > > tests/fixtures.py:116: AssertionError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap:tokenmanager.py:209 Sending request - Token: bb8a, Remote: > <UDP6EndpointAddress [::1]> > DEBUG coap:messagemanager.py:423 Sending message <aiocoap.Message at > 0x7fe89639d720: Type.CON GET (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > DEBUG coap:messagemanager.py:209 Exchange added, message ID: 5906. > DEBUG coap-server:messagemanager.py:83 Incoming message <aiocoap.Message > at 0x7fe89639f220: Type.CON GET (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1]:59776 (locally ::1%lo)>, 2 option(s)> > DEBUG coap-server:messagemanager.py:175 New unique message received > DEBUG coap-server:messagemanager.py:423 Sending message <aiocoap.Message > at 0x7fe896704ee0: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1]:59776 (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:83 Incoming message <aiocoap.Message at > 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:224 Exchange removed, message ID: 5906. > DEBUG coap:messagemanager.py:332 Received Response: <aiocoap.Message at > 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:tokenmanager.py:170 Response <aiocoap.Message at > 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7fe89639d960 around <aiocoap.Message at 0x7fe89639d720: > Type.CON GET (MID 5906, token bb8a) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > ____________________ ERROR at teardown of TestTLS.test_tls > _____________________ > > self = <tests.test_tls.TestTLS testMethod=test_tls> > > def tearDown(self): > super(WithLogMonitoring, self).tearDown() > > logging.root.removeHandler(self.handler) > > complete_log = " Complete log:\n" + "\n".join( > x.preformatted for x in self.handler.list if x.name != > 'asyncio') > > if 'AIOCOAP_TESTS_SHOWLOG' in os.environ: > print(complete_log, file=sys.stderr) > complete_log = "was just printed unconditionally anyway" > > > self.assertTrue(is_test_successful(self), > "Previous errors were raised." + complete_log) > E AssertionError: False is not true : Previous errors were raised. > Complete log: > E 2022-06-24 05:51:30,138:DEBUG:coap-server:Shutting down context > E 2022-06-24 05:51:30,139:DEBUG:coap:Shutting down context > > tests/fixtures.py:116: AssertionError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > =================================== FAILURES > =================================== > ____________________ TestClientWithSetHost.test_uri_parser > _____________________ > > self = <tests.test_client.TestClientWithSetHost testMethod=test_uri_parser> > function = <function TestClientWithSetHost.test_uri_parser at 0x7fe896545630> > args = (), startcount = 0 > > def wrapped(self, *args, function=function): > # assertLogs does not work as assertDoesntLog anyway without major > # tricking, and it interacts badly with WithLogMonitoring as they both > # try to change the root logger's level. > > startcount = len(self.handler.list) > > result = function(self, *args) > > tests/fixtures.py:75: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/fixtures.py:57: in wrapper > return self.loop.run_until_complete(f) > /usr/lib/python3.10/asyncio/base_events.py:646: in run_until_complete > return future.result() > /usr/lib/python3.10/asyncio/tasks.py:571: in _wait_for_one > return f.result() # May raise f.exception(). > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <tests.test_client.TestClientWithSetHost testMethod=test_uri_parser> > > @no_warnings > @asynctest > async def test_uri_parser(self): > request = aiocoap.Message(code=aiocoap.GET) > request_uri = "coap://" + self.servernetloc + "/empty?query=a&query=b" > request.set_request_uri(request_uri, set_uri_host=self.set_uri_host) > self.assertEqual(request.get_request_uri(), request_uri, "Request URL > does not round-trip in request") > response = await self.client.request(request).response > self.assertEqual(response.get_request_uri(), request_uri, "Request > URL does not round-trip in response") > self.assertEqual(response.code, aiocoap.CONTENT, "Request URL > building failed") > > request = aiocoap.Message(code=aiocoap.GET) > > request.set_request_uri("coap://" + self.servernamealias + "/empty", > > set_uri_host=self.set_uri_host) > E TypeError: can only concatenate str (not "NoneType") to str > > tests/test_client.py:31: TypeError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap:tokenmanager.py:209 Sending request - Token: 76ff, Remote: > <UDP6EndpointAddress [::1]> > DEBUG coap:messagemanager.py:423 Sending message <aiocoap.Message at > 0x7fe89670e740: Type.CON GET (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > DEBUG coap:messagemanager.py:209 Exchange added, message ID: 10639. > DEBUG coap-server:messagemanager.py:83 Incoming message <aiocoap.Message > at 0x7fe89670d600: Type.CON GET (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1]:35157 (locally ::1%lo)>, 2 option(s)> > DEBUG coap-server:messagemanager.py:175 New unique message received > DEBUG coap-server:messagemanager.py:423 Sending message <aiocoap.Message > at 0x7fe896694190: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1]:35157 (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:83 Incoming message <aiocoap.Message at > 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:224 Exchange removed, message ID: 10639. > DEBUG coap:messagemanager.py:332 Received Response: <aiocoap.Message at > 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:tokenmanager.py:170 Response <aiocoap.Message at > 0x7fe896695ff0: Type.ACK 2.05 Content (MID 10639, token 76ff) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7fe89670c790 around <aiocoap.Message at 0x7fe89670e740: > Type.CON GET (MID 10639, token 76ff) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > ________________ TestClientWithHostlessMessages.test_uri_parser > ________________ > > self = <tests.test_client.TestClientWithHostlessMessages > testMethod=test_uri_parser> > function = <function TestClientWithSetHost.test_uri_parser at 0x7fe896545630> > args = (), startcount = 0 > > def wrapped(self, *args, function=function): > # assertLogs does not work as assertDoesntLog anyway without major > # tricking, and it interacts badly with WithLogMonitoring as they both > # try to change the root logger's level. > > startcount = len(self.handler.list) > > result = function(self, *args) > > tests/fixtures.py:75: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/fixtures.py:57: in wrapper > return self.loop.run_until_complete(f) > /usr/lib/python3.10/asyncio/base_events.py:646: in run_until_complete > return future.result() > /usr/lib/python3.10/asyncio/tasks.py:571: in _wait_for_one > return f.result() # May raise f.exception(). > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <tests.test_client.TestClientWithHostlessMessages > testMethod=test_uri_parser> > > @no_warnings > @asynctest > async def test_uri_parser(self): > request = aiocoap.Message(code=aiocoap.GET) > request_uri = "coap://" + self.servernetloc + "/empty?query=a&query=b" > request.set_request_uri(request_uri, set_uri_host=self.set_uri_host) > self.assertEqual(request.get_request_uri(), request_uri, "Request URL > does not round-trip in request") > response = await self.client.request(request).response > self.assertEqual(response.get_request_uri(), request_uri, "Request > URL does not round-trip in response") > self.assertEqual(response.code, aiocoap.CONTENT, "Request URL > building failed") > > request = aiocoap.Message(code=aiocoap.GET) > > request.set_request_uri("coap://" + self.servernamealias + "/empty", > > set_uri_host=self.set_uri_host) > E TypeError: can only concatenate str (not "NoneType") to str > > tests/test_client.py:31: TypeError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap:tokenmanager.py:209 Sending request - Token: bb8a, Remote: > <UDP6EndpointAddress [::1]> > DEBUG coap:messagemanager.py:423 Sending message <aiocoap.Message at > 0x7fe89639d720: Type.CON GET (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1]>, 2 option(s)> > DEBUG coap:messagemanager.py:209 Exchange added, message ID: 5906. > DEBUG coap-server:messagemanager.py:83 Incoming message <aiocoap.Message > at 0x7fe89639f220: Type.CON GET (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1]:59776 (locally ::1%lo)>, 2 option(s)> > DEBUG coap-server:messagemanager.py:175 New unique message received > DEBUG coap-server:messagemanager.py:423 Sending message <aiocoap.Message > at 0x7fe896704ee0: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1]:59776 (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:83 Incoming message <aiocoap.Message at > 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:messagemanager.py:224 Exchange removed, message ID: 5906. > DEBUG coap:messagemanager.py:332 Received Response: <aiocoap.Message at > 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> > DEBUG coap:tokenmanager.py:170 Response <aiocoap.Message at > 0x7fe89639fc40: Type.ACK 2.05 Content (MID 5906, token bb8a) remote > <UDP6EndpointAddress [::1] (locally ::1%lo)>, 1 option(s)> matched to request > <PlumbingRequest at 0x7fe89639d960 around <aiocoap.Message at 0x7fe89639d720: > Type.CON GET (MID 5906, token bb8a) remote <UDP6EndpointAddress [::1]>, 2 > option(s)> with 2 callbacks> > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > ________________________ TestReverseProxy.test_options > _________________________ > > self = <tests.test_reverseproxy.TestReverseProxy testMethod=test_options> > > def setUp(self): > super(WithReverseProxy, self).setUp() > > self.reverseproxy = aiocoap.cli.proxy.Main( > > ["--reverse", "--bind", hostportjoin(self.proxyhost, > > self.proxyport), "--namebased", "%s:%s"%(self.name_for_real_server, > > self.servernetloc), "--pathbased", > > "%s:%s"%("/".join(self.path_for_real_server), self.servernetloc)], > loop=self.loop, > ) > > tests/test_reverseproxy.py:23: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > host = None, port = 56839 > > def hostportjoin(host, port=None): > """Join a host and optionally port into a hostinfo-style host:port > string > > >>> hostportjoin('example.com') > 'example.com' > >>> hostportjoin('example.com', 1234) > 'example.com:1234' > >>> hostportjoin('127.0.0.1', 1234) > '127.0.0.1:1234' > > This is lax with respect to whether host is an IPv6 literal in > brackets or > not, and accepts either form; IP-future literals that do not contain a > colon must be already presented in their bracketed form: > > >>> hostportjoin('2001:db8::1') > '[2001:db8::1]' > >>> hostportjoin('2001:db8::1', 1234) > '[2001:db8::1]:1234' > >>> hostportjoin('[2001:db8::1]', 1234) > '[2001:db8::1]:1234' > """ > > if ':' in host and not (host.startswith('[') and host.endswith(']')): > E TypeError: argument of type 'NoneType' is not iterable > > aiocoap/util/__init__.py:86: TypeError > ________________________ TestReverseProxy.test_routing > _________________________ > > self = <tests.test_reverseproxy.TestReverseProxy testMethod=test_routing> > > def setUp(self): > super(WithReverseProxy, self).setUp() > > self.reverseproxy = aiocoap.cli.proxy.Main( > > ["--reverse", "--bind", hostportjoin(self.proxyhost, > > self.proxyport), "--namebased", "%s:%s"%(self.name_for_real_server, > > self.servernetloc), "--pathbased", > > "%s:%s"%("/".join(self.path_for_real_server), self.servernetloc)], > loop=self.loop, > ) > > tests/test_reverseproxy.py:23: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > host = None, port = 56839 > > def hostportjoin(host, port=None): > """Join a host and optionally port into a hostinfo-style host:port > string > > >>> hostportjoin('example.com') > 'example.com' > >>> hostportjoin('example.com', 1234) > 'example.com:1234' > >>> hostportjoin('127.0.0.1', 1234) > '127.0.0.1:1234' > > This is lax with respect to whether host is an IPv6 literal in > brackets or > not, and accepts either form; IP-future literals that do not contain a > colon must be already presented in their bracketed form: > > >>> hostportjoin('2001:db8::1') > '[2001:db8::1]' > >>> hostportjoin('2001:db8::1', 1234) > '[2001:db8::1]:1234' > >>> hostportjoin('[2001:db8::1]', 1234) > '[2001:db8::1]:1234' > """ > > if ':' in host and not (host.startswith('[') and host.endswith(']')): > E TypeError: argument of type 'NoneType' is not iterable > > aiocoap/util/__init__.py:86: TypeError > _______________________________ TestTLS.test_tls > _______________________________ > > self = <aiocoap.transports.tls.TLSClient object at 0x7fe89639f550> > message = <aiocoap.Message at 0x7fe89639f0d0: no mtype, GET (no MID, empty > token) remote UndecidedRemote(scheme='coaps+tcp', hostinfo='None'), 1 > option(s)> > > async def _spawn_protocol(self, message): > if message.unresolved_remote is None: > host = message.opt.uri_host > port = message.opt.uri_port or self._default_port > if host is None: > raise ValueError("No location found to send message to > (neither in .opt.uri_host nor in .remote)") > else: > host, port = util.hostportsplit(message.unresolved_remote) > port = port or self._default_port > > if (host, port) in self._pool: > return self._pool[(host, port)] > > try: > > _, protocol = await self.loop.create_connection( > lambda: TcpConnection(self, self.log, self.loop, > is_server=False), > host, port, > ssl=self._ssl_context_factory(message.unresolved_remote)) > > aiocoap/transports/tcp.py:343: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > protocol_factory = <function TCPClient._spawn_protocol.<locals>.<lambda> at > 0x7fe8959df1c0> > host = 'none', port = 5684 > > async def create_connection( > self, protocol_factory, host=None, port=None, > *, ssl=None, family=0, > proto=0, flags=0, sock=None, > local_addr=None, server_hostname=None, > ssl_handshake_timeout=None, > happy_eyeballs_delay=None, interleave=None): > """Connect to a TCP server. > > Create a streaming transport connection to a given internet host and > port: socket family AF_INET or socket.AF_INET6 depending on host (or > family if specified), socket type SOCK_STREAM. protocol_factory must > be > a callable returning a protocol instance. > > This method is a coroutine which will try to establish the connection > in the background. When successful, the coroutine returns a > (transport, protocol) pair. > """ > if server_hostname is not None and not ssl: > raise ValueError('server_hostname is only meaningful with ssl') > > if server_hostname is None and ssl: > # Use host as default for server_hostname. It is an error > # if host is empty or not set, e.g. when an > # already-connected socket was passed or when only a port > # is given. To avoid this error, you can pass > # server_hostname='' -- this will bypass the hostname > # check. (This also means that if host is a numeric > # IP/IPv6 address, we will attempt to verify that exact > # address; this will probably fail, but it is possible to > # create a certificate for a specific IP address, so we > # don't judge it here.) > if not host: > raise ValueError('You must set server_hostname ' > 'when using ssl without a host') > server_hostname = host > > if ssl_handshake_timeout is not None and not ssl: > raise ValueError( > 'ssl_handshake_timeout is only meaningful with ssl') > > if sock is not None: > _check_ssl_socket(sock) > > if happy_eyeballs_delay is not None and interleave is None: > # If using happy eyeballs, default to interleave addresses by > family > interleave = 1 > > if host is not None or port is not None: > if sock is not None: > raise ValueError( > 'host/port and sock can not be specified at the same > time') > > > infos = await self._ensure_resolved( > (host, port), family=family, > type=socket.SOCK_STREAM, proto=proto, flags=flags, loop=self) > > /usr/lib/python3.10/asyncio/base_events.py:1025: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > address = ('none', 5684) > > async def _ensure_resolved(self, address, *, > family=0, type=socket.SOCK_STREAM, > proto=0, flags=0, loop): > host, port = address[:2] > info = _ipaddr_info(host, port, family, type, proto, *address[2:]) > if info is not None: > # "host" is already a resolved IP. > return [info] > else: > > return await loop.getaddrinfo(host, port, family=family, > > type=type, > proto=proto, flags=flags) > > /usr/lib/python3.10/asyncio/base_events.py:1404: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <_UnixSelectorEventLoop running=False closed=False debug=False> > host = 'none', port = 5684 > > async def getaddrinfo(self, host, port, *, > family=0, type=0, proto=0, flags=0): > if self._debug: > getaddr_func = self._getaddrinfo_debug > else: > getaddr_func = socket.getaddrinfo > > > return await self.run_in_executor( > None, getaddr_func, host, port, family, type, proto, flags) > > /usr/lib/python3.10/asyncio/base_events.py:860: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = None > > def run(self): > if not self.future.set_running_or_notify_cancel(): > return > > try: > > result = self.fn(*self.args, **self.kwargs) > > /usr/lib/python3.10/concurrent/futures/thread.py:58: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > host = 'none', port = 5684, family = 0, type = <SocketKind.SOCK_STREAM: 1> > proto = 0, flags = 0 > > def getaddrinfo(host, port, family=0, type=0, proto=0, flags=0): > """Resolve host and port into list of address info entries. > > Translate the host/port argument into a sequence of 5-tuples that > contain > all the necessary arguments for creating a socket connected to that > service. > host is a domain name, a string representation of an IPv4/v6 address > or > None. port is a string service name such as 'http', a numeric port > number or > None. By passing None as the value of host and port, you can pass > NULL to > the underlying C API. > > The family, type and proto arguments can be optionally specified in > order to > narrow the list of addresses returned. Passing zero as a value for > each of > these arguments selects the full range of results. > """ > # We override this function since we want to translate the numeric > family > # and socket type values to enum constants. > addrlist = [] > > for res in _socket.getaddrinfo(host, port, family, type, proto, > > flags): > E socket.gaierror: [Errno -2] Name or service not known > > /usr/lib/python3.10/socket.py:955: gaierror > > During handling of the above exception, another exception occurred: > > self = <tests.test_tls.TestTLS testMethod=test_tls> > function = <function TestTLS.test_tls at 0x7fe8964e3a30>, args = () > startcount = 0 > > def wrapped(self, *args, function=function): > # assertLogs does not work as assertDoesntLog anyway without major > # tricking, and it interacts badly with WithLogMonitoring as they both > # try to change the root logger's level. > > startcount = len(self.handler.list) > > result = function(self, *args) > > tests/fixtures.py:75: > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > tests/fixtures.py:57: in wrapper > return self.loop.run_until_complete(f) > /usr/lib/python3.10/asyncio/base_events.py:646: in run_until_complete > return future.result() > /usr/lib/python3.10/asyncio/tasks.py:571: in _wait_for_one > return f.result() # May raise f.exception(). > tests/test_tls.py:84: in test_tls > response = await self.client.request(request).response_raising > aiocoap/protocol.py:643: in response_raising > response = await self.response > aiocoap/protocol.py:842: in _run_outer > await cls._run(app_request, response, weak_observation, protocol, log) > aiocoap/protocol.py:867: in _run > await protocol.find_remote_and_interface(app_request) > aiocoap/protocol.py:340: in find_remote_and_interface > if await ri.fill_or_recognize_remote(message): > aiocoap/tokenmanager.py:194: in fill_or_recognize_remote > return await self.token_interface.fill_or_recognize_remote(message) > aiocoap/transports/tcp.py:398: in fill_or_recognize_remote > message.remote = await self._spawn_protocol(message) > _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > _ > > self = <aiocoap.transports.tls.TLSClient object at 0x7fe89639f550> > message = <aiocoap.Message at 0x7fe89639f0d0: no mtype, GET (no MID, empty > token) remote UndecidedRemote(scheme='coaps+tcp', hostinfo='None'), 1 > option(s)> > > async def _spawn_protocol(self, message): > if message.unresolved_remote is None: > host = message.opt.uri_host > port = message.opt.uri_port or self._default_port > if host is None: > raise ValueError("No location found to send message to > (neither in .opt.uri_host nor in .remote)") > else: > host, port = util.hostportsplit(message.unresolved_remote) > port = port or self._default_port > > if (host, port) in self._pool: > return self._pool[(host, port)] > > try: > _, protocol = await self.loop.create_connection( > lambda: TcpConnection(self, self.log, self.loop, > is_server=False), > host, port, > ssl=self._ssl_context_factory(message.unresolved_remote)) > except socket.gaierror: > > raise error.ResolutionError("No address information found for > > requests to %r" % host) > E aiocoap.error.ResolutionError: No address information found for > requests to 'none' > > aiocoap/transports/tcp.py:349: ResolutionError > ------------------------------ Captured log call > ------------------------------- > DEBUG coap-server:protocol.py:317 Shutting down context > DEBUG coap:protocol.py:317 Shutting down context > =============================== warnings summary > =============================== > aiocoap/resource.py:266 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/aiocoap/resource.py:266: > DeprecationWarning: invalid escape sequence '\ ' > """Class that indicates that a resource promises to parse the uri_path > > tests/test_server.py:116 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/tests/test_server.py:116: > PytestCollectionWarning: cannot collect test class 'TestingSite' because it > has a __init__ constructor (from: > .pybuild/cpython3_3.10_aiocoap/build/tests/test_blockwise.py) > class TestingSite(aiocoap.resource.Site): > > tests/test_server.py:116 > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/tests/test_server.py:116: > PytestCollectionWarning: cannot collect test class 'TestingSite' because it > has a __init__ constructor (from: > .pybuild/cpython3_3.10_aiocoap/build/tests/test_server.py) > class TestingSite(aiocoap.resource.Site): > > .pybuild/cpython3_3.10_aiocoap/build/tests/test_blockwise.py: 2 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_client.py: 7 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_noncoap_client.py: 7 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_noncoap_tcp_client.py: 11 > warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_observe.py: 12 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_reverseproxy.py: 2 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_server.py: 24 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_tls.py: 1 warning > > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/tests/fixtures.py:183: > DeprecationWarning: There is no current event loop > self.loop = asyncio.get_event_loop() > > .pybuild/cpython3_3.10_aiocoap/build/tests/test_blockwise.py: 2 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_client.py: 6 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_noncoap_client.py: 7 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_noncoap_tcp_client.py: 11 > warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_observe.py: 12 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_server.py: 34 warnings > .pybuild/cpython3_3.10_aiocoap/build/tests/test_tls.py: 1 warning > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build/tests/fixtures.py:54: > DeprecationWarning: There is no current event loop > for f in asyncio.as_completed([task], > > -- Docs: https://docs.pytest.org/en/stable/warnings.html > =========================== short test summary info > ============================ > FAILED tests/test_client.py::TestClientWithSetHost::test_uri_parser - > TypeErr... > FAILED tests/test_client.py::TestClientWithHostlessMessages::test_uri_parser > FAILED tests/test_reverseproxy.py::TestReverseProxy::test_options - > TypeError... > FAILED tests/test_reverseproxy.py::TestReverseProxy::test_routing - > TypeError... > FAILED tests/test_tls.py::TestTLS::test_tls - aiocoap.error.ResolutionError: > ... > ERROR tests/test_client.py::TestClientWithSetHost::test_uri_parser - > Assertio... > ERROR tests/test_client.py::TestClientWithHostlessMessages::test_uri_parser > ERROR tests/test_tls.py::TestTLS::test_tls - AssertionError: False is not > tru... > = 5 failed, 75 passed, 125 skipped, 5 deselected, 1 xfailed, 142 warnings, 3 > errors in 17.70s = > E: pybuild pybuild:369: test: plugin distutils failed with: exit code=1: cd > /<<PKGBUILDDIR>>/.pybuild/cpython3_3.10_aiocoap/build; python3.10 -m pytest > -k 'not test_commandline' > dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.9 > 3.10" returned exit code 13 The full build log is available from: http://qa-logs.debian.net/2022/06/24/aiocoap_0.4.3-0.1_unstable.log All bugs filed during this archive rebuild are listed at: https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20220624;users=lu...@debian.org or: https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20220624&fusertaguser=lu...@debian.org&allbugs=1&cseverity=1&ctags=1&caffected=1#results A list of current common problems and possible solutions is available at http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute! If you reassign this bug to another package, please marking it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects If you fail to reproduce this, please provide a build log and diff it with mine so that we can identify if something relevant changed in the meantime.