From 1e7993df3e830186c3c2ba9662c824c563846c60 Mon Sep 17 00:00:00 2001 From: Michael Bienia Date: Thu, 22 Jul 2010 21:13:20 +0200 Subject: [PATCH] ubuntutools/lp/lpapicache.py: The LP API function archive.checkUpload() throws an exception when the person has no upload rights. --- ubuntutools/lp/lpapicache.py | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/ubuntutools/lp/lpapicache.py b/ubuntutools/lp/lpapicache.py index 060cace..5ca3fce 100644 --- a/ubuntutools/lp/lpapicache.py +++ b/ubuntutools/lp/lpapicache.py @@ -462,13 +462,21 @@ class PersonTeam(BaseWrapper): canUpload = self._upload.get((archive, distroseries, pocket, package, component)) if canUpload is None: - canUpload = archive.checkUpload( - component=component, - distroseries=distroseries(), - person=self(), - pocket=pocket, - sourcepackagename=package, - ) + # checkUpload() throws an exception if the person can't upload + try: + archive.checkUpload( + component=component, + distroseries=distroseries(), + person=self(), + pocket=pocket, + sourcepackagename=package, + ) + canUpload = True + except HTTPError, e: + if e.response.status == 403: + canUpload = False + else: + raise e self._upload[(archive, distroseries, pocket, package, component)] = canUpload return canUpload