У меня почти 20 функций, для которых я написал декоратор, вместо того, чтобы вставлять один и тот же код в каждую функцию. Поэтому мой декоратор должен проверить, возвращает ли каждая функция код состояния ответа 500, а затем вызвать исключение. Может ли кто-нибудь дать мне большеясность?
Это декоратор, который я написал
def check_tasks_failed(a_func):
"""
Wrapper function to check whether a task_failed
:param task_id:
:param kwargs:
:param kwargs:
:param a_func:
:return:
"""
def wrapper(**kwargs):
task_id_resp_status_code = a_func(**kwargs).status_code
if task_id_resp_status_code in [500]: # Check here what are the criterion for the task to fail
raise ValueError('invalid return status 500')
return wrapper
Это функция, которая должна быть декоратором в качестве примера.
@check_tasks_failed
def get_naming_(**kwargs) -> requests:
"""Get job from custom_etl."""
try:
naming_res = get_custom_etl_job(VALIDATED_CONTAINER,
VALIDATED_CONTAINER,
VALIDATED_CONTAINER,
**kwargs)
except Exception as e:
return {'success':False , 'reason': f'{e}'}
Мой ожидаемый результат должен бытьВозникла исключительная ситуация, когда get_naming_ не удалось выполнить следующее исключение raise ValueError('invalid return status 500')