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)
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)
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())
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'))
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!'))
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!'))
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())
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!'))
def test_auth_doesnt_work_for_bogus_user(self): b = StormpathBackend() u = b.authenticate('*****@*****.**', 'TestPassword123!') self.assertIsNone(u) self.assertEqual(0, UserModel.objects.count())