class AuthenticationBackendTests(unittest.TestCase):
    @override_settings(AUTH_USER_MODULE='tests.NoUsernameUser')
    def test_authenticate_with_custom_user_model(self):
        """When a custom user model is used that doesn't have a field
        called "username" return `None`
        """
        result = authenticate(username='******')
        self.assertIsNone(result)

    @skipIf(django.VERSION < (1, 5), 'Custom user not supported')
    @patch('nopassword.backends.sms.TwilioRestClient')
    @override_settings(AUTH_USER_MODEL='tests.PhoneNumberUser', NOPASSWORD_TWILIO_SID="aaaaaaaa",
                       NOPASSWORD_TWILIO_AUTH_TOKEN="bbbbbbbb", DEFAULT_FROM_NUMBER="+15555555")
    def test_twilio_backend(self, mock_object):
        self.user = get_user_model().objects.create(username='******')
        self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
        self.assertEqual(len(self.code.code), 20)
        self.assertIsNotNone(authenticate(username=self.user.username, code=self.code.code))
        self.assertEqual(LoginCode.objects.filter(user=self.user, code=self.code.code).count(), 0)

        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()

        self.backend.send_login_code(self.code)
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)

        authenticate(username=self.user.username)
        self.assertEqual(LoginCode.objects.filter(user=self.user).count(), 1)

        self.user.delete()
 def test_twilio_backend_with_https(self, mock_object):
     self.backend = TwilioBackend()
     self.backend.twilio_client.messages.create = MagicMock()
     self.backend.send_login_code(self.code, secure=True, host='secure.example.com')
     _, kwargs = self.backend.twilio_client.messages.create.call_args
     login_url = self.code.login_url(secure=True, host='secure.example.com')
     self.assertIn(login_url, kwargs.get('body'))
class TwilioBackendTests(SimpleTestCase):
    def setUp(self):
        self.user = get_user_model().objects.create(username='******')
        self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
        self.assertEqual(len(self.code.code), 20)
        self.assertIsNotNone(authenticate(username=self.user.username, code=self.code.code))
        self.assertEqual(LoginCode.objects.filter(user=self.user, code=self.code.code).count(), 0)

    def tearDown(self):
        self.user.delete()

    @patch('nopassword.backends.sms.TwilioRestClient')
    def test_twilio_backend(self, mock_object):
        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()
        self.backend.send_login_code(self.code)
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)
        _, kwargs = self.backend.twilio_client.messages.create.call_args
        self.assertIn(self.code.login_url(secure=False), kwargs.get('body'))

        authenticate(username=self.user.username)
        self.assertEqual(LoginCode.objects.filter(user=self.user).count(), 1)

    @patch('nopassword.backends.sms.TwilioRestClient')
    def test_twilio_backend_with_https(self, mock_object):
        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()
        self.backend.send_login_code(self.code, secure=True, host='secure.example.com')
        _, kwargs = self.backend.twilio_client.messages.create.call_args
        login_url = self.code.login_url(secure=True, host='secure.example.com')
        self.assertIn(login_url, kwargs.get('body'))
Exemple #4
0
 def test_twilio_backend(self, mock_object):
     self.backend = TwilioBackend()
     self.backend.twilio_client.messages.create = MagicMock()
     self.backend.send_login_code(self.code, {'url': 'https://example.com'})
     self.assertTrue(mock_object.called)
     self.assertTrue(self.backend.twilio_client.messages.create.called)
     _, kwargs = self.backend.twilio_client.messages.create.call_args
     self.assertIn('https://example.com', kwargs.get('body'))
    def test_twilio_backend(self, mock_object):
        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()
        self.backend.send_login_code(self.code)
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)
        _, kwargs = self.backend.twilio_client.messages.create.call_args
        self.assertIn(self.code.login_url(secure=False), kwargs.get('body'))

        authenticate(username=self.user.username)
        self.assertEqual(LoginCode.objects.filter(user=self.user).count(), 1)
Exemple #6
0
class TwilioBackendTests(TestCase):
    def setUp(self):
        self.user = get_user_model().objects.create(username='******')
        self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
        self.assertEqual(len(self.code.code), 64)
        self.assertIsNotNone(
            authenticate(username=self.user.username, code=self.code.code))

    @patch('nopassword.backends.sms.TwilioRestClient')
    def test_twilio_backend(self, mock_object):
        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()
        self.backend.send_login_code(self.code, {'url': 'https://example.com'})
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)
        _, kwargs = self.backend.twilio_client.messages.create.call_args
        self.assertIn('https://example.com', kwargs.get('body'))
    def test_twilio_backend(self, mock_object):
        self.user = get_user_model().objects.create(username='******')
        self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
        self.assertEqual(len(self.code.code), 20)
        self.assertIsNotNone(
            authenticate(username=self.user.username, code=self.code.code))
        self.assertEqual(
            LoginCode.objects.filter(user=self.user,
                                     code=self.code.code).count(), 0)

        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()

        self.backend.send_login_code(self.code)
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)

        authenticate(username=self.user.username)
        self.assertEqual(LoginCode.objects.filter(user=self.user).count(), 1)

        self.user.delete()
class AuthenticationBackendTests(unittest.TestCase):
    @override_settings(AUTH_USER_MODULE='tests.NoUsernameUser')
    def test_authenticate_with_custom_user_model(self):
        """When a custom user model is used that doesn't have a field
        called "username" return `None`
        """
        result = authenticate(username='******')
        self.assertIsNone(result)

    @skipIf(django.VERSION < (1, 5), 'Custom user not supported')
    @patch('nopassword.backends.sms.TwilioRestClient')
    @override_settings(AUTH_USER_MODEL='tests.PhoneNumberUser',
                       NOPASSWORD_TWILIO_SID="aaaaaaaa",
                       NOPASSWORD_TWILIO_AUTH_TOKEN="bbbbbbbb",
                       DEFAULT_FROM_NUMBER="+15555555")
    def test_twilio_backend(self, mock_object):
        self.user = get_user_model().objects.create(username='******')
        self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
        self.assertEqual(len(self.code.code), 20)
        self.assertIsNotNone(
            authenticate(username=self.user.username, code=self.code.code))
        self.assertEqual(
            LoginCode.objects.filter(user=self.user,
                                     code=self.code.code).count(), 0)

        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()

        self.backend.send_login_code(self.code)
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)

        authenticate(username=self.user.username)
        self.assertEqual(LoginCode.objects.filter(user=self.user).count(), 1)

        self.user.delete()
    def test_twilio_backend(self, mock_object):
        self.user = get_user_model().objects.create(username='******')
        self.code = LoginCode.create_code_for_user(self.user, next='/secrets/')
        self.assertEqual(len(self.code.code), 20)
        self.assertIsNotNone(authenticate(username=self.user.username, code=self.code.code))
        self.assertEqual(LoginCode.objects.filter(user=self.user, code=self.code.code).count(), 0)

        self.backend = TwilioBackend()
        self.backend.twilio_client.messages.create = MagicMock()

        self.backend.send_login_code(self.code)
        self.assertTrue(mock_object.called)
        self.assertTrue(self.backend.twilio_client.messages.create.called)

        authenticate(username=self.user.username)
        self.assertEqual(LoginCode.objects.filter(user=self.user).count(), 1)

        self.user.delete()