def test_roles_as_json_with_users_one_user(self): role = Role('role1') db.session.add(role) user = User('username', 'password') db.session.add(user) user.set_roles(['role1']) expected = {'name': 'role1', 'description': '', 'resources': [], 'users': ['username']} role_json = role.as_json(with_users=True) role_json.pop('id') self.assertDictEqual(role_json, expected)
def add_roles_to_db(num_roles): role_names = {'role{}'.format(i) for i in range(1, num_roles + 1)} roles = [Role(name=name) for name in role_names] for role in roles: db.session.add(role) db.session.commit() return role_names
def test_read_all_roles_with_extra_added_roles(self): role = Role('role1') db.session.add(role) response = self.get_with_status_check('/api/roles', headers=self.headers, status_code=SUCCESS) self.assertSetEqual({role['name'] for role in response}, {'admin', 'role1'})
def setup_guest_user(self): user = add_user('guest', 'guest') role = Role('guest', resources=['users']) server.database.resource_roles['users'].add('guest') db.session.add(user) user.roles.append(role) db.session.commit() return user
def test_init_from_database(self): role1 = Role('role1', resources=['resource1', 'resource2']) db.session.add(role1) role2 = Role('role2', resources=['resource2', 'resource3', 'resource4']) db.session.add(role2) role3 = Role('role3', resources=['resource4', 'resource5']) db.session.add(role3) db.session.commit() initialize_resource_roles_from_database() expected = { 'resource1': {'role1'}, 'resource2': {'role1', 'role2'}, 'resource3': {'role2'}, 'resource4': {'role2', 'role3'}, 'resource5': {'role3'} } for resource in default_resources: expected.update({resource: {'admin'}}) self.assertDictEqual(server.database.resource_roles, expected)
def test_create_user_with_roles(self): role = Role('role1') db.session.add(role) db.session.commit() data = { 'username': '******', 'password': '******', 'roles': ['role1'] } response = self.put_with_status_check('/api/users', headers=self.headers, content_type='application/json', data=json.dumps(data), status_code=OBJECT_CREATED) self.assertUserCreatedResponse('username', response)
def test_update_user_with_roles(self): role = Role('role1') db.session.add(role) db.session.commit() user = User('username', 'supersecretshhhhh') db.session.add(user) db.session.commit() data = {'id': user.id, 'roles': ['role1']} response = self.post_with_status_check('/api/users', headers=self.headers, content_type='application/json', data=json.dumps(data), status_code=SUCCESS) self.assertDictEqual(response, user.as_json()) self.assertSetEqual({role.name for role in user.roles}, {'role1'})
def user_roles(): roles = ["customer", "employee", "admin"] [db.session.add(Role(id=str(uuid.uuid4()), name=role)) for role in roles] db.session.commit()