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')
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')
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")