in src/basket/base.py [0:0]
def request(method, action, data=None, json=None, token=None, params=None, headers=None):
"""Call the basket API with the supplied http method and data."""
# send mock response for testing email addresses (bug 1261886)
if data and "email" in data:
if data["email"] == "success@example.com":
return {"status": "ok"}
elif data["email"] == "failure@example.com":
raise BasketException("mock failure", status_code=400, code=errors.BASKET_MOCK_FAILURE)
# newsletters should be comma-delimited
if data and "newsletters" in data:
if not isinstance(data["newsletters"], str):
data["newsletters"] = ",".join(data["newsletters"])
if action in URLS:
url = f"{BASKET_URL}{URLS[action]}"
else:
url = basket_url(action, token)
try:
res = requests.request(method, url, data=data, json=json, params=params, headers=headers, timeout=BASKET_TIMEOUT)
except requests.exceptions.ConnectionError:
raise BasketNetworkException("Error connecting to basket")
except requests.exceptions.Timeout:
raise BasketNetworkException("Timeout connecting to basket")
return parse_response(res)