def test_gets_user_by_email(self):
     backend = PasswordlessAuthenticationBackend()
     other_user = ListUser(email='*****@*****.**')
     other_user.username = '******'
     other_user.save()
     desired_user = ListUser.objects.create(email='*****@*****.**')
     found_user = backend.get_user('*****@*****.**')
     self.assertEqual(found_user, desired_user)
예제 #2
0
class AuthenticateTest(TestCase):
    def setUp(self):
        self.backend = PasswordlessAuthenticationBackend()

    def test_returns_None_if_no_such_token(self):
        self.assertIsNone(self.backend.authenticate(uid='abcdoesntexist123'))

    def test_existing_user__returns_user_matching_email_associated_with_token_uid(
            self):
        email = '*****@*****.**'
        token = Token.objects.create(email=email)
        existing_user = User.objects.create(email=email)

        authenticated_user = self.backend.authenticate(uid=token.uid)

        self.assertEqual(authenticated_user, existing_user)

    def test_no_existing_user__creates_new_user_with_email_associated_with_token_uid(
            self):
        email = '*****@*****.**'
        token = Token.objects.create(email=email)
        self.assertEqual(User.objects.count(), 0)

        newly_created_and_authenticated_user = self.backend.authenticate(
            uid=token.uid)

        self.assertEqual(User.objects.count(), 1)
        self.assertEqual(newly_created_and_authenticated_user,
                         User.objects.first())
        self.assertEqual(newly_created_and_authenticated_user.email,
                         '*****@*****.**')

    def test_get_existing_user(self):
        desired_user = User.objects.create(email='*****@*****.**')
        User.objects.create(email='*****@*****.**')
        self.assertEqual(self.backend.get_user('*****@*****.**'),
                         desired_user)

    def test_get_missing_user(self):
        self.assertIsNone(self.backend.get_user('*****@*****.**'))
예제 #3
0
 def test_no_arguments_raises_value_error(self):
     with self.assertRaises(ValueError):
         PasswordlessAuthenticationBackend.get_user()
예제 #4
0
 def test_return_None_if_no_user_with_that_pk(self):
     self.assertIsNone(PasswordlessAuthenticationBackend.get_user(pk=5))
예제 #5
0
 def test_get_user_by_pk(self):
     desired_user = self.create_two_users_one_from_desired_pk_or_email(pk=5)
     found_user = PasswordlessAuthenticationBackend.get_user(5)
     self.assertEqual(desired_user, found_user)
예제 #6
0
 def test_returns_None_if_no_user_with_given_email(self):
     self.assertIsNone(
         PasswordlessAuthenticationBackend.get_user(email='NOPE'))
예제 #7
0
 def test_gets_user_by_email(self):
     User.objects.create(email='*****@*****.**')
     desired_user = User.objects.create(email='*****@*****.**')
     found_user = PasswordlessAuthenticationBackend.get_user(
         email='*****@*****.**')
     self.assertEqual(desired_user, found_user)