Created
November 7, 2024 02:07
-
-
Save mweinelt/0ec355e11909357294b0ca3372046cf0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
denonavr> ============================= test session starts ============================== | |
denonavr> platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0 | |
denonavr> rootdir: /build/source | |
denonavr> configfile: pyproject.toml | |
denonavr> plugins: asyncio-0.23.8, httpx-0.32.0, anyio-4.6.0, timeout-2.3.1 | |
denonavr> asyncio: mode=Mode.STRICT | |
denonavr> collected 30 items | |
denonavr> | |
denonavr> tests/test_denonavr.py FEFEFEFE.................FEFEFEFEFEFEFEFE [ 96%] | |
denonavr> tests/test_ssdp.py . [100%] | |
denonavr> | |
denonavr> ==================================== ERRORS ==================================== | |
denonavr> __________ ERROR at teardown of TestMainFunctions.test_receiver_type ___________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff57dec60> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_receiver_type>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff57ddbe0> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff57ddbe0>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> ----------------------------- Captured stdout call ----------------------------- | |
denonavr> Receiver: AVR-X4100W | |
denonavr> ________ ERROR at teardown of TestMainFunctions.test_input_func_switch _________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff55ee960> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_input_func_switch>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff55ecec0> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff55ecec0>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> ----------------------------- Captured stdout call ----------------------------- | |
denonavr> Receiver: AVR-X4100W, Zone: Main | |
denonavr> _______ ERROR at teardown of TestMainFunctions.test_attributes_not_none ________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff5a8ae10> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_attributes_not_none>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54403e0> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54403e0>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> ----------------------------- Captured stdout call ----------------------------- | |
denonavr> Receiver: AVR-X4100W | |
denonavr> ____________ ERROR at teardown of TestMainFunctions.test_sound_mode ____________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff54e6a50> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_sound_mode>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54e6fc0> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54e6fc0>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> ----------------------------- Captured stdout call ----------------------------- | |
denonavr> Receiver: AVR-X4100W, Zone: Main | |
denonavr> _____ ERROR at teardown of TestMainFunctions.test_receive_callback_called ______ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff54dffb0> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_receive_callback_called>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54dfef0> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/goform/Deviceinfo.xml | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54dfef0>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> _____________ ERROR at teardown of TestMainFunctions.test_mute_on ______________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff5483a70> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_mute_on>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff5483980> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/goform/Deviceinfo.xml | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff5483980>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> _____________ ERROR at teardown of TestMainFunctions.test_mute_off _____________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff54a6720> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_mute_off>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54a6570> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/goform/Deviceinfo.xml | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54a6570>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> _____________ ERROR at teardown of TestMainFunctions.test_power_on _____________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff520bc50> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_power_on>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff520abd0> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/goform/Deviceinfo.xml | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff520abd0>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> ____________ ERROR at teardown of TestMainFunctions.test_power_off _____________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff54a4890> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_power_off>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff521fd40> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/goform/Deviceinfo.xml | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff521fd40>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> ____________ ERROR at teardown of TestMainFunctions.test_volume_min ____________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff521eab0> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_volume_min>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff521e690> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/goform/Deviceinfo.xml | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff521e690>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> ________ ERROR at teardown of TestMainFunctions.test_volume_wholenumber ________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff5208320> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_volume_wholenumber>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff5208680> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/goform/Deviceinfo.xml | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff5208680>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> _________ ERROR at teardown of TestMainFunctions.test_volume_fraction __________ | |
denonavr> | |
denonavr> monkeypatch = <_pytest.monkeypatch.MonkeyPatch object at 0x7ffff54dc530> | |
denonavr> request = <SubRequest 'httpx_mock' for <Coroutine test_volume_fraction>> | |
denonavr> | |
denonavr> @pytest.fixture | |
denonavr> def httpx_mock( | |
denonavr> monkeypatch: MonkeyPatch, | |
denonavr> request: FixtureRequest, | |
denonavr> ) -> Generator[HTTPXMock, None, None]: | |
denonavr> options = {} | |
denonavr> for marker in request.node.iter_markers("httpx_mock"): | |
denonavr> options = marker.kwargs | options | |
denonavr> __tracebackhide__ = methodcaller("errisinstance", TypeError) | |
denonavr> options = _HTTPXMockOptions(**options) | |
denonavr> | |
denonavr> mock = HTTPXMock(options) | |
denonavr> | |
denonavr> # Mock synchronous requests | |
denonavr> real_handle_request = httpx.HTTPTransport.handle_request | |
denonavr> | |
denonavr> def mocked_handle_request( | |
denonavr> transport: httpx.HTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return real_handle_request(transport, request) | |
denonavr> return mock._handle_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.HTTPTransport, | |
denonavr> "handle_request", | |
denonavr> mocked_handle_request, | |
denonavr> ) | |
denonavr> | |
denonavr> # Mock asynchronous requests | |
denonavr> real_handle_async_request = httpx.AsyncHTTPTransport.handle_async_request | |
denonavr> | |
denonavr> async def mocked_handle_async_request( | |
denonavr> transport: httpx.AsyncHTTPTransport, request: httpx.Request | |
denonavr> ) -> httpx.Response: | |
denonavr> if request.url.host in options.non_mocked_hosts: | |
denonavr> return await real_handle_async_request(transport, request) | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> | |
denonavr> monkeypatch.setattr( | |
denonavr> httpx.AsyncHTTPTransport, | |
denonavr> "handle_async_request", | |
denonavr> mocked_handle_async_request, | |
denonavr> ) | |
denonavr> | |
denonavr> yield mock | |
denonavr> try: | |
denonavr> > mock._assert_options() | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:67: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54df9e0> | |
denonavr> | |
denonavr> def _assert_options(self) -> None: | |
denonavr> if self._options.assert_all_responses_were_requested: | |
denonavr> callbacks_not_executed = [ | |
denonavr> matcher for matcher, _ in self._callbacks if not matcher.nb_calls | |
denonavr> ] | |
denonavr> matchers_description = "\n".join( | |
denonavr> [f"- {matcher}" for matcher in callbacks_not_executed] | |
denonavr> ) | |
denonavr> | |
denonavr> assert not callbacks_not_executed, ( | |
denonavr> "The following responses are mocked but not requested:\n" | |
denonavr> f"{matchers_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-more-responses-than-what-will-be-requested" | |
denonavr> ) | |
denonavr> | |
denonavr> if self._options.assert_all_requests_were_expected: | |
denonavr> requests_description = "\n".join( | |
denonavr> [ | |
denonavr> f"- {request.method} request on {request.url}" | |
denonavr> for request in self._requests_not_matched | |
denonavr> ] | |
denonavr> ) | |
denonavr> > assert not self._requests_not_matched, ( | |
denonavr> f"The following requests were not expected:\n" | |
denonavr> f"{requests_description}\n" | |
denonavr> "\n" | |
denonavr> "If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request" | |
denonavr> ) | |
denonavr> E AssertionError: The following requests were not expected: | |
denonavr> E - GET request on http://10.0.0.0:8080/goform/Deviceinfo.xml | |
denonavr> E - GET request on http://10.0.0.0:8080/description.xml | |
denonavr> E | |
denonavr> E If this is on purpose, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-not-register-responses-for-every-request | |
denonavr> E assert not [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] | |
denonavr> E + where [<Request('GET', 'http://10.0.0.0:8080/goform/Deviceinfo.xml')>, <Request('GET', 'http://10.0.0.0:8080/description.xml')>] = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54df9e0>._requests_not_matched | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:314: AssertionError | |
denonavr> =================================== FAILURES =================================== | |
denonavr> _____________________ TestMainFunctions.test_receiver_type _____________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff57ddbe0> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff5540560> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff6769e80> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff57ddbe0> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_receiver_type(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that receiver type is determined correctly.""" | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> for receiver, spec in TESTING_RECEIVERS.items(): | |
denonavr> print(f"Receiver: {receiver}") | |
denonavr> # Switch receiver and update to load new sample files | |
denonavr> self.testing_receiver = receiver | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP, add_zones=spec[0]) | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:164: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> ----------------------------- Captured stdout call ----------------------------- | |
denonavr> Receiver: AVR-X4100W | |
denonavr> ___________________ TestMainFunctions.test_input_func_switch ___________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff55ecec0> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff5437560> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff58d1220> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff55ecec0> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_input_func_switch(self, httpx_mock: HTTPXMock): | |
denonavr> """Switch through all input functions of all tested receivers.""" | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> for receiver, spec in TESTING_RECEIVERS.items(): | |
denonavr> # Switch receiver and update to load new sample files | |
denonavr> self.testing_receiver = receiver | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP, add_zones=spec[0]) | |
denonavr> # Switch through all functions and check if successful | |
denonavr> for name, zone in self.denon.zones.items(): | |
denonavr> print(f"Receiver: {receiver}, Zone: {name}") | |
denonavr> > await self.denon.zones[name].async_update() | |
denonavr> | |
denonavr> tests/test_denonavr.py:185: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:169: in async_update | |
denonavr> await self.async_setup() | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> ----------------------------- Captured stdout call ----------------------------- | |
denonavr> Receiver: AVR-X4100W, Zone: Main | |
denonavr> __________________ TestMainFunctions.test_attributes_not_none __________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54403e0> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff521d460> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff57dd7c0> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54403e0> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_attributes_not_none(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that certain attributes are not None.""" | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> for receiver, spec in TESTING_RECEIVERS.items(): | |
denonavr> print(f"Receiver: {receiver}") | |
denonavr> # Switch receiver and update to load new sample files | |
denonavr> self.testing_receiver = receiver | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP, add_zones=spec[0]) | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:199: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> ----------------------------- Captured stdout call ----------------------------- | |
denonavr> Receiver: AVR-X4100W | |
denonavr> ______________________ TestMainFunctions.test_sound_mode _______________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54e6fc0> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff520a450> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff57dd2e0> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54e6fc0> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_sound_mode(self, httpx_mock: HTTPXMock): | |
denonavr> """Check if a valid sound mode is returned.""" | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> for receiver, spec in TESTING_RECEIVERS.items(): | |
denonavr> # Switch receiver and update to load new sample files | |
denonavr> self.testing_receiver = receiver | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP, add_zones=spec[0]) | |
denonavr> # Switch through all functions and check if successful | |
denonavr> for name in self.denon.zones: | |
denonavr> print(f"Receiver: {receiver}, Zone: {name}") | |
denonavr> > await self.denon.zones[name].async_update() | |
denonavr> | |
denonavr> tests/test_denonavr.py:223: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:169: in async_update | |
denonavr> await self.async_setup() | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> ----------------------------- Captured stdout call ----------------------------- | |
denonavr> Receiver: AVR-X4100W, Zone: Main | |
denonavr> ________________ TestMainFunctions.test_receive_callback_called ________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54dfef0> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff5481880> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff57de9f0> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54dfef0> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_receive_callback_called(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that the callback is triggered whena message is received.""" | |
denonavr> transport = mock.Mock(is_closing=lambda: False) | |
denonavr> protocol = DenonAVRTelnetProtocol(None, None) | |
denonavr> | |
denonavr> def create_conn(proto_lambda, host, port): | |
denonavr> proto = proto_lambda() | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_connection_lost = proto._on_connection_lost | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_message = proto._on_message | |
denonavr> proto.connection_made(transport) | |
denonavr> protocol.connection_made(transport) | |
denonavr> return [transport, proto] | |
denonavr> | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP) | |
denonavr> # pylint: disable=protected-access | |
denonavr> self.denon._device.telnet_api._send_confirmation_timeout = 0.1 | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:416: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> ________________________ TestMainFunctions.test_mute_on ________________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff5483980> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff5480470> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff57de330> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff5483980> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_mute_on(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that mute on is processed.""" | |
denonavr> transport = mock.Mock(is_closing=lambda: False) | |
denonavr> protocol = DenonAVRTelnetProtocol(None, None) | |
denonavr> | |
denonavr> def create_conn(proto_lambda, host, port): | |
denonavr> proto = proto_lambda() | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_message = proto._on_message | |
denonavr> proto.connection_made(transport) | |
denonavr> protocol.connection_made(transport) | |
denonavr> return [transport, proto] | |
denonavr> | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP) | |
denonavr> # pylint: disable=protected-access | |
denonavr> self.denon._device.telnet_api._send_confirmation_timeout = 0.1 | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:448: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> _______________________ TestMainFunctions.test_mute_off ________________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54a6570> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff54a4050> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff57ddf70> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54a6570> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_mute_off(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that mute off is processed.""" | |
denonavr> transport = mock.Mock(is_closing=lambda: False) | |
denonavr> protocol = DenonAVRTelnetProtocol(None, None) | |
denonavr> | |
denonavr> def create_conn(proto_lambda, host, port): | |
denonavr> proto = proto_lambda() | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_message = proto._on_message | |
denonavr> proto.connection_made(transport) | |
denonavr> protocol.connection_made(transport) | |
denonavr> return [transport, proto] | |
denonavr> | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP) | |
denonavr> # pylint: disable=protected-access | |
denonavr> self.denon._device.telnet_api._send_confirmation_timeout = 0.1 | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:478: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> _______________________ TestMainFunctions.test_power_on ________________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff520abd0> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff520a7b0> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff57dfbf0> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff520abd0> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_power_on(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that power on is processed.""" | |
denonavr> transport = mock.Mock(is_closing=lambda: False) | |
denonavr> protocol = DenonAVRTelnetProtocol(None, None) | |
denonavr> | |
denonavr> def create_conn(proto_lambda, host, port): | |
denonavr> proto = proto_lambda() | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_message = proto._on_message | |
denonavr> proto.connection_made(transport) | |
denonavr> protocol.connection_made(transport) | |
denonavr> return [transport, proto] | |
denonavr> | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP) | |
denonavr> # pylint: disable=protected-access | |
denonavr> self.denon._device.telnet_api._send_confirmation_timeout = 0.1 | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:508: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> _______________________ TestMainFunctions.test_power_off _______________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff521fd40> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff521f5c0> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff57dfec0> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff521fd40> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_power_off(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that power off is processed.""" | |
denonavr> transport = mock.Mock(is_closing=lambda: False) | |
denonavr> protocol = DenonAVRTelnetProtocol(None, None) | |
denonavr> | |
denonavr> def create_conn(proto_lambda, host, port): | |
denonavr> proto = proto_lambda() | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_message = proto._on_message | |
denonavr> proto.connection_made(transport) | |
denonavr> protocol.connection_made(transport) | |
denonavr> return [transport, proto] | |
denonavr> | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP) | |
denonavr> # pylint: disable=protected-access | |
denonavr> self.denon._device.telnet_api._send_confirmation_timeout = 0.1 | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:538: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> ______________________ TestMainFunctions.test_volume_min _______________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff521e690> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff54e5e20> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff5540170> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff521e690> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_volume_min(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that minimum volume is processed.""" | |
denonavr> transport = mock.Mock(is_closing=lambda: False) | |
denonavr> protocol = DenonAVRTelnetProtocol(None, None) | |
denonavr> | |
denonavr> def create_conn(proto_lambda, host, port): | |
denonavr> proto = proto_lambda() | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_message = proto._on_message | |
denonavr> proto.connection_made(transport) | |
denonavr> protocol.connection_made(transport) | |
denonavr> return [transport, proto] | |
denonavr> | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP) | |
denonavr> # pylint: disable=protected-access | |
denonavr> self.denon._device.telnet_api._send_confirmation_timeout = 0.1 | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:568: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> __________________ TestMainFunctions.test_volume_wholenumber ___________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff5208680> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff54dcf80> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff55403e0> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff5208680> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_volume_wholenumber(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that whole number volume is processed.""" | |
denonavr> transport = mock.Mock(is_closing=lambda: False) | |
denonavr> protocol = DenonAVRTelnetProtocol(None, None) | |
denonavr> | |
denonavr> def create_conn(proto_lambda, host, port): | |
denonavr> proto = proto_lambda() | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_message = proto._on_message | |
denonavr> proto.connection_made(transport) | |
denonavr> protocol.connection_made(transport) | |
denonavr> return [transport, proto] | |
denonavr> | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP) | |
denonavr> # pylint: disable=protected-access | |
denonavr> self.denon._device.telnet_api._send_confirmation_timeout = 0.1 | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:598: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError | |
denonavr> ____________________ TestMainFunctions.test_volume_fraction ____________________ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> > return await func(*args, **kwargs) | |
denonavr> | |
denonavr> denonavr/decorators.py:46: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/api.py:136: in async_get | |
denonavr> res = await client.get(endpoint, timeout=self.timeout) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1814: in get | |
denonavr> return await self.request( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1585: in request | |
denonavr> return await self.send(request, auth=auth, follow_redirects=follow_redirects) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1674: in send | |
denonavr> response = await self._send_handling_auth( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1702: in _send_handling_auth | |
denonavr> response = await self._send_handling_redirects( | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1739: in _send_handling_redirects | |
denonavr> response = await self._send_single_request(request) | |
denonavr> /nix/store/ds9zjx5ykg0g3smrzmad7llgk9qawp52-python3.12-httpx-0.27.2/lib/python3.12/site-packages/httpx/_client.py:1776: in _send_single_request | |
denonavr> response = await transport.handle_async_request(request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/__init__.py:57: in mocked_handle_async_request | |
denonavr> return await mock._handle_async_request(transport, request) | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:169: in _handle_async_request | |
denonavr> self._request_not_matched(real_transport, request) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> self = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54df9e0> | |
denonavr> real_transport = <httpx.AsyncHTTPTransport object at 0x7ffff54dc2c0> | |
denonavr> request = <Request('GET', 'http://10.0.0.0:8080/description.xml')> | |
denonavr> | |
denonavr> def _request_not_matched( | |
denonavr> self, | |
denonavr> real_transport: Union[httpx.AsyncHTTPTransport, httpx.HTTPTransport], | |
denonavr> request: httpx.Request, | |
denonavr> ) -> NoReturn: | |
denonavr> self._requests_not_matched.append(request) | |
denonavr> > raise httpx.TimeoutException( | |
denonavr> self._explain_that_no_response_was_found(real_transport, request), | |
denonavr> request=request, | |
denonavr> ) | |
denonavr> E httpx.TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> /nix/store/1nzsgd8b21jv6jqas84502lw226ygbgl-python3.12-pytest-httpx-0.32.0/lib/python3.12/site-packages/pytest_httpx/_httpx_mock.py:177: TimeoutException | |
denonavr> | |
denonavr> The above exception was the direct cause of the following exception: | |
denonavr> | |
denonavr> self = <tests.test_denonavr.TestMainFunctions object at 0x7ffff5540650> | |
denonavr> httpx_mock = <pytest_httpx._httpx_mock.HTTPXMock object at 0x7ffff54df9e0> | |
denonavr> | |
denonavr> @pytest.mark.asyncio | |
denonavr> async def test_volume_fraction(self, httpx_mock: HTTPXMock): | |
denonavr> """Check that fractional volume is processed.""" | |
denonavr> transport = mock.Mock(is_closing=lambda: False) | |
denonavr> protocol = DenonAVRTelnetProtocol(None, None) | |
denonavr> | |
denonavr> def create_conn(proto_lambda, host, port): | |
denonavr> proto = proto_lambda() | |
denonavr> # pylint: disable=protected-access | |
denonavr> protocol._on_message = proto._on_message | |
denonavr> proto.connection_made(transport) | |
denonavr> protocol.connection_made(transport) | |
denonavr> return [transport, proto] | |
denonavr> | |
denonavr> httpx_mock.add_callback(self.custom_matcher) | |
denonavr> self.denon = denonavr.DenonAVR(FAKE_IP) | |
denonavr> # pylint: disable=protected-access | |
denonavr> self.denon._device.telnet_api._send_confirmation_timeout = 0.1 | |
denonavr> > await self.denon.async_setup() | |
denonavr> | |
denonavr> tests/test_denonavr.py:628: | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> denonavr/denonavr.py:142: in async_setup | |
denonavr> await self._device.async_setup() | |
denonavr> denonavr/foundation.py:155: in async_setup | |
denonavr> await self.async_get_device_info() | |
denonavr> denonavr/foundation.py:393: in async_get_device_info | |
denonavr> res = await self.api.async_get(command, port=port) | |
denonavr> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ | |
denonavr> | |
denonavr> args = (DenonAVRApi(host='10.0.0.0', port=80, timeout=Timeout(connect=2.0, read=15.0, write=2.0, pool=2.0), _appcommand_updat...and0300_update_tags=(), async_client_getter=<function get_default_async_client at 0x7ffff59e2980>), '/description.xml') | |
denonavr> kwargs = {'port': 8080} | |
denonavr> | |
denonavr> @wraps(func) | |
denonavr> async def wrapper(*args, **kwargs): | |
denonavr> try: | |
denonavr> return await func(*args, **kwargs) | |
denonavr> except httpx.HTTPStatusError as err: | |
denonavr> _LOGGER.debug("HTTP status error on request %s: %s", err.request, err) | |
denonavr> # Separate handling of 403 errors | |
denonavr> if err.response.status_code == 403: | |
denonavr> raise AvrForbiddenError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> raise AvrRequestError(f"HTTPStatusError: {err}", err.request) from err | |
denonavr> except httpx.TimeoutException as err: | |
denonavr> _LOGGER.debug("HTTP timeout exception on request %s: %s", err.request, err) | |
denonavr> > raise AvrTimoutError(f"TimeoutException: {err}", err.request) from err | |
denonavr> E denonavr.exceptions.AvrTimoutError: TimeoutException: No response can be found for GET request on http://10.0.0.0:8080/description.xml amongst: | |
denonavr> E - Already matched any request | |
denonavr> E | |
denonavr> E If you wanted to reuse an already matched response instead of registering it again, refer to https://github.com/Colin-b/pytest_httpx/blob/master/README.md#allow-to-register-a-response-for-more-than-one-request | |
denonavr> | |
denonavr> denonavr/decorators.py:55: AvrTimoutError |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment