~deadlight/canonical-identity-provider/logout

« back to all changes in this revision

Viewing changes to src/webui/tests/test_views_registration.py

  • Committer: Ubuntu One Auto Copilot
  • Author(s): Maximiliano Bertacchini
  • Date: 2018-10-25 18:05:01 UTC
  • mfrom: (1664.4.12 drop-recaptcha-v1)
  • Revision ID: otto-copilot@canonical.com-20181025180501-jdf7qwlrpef93aac
Drop the last bits of reCaptcha V1 code.

Merged from https://code.launchpad.net/~maxiberta/canonical-identity-provider/drop-recaptcha-v1/+merge/356937

Show diffs side-by-side

added added

removed removed

Lines of Context:
161
161
        ctx = response.context_data
162
162
        self.assertEqual(ctx['form']['email'].value(), 'test@test.com')
163
163
 
164
 
    @switches(CAPTCHA=False)
165
 
    def test_get_optional_captcha_switch_off(self):
166
 
        response = self.get()
167
 
        self.assertEqual(response.context_data['captcha_required'], False)
168
 
 
169
 
    @switches(CAPTCHA=True, CAPTCHA_NEW_ACCOUNT=True)
170
 
    def test_get_optional_captcha_switch_on(self):
171
 
        response = self.get()
172
 
        self.assertEqual(response.context_data['captcha_required'], True)
173
 
 
174
164
    def test_post_required_fields(self):
175
165
        response = self.post()
176
166
        self.assert_form_displayed(
213
203
            email=self.TESTDATA['email'],
214
204
            password=self.TESTDATA['password'],
215
205
            displayname=self.TESTDATA['displayname'],
216
 
            captcha_id=None,
217
 
            captcha_solution=None,
218
 
            create_captcha=False,
219
206
            creation_source=WEB_CREATION_SOURCE,
220
207
        )
221
208
 
242
229
            password=self.TESTDATA['password'],
243
230
            displayname=self.TESTDATA['displayname'],
244
231
            username=self.TESTDATA['username'],
245
 
            captcha_id=None,
246
 
            captcha_solution=None,
247
 
            create_captcha=False,
248
232
            creation_source=WEB_CREATION_SOURCE,
249
233
        )
250
234
        self.TESTDATA.pop('username')
337
321
        expected_args = dict(email=self.TESTDATA['email'],
338
322
                             password=self.TESTDATA['password'],
339
323
                             displayname=self.TESTDATA['displayname'],
340
 
                             create_captcha=False,
341
 
                             captcha_solution=None,
342
 
                             captcha_id=None,
343
324
                             creation_source='web-flow',
344
325
                             oid_token=token)
345
326
        self.mock_api_register.assert_called_once_with(**expected_args)
351
332
        self.assert_form_displayed(response, email=VERIFY_EMAIL_MESSAGE)
352
333
        self.assert_stat_calls(['error.email'])
353
334
 
354
 
    def test_post_captcha_required(self):
355
 
        exc = api_errors.CaptchaRequired(Mock())
356
 
        self.mock_api_register.side_effect = exc
357
 
        response = self.post(**self.TESTDATA)
358
 
        self.assert_form_displayed(response)
359
 
        self.assertEqual(response.context_data['captcha_required'], True)
360
 
 
361
 
    def test_post_captcha_failure(self):
362
 
        mock_response = Mock()
363
 
        body = {'extra': {'captcha_message': 'XXX'}}
364
 
        exc = api_errors.CaptchaFailure(mock_response, body)
365
 
        self.mock_api_register.side_effect = exc
366
 
 
367
 
        response = self.post(**self.TESTDATA)
368
 
        self.assert_form_displayed(response)
369
 
        self.assertEqual(response.context_data['captcha_required'], True)
370
 
        self.assertEqual(
371
 
            response.context_data['captcha_error'],
372
 
            '&error=XXX')
373
 
        self.assert_stat_calls(['error.captcha'])
374
 
 
375
 
    def test_post_captcha_error(self):
376
 
        mock_response = Mock()
377
 
        body = {}
378
 
        exc = api_errors.CaptchaError(mock_response, body)
379
 
        self.mock_api_register.side_effect = exc
380
 
 
381
 
        response = self.post(**self.TESTDATA)
382
 
        self.assert_form_displayed(response)
383
 
        self.assertEqual(response.context_data['captcha_required'], True)
384
 
        self.assert_stat_calls(['error.captcha'])
385
 
 
386
335
 
387
336
class RegisterTimelineTestCase(
388
337
        SSOBaseTestCase, RegisterTestMixin, TimelineActionMixin):
633
582
        self.assertEqual(response.status_code, 405)
634
583
 
635
584
 
 
585
@switches(TWOFACTOR=True)
636
586
class TwoFactorSyncTestCase(SSOBaseTestCase):
637
587
    """Tests for 2fa OTP synchronization."""
638
588
 
656
606
            email = self.email
657
607
        data = {'email': email, 'password': DEFAULT_USER_PASSWORD}
658
608
        url = reverse('login')
659
 
        return self.client.post(url, data)
 
609
        response = self.client.post(url, data)
 
610
        self.assertRedirects(response, reverse('account-index'))
 
611
        return response
660
612
 
661
613
    def test_shows_all_fields_for_synchronization(self):
662
614
        self.factory.make_account(email=self.email)