def test_user_org_role_dict_contains_roles(self): """ a user can have different roles for different organisations """ expected_roles_velen_huurmans = ['Hero', 'superhero'] expected_roles_power_inc = ['Hero'] payload_dict = get_user_org_role_dict(self.user) self.assertEqual(len(payload_dict['organisations']), 2) # should have two permissions self.assertEqual( len(payload_dict['organisations'][0]['permissions']), 2 ) self.assertIn( payload_dict['organisations'][0]['permissions'][0], expected_roles_velen_huurmans ) self.assertIn( payload_dict['organisations'][0]['permissions'][1], expected_roles_velen_huurmans ) # should only contain permission "Hero" self.assertEqual( len(payload_dict['organisations'][1]['permissions']), 1 ) self.assertIn( payload_dict['organisations'][1]['permissions'][0], expected_roles_power_inc )
def test_user_org_role_dict_has_user_info(self): """ make sure the user_org_role dict contains the user data """ payload_dict = get_user_org_role_dict(self.user) self.assertEqual(payload_dict['username'], 'testuser') self.assertFalse(payload_dict['is_superuser']) self.assertEqual(payload_dict['email'], '*****@*****.**')
def test_user_org_role_is_connected_is_excluded(self): """ the roles a user can have for an organisation might also include the role "is_connected". For the payload this role is irrelevant so it has to be filtered out """ role = models.Role.create_from_dict({ 'unique_id': 'connected', 'code': 'is_connected', 'name': 'connector', 'external_description': 'connected', 'internal_description': 'connected', }) # check if it is in the DB ic = models.Role.objects.get(code='is_connected') self.assertTrue(repr(ic)) organisation = models.Organisation.objects.get( unique_id=u"77f5a464c35044c19bc7d4b42d7f58da" ) models.UserOrganisationRole.objects.create( user=self.user, role=role, organisation=organisation) uor = models.UserOrganisationRole.objects.filter(role=ic) self.assertTrue(repr(uor)) # is_connected role should be filtered so we just expect a # single role for the testuser for organisation "Power Inc." expected_roles_power_inc = ['Hero'] payload_dict = get_user_org_role_dict(self.user) # should only contain permission "Hero" self.assertEqual( len(payload_dict['organisations'][1]['permissions']), 1 ) self.assertIn( payload_dict['organisations'][1]['permissions'][0], expected_roles_power_inc )