def test_setup_phone_call(self, fake):
        response = self._post(data={'setup_view-current_step': 'welcome'})
        self.assertContains(response, 'Method:')

        response = self._post(data={'setup_view-current_step': 'method',
                                    'method-method': 'call'})
        self.assertContains(response, 'Number:')

        response = self._post(data={'setup_view-current_step': 'call',
                                    'call-number': '+31101234567'})
        self.assertContains(response, 'Token:')
        self.assertContains(response, 'We are calling your phone right now')

        # assert that the token was send to the gateway
        self.assertEqual(fake.return_value.method_calls,
                         [call.make_call(device=ANY, token=ANY)])

        # assert that tokens are verified
        response = self._post(data={'setup_view-current_step': 'validation',
                                    'validation-token': '666'})
        self.assertEqual(response.context_data['wizard']['form'].errors,
                         {'token': ['Entered token is not valid.']})

        # submitting correct token should finish the setup
        token = fake.return_value.make_call.call_args[1]['token']
        response = self._post(data={'setup_view-current_step': 'validation',
                                    'validation-token': token})
        self.assertRedirects(response, reverse('two_factor:setup_complete'))

        phones = self.user.phonedevice_set.all()
        self.assertEqual(len(phones), 1)
        self.assertEqual(phones[0].name, 'default')
        self.assertEqual(phones[0].number.as_e164, '+31101234567')
        self.assertEqual(phones[0].method, 'call')
Ejemplo n.º 2
0
    def test_setup_phone_call(self, fake):
        response = self._post(data={'setup_view-current_step': 'welcome'})
        self.assertContains(response, 'Method:')

        response = self._post(data={'setup_view-current_step': 'method',
                                    'method-method': 'call'})
        self.assertContains(response, 'Number:')

        response = self._post(data={'setup_view-current_step': 'call',
                                    'call-number': '+123456789'})
        self.assertContains(response, 'Token:')
        self.assertContains(response, 'We are calling your phone right now')

        # assert that the token was send to the gateway
        self.assertEqual(fake.return_value.method_calls,
                         [call.make_call(device=ANY, token=ANY)])

        # assert that tokens are verified
        response = self._post(data={'setup_view-current_step': 'validation',
                                    'validation-token': '666'})
        self.assertEqual(response.context_data['wizard']['form'].errors,
                         {'token': ['Entered token is not valid.']})

        # submitting correct token should finish the setup
        token = fake.return_value.make_call.call_args[1]['token']
        response = self._post(data={'setup_view-current_step': 'validation',
                                    'validation-token': token})
        self.assertRedirects(response, reverse('two_factor:setup_complete'))

        phones = PhoneDevice.objects.filter(user=self.user).all()
        self.assertEqual(len(phones), 1)
        self.assertEqual(phones[0].name, 'default')
        self.assertEqual(phones[0].number, '+123456789')
        self.assertEqual(phones[0].method, 'call')
Ejemplo n.º 3
0
    def test_setup_phone_call(self, fake):
        response = self._post(data={"setup_view-current_step": "welcome"})
        self.assertContains(response, "Method:")

        response = self._post(data={"setup_view-current_step": "method", "method-method": "call"})
        self.assertContains(response, "Number:")

        response = self._post(data={"setup_view-current_step": "call", "call-number": "+31101234567"})
        self.assertContains(response, "Token:")
        self.assertContains(response, "We are calling your phone right now")

        # assert that the token was send to the gateway
        self.assertEqual(fake.return_value.method_calls, [call.make_call(device=ANY, token=ANY)])

        # assert that tokens are verified
        response = self._post(data={"setup_view-current_step": "validation", "validation-token": "666"})
        self.assertEqual(response.context_data["wizard"]["form"].errors, {"token": ["Entered token is not valid."]})

        # submitting correct token should finish the setup
        token = fake.return_value.make_call.call_args[1]["token"]
        response = self._post(data={"setup_view-current_step": "validation", "validation-token": token})
        self.assertRedirects(response, reverse("two_factor:setup_complete"))

        phones = self.user.phonedevice_set.all()
        self.assertEqual(len(phones), 1)
        self.assertEqual(phones[0].name, "default")
        self.assertEqual(phones[0].number.as_e164, "+31101234567")
        self.assertEqual(phones[0].method, "call")