Merge lp:~diegosarmentero/ubuntu-sso-client/qt-login-backend into lp:ubuntu-sso-client

Proposed by Diego Sarmentero
Status: Merged
Approved by: Natalia Bidart
Approved revision: 915
Merged at revision: 916
Proposed branch: lp:~diegosarmentero/ubuntu-sso-client/qt-login-backend
Merge into: lp:ubuntu-sso-client
Diff against target: 76 lines (+31/-8)
3 files modified
ubuntu_sso/qt/sso_wizard_page.py (+19/-6)
ubuntu_sso/qt/tests/__init__.py (+1/-1)
ubuntu_sso/qt/tests/test_sso_wizard_page.py (+11/-1)
To merge this branch: bzr merge lp:~diegosarmentero/ubuntu-sso-client/qt-login-backend
Reviewer Review Type Date Requested Status
Natalia Bidart (community) Approve
Roberto Alsina (community) Approve
Review via email: mp+97425@code.launchpad.net

Commit message

- Adding some checks to setup_page (LP: #951461).

To post a comment you must log in.
911. By Diego Sarmentero

Merge

912. By Diego Sarmentero

improve in exception to avoid repeating text.

Revision history for this message
Roberto Alsina (ralsina) wrote :

Looks good, at least we'll get the error, I guess.

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

Looks good, but the following:

        except Exception, reason:
            message = 'There was a problem trying to setup the page %r' % self
            self.show_error(message)
            log = message + ', error: %r' % reason
            logger.error(log)
            self.setEnabled(False)

should be:

        except:
            message = 'There was a problem trying to setup the page %r' % self
            self.show_error(message)
            logger.exception(message)
            self.setEnabled(False)

since logger.exception already adds the traceback when called in an except block.

review: Needs Fixing
913. By Diego Sarmentero

Improving logs

914. By Diego Sarmentero

Reverting removed empty lines.

Revision history for this message
Diego Sarmentero (diegosarmentero) wrote :

> Looks good, but the following:
>
> except Exception, reason:
> message = 'There was a problem trying to setup the page %r' % self
> self.show_error(message)
> log = message + ', error: %r' % reason
> logger.error(log)
> self.setEnabled(False)
>
> should be:
>
> except:
> message = 'There was a problem trying to setup the page %r' % self
> self.show_error(message)
> logger.exception(message)
> self.setEnabled(False)
>
> since logger.exception already adds the traceback when called in an except
> block.

Done

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

Lint issue at:

ubuntu_sso/qt/sso_wizard_page.py:
    226: [W0702, SSOWizardPage.setup_page] No exception type(s) specified

review: Needs Fixing
915. By Diego Sarmentero

lint issue fixed.

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

Looks good!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'ubuntu_sso/qt/sso_wizard_page.py'
2--- ubuntu_sso/qt/sso_wizard_page.py 2012-03-13 02:25:12 +0000
3+++ ubuntu_sso/qt/sso_wizard_page.py 2012-03-15 20:19:17 +0000
4@@ -210,12 +210,25 @@
5 @defer.inlineCallbacks
6 def setup_page(self):
7 """Setup the widget components."""
8- client = yield main.get_sso_client()
9- self.backend = client.sso_login
10- logger.info('%r - setup_page, backend is %r.', self, self.backend)
11- self._setup_signals()
12- self._set_translated_strings()
13- self._connect_ui()
14+ logger.info('Starting setup_page for: %r', self)
15+ # pylint: disable=W0702,W0703
16+ try:
17+ # Get Backend
18+ client = yield main.get_sso_client()
19+ self.backend = client.sso_login
20+ self._set_translated_strings()
21+ self._connect_ui()
22+ # Call _setup_signals at the end, so we ensure that the UI
23+ # is at least styled as expected if the operations with the
24+ # backend fails.
25+ self._setup_signals()
26+ except:
27+ message = 'There was a problem trying to setup the page %r' % self
28+ self.show_error(message)
29+ logger.exception(message)
30+ self.setEnabled(False)
31+ # pylint: enable=W0702,W0703
32+ logger.info('%r - setup_page ends, backend is %r.', self, self.backend)
33
34 def _filter_by_app_name(self, f):
35 """Excecute the decorated function only for 'self.app_name'."""
36
37=== modified file 'ubuntu_sso/qt/tests/__init__.py'
38--- ubuntu_sso/qt/tests/__init__.py 2012-03-13 03:15:19 +0000
39+++ ubuntu_sso/qt/tests/__init__.py 2012-03-15 20:19:17 +0000
40@@ -551,7 +551,7 @@
41 self.assertIn(signal, self.ui._signals)
42 self.assertTrue(callable(self.ui._signals[signal]))
43
44- expected = ['_setup_signals', '_set_translated_strings', '_connect_ui']
45+ expected = ['_set_translated_strings', '_connect_ui', '_setup_signals']
46 self.assertEqual(expected, called)
47
48
49
50=== modified file 'ubuntu_sso/qt/tests/test_sso_wizard_page.py'
51--- ubuntu_sso/qt/tests/test_sso_wizard_page.py 2012-03-13 02:14:03 +0000
52+++ ubuntu_sso/qt/tests/test_sso_wizard_page.py 2012-03-15 20:19:17 +0000
53@@ -130,8 +130,8 @@
54 """Test show_error with a long length string."""
55 message = build_string_for_pixels(self.ui.form_errors_label,
56 self.ui.header.max_title_width + 10)
57+
58 self.ui.show_error(message)
59-
60 self.assert_error_correct(self.ui.form_errors_label, message,
61 self.ui.header.max_title_width)
62
63@@ -140,3 +140,13 @@
64 self.ui.hide_error()
65
66 self.assertEqual(self.ui.form_errors_label.text(), ' ')
67+
68+ def test_setup_page_with_failing_backend(self):
69+ """Test how the ui react with an invalid backend."""
70+ self.patch(gui.main, "get_sso_client", lambda: None)
71+ self.patch(self.ui, "show_error", self._set_called)
72+ self.ui.setup_page()
73+ reason = 'There was a problem trying to setup the page %r' % self.ui
74+ expected = ((reason,), {})
75+ self.assertEqual(expected, self._called)
76+ self.assertFalse(self.ui.isEnabled())

Subscribers

People subscribed via source and target branches