diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2017-07-15 17:05:44 +0200 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2017-07-15 17:05:44 +0200 |
commit | c15ba3b61065973da983ff792a34268a3ba75e12 (patch) | |
tree | a4de60e66c14a4f1179c92be821d2602a766b6b1 /gitlab/exceptions.py | |
parent | 374a6c4544931a564221cccabb6abbda9e6bc558 (diff) | |
download | gitlab-c15ba3b61065973da983ff792a34268a3ba75e12.tar.gz |
Restore correct exceptions
Match the exceptions raised in v3 for v4.
Also update the doc strings with correct information.
Diffstat (limited to 'gitlab/exceptions.py')
-rw-r--r-- | gitlab/exceptions.py | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/gitlab/exceptions.py b/gitlab/exceptions.py index c9048a5..6c00129 100644 --- a/gitlab/exceptions.py +++ b/gitlab/exceptions.py @@ -210,3 +210,23 @@ def raise_error_from_response(response, error, expected_code=200): raise error(error_message=message, response_code=response.status_code, response_body=response.content) + + +def on_http_error(error): + """Manage GitlabHttpError exceptions. + + This decorator function can be used to catch GitlabHttpError exceptions + raise specialized exceptions instead. + + Args: + error(Exception): The exception type to raise -- must inherit from + GitlabError + """ + def wrap(f): + def wrapped_f(*args, **kwargs): + try: + return f(*args, **kwargs) + except GitlabHttpError as e: + raise error(e.response_code, e.error_message) + return wrapped_f + return wrap |