def _urlopen(url: str, auth: Optional[tuple] = None, **kwargs: Dict) -> BinaryIO: response = httpx.get(url, follow_redirects=True, auth=auth, **kwargs) try: response.raise_for_status() except httpx.HTTPError as err: raise httpx.HTTPError(f"{response.content.decode()}") from err return io.BytesIO(response.content)
async def test_request_catches_HTTPError(method, mock_cache, mocker): exc = httpx.HTTPError('Some error') mocker.patch.object(http._client, 'send', AsyncMock(side_effect=exc)) url = 'http://localhost:12345/foo/bar/baz' with pytest.raises(errors.RequestError, match=rf'^{url}: Some error$') as excinfo: await http._request(method=method, url=url) assert excinfo.value.status_code is None assert excinfo.value.headers == {}
def test_airtable_export_error(mocker): m = mocker.patch.object(cli, "httpx") m.get.return_value = mocker.Mock() m.get.return_value.status_code = 401 m.get.return_value.raise_for_status.side_effect = httpx.HTTPError( "Unauthorized", request=None) runner = CliRunner() with runner.isolated_filesystem(): result = runner.invoke( cli.cli, [".", "appZOGvNJPXCQ205F", "tablename", "-v", "--key", "x"]) assert result.exit_code == 1 assert result.stdout == "Error: Unauthorized\n"
def _handle_request(self, request: Request, *args, **kwargs) -> Response: self._requests.append(request) response = self._get_response(request) if response: return response callback = self._get_callback(request) if callback: return callback(request=request, *args, **kwargs) raise httpx.HTTPError( f"No mock can be found for {request.method} request on {request.url}.", request=request, )
async def test_form_cannot_connect(hass: HomeAssistant) -> None: """Test we handle cannot connect error.""" result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": config_entries.SOURCE_USER}) with patch( "homeassistant.components.iotawatt.config_flow.Iotawatt.connect", side_effect=httpx.HTTPError("any"), ): result2 = await hass.config_entries.flow.async_configure( result["flow_id"], {"host": "1.1.1.1"}, ) assert result2["type"] == RESULT_TYPE_FORM assert result2["errors"] == {"base": "cannot_connect"}
async def test_form_cannot_connect(hass: HomeAssistant) -> None: """Test we handle cannot connect error.""" result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": config_entries.SOURCE_USER}) with patch( "homeassistant.components.enphase_envoy.config_flow.EnvoyReader.getData", side_effect=httpx.HTTPError("any"), ): result2 = await hass.config_entries.flow.async_configure( result["flow_id"], { "host": "1.1.1.1", "username": "******", "password": "******", }, ) assert result2["type"] == "form" assert result2["errors"] == {"base": "cannot_connect"}
async def test_get_stack_status_report_missing_statuses( scheduler: DynamicSidecarsScheduler, scheduler_data: SchedulerData, mock_service_running: AsyncMock, docker_swarm: None, mocked_dynamic_scheduler_events: None, ) -> None: async with _assert_get_dynamic_services_mocked( scheduler, scheduler_data, mock_service_running, expected_response=httpx.HTTPError("Mock raised error"), ) as stack_status: assert stack_status == RunningDynamicServiceDetails.from_scheduler_data( node_uuid=scheduler_data.node_uuid, scheduler_data=scheduler_data, service_state=ServiceState.STARTING, service_message= "There was an error while trying to fetch the stautes form the contianers", )
def _handle_request( self, method: bytes, url: URL, headers: Headers = None, stream: Union[httpcore.SyncByteStream, httpcore.AsyncByteStream] = None, timeout: TimeoutDict = None, ) -> Response: request = to_request(method, url, headers, stream) self._requests.append(request) response = self._get_response(request) if response: return response callback = self._get_callback(request) if callback: return callback(request=request, timeout=timeout) raise httpx.HTTPError( f"No mock can be found for {request.method} request on {request.url}.", request=request, )