예제 #1
0
 def test_alias_set_to_username(self):
     roles = [
         'data_admin',
     ]
     claims = {
         'roles': roles,
         'given_name': 'testgivenname',
         'family_name': 'testfamilyname',
         'email': '*****@*****.**',
         'sub': 'e2556752-16d0-445a-8850-f190e860dea4'
     }
     user = get_user_model().objects.create(username='******',
                                            password='******')
     # check that alias is initially empty
     self.assertEqual(user.profile.alias, None)
     _update_user_from_claims(user, claims)
     # test that empty alias is set to username
     self.assertEqual(user.profile.alias, user.username)
     # test that alias will only change on update from claims
     user.profile.alias = "an_alias"
     self.assertNotEqual(user.profile.alias, user.username)
     # test that non-empty alias is also set to username
     _update_user_from_claims(user, claims)
     self.assertEqual(user.profile.alias, user.username)
     self.assertTrue(user.is_active)
예제 #2
0
 def test_add_superuser_role_from_claims(self):
     roles = [
         'product_tech_admin',
     ]
     claims = {
         'roles': roles,
         'given_name': 'testgivenname',
         'family_name': 'testfamilyname',
         'email': '*****@*****.**',
         'sub': 'e2556752-16d0-445a-8850-f190e860dea4',
         'gender': 'Female',
         'birthdate': '1988-05-22'
     }
     user = get_user_model().objects.create(username='******',
                                            password='******')
     self.assertFalse(user.is_staff)
     self.assertTrue(user.is_active)
     _update_user_from_claims(user, claims)
     user = get_user_model().objects.get(id=user.pk)
     self.assertTrue(user.is_superuser)
     self.assertTrue(user.is_staff)
     self.assertTrue(user.is_active)
     self.assertEqual(user.first_name, 'testgivenname')
     self.assertEqual(user.last_name, 'testfamilyname')
     self.assertEqual(user.email, '*****@*****.**')
     self.assertEqual(str(user.profile.auth_service_uuid),
                      'e2556752-16d0-445a-8850-f190e860dea4')
     self.assertEqual(user.profile.gender, 'f')
     self.assertEqual(user.profile.date_of_birth, date(1988, 5, 22))
예제 #3
0
 def test_update_user_from_claims_max_length_errors(self):
     user = get_user_model().objects.create(username='******',
                                            password='******')
     user.profile.auth_service_uuid = \
         'e2556552-16d0-445a-0850-f190e860dea6'
     user.profile.save()
     claims = {
         'given_name': 'a' * 31,
         'family_name': 'testfamilyname',
         'preferred_username': '******',
         'email': '*****@*****.**',
         'sub': 'e2556752-16d0-445a-8850-f190e860dea4'
     }
     with pytest.raises(FieldError):
         _update_user_from_claims(user, claims)
예제 #4
0
 def test_add_user_role_from_claims(self):
     roles = [
         'data_admin',
     ]
     claims = {
         'roles': roles,
         'given_name': 'testgivenname',
         'family_name': 'testfamilyname',
         'email': '*****@*****.**',
         'sub': 'e2556752-16d0-445a-8850-f190e860dea4'
     }
     user = get_user_model().objects.create(username='******',
                                            password='******')
     _update_user_from_claims(user, claims)
     user = get_user_model().objects.get(id=user.pk)
     self.assertFalse(user.is_superuser)
     self.assertTrue(user.is_staff)
     self.assertTrue(user.is_active)
     self.assertEqual(user.groups.all().count(), 1)
     self.assertEqual(user.groups.first().name, 'data_admin')
예제 #5
0
 def test_update_user_from_claims_updates_username(self):
     user = get_user_model().objects.create(username='******',
                                            password='******')
     user2 = get_user_model().objects.create(username='******',
                                             password='******')
     claims = {
         'given_name': 'testgivenname',
         'family_name': 'testfamilyname',
         'preferred_username': '******',
         'email': '*****@*****.**',
         'sub': 'e2556752-16d0-445a-8850-f190e860dea4'
     }
     _update_user_from_claims(user, claims)
     user = get_user_model().objects.get(id=user.pk)
     user2 = get_user_model().objects.get(id=user2.pk)
     self.assertFalse(user.is_superuser)
     self.assertTrue(user.is_active)
     self.assertEqual(user.first_name, 'testgivenname')
     self.assertEqual(user.last_name, 'testfamilyname')
     self.assertEqual(user.email, '*****@*****.**')
     self.assertEqual(user2.username, '3_john')
     self.assertEqual(user.username, 'john')
     self.assertEqual(str(user.profile.auth_service_uuid),
                      'e2556752-16d0-445a-8850-f190e860dea4')
예제 #6
0
 def test_update_user_from_claims_creates_profile(self):
     user = get_user_model().objects.create(username='******',
                                            password='******')
     user.profile.delete()
     user = get_user_model().objects.get(id=user.pk)
     roles = [
         'product_tech_admin',
     ]
     claims = {
         'roles': roles,
         'given_name': 'testgivenname',
         'family_name': 'testfamilyname',
         'email': '*****@*****.**',
         'sub': 'e2556752-16d0-445a-8850-f190e860dea4'
     }
     _update_user_from_claims(user, claims)
     user = get_user_model().objects.get(id=user.pk)
     self.assertTrue(user.is_superuser)
     self.assertTrue(user.is_active)
     self.assertEqual(user.first_name, 'testgivenname')
     self.assertEqual(user.last_name, 'testfamilyname')
     self.assertEqual(user.email, '*****@*****.**')
     self.assertEqual(str(user.profile.auth_service_uuid),
                      'e2556752-16d0-445a-8850-f190e860dea4')