How to use parse_service_exception method in localstack

Best Python code snippet using localstack_python

client.py

Source:client.py Github

copy

Full Screen

...132 _add_modeled_error_fields(response_dict, parsed_response, operation, parser)133 if not include_response_metadata:134 parsed_response.pop("ResponseMetadata", None)135 return parsed_response136def parse_service_exception(137 response: Response, parsed_response: Dict138) -> Optional[ServiceException]:139 """140 Creates a ServiceException (one ASF can handle) from a parsed response (one that botocore would return).141 It does not automatically raise the exception (see #raise_service_exception).142 :param response: Un-parsed response143 :param parsed_response: Parsed response144 :return: ServiceException or None (if it's not an error response)145 """146 if response.status_code < 301 or "Error" not in parsed_response:147 return None148 error = parsed_response["Error"]149 service_exception = CommonServiceException(150 code=error.get("Code", f"'{response.status_code}'"),151 status_code=response.status_code,152 message=error.get("Message", ""),153 sender_fault=error.get("Type") == "Sender",154 )155 # Add all additional fields in the parsed response as members of the exception156 for key, value in parsed_response.items():157 if key.lower() not in ["code", "message", "type", "error"] and not hasattr(158 service_exception, key159 ):160 setattr(service_exception, key, value)161 return service_exception162def raise_service_exception(response: Response, parsed_response: Dict) -> None:163 """164 Creates and raises a ServiceException from a parsed response (one that botocore would return).165 :param response: Un-parsed response166 :param parsed_response: Parsed response167 :raise ServiceException: If the response is an error response168 :return: None if the response is not an error response169 """170 if service_exception := parse_service_exception(response, parsed_response):...

Full Screen

Full Screen

test_client.py

Source:test_client.py Github

copy

Full Screen

1from localstack.aws.api import ServiceException2from localstack.aws.client import parse_service_exception3from localstack.http import Response4def test_parse_service_exception():5 response = Response(status=400)6 parsed_response = {7 "Error": {8 "Code": "InvalidSubnetID.NotFound",9 "Message": "The subnet ID 'vpc-test' does not exist",10 }11 }12 exception = parse_service_exception(response, parsed_response)13 assert exception14 assert isinstance(exception, ServiceException)15 assert exception.code == "InvalidSubnetID.NotFound"16 assert exception.message == "The subnet ID 'vpc-test' does not exist"17 assert exception.status_code == 40018 assert not exception.sender_fault19 # Ensure that the parsed exception does not have the "Error" field from the botocore response dict20 assert not hasattr(exception, "Error")...

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run localstack automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful