test_print(desc, res.status_code < 300)

desc =  '#### get all reservations on resources, make sure theres 1 row left ####'
res = r.get_reservations_by_resources([resource_id1, resource_id2, resource_id3, resource_id4])
test_print(desc, len(r.json.loads(res.content)['results']) == 1)

desc = '#### remove view permission from folder2 ####'
res = r.remove_group_permission_to_resource(folder_id2, [group_id1])
test_print(desc, res.status_code < 300)

desc =  '#### get all reservations on resources, make sure there arent any rows ####'
res = r.get_reservations_by_resources([resource_id1, resource_id2, resource_id3, resource_id4])
test_print(desc, len(r.json.loads(res.content)['results']) == 0)

desc = '#### update parent for folder2 ####'
res = r.update_parent_of_resource(folder_id2, folder_id1)
test_print(desc, res.status_code < 300)

desc = '#### get subtree starting at folder1 ####'
res = r.get_subtree(folder_id1)
test_print(desc, res.status_code < 300)
test_print(desc, len(r.json.loads(res.content)['results']) == 6)

desc = '#### update parent for resource1 ####'
res = r.update_parent_of_resource(resource_id1, 1)
test_print(desc, res.status_code < 300)

desc = '#### get subtree starting at folder1 ####'
res = r.get_subtree(folder_id1)
test_print(desc, res.status_code < 300)
test_print(desc, len(r.json.loads(res.content)['results']) == 5)
desc =  '#### add rahul to the first group ####'
res = r.add_users_to_group([rahul_user_id], group_id1)
test_print(desc, res.status_code < 300)

desc = '#### Give group 1 view access to root resource ####'
res = r.add_group_permission_to_resource(root_resource_id, [group_id1], ['view'])
test_print(desc, res.status_code < 300)

desc = '#### Give rahul view access to root ####'
res = r.add_group_permission_to_resource(root_resource_id, [rahul_group_id], ['view'])
test_print(desc, res.status_code < 300)

desc = '#### add view permission to folder1 ####'
res = r.add_group_permission_to_resource(folder_id1, [group_id1], ['view'])
test_print(desc, res.status_code < 300)

desc = '#### try to update parent for folder1 ####'
res = r.update_parent_of_resource(folder_id1, folder_id2)
test_print(desc, res.status_code > 300)
test_print(desc, r.json.loads(res.content)['parentResourcePermissionMismatchError'] == 1)

desc = '#### add view permission to folder2 ####'
res = r.add_group_permission_to_resource(folder_id2, [group_id1], ['view'])
test_print(desc, res.status_code < 300)

desc = '#### successfully update parent for folder1 ####'
res = r.update_parent_of_resource(folder_id1, folder_id2)
test_print(desc, res.status_code < 300)

r.finish_test("update resources test")