Skip to content

Instantly share code, notes, and snippets.

@mweinelt
Created November 7, 2024 02:07
Show Gist options
  • Save mweinelt/0ec355e11909357294b0ca3372046cf0 to your computer and use it in GitHub Desktop.
Save mweinelt/0ec355e11909357294b0ca3372046cf0 to your computer and use it in GitHub Desktop.
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