From 9a5c8352b93f06bb88fcd7d5079ed00956f2979f Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Thu, 23 Oct 2014 22:38:42 +0200 Subject: [PATCH] =?UTF-8?q?digicode:=20exception=20si=20http=20status=20?= =?UTF-8?q?=E2=89=A0=20200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- impression/digicode.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/impression/digicode.py b/impression/digicode.py index 0e81dac1..eabb985c 100644 --- a/impression/digicode.py +++ b/impression/digicode.py @@ -52,6 +52,15 @@ if socket.gethostname() not in CODES_SERVERS: raise EnvironmentError("La manipulation des codes pour le digicode n'est possible que sur %s" % ', '.join(CODES_SERVERS)) +class CommunicationError(Exception): + pass + +def check_status(req): + status = req.status_code + if status != 200: + #TODO un peu plus d'info sur l'erreur + raise CommunicationError("Bad status from intranet: %d" % status) + # ############################### # save_code # ############################### @@ -61,6 +70,7 @@ def save_code(code, user_name): """enregistre le codes pour ``user_name``""" code = str(code) response = requests.post(CREATION_LINK + code, data={'password':digicode_pass, 'user':user_name}, verify=CERTIFICATE, timeout=2) + check_status(response) try: code = int(response.content) except (TypeError, ValueError): @@ -77,6 +87,7 @@ def save_code(code, user_name): def gen_code(user_name): """On contacte l'intranet 2 pour générer le code et on récupère le résultat""" response = requests.post(CREATION_LINK, data={'password':digicode_pass, 'user':user_name}, verify=CERTIFICATE, timeout=2) + check_status(response) return response.content @@ -91,6 +102,8 @@ def list_code(login=None): La liste est sous la forme [(code, age (en sec), contenu du fichier),...] """ response = requests.post(LIST_LINK + (login if login else ""), data={'password':digicode_pass}, verify=CERTIFICATE, timeout=2) + + check_status(response) code_list = [] for line in response.content.split('\n'): if line: