Merge lp:~fgallina/rnr-server/click-reviews-return-useroid-as-username into lp:rnr-server
- click-reviews-return-useroid-as-username
- Merge into trunk
Status: | Merged | ||||
---|---|---|---|---|---|
Approved by: | Fabián Ezequiel Gallina | ||||
Approved revision: | 304 | ||||
Merged at revision: | 299 | ||||
Proposed branch: | lp:~fgallina/rnr-server/click-reviews-return-useroid-as-username | ||||
Merge into: | lp:rnr-server | ||||
Diff against target: |
348 lines (+126/-42) 7 files modified
src/clickreviews/api/handlers.py (+8/-0) src/clickreviews/models.py (+6/-0) src/clickreviews/tests/test_handlers.py (+12/-19) src/clickreviews/tests/test_models.py (+19/-0) src/core/tests/factory.py (+4/-2) src/core/tests/helpers.py (+56/-0) src/core/tests/test_utilities.py (+21/-21) |
||||
To merge this branch: | bzr merge lp:~fgallina/rnr-server/click-reviews-return-useroid-as-username | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Natalia Bidart (community) | Approve | ||
Ricardo Kirkner (community) | Approve | ||
Review via email: mp+257106@code.launchpad.net |
Commit message
Return the User openid as reviewer_username in clickreviews
Description of the change
Ricardo Kirkner (ricardokirkner) : | # |
Fabián Ezequiel Gallina (fgallina) : | # |
Natalia Bidart (nataliabidart) wrote : | # |
Overall looks good, added a few comments for this implementation.
What I wonder it will not be a better approach to migrate usernames as we go, that means: we update the username value with the openid value, that we could have pre-stored in the instances.
What do you think?
Natalia Bidart (nataliabidart) : | # |
Ubuntu One Auto Pilot (otto-pilot) wrote : | # |
The attempt to merge lp:~fgallina/rnr-server/click-reviews-return-useroid-as-username into lp:rnr-server failed. Below is the output from the failed tests.
rm -rf ./virtualenv
sed -e '1,/# Dependencies/
/usr/lib/
Not deleting ./virtualenv/bin
New python executable in ./virtualenv/
Installing distribute.
Installing pip....
./virtualenv/
Requirement already satisfied (use --upgrade to upgrade): coverage in /usr/lib/
Downloading/
Downloading django_
Running setup.py egg_info for package django-factory
warning: no previously-included files matching '*.pyc' found anywhere in distribution
Requirement already satisfied (use --upgrade to upgrade): mechanize in /usr/lib/
Requirement already satisfied (use --upgrade to upgrade): mock in /usr/lib/
Requirement already satisfied (use --upgrade to upgrade): paste==1.7.5.1 in /usr/lib/
Requirement already satisfied (use --upgrade to upgrade): pep8 in /usr/lib/
Requirement already satisfied (use --upgrade to upgrade): piston-mini-client in /usr/lib/
Requirement already satisfied (use --upgrade to upgrade): testtools in /usr/lib/
Downloading/
Running setup.py egg_info for package wsgi-intercept
Requirement already satisfied (use --upgrade to upgrade): django>=1.1 in /usr/lib/
Installing collected packages: django-factory, wsgi-intercept
Running setup.py install for django-factory
warning: no previously-included files matching '*.pyc' found anywhere in distribution
Running setup.py install for wsgi-intercept
Successfully installed django-factory wsgi-intercept
Cleaning up...
[localhost] local: virtualenv/
Creating test database for alias 'default' (':memory:')...
Syncing...
Creating tables ...
Creating table django_admin_log
Creating table auth_permission
Creating table auth_group_
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site
Creating table south_migration
Creating table piston_nonce
Creating t...
- 304. By Fabián Ezequiel Gallina
-
Fix tests
Preview Diff
1 | === modified file 'src/clickreviews/api/handlers.py' | |||
2 | --- src/clickreviews/api/handlers.py 2015-03-10 14:56:42 +0000 | |||
3 | +++ src/clickreviews/api/handlers.py 2015-04-22 19:38:49 +0000 | |||
4 | @@ -58,6 +58,7 @@ | |||
5 | 58 | package_name = form.cleaned_data['package_name'] | 58 | package_name = form.cleaned_data['package_name'] |
6 | 59 | 59 | ||
7 | 60 | return (ClickPackageReview.objects.published() | 60 | return (ClickPackageReview.objects.published() |
8 | 61 | .prefetch_related('reviewer__useropenid_set') | ||
9 | 61 | .select_related('click_package', 'reviewer') | 62 | .select_related('click_package', 'reviewer') |
10 | 62 | .filter(click_package__package_name=package_name) | 63 | .filter(click_package__package_name=package_name) |
11 | 63 | # XXX: Order by date until usefulness is implemented. | 64 | # XXX: Order by date until usefulness is implemented. |
12 | @@ -172,6 +173,9 @@ | |||
13 | 172 | _model = None | 173 | _model = None |
14 | 173 | _form = None | 174 | _form = None |
15 | 174 | 175 | ||
16 | 176 | def _prepare_queryset(self, queryset): | ||
17 | 177 | return queryset | ||
18 | 178 | |||
19 | 175 | def read(self, request, status=None, pk=None): | 179 | def read(self, request, status=None, pk=None): |
20 | 176 | if status is None: | 180 | if status is None: |
21 | 177 | queryset = self._model.objects.all() | 181 | queryset = self._model.objects.all() |
22 | @@ -188,6 +192,7 @@ | |||
23 | 188 | .order_by('-num_flags', 'date_created') | 192 | .order_by('-num_flags', 'date_created') |
24 | 189 | .select_related() | 193 | .select_related() |
25 | 190 | .prefetch_related('flag_set__user')) | 194 | .prefetch_related('flag_set__user')) |
26 | 195 | queryset = self._prepare_queryset(queryset) | ||
27 | 191 | 196 | ||
28 | 192 | if pk is not None: | 197 | if pk is not None: |
29 | 193 | return get_object_or_404(queryset, pk=pk) | 198 | return get_object_or_404(queryset, pk=pk) |
30 | @@ -288,3 +293,6 @@ | |||
31 | 288 | 'get_full_name', | 293 | 'get_full_name', |
32 | 289 | 'last_name')))), | 294 | 'last_name')))), |
33 | 290 | 'status') | 295 | 'status') |
34 | 296 | |||
35 | 297 | def _prepare_queryset(self, queryset): | ||
36 | 298 | return queryset.prefetch_related('review__reviewer__useropenid_set') | ||
37 | 291 | 299 | ||
38 | === modified file 'src/clickreviews/models.py' | |||
39 | --- src/clickreviews/models.py 2015-03-10 19:16:55 +0000 | |||
40 | +++ src/clickreviews/models.py 2015-04-22 19:38:49 +0000 | |||
41 | @@ -74,6 +74,12 @@ | |||
42 | 74 | return self.click_package.package_name | 74 | return self.click_package.package_name |
43 | 75 | 75 | ||
44 | 76 | def reviewer_username(self): | 76 | def reviewer_username(self): |
45 | 77 | # Use .all() so that `prefetch_related` have effect. | ||
46 | 78 | openid_objs = list(self.reviewer.useropenid_set.all()) | ||
47 | 79 | if openid_objs: | ||
48 | 80 | openid_obj = openid_objs[-1] | ||
49 | 81 | return openid_obj.claimed_id.split('/')[-1] | ||
50 | 82 | # Production queries show this won't happen, use as safeguard. | ||
51 | 77 | return self.reviewer.username | 83 | return self.reviewer.username |
52 | 78 | 84 | ||
53 | 79 | def reviewer_displayname(self): | 85 | def reviewer_displayname(self): |
54 | 80 | 86 | ||
55 | === modified file 'src/clickreviews/tests/test_handlers.py' | |||
56 | --- src/clickreviews/tests/test_handlers.py 2015-03-10 19:16:55 +0000 | |||
57 | +++ src/clickreviews/tests/test_handlers.py 2015-04-22 19:38:49 +0000 | |||
58 | @@ -23,7 +23,7 @@ | |||
59 | 23 | ) | 23 | ) |
60 | 24 | from clickreviews.tests.factory import TestCaseWithFactory | 24 | from clickreviews.tests.factory import TestCaseWithFactory |
61 | 25 | from core.models import BaseModeration | 25 | from core.models import BaseModeration |
63 | 26 | from core.tests.helpers import SSOTestCaseMixin | 26 | from core.tests.helpers import SSOTestCaseMixin, assert_no_extra_queries_after |
64 | 27 | 27 | ||
65 | 28 | 28 | ||
66 | 29 | class ClickReviewsHandlerTestCase(TestCaseWithFactory): | 29 | class ClickReviewsHandlerTestCase(TestCaseWithFactory): |
67 | @@ -91,7 +91,7 @@ | |||
68 | 91 | 'date_created': DateTimeAwareJSONEncoder().encode( | 91 | 'date_created': DateTimeAwareJSONEncoder().encode( |
69 | 92 | review.date_created).strip('"'), | 92 | review.date_created).strip('"'), |
70 | 93 | 'rating': 5, | 93 | 'rating': 5, |
72 | 94 | 'reviewer_username': review.reviewer.username, | 94 | 'reviewer_username': review.reviewer_username(), |
73 | 95 | 'reviewer_displayname': review.reviewer.get_full_name(), | 95 | 'reviewer_displayname': review.reviewer.get_full_name(), |
74 | 96 | 'summary': 'Excellent', | 96 | 'summary': 'Excellent', |
75 | 97 | 'review_text': 'Plain brilliant piece of software', | 97 | 'review_text': 'Plain brilliant piece of software', |
76 | @@ -253,10 +253,10 @@ | |||
77 | 253 | package = self.factory.makeClickPackage() | 253 | package = self.factory.makeClickPackage() |
78 | 254 | for _ in range(5): | 254 | for _ in range(5): |
79 | 255 | self.factory.makeClickPackageReview(click_package=package) | 255 | self.factory.makeClickPackageReview(click_package=package) |
84 | 256 | 256 | assert_no_extra_queries_after( | |
85 | 257 | self.assertNumQueries(1, self._get_reviews, data={ | 257 | lambda: self.factory.makeClickPackageReview(click_package=package), |
86 | 258 | 'package_name': package.package_name, | 258 | self._get_reviews, data={'package_name': package.package_name} |
87 | 259 | }) | 259 | ) |
88 | 260 | 260 | ||
89 | 261 | def _update_review(self, review, data, user=None): | 261 | def _update_review(self, review, data, user=None): |
90 | 262 | # Post a review as an authenticated user. | 262 | # Post a review as an authenticated user. |
91 | @@ -953,19 +953,12 @@ | |||
92 | 953 | data['errors']['status']) | 953 | data['errors']['status']) |
93 | 954 | 954 | ||
94 | 955 | def test_read_query_count(self): | 955 | def test_read_query_count(self): |
108 | 956 | # 1 query for counting the moderations | 956 | for _ in range(5): |
109 | 957 | # 1 query for moderations themselves | 957 | self.make_moderation_object() |
110 | 958 | # 1 query for prefetching flags | 958 | |
111 | 959 | expected_queries = 3 | 959 | assert_no_extra_queries_after( |
112 | 960 | url = reverse(self.url_name) | 960 | lambda: self.make_moderation_object(), |
113 | 961 | 961 | self.request_get, reverse(self.url_name)) | |
101 | 962 | for _ in range(10): | ||
102 | 963 | self.make_moderation_object() | ||
103 | 964 | self.assertNumQueries(expected_queries, lambda: self.request_get(url)) | ||
104 | 965 | |||
105 | 966 | for _ in range(10): | ||
106 | 967 | self.make_moderation_object() | ||
107 | 968 | self.assertNumQueries(expected_queries, lambda: self.request_get(url)) | ||
114 | 969 | 962 | ||
115 | 970 | def test_ordering(self): | 963 | def test_ordering(self): |
116 | 971 | # the following are sorted in reverse expected order. | 964 | # the following are sorted in reverse expected order. |
117 | 972 | 965 | ||
118 | === modified file 'src/clickreviews/tests/test_models.py' | |||
119 | --- src/clickreviews/tests/test_models.py 2015-03-09 20:47:12 +0000 | |||
120 | +++ src/clickreviews/tests/test_models.py 2015-04-22 19:38:49 +0000 | |||
121 | @@ -157,6 +157,25 @@ | |||
122 | 157 | # Stats should be updated. | 157 | # Stats should be updated. |
123 | 158 | self.assertEqual(review.click_package.histogram, '[0, 0, 0, 0, 0]') | 158 | self.assertEqual(review.click_package.histogram, '[0, 0, 0, 0, 0]') |
124 | 159 | 159 | ||
125 | 160 | def test_reviewer_username_same_username_and_openid(self): | ||
126 | 161 | expected = 'theuoid' | ||
127 | 162 | user = self.factory.makeUser(username=expected, open_id=expected) | ||
128 | 163 | review = self.factory.makeClickPackageReview(reviewer=user) | ||
129 | 164 | self.assertEqual(review.reviewer_username(), expected) | ||
130 | 165 | |||
131 | 166 | def test_reviewer_username_returns_openid(self): | ||
132 | 167 | expected = 'theopenid' | ||
133 | 168 | user = self.factory.makeUser( | ||
134 | 169 | username='bogusfromlogin', open_id=expected) | ||
135 | 170 | review = self.factory.makeClickPackageReview(reviewer=user) | ||
136 | 171 | self.assertEqual(review.reviewer_username(), expected) | ||
137 | 172 | |||
138 | 173 | def test_reviewer_username_fallbacks_to_username(self): | ||
139 | 174 | expected = 'bogusfromlogin' | ||
140 | 175 | user = self.factory.makeUser(username=expected, open_id=False) | ||
141 | 176 | review = self.factory.makeClickPackageReview(reviewer=user) | ||
142 | 177 | self.assertEqual(review.reviewer_username(), expected) | ||
143 | 178 | |||
144 | 160 | 179 | ||
145 | 161 | class BaseClickPackageModerationTestCase(TestCaseWithFactory): | 180 | class BaseClickPackageModerationTestCase(TestCaseWithFactory): |
146 | 162 | 181 | ||
147 | 163 | 182 | ||
148 | === modified file 'src/core/tests/factory.py' | |||
149 | --- src/core/tests/factory.py 2014-09-22 19:42:51 +0000 | |||
150 | +++ src/core/tests/factory.py 2015-04-22 19:38:49 +0000 | |||
151 | @@ -50,12 +50,14 @@ | |||
152 | 50 | 50 | ||
153 | 51 | # Create an openid record too. | 51 | # Create an openid record too. |
154 | 52 | if open_id is None: | 52 | if open_id is None: |
156 | 53 | open_id = full_claimed_id(self.getUniqueString(prefix='ident-')) | 53 | open_id = self.getUniqueString(prefix='ident-') |
157 | 54 | elif open_id is False: | 54 | elif open_id is False: |
158 | 55 | return user | 55 | return user |
159 | 56 | 56 | ||
160 | 57 | claimed_id = full_claimed_id(open_id) | ||
161 | 58 | |||
162 | 57 | UserOpenID.objects.create( | 59 | UserOpenID.objects.create( |
164 | 58 | user=user, claimed_id=open_id, display_id=open_id) | 60 | user=user, claimed_id=claimed_id, display_id=claimed_id) |
165 | 59 | 61 | ||
166 | 60 | return user | 62 | return user |
167 | 61 | 63 | ||
168 | 62 | 64 | ||
169 | === modified file 'src/core/tests/helpers.py' | |||
170 | --- src/core/tests/helpers.py 2014-10-07 19:04:20 +0000 | |||
171 | +++ src/core/tests/helpers.py 2015-04-22 19:38:49 +0000 | |||
172 | @@ -1,3 +1,7 @@ | |||
173 | 1 | from operator import itemgetter | ||
174 | 2 | |||
175 | 3 | from django.db import connection | ||
176 | 4 | from django.test.utils import CaptureQueriesContext | ||
177 | 1 | from mock import patch | 5 | from mock import patch |
178 | 2 | 6 | ||
179 | 3 | from core.utilities import web_services | 7 | from core.utilities import web_services |
180 | @@ -27,3 +31,55 @@ | |||
181 | 27 | } | 31 | } |
182 | 28 | data.update(**kwargs) | 32 | data.update(**kwargs) |
183 | 29 | return data | 33 | return data |
184 | 34 | |||
185 | 35 | |||
186 | 36 | def assert_no_extra_queries_after(modify_data, f, *args, **kwargs): | ||
187 | 37 | """Assert function performs equal query numbers after some change. | ||
188 | 38 | |||
189 | 39 | Many views perform terribly because they perform extra queries | ||
190 | 40 | for every item in some list. For example when looping over a | ||
191 | 41 | list of users to present them, if a value is accessed through | ||
192 | 42 | a foreign key then it may perform an extra query. If care | ||
193 | 43 | is not taken then the view may perform terribly when | ||
194 | 44 | operating on a large list. This is often worked around via | ||
195 | 45 | .prefetch_related() or .select_related(). | ||
196 | 46 | |||
197 | 47 | This function helps in testing that this doesn't happen. The arguments | ||
198 | 48 | to this function are a callable to modify data, and a function | ||
199 | 49 | to call before and after (*args and **kwargs are passed | ||
200 | 50 | through to the latter function). Both calls to the function | ||
201 | 51 | should issue the same number of queries. | ||
202 | 52 | |||
203 | 53 | For instance | ||
204 | 54 | |||
205 | 55 | self.factory.makeUser() | ||
206 | 56 | assert_no_extra_queries_after( | ||
207 | 57 | self.factory.makeUser, | ||
208 | 58 | self.client.get, '/users'): | ||
209 | 59 | |||
210 | 60 | Will first request the view and record how many queries were | ||
211 | 61 | done. It will then run the modify function, creating another user | ||
212 | 62 | in this case, and then request the view again. If the second | ||
213 | 63 | request doesn't issue the same number of queries then an | ||
214 | 64 | AssertionError will be raised. | ||
215 | 65 | """ | ||
216 | 66 | first = CaptureQueriesContext(connection) | ||
217 | 67 | with first: | ||
218 | 68 | f(*args, **kwargs) | ||
219 | 69 | modify_data() | ||
220 | 70 | second = CaptureQueriesContext(connection) | ||
221 | 71 | with second: | ||
222 | 72 | f(*args, **kwargs) | ||
223 | 73 | if len(first) != len(second): | ||
224 | 74 | message = ("Different number of queries for the " | ||
225 | 75 | "second execution. {} != {}".format( | ||
226 | 76 | len(first), len(second))) | ||
227 | 77 | |||
228 | 78 | def format_queries(qs): | ||
229 | 79 | return "\n\n".join(map(str, map(itemgetter('sql'), qs))) | ||
230 | 80 | |||
231 | 81 | message += "\nFirst queries:\n" | ||
232 | 82 | message += format_queries(first.captured_queries) | ||
233 | 83 | message += "\n\n\nSecond queries:\n" | ||
234 | 84 | message += format_queries(second.captured_queries) | ||
235 | 85 | raise AssertionError(message) | ||
236 | 30 | 86 | ||
237 | === modified file 'src/core/tests/test_utilities.py' | |||
238 | --- src/core/tests/test_utilities.py 2014-10-03 17:54:35 +0000 | |||
239 | +++ src/core/tests/test_utilities.py 2015-04-22 19:38:49 +0000 | |||
240 | @@ -376,22 +376,22 @@ | |||
241 | 376 | sso_user_data = self.mock_data_for_account( | 376 | sso_user_data = self.mock_data_for_account( |
242 | 377 | displayname='John Does', email='user@email.com') | 377 | displayname='John Does', email='user@email.com') |
243 | 378 | self.mock_get_data.return_value = sso_user_data | 378 | self.mock_get_data.return_value = sso_user_data |
245 | 379 | openid = full_claimed_id('existent') | 379 | open_id = 'existent' |
246 | 380 | self.factory.makeUser( | 380 | self.factory.makeUser( |
247 | 381 | first_name='John', last_name='Does', email='user@email.com', | 381 | first_name='John', last_name='Does', email='user@email.com', |
250 | 382 | open_id=openid) | 382 | open_id=open_id) |
251 | 383 | user, created = update_or_create_user_from_oauth('existent') | 383 | user, created = update_or_create_user_from_oauth(open_id) |
252 | 384 | self.assertIsNotNone(user) | 384 | self.assertIsNotNone(user) |
253 | 385 | self.assertFalse(created) | 385 | self.assertFalse(created) |
254 | 386 | self.assert_user_data(user, sso_user_data) | 386 | self.assert_user_data(user, sso_user_data) |
255 | 387 | 387 | ||
256 | 388 | def test_missing_account_data_and_existing_user(self): | 388 | def test_missing_account_data_and_existing_user(self): |
257 | 389 | self.mock_get_data.return_value = None | 389 | self.mock_get_data.return_value = None |
259 | 390 | openid = full_claimed_id('existent') | 390 | open_id = 'existent' |
260 | 391 | self.factory.makeUser( | 391 | self.factory.makeUser( |
261 | 392 | first_name='John', last_name='Does', email='user@email.com', | 392 | first_name='John', last_name='Does', email='user@email.com', |
264 | 393 | open_id=openid) | 393 | open_id=open_id) |
265 | 394 | user, created = update_or_create_user_from_oauth('existent') | 394 | user, created = update_or_create_user_from_oauth(open_id) |
266 | 395 | self.assertIsNotNone(user) | 395 | self.assertIsNotNone(user) |
267 | 396 | self.assertFalse(created) | 396 | self.assertFalse(created) |
268 | 397 | 397 | ||
269 | @@ -399,12 +399,12 @@ | |||
270 | 399 | sso_user_data = self.mock_data_for_account( | 399 | sso_user_data = self.mock_data_for_account( |
271 | 400 | displayname='Juan Hace', email='juan@email.com') | 400 | displayname='Juan Hace', email='juan@email.com') |
272 | 401 | self.mock_get_data.return_value = sso_user_data | 401 | self.mock_get_data.return_value = sso_user_data |
274 | 402 | openid = full_claimed_id('existent') | 402 | open_id = 'existent' |
275 | 403 | self.factory.makeUser( | 403 | self.factory.makeUser( |
276 | 404 | first_name='John', last_name='Does', email='user@email.com', | 404 | first_name='John', last_name='Does', email='user@email.com', |
278 | 405 | open_id=openid) | 405 | open_id=open_id) |
279 | 406 | user, created = update_or_create_user_from_oauth( | 406 | user, created = update_or_create_user_from_oauth( |
281 | 407 | 'existent', update_window=None) | 407 | open_id, update_window=None) |
282 | 408 | self.assertIsNotNone(user) | 408 | self.assertIsNotNone(user) |
283 | 409 | self.assertFalse(created) | 409 | self.assertFalse(created) |
284 | 410 | self.assert_user_data(user, sso_user_data) | 410 | self.assert_user_data(user, sso_user_data) |
285 | @@ -413,12 +413,12 @@ | |||
286 | 413 | sso_user_data = self.mock_data_for_account( | 413 | sso_user_data = self.mock_data_for_account( |
287 | 414 | displayname='Juan Hace', email='juan@email.com') | 414 | displayname='Juan Hace', email='juan@email.com') |
288 | 415 | self.mock_get_data.return_value = sso_user_data | 415 | self.mock_get_data.return_value = sso_user_data |
290 | 416 | openid = full_claimed_id('existent') | 416 | open_id = 'existent' |
291 | 417 | user = self.factory.makeUser( | 417 | user = self.factory.makeUser( |
292 | 418 | first_name='John', last_name='Does', email='user@email.com', | 418 | first_name='John', last_name='Does', email='user@email.com', |
294 | 419 | open_id=openid) | 419 | open_id=open_id) |
295 | 420 | logged_user, created = update_or_create_user_from_oauth( | 420 | logged_user, created = update_or_create_user_from_oauth( |
297 | 421 | 'existent', update_window=60 * 60 * 24) | 421 | open_id, update_window=60 * 60 * 24) |
298 | 422 | self.assertIsNotNone(logged_user) | 422 | self.assertIsNotNone(logged_user) |
299 | 423 | self.assertFalse(created) | 423 | self.assertFalse(created) |
300 | 424 | current_sso_user_data = self.mock_data_for_account( | 424 | current_sso_user_data = self.mock_data_for_account( |
301 | @@ -429,12 +429,12 @@ | |||
302 | 429 | sso_user_data = self.mock_data_for_account( | 429 | sso_user_data = self.mock_data_for_account( |
303 | 430 | verified=False, displayname='Juan Hace', email='juan@email.com') | 430 | verified=False, displayname='Juan Hace', email='juan@email.com') |
304 | 431 | self.mock_get_data.return_value = sso_user_data | 431 | self.mock_get_data.return_value = sso_user_data |
306 | 432 | openid = full_claimed_id('existent') | 432 | open_id = 'existent' |
307 | 433 | self.factory.makeUser( | 433 | self.factory.makeUser( |
308 | 434 | first_name='John', last_name='Does', email='user@email.com', | 434 | first_name='John', last_name='Does', email='user@email.com', |
310 | 435 | open_id=openid) | 435 | open_id=open_id) |
311 | 436 | user, created = update_or_create_user_from_oauth( | 436 | user, created = update_or_create_user_from_oauth( |
313 | 437 | 'existent', update_window=None) | 437 | open_id, update_window=None) |
314 | 438 | self.assertIsNotNone(user) | 438 | self.assertIsNotNone(user) |
315 | 439 | self.assertFalse(created) | 439 | self.assertFalse(created) |
316 | 440 | self.assertEqual(user.get_full_name(), 'John Does') | 440 | self.assertEqual(user.get_full_name(), 'John Does') |
317 | @@ -444,12 +444,12 @@ | |||
318 | 444 | sso_user_data = self.mock_data_for_account( | 444 | sso_user_data = self.mock_data_for_account( |
319 | 445 | displayname='Juan Hace', email='') | 445 | displayname='Juan Hace', email='') |
320 | 446 | self.mock_get_data.return_value = sso_user_data | 446 | self.mock_get_data.return_value = sso_user_data |
322 | 447 | openid = full_claimed_id('existent') | 447 | open_id = 'existent' |
323 | 448 | self.factory.makeUser( | 448 | self.factory.makeUser( |
324 | 449 | first_name='John', last_name='Does', email='user@email.com', | 449 | first_name='John', last_name='Does', email='user@email.com', |
326 | 450 | open_id=openid) | 450 | open_id=open_id) |
327 | 451 | user, created = update_or_create_user_from_oauth( | 451 | user, created = update_or_create_user_from_oauth( |
329 | 452 | 'existent', update_window=None) | 452 | open_id, update_window=None) |
330 | 453 | self.assertIsNotNone(user) | 453 | self.assertIsNotNone(user) |
331 | 454 | self.assertFalse(created) | 454 | self.assertFalse(created) |
332 | 455 | self.assertEqual(user.get_full_name(), 'John Does') | 455 | self.assertEqual(user.get_full_name(), 'John Does') |
333 | @@ -459,12 +459,12 @@ | |||
334 | 459 | sso_user_data = self.mock_data_for_account( | 459 | sso_user_data = self.mock_data_for_account( |
335 | 460 | displayname=None, email='new@email.com') | 460 | displayname=None, email='new@email.com') |
336 | 461 | self.mock_get_data.return_value = sso_user_data | 461 | self.mock_get_data.return_value = sso_user_data |
338 | 462 | openid = full_claimed_id('existent') | 462 | open_id = 'existent' |
339 | 463 | self.factory.makeUser( | 463 | self.factory.makeUser( |
340 | 464 | first_name='John', last_name='Does', email='user@email.com', | 464 | first_name='John', last_name='Does', email='user@email.com', |
342 | 465 | open_id=openid) | 465 | open_id=open_id) |
343 | 466 | user, created = update_or_create_user_from_oauth( | 466 | user, created = update_or_create_user_from_oauth( |
345 | 467 | 'existent', update_window=None) | 467 | open_id, update_window=None) |
346 | 468 | self.assertIsNotNone(user) | 468 | self.assertIsNotNone(user) |
347 | 469 | self.assertFalse(created) | 469 | self.assertFalse(created) |
348 | 470 | self.assertEqual(user.get_full_name(), 'John Does') | 470 | self.assertEqual(user.get_full_name(), 'John Does') |
LGTM