Example #1
0
    def test_user_email_verification_disabled(self):
        user = self.create_django_user(email='*****@*****.**',
                                       first_name='John',
                                       last_name='Doe',
                                       password='******')

        a = self.app.accounts.get(user.href)

        self.assertTrue(user.is_active)
        self.assertFalse(user.is_verified)
        self.assertEqual(a.status, a.STATUS_ENABLED)

        a.status = a.STATUS_DISABLED
        a.save()
        sb = StormpathBackend()
        user = sb._create_or_get_user(a)

        self.assertFalse(user.is_active)
        self.assertFalse(user.is_verified)
        self.assertEqual(a.status, a.STATUS_DISABLED)

        a.status = a.STATUS_UNVERIFIED
        a.save()
        user = sb._create_or_get_user(a)
        self.assertFalse(user.is_active)
        self.assertFalse(user.is_verified)
        self.assertEqual(a.status, a.STATUS_UNVERIFIED)
Example #2
0
    def test_user_email_verification_disabled(self):
        user = self.create_django_user(
            email='*****@*****.**',
            first_name='John',
            last_name='Doe',
            password='******',
        )

        a = self.app.accounts.get(user.href)

        self.assertTrue(user.is_active)
        self.assertFalse(user.is_verified)
        self.assertEqual(a.status, a.STATUS_ENABLED)

        a.status = a.STATUS_DISABLED
        a.save()
        sb = StormpathBackend()
        user = sb._create_or_get_user(a)

        self.assertFalse(user.is_active)
        self.assertFalse(user.is_verified)
        self.assertEqual(a.status, a.STATUS_DISABLED)

        a.status = a.STATUS_UNVERIFIED
        a.save()
        user = sb._create_or_get_user(a)
        self.assertFalse(user.is_active)
        self.assertFalse(user.is_verified)
        self.assertEqual(a.status, a.STATUS_UNVERIFIED)
Example #3
0
    def test_authentication_pulls_user_into_local_db(self):
        self.assertEqual(0, UserModel.objects.count())
        acc = self.app.accounts.create({
            'email': '*****@*****.**',
            'given_name': 'John',
            'surname': 'Doe',
            'password': '******',
        })

        b = StormpathBackend()
        b.authenticate(acc.email, 'TestPassword123!')
        self.assertEqual(1, UserModel.objects.count())
Example #4
0
    def test_authentication_pulls_user_into_local_db(self):
        self.assertEqual(0, UserModel.objects.count())
        acc = self.app.accounts.create({
            'email': '*****@*****.**',
            'given_name': 'John',
            'surname': 'Doe',
            'password': '******',
        })

        b = StormpathBackend()
        b.authenticate(acc.email, 'TestPassword123!')
        self.assertEqual(1, UserModel.objects.count())
Example #5
0
    def test_update_or_create_user_with_existing_and_password(self):
        UserModel.objects.create_user(
            email='*****@*****.**',
            given_name='Sample',
            surname='User',
            password='******',
        )

        user, created = UserModel.objects.update_or_create(
            defaults={
                'given_name': 'Updated',
                'password': '******'
            },
            email='*****@*****.**',
            given_name='Sample',
            surname='User',
        )

        self.assertFalse(created)
        self.assertEqual(
            self.app.accounts.get(user.href).given_name, 'Updated')
        user = UserModel.objects.get(email='*****@*****.**')
        self.assertEqual(user.given_name, 'Updated')
        self.assertEqual(user.surname, 'User')
        self.assertIsNotNone(StormpathBackend().authenticate(
            '*****@*****.**', '123!TestPassword'))
Example #6
0
    def test_updating_a_users_password(self):
        user = self.create_django_user(email='*****@*****.**',
                                       first_name='John',
                                       last_name='Doe',
                                       password='******')
        a = self.app.accounts.get(user.href)
        self.assertEqual(user.href, a.href)

        user.set_password('123!TestPassword')
        self.assertTrue(hasattr(user, 'raw_password'))

        user.save()

        b = StormpathBackend()

        self.assertFalse(hasattr(user, 'raw_password'))
        self.assertFalse(user.has_usable_password())
        self.assertTrue(b.authenticate(a.email, '123!TestPassword'))
        self.assertFalse(b.authenticate(a.email, 'TestPassword123!'))
Example #7
0
    def test_updating_a_users_password(self):
        user = self.create_django_user(
            email='*****@*****.**',
            first_name='John',
            last_name='Doe',
            password='******',
        )

        a = self.app.accounts.get(user.href)
        self.assertEqual(user.href, a.href)

        user.set_password('123!TestPassword')
        self.assertTrue(hasattr(user, 'raw_password'))

        user.save()

        b = StormpathBackend()

        self.assertFalse(hasattr(user, 'raw_password'))
        self.assertFalse(user.has_usable_password())
        self.assertTrue(b.authenticate(a.email, '123!TestPassword'))
        self.assertFalse(b.authenticate(a.email, 'TestPassword123!'))
Example #8
0
    def test_groups_get_pulled_in_on_authentication(self):
        self.assertEqual(0, UserModel.objects.count())
        self.assertEqual(0, Group.objects.count())
        acc = self.app.accounts.create({
            'email': '*****@*****.**',
            'given_name': 'John',
            'surname': 'Doe',
            'password': '******',
        })

        g1 = self.app.groups.create({'name': 'testGroup'})
        g2 = self.app.groups.create({'name': 'testGroup2'})  # noqa

        acc.add_group(g1)
        acc.save()

        b = StormpathBackend()
        user = b.authenticate(acc.email, 'TestPassword123!!!')

        self.assertEqual(1, UserModel.objects.count())
        self.assertEqual(2, Group.objects.count())
        self.assertEqual(1, user.groups.filter(name=g1.name).count())
Example #9
0
    def test_get_or_create_user_with_non_existing(self):
        user, created = UserModel.objects.get_or_create(
            email='*****@*****.**',
            given_name='Sample',
            surname='User',
            password='******')

        self.assertTrue(created)
        self.assertEqual(self.app.accounts.get(user.href).given_name, 'Sample')
        user = UserModel.objects.get(email='*****@*****.**')
        self.assertEqual(user.surname, 'User')
        self.assertIsNotNone(StormpathBackend().authenticate(
            '*****@*****.**', 'TestPassword123!'))
Example #10
0
    def test_groups_get_pulled_in_on_authentication(self):
        self.assertEqual(0, UserModel.objects.count())
        self.assertEqual(0, Group.objects.count())
        acc = self.app.accounts.create({
            'email': '*****@*****.**',
            'given_name': 'John',
            'surname': 'Doe',
            'password': '******',
        })

        g1 = self.app.groups.create({'name': 'testGroup'})
        g2 = self.app.groups.create({'name': 'testGroup2'})  # noqa

        acc.add_group(g1)
        acc.save()

        b = StormpathBackend()
        user = b.authenticate(acc.email, 'TestPassword123!!!')

        self.assertEqual(1, UserModel.objects.count())
        self.assertEqual(2, Group.objects.count())
        self.assertEqual(1, user.groups.filter(name=g1.name).count())
Example #11
0
    def test_auth_doesnt_work_for_bogus_user(self):
        b = StormpathBackend()

        u = b.authenticate('*****@*****.**', 'TestPassword123!')
        self.assertIsNone(u)
        self.assertEqual(0, UserModel.objects.count())
Example #12
0
    def test_auth_doesnt_work_for_bogus_user(self):
        b = StormpathBackend()

        u = b.authenticate('*****@*****.**', 'TestPassword123!')
        self.assertIsNone(u)
        self.assertEqual(0, UserModel.objects.count())