diff options
author | Marian Sigler <m@qjym.de> | 2013-04-29 11:55:08 +0200 |
---|---|---|
committer | Marian Sigler <m@qjym.de> | 2013-04-29 11:55:08 +0200 |
commit | e3ade141aaedd4dce9372f05e7f2473cf58ae90f (patch) | |
tree | ffb4eb5c48c9678ce9fdce265f7ed795b10ba538 | |
parent | 7e0394a03ada219c28183a54de5ebeb90951d44e (diff) | |
download | web-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.py | 8 | ||||
-rw-r--r-- | utils.py | 4 |
2 files changed, 10 insertions, 2 deletions
@@ -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] @@ -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 |