From ad65388274feaea5f4e0c3df0aafeb800825491e Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Fri, 17 Jul 2015 22:50:28 +0200 Subject: fixing integration.test_tags --- service/pixelated/resources/mail_resource.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'service/pixelated/resources/mail_resource.py') diff --git a/service/pixelated/resources/mail_resource.py b/service/pixelated/resources/mail_resource.py index 15ca1939..f11862af 100644 --- a/service/pixelated/resources/mail_resource.py +++ b/service/pixelated/resources/mail_resource.py @@ -16,11 +16,14 @@ class MailTags(Resource): def render_POST(self, request): new_tags = json.loads(request.content.read()).get('newtags') - try: - mail = self._mail_service.update_tags(self._mail_id, new_tags) - except ValueError as ve: - return respond_json(ve.message, request, 403) - return respond_json(mail.as_dict(), request) + d = self._mail_service.update_tags(self._mail_id, new_tags) + d.addCallback(lambda mail: respond_json_deferred(mail.as_dict(), request)) + + def handle403(failure): + failure.trap(ValueError) + return respond_json_deferred(failure.getErrorMessage(), request, 403) + d.addErrback(handle403) + return NOT_DONE_YET class Mail(Resource): -- cgit v1.2.3