summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarian Sigler <m@qjym.de>2013-04-29 11:55:08 +0200
committerMarian Sigler <m@qjym.de>2013-04-29 11:55:08 +0200
commite3ade141aaedd4dce9372f05e7f2473cf58ae90f (patch)
treeffb4eb5c48c9678ce9fdce265f7ed795b10ba538
parent7e0394a03ada219c28183a54de5ebeb90951d44e (diff)
downloadweb-e3ade141aaedd4dce9372f05e7f2473cf58ae90f.tar.gz
web-e3ade141aaedd4dce9372f05e7f2473cf58ae90f.tar.bz2
web-e3ade141aaedd4dce9372f05e7f2473cf58ae90f.zip
consistency check: don't raise 'no user found' exception when the
backend accidentally returns two users
-rw-r--r--account.py8
-rw-r--r--utils.py4
2 files changed, 10 insertions, 2 deletions
diff --git a/account.py b/account.py
index 2ac3248..33ac349 100644
--- a/account.py
+++ b/account.py
@@ -100,8 +100,10 @@ class AccountService:
raise NoSuchUserError if there is no such user.
"""
users = self.find_by_uid(uid)
- if len(users) != 1:
+ if len(users) == 0:
raise NoSuchUserError('No such user')
+ if len(users) > 1:
+ raise ShouldNotHappen('Several users for one uid returned.')
return users[0]
@@ -111,8 +113,10 @@ class AccountService:
raise NoSuchUserError if there is no such user.
"""
users = self.find_by_mail(mail)
- if len(users) != 1:
+ if len(users) == 0:
raise NoSuchUserError('No such user')
+ if len(users) > 1:
+ raise ShouldNotHappen('Several users for one mail returned.')
return users[0]
diff --git a/utils.py b/utils.py
index ca0fb16..7071284 100644
--- a/utils.py
+++ b/utils.py
@@ -239,3 +239,7 @@ def url_for(endpoint, **values):
return 'https://' + u[7:]
else:
return u
+
+# used when we encounter inconsistent data etc
+class ShouldNotHappen(RuntimeError):
+ pass