Merge lp:~diegosarmentero/ubuntu-sso-client/handle-errors into lp:ubuntu-sso-client

Proposed by Diego Sarmentero on 2012-03-15
Status: Merged
Approved by: Diego Sarmentero on 2012-03-16
Approved revision: 914
Merged at revision: 917
Proposed branch: lp:~diegosarmentero/ubuntu-sso-client/handle-errors
Merge into: lp:ubuntu-sso-client
Diff against target: 120 lines (+86/-2)
2 files modified
ubuntu_sso/qt/__init__.py (+4/-1)
ubuntu_sso/qt/tests/test_common.py (+82/-1)
To merge this branch: bzr merge lp:~diegosarmentero/ubuntu-sso-client/handle-errors
Reviewer Review Type Date Requested Status
dobey (community) Approve on 2012-03-15
Natalia Bidart 2012-03-15 Approve on 2012-03-15
Review via email: mp+97725@code.launchpad.net

Commit Message

- Adding a general error message when the argument received by build_general_error_message is not a dict (LP: #865176).

To post a comment you must log in.
913. By Diego Sarmentero on 2012-03-15

Removing new string.

914. By Diego Sarmentero on 2012-03-15

Fixing import order

Natalia Bidart (nataliabidart) wrote :

Looks great!

review: Approve
dobey (dobey) :
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/__init__.py'
2--- ubuntu_sso/qt/__init__.py 2012-03-14 12:45:03 +0000
3+++ ubuntu_sso/qt/__init__.py 2012-03-15 20:27:20 +0000
4@@ -21,6 +21,7 @@
5 from PyQt4 import QtGui, QtCore
6
7 from ubuntu_sso.logger import setup_gui_logging
8+from ubuntu_sso.utils.ui import GENERIC_BACKEND_ERROR
9
10 logger = setup_gui_logging('ubuntu_sso.qt')
11
12@@ -57,7 +58,9 @@
13 result = '\n'.join(
14 [('%s: %s' % (k, v)) for k, v in errordict.iteritems()])
15 else:
16- result = repr(errordict)
17+ result = GENERIC_BACKEND_ERROR
18+ logger.error('build_general_error_message with unknown error: %r',
19+ errordict)
20
21 logger.info('build_general_error_message: returning %r.', result)
22 return result
23
24=== modified file 'ubuntu_sso/qt/tests/test_common.py'
25--- ubuntu_sso/qt/tests/test_common.py 2012-03-13 03:15:19 +0000
26+++ ubuntu_sso/qt/tests/test_common.py 2012-03-15 20:27:20 +0000
27@@ -20,7 +20,11 @@
28 from twisted.internet import defer
29 from twisted.trial.unittest import TestCase
30
31-from ubuntu_sso.qt import maybe_elide_text
32+from ubuntu_sso.qt import (
33+ build_general_error_message,
34+ maybe_elide_text,
35+ GENERIC_BACKEND_ERROR,
36+)
37 from ubuntu_sso.qt.common import (
38 check_as_invalid,
39 check_as_valid,
40@@ -281,3 +285,80 @@
41 expected = unicode(self.ui.text())
42 self.assertTrue(expected.endswith(u'\u2026'))
43 self.assertTrue(text.startswith(expected[:-1]))
44+
45+
46+class BuildGeneralErrorMessageTestCase(TestCase):
47+ """Test passwords conditions."""
48+
49+ def test_with_message(self):
50+ """Test build_general_error_message with 'message' key."""
51+ error = "error message"
52+ err_dict = {'message': error}
53+
54+ result = build_general_error_message(err_dict)
55+
56+ self.assertEqual(result, error)
57+
58+ def test_with_all(self):
59+ """Test build_general_error_message with 'all' key."""
60+ error = "error message"
61+ err_dict = {'__all__': error}
62+
63+ result = build_general_error_message(err_dict)
64+
65+ self.assertEqual(result, error)
66+
67+ def test_with_message_and_all(self):
68+ """Test build_general_error_message with 'all' and 'message' key."""
69+ error = "error message"
70+ error2 = "error message2"
71+ err_dict = {'__all__': error, 'message': error2}
72+
73+ result = build_general_error_message(err_dict)
74+
75+ expected = '\n'.join((error, error2))
76+ self.assertEqual(result, expected)
77+
78+ def test_with_all_and_error_message(self):
79+ """Test for 'all' and 'error_message' key."""
80+ error = "error message"
81+ error2 = "error message2"
82+ err_dict = {'__all__': error, 'error_message': error2}
83+ result = build_general_error_message(err_dict)
84+ expected = '\n'.join((error, error2))
85+ self.assertEqual(result, expected)
86+
87+ def test_with_random_keys(self):
88+ """Test build_general_error_message with random keys."""
89+ error = "error message"
90+ error2 = "error message2"
91+ err_dict = {'my_bad': error, 'odd_error': error2}
92+
93+ result = build_general_error_message(err_dict)
94+
95+ expected = '\n'.join(
96+ [('%s: %s' % (k, v)) for k, v in err_dict.iteritems()])
97+ self.assertEqual(result, expected)
98+
99+ def test_with_random_keys_with_errtype(self):
100+ """Test build_general_error_message with random keys and errtype."""
101+ error = "error message"
102+ error2 = "error message2"
103+ err_dict = {'my_bad': error, 'odd_error': error2, 'errtype': 'Danger'}
104+
105+ result = build_general_error_message(err_dict)
106+
107+ expected = '\n'.join(
108+ [('%s: %s' % (k, v)) \
109+ for k, v in {'my_bad': error, 'odd_error': error2}.iteritems()])
110+ self.assertEqual(result, expected)
111+
112+ def test_with_not_dict(self):
113+ """Test build_general_error_message with argument not dict."""
114+ error = "error message"
115+ err_dict = Exception(error)
116+
117+ result = build_general_error_message(err_dict)
118+
119+ expected = GENERIC_BACKEND_ERROR
120+ self.assertEqual(result, expected)

Subscribers

People subscribed via source and target branches