Merge lp:~alecu/ubuntu-sso-client/dict-of-lists into lp:ubuntu-sso-client

Proposed by Alejandro J. Cura
Status: Merged
Approved by: Natalia Bidart
Approved revision: 597
Merged at revision: 597
Proposed branch: lp:~alecu/ubuntu-sso-client/dict-of-lists
Merge into: lp:ubuntu-sso-client
Diff against target: 77 lines (+19/-5)
3 files modified
ubuntu_sso/gui.py (+2/-1)
ubuntu_sso/main.py (+11/-2)
ubuntu_sso/tests/test_main.py (+6/-2)
To merge this branch: bzr merge lp:~alecu/ubuntu-sso-client/dict-of-lists
Reviewer Review Type Date Requested Status
Natalia Bidart (community) Approve
Vincenzo Di Somma (community) Approve
Review via email: mp+33782@code.launchpad.net

Commit message

The list of error strings as returned by the SSO webservice can't go thru DBus (LP: #624358)

Description of the change

The list of error strings as returned by the SSO webservice can't go thru DBus

To post a comment you must log in.
Revision history for this message
Vincenzo Di Somma (vds) wrote :

Works!

review: Approve
Revision history for this message
Natalia Bidart (nataliabidart) wrote :

Very nice!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ubuntu_sso/gui.py'
2--- ubuntu_sso/gui.py 2010-08-26 00:56:39 +0000
3+++ ubuntu_sso/gui.py 2010-08-26 13:47:42 +0000
4@@ -292,7 +292,8 @@
5 assert getattr(self, name) is not None
6
7 self.window.set_icon_name('ubuntu-logo')
8- self.captcha_reload_button.set_tooltip_text(self.CAPTCHA_RELOAD_TOOLTIP)
9+ self.captcha_reload_button.set_tooltip_text(
10+ self.CAPTCHA_RELOAD_TOOLTIP)
11
12 self.bus = dbus.SessionBus()
13 self.bus.add_signal_receiver = self._log(self.bus.add_signal_receiver)
14
15=== modified file 'ubuntu_sso/main.py'
16--- ubuntu_sso/main.py 2010-08-25 21:46:04 +0000
17+++ ubuntu_sso/main.py 2010-08-26 13:47:42 +0000
18@@ -163,6 +163,13 @@
19 re.search('\d+', password)) # one number
20 return res
21
22+ def _format_webservice_errors(self, errdict):
23+ """Turn each list of strings in the errdict into a LF separated str."""
24+ result = {}
25+ for k in errdict:
26+ result[k] = "\n".join(errdict[k])
27+ return result
28+
29 def generate_captcha(self, filename):
30 """Generate a captcha using the SSO service."""
31 logger.debug('generate_captcha: requesting captcha, filename: %r',
32@@ -203,7 +210,8 @@
33 logger.info('register_user: email: %r result: %r', email, result)
34
35 if result['status'] == 'error':
36- raise RegistrationError(result['errors'])
37+ errorsdict = self._format_webservice_errors(result['errors'])
38+ raise RegistrationError(errorsdict)
39 elif result['status'] != 'ok':
40 raise RegistrationError('Received unknown status: %s' % result)
41 else:
42@@ -243,7 +251,8 @@
43 result = sso_service.accounts.validate_email(email_token=email_token)
44 logger.info('validate_email: email: %r result: %r', email, result)
45 if 'errors' in result:
46- raise EmailTokenError(result['errors'])
47+ errorsdict = self._format_webservice_errors(result['errors'])
48+ raise EmailTokenError(errorsdict)
49 elif 'email' in result:
50 return result['email']
51 else:
52
53=== modified file 'ubuntu_sso/tests/test_main.py'
54--- ubuntu_sso/tests/test_main.py 2010-08-25 21:46:04 +0000
55+++ ubuntu_sso/tests/test_main.py 2010-08-26 13:47:42 +0000
56@@ -231,7 +231,9 @@
57 failure = self.assertRaises(RegistrationError,
58 self.processor.register_user,
59 **self.register_kwargs)
60- self.assertIn(STATUS_ERROR['errors'], failure)
61+ for k, v in failure.args[0].items():
62+ self.assertIn(k, STATUS_ERROR['errors'])
63+ self.assertEqual(v, "\n".join(STATUS_ERROR['errors'][k]))
64
65 def test_register_user_if_status_unknown(self):
66 """Proper error is raised if register returns an unknown status."""
67@@ -269,7 +271,9 @@
68 failure = self.assertRaises(EmailTokenError,
69 self.processor.validate_email,
70 **self.login_kwargs)
71- self.assertIn(STATUS_EMAIL_ERROR['errors'], failure)
72+ for k, v in failure.args[0].items():
73+ self.assertIn(k, STATUS_EMAIL_ERROR['errors'])
74+ self.assertEqual(v, "\n".join(STATUS_EMAIL_ERROR['errors'][k]))
75
76 def test_validate_email_if_status_unknown(self):
77 """Proper error is raised if email validation returns unknown."""

Subscribers

People subscribed via source and target branches