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)
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))
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)
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')
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')
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')