import json from typing import Any, Dict from urllib.parse import urlencode from flask.testing import FlaskClient from werkzeug.routing import BaseConverter class RegexConverter(BaseConverter): # http://werkzeug.pocoo.org/docs/routing/#custom-converters part_isolating = False def __init__(self, url_map: Any, *items: Any): super().__init__(url_map) self.regex = items[0] class AWSTestHelper(FlaskClient): def action_data(self, action_name: str, **kwargs: Any) -> str: """ Method calls resource with action_name and returns data of response. """ opts = {"Action": action_name} opts.update(kwargs) res = self.get( f"/?{urlencode(opts)}", headers={"Host": f"{self.application.service}.us-east-1.amazonaws.com"}, # type: ignore[attr-defined] ) return res.data.decode("utf-8") def action_json(self, action_name: str, **kwargs: Any) -> Dict[str, Any]: """ Method calls resource with action_name and returns object obtained via deserialization of output. """ return json.loads(self.action_data(action_name, **kwargs))
Memory