def test_entries_list(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) for x in range(1, 51): create_entry( { 'resource_name': 'entry-x{}'.format(x), 'note': 'x{}'.format(x) }, sqla_session=session) create_entry( { 'resource_name': 'entry-y{}'.format(x), 'note': 'y{}'.format(x) }, sqla_session=session) url_path = '/api/0.1/entries' headers = {str('x-testscaffold-auth-token'): str(token)} response = full_app.get(url_path, status=200, headers=headers) items = response.json assert len(items) == 50 assert items[0]['resource_name'] == 'entry-x1' assert items[49]['resource_name'] == 'entry-y25' assert response.headers['x-pages'] == '2' assert response.headers['x-current-page'] == '1' assert response.headers['x-total-count'] == '100'
def test_user_permission_add_proper(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) user = create_user({ 'user_name': 'aaaa', 'email': 'foo' }, sqla_session=session) resource = create_entry({ 'resource_name': 'entry-x', 'note': 'x' }, sqla_session=session) node_id = resource.resource_id url_path = '/api/0.1/resources/{}/user_permissions'.format(node_id) headers = {str('x-testscaffold-auth-token'): str(token)} perm_name = 'edit' perm_dict = {'user_name': user.user_name, 'perm_name': perm_name} response = full_app.post_json(url_path, perm_dict, status=200, headers=headers) assert response.json['user_id'] == user.id assert response.json['perm_name'] == perm_name assert response.json['resource_id'] == node_id perm_inst = UserResourcePermissionService.get(user.id, resource_id=node_id, perm_name=perm_name, db_session=sqla_session) assert isinstance(perm_inst, UserResourcePermission)
def test_group_permission_remove_proper(self, full_app, sqla_session): perm_name = 'edit' with session_context(sqla_session) as session: admin, token = create_admin(session) group = create_group({'group_name': 'aaaa'}, sqla_session=session) resource = create_entry({ 'resource_name': 'entry-x', 'note': 'x' }, sqla_session=session) perm_inst = GroupResourcePermission(group_id=group.id, perm_name=perm_name) resource.group_permissions.append(perm_inst) node_id = resource.resource_id qs = parse.urlencode({'group_id': group.id, 'perm_name': perm_name}) url_path = '/api/0.1/resources/{}/group_permissions?{}'.format( node_id, qs) headers = {str('x-testscaffold-auth-token'): str(token)} response = full_app.delete(url_path, status=200, headers=headers) perm_inst = GroupResourcePermissionService.get(group.id, resource_id=node_id, perm_name=perm_name, db_session=sqla_session) assert not isinstance(perm_inst, GroupResourcePermission)
def test_entry_delete(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) entry = create_entry({'resource_name': 'entry-x', 'note': 'x'}, sqla_session=session) url_path = '/api/0.1/entries/{}'.format(entry.resource_id) headers = {str('x-testscaffold-auth-token'): str(token)} full_app.delete_json(url_path, status=200, headers=headers)
def test_entry_delete(self, full_app, sqla_session): from testscaffold.services.resource_tree_service import tree_service with session_context(sqla_session) as session: admin, token = create_admin(session) entry = create_entry( {"resource_name": "entry-x", "note": "x"}, sqla_session=session ) url_path = "/api/0.1/entries/{}".format(entry.resource_id) headers = {str("x-testscaffold-auth-token"): str(token)} full_app.delete_json(url_path, status=200, headers=headers) result = tree_service.from_parent_deeper(None, db_session=sqla_session) assert len(result.all()) == 0
def test_entries_list(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) for x in range(1, 51): create_entry( {"resource_name": "entry-x{}".format(x), "note": "x{}".format(x)}, sqla_session=session, ) create_entry( {"resource_name": "entry-y{}".format(x), "note": "y{}".format(x)}, sqla_session=session, ) url_path = "/api/0.1/entries" headers = {str("x-testscaffold-auth-token"): str(token)} response = full_app.get(url_path, status=200, headers=headers) items = response.json assert len(items) == 50 assert items[0]["resource_name"] == "entry-x1" assert items[49]["resource_name"] == "entry-y25" assert response.headers["x-pages"] == "2" assert response.headers["x-current-page"] == "1" assert response.headers["x-total-count"] == "100"
def test_entry_patch(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) entry = create_entry( {"resource_name": "entry-x", "note": "x"}, sqla_session=session ) url_path = "/api/0.1/entries/{}".format(entry.resource_id) headers = {str("x-testscaffold-auth-token"): str(token)} entry_dict = {"resource_id": -9, "resource_name": "CHANGED", "note": "CHANGED"} response = full_app.patch_json( url_path, entry_dict, status=200, headers=headers ) assert response.json["resource_id"] == entry.resource_id assert entry_dict["resource_name"] == response.json["resource_name"] assert entry_dict["note"] == response.json["note"]
def test_group_permission_remove_wrong(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) group = create_group({'group_name': 'aaaa'}, sqla_session=session) resource = create_entry({ 'resource_name': 'entry-x', 'note': 'x' }, sqla_session=session) node_id = resource.resource_id qs = parse.urlencode({'user_id': -99, 'perm_name': 'BLABLA'}) url_path = '/api/0.1/resources/{}/group_permissions?{}'.format( node_id, qs) headers = {str('x-testscaffold-auth-token'): str(token)} response = full_app.delete(url_path, status=422, headers=headers) assert 'perm_name' in response.json assert 'group_id' in response.json
def test_group_permission_wrong_resource(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) group = create_group({'group_name': 'aaaa'}, sqla_session=session) resource = create_entry({ 'resource_name': 'entry-x', 'note': 'x' }, sqla_session=session) node_id = resource.resource_id url_path = '/api/0.1/resources/{}/group_permissions'.format(-55) headers = {str('x-testscaffold-auth-token'): str(token)} perm_dict = {'group_id': group.id, 'perm_name': 'blabla'} response = full_app.post_json(url_path, perm_dict, status=404, headers=headers)
def test_entry_patch(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) entry = create_entry({'resource_name': 'entry-x', 'note': 'x'}, sqla_session=session) url_path = '/api/0.1/entries/{}'.format(entry.resource_id) headers = {str('x-testscaffold-auth-token'): str(token)} entry_dict = { 'resource_id': -9, 'resource_name': 'CHANGED', 'note': 'CHANGED' } response = full_app.patch_json(url_path, entry_dict, status=200, headers=headers) assert response.json['resource_id'] == entry.resource_id assert entry_dict['resource_name'] == response.json['resource_name'] assert entry_dict['note'] == response.json['note']
def test_user_permission_add_wrong(self, full_app, sqla_session): with session_context(sqla_session) as session: admin, token = create_admin(session) user = create_user({ 'user_name': 'aaaa', 'email': 'foo' }, sqla_session=session) resource = create_entry({ 'resource_name': 'entry-x', 'note': 'x' }, sqla_session=session) node_id = resource.resource_id url_path = '/api/0.1/resources/{}/user_permissions'.format(node_id) headers = {str('x-testscaffold-auth-token'): str(token)} perm_dict = {'user_name': 'safsaasf9jegegw', 'perm_name': 'blabla'} response = full_app.post_json(url_path, perm_dict, status=422, headers=headers) assert 'perm_name' in response.json assert 'user_name' in response.json
def create_default_tree(db_session): root = create_entry( {'resource_id': -1, 'resource_name': 'root a', 'ordering': 1}, sqla_session=db_session) res_a = create_entry({'resource_id': 1, 'resource_name': 'a', 'ordering': 1, 'parent_id': root.resource_id}, sqla_session=db_session) res_aa = create_entry( {'resource_id': 5, 'resource_name': 'aa', 'ordering': 1, 'parent_id': res_a.resource_id}, sqla_session=db_session) res_ab = create_entry( {'resource_id': 6, 'resource_name': 'ab', 'ordering': 2, 'parent_id': res_a.resource_id}, sqla_session=db_session) res_ac = create_entry( {'resource_id': 7, 'resource_name': 'ac', 'ordering': 3, 'parent_id': res_a.resource_id}, sqla_session=db_session) res_aca = create_entry( {'resource_id': 9, 'resource_name': 'aca', 'ordering': 1, 'parent_id': res_ac.resource_id}, sqla_session=db_session) res_acaa = create_entry( {'resource_id': 12, 'resource_name': 'aca', 'ordering': 1, 'parent_id': res_aca.resource_id}, sqla_session=db_session) res_ad = create_entry( {'resource_id': 8, 'resource_name': 'ad', 'ordering': 4, 'parent_id': res_a.resource_id}, sqla_session=db_session) res_b = create_entry({'resource_id': 2, 'resource_name': 'b', 'ordering': 2, 'parent_id': root.resource_id}, sqla_session=db_session) res_ba = create_entry( {'resource_id': 4, 'resource_name': 'ba', 'ordering': 1, 'parent_id': res_b.resource_id}, sqla_session=db_session) res_c = create_entry({'resource_id': 3, 'resource_name': 'c', 'ordering': 3, 'parent_id': root.resource_id}, sqla_session=db_session) res_d = create_entry( {'resource_id': 10, 'resource_name': 'd', 'ordering': 4, 'parent_id': root.resource_id}, sqla_session=db_session) res_e = create_entry( {'resource_id': 11, 'resource_name': 'e', 'ordering': 5, 'parent_id': root.resource_id}, sqla_session=db_session) root_b = create_entry( {'resource_id': -2, 'resource_name': 'root b', 'ordering': 2}, sqla_session=db_session) root_c = create_entry( {'resource_id': -3, 'resource_name': 'root 3', 'ordering': 3}, sqla_session=db_session) return [root, root_b, root_c]
def create_default_tree(db_session): root = create_entry( {"resource_id": -1, "resource_name": "root a", "ordering": 1}, sqla_session=db_session, ) res_a = create_entry( { "resource_id": 1, "resource_name": "a", "ordering": 1, "parent_id": root.resource_id, }, sqla_session=db_session, ) res_aa = create_entry( { "resource_id": 5, "resource_name": "aa", "ordering": 1, "parent_id": res_a.resource_id, }, sqla_session=db_session, ) res_ab = create_entry( { "resource_id": 6, "resource_name": "ab", "ordering": 2, "parent_id": res_a.resource_id, }, sqla_session=db_session, ) res_ac = create_entry( { "resource_id": 7, "resource_name": "ac", "ordering": 3, "parent_id": res_a.resource_id, }, sqla_session=db_session, ) res_aca = create_entry( { "resource_id": 9, "resource_name": "aca", "ordering": 1, "parent_id": res_ac.resource_id, }, sqla_session=db_session, ) res_acaa = create_entry( { "resource_id": 12, "resource_name": "aca", "ordering": 1, "parent_id": res_aca.resource_id, }, sqla_session=db_session, ) res_ad = create_entry( { "resource_id": 8, "resource_name": "ad", "ordering": 4, "parent_id": res_a.resource_id, }, sqla_session=db_session, ) res_b = create_entry( { "resource_id": 2, "resource_name": "b", "ordering": 2, "parent_id": root.resource_id, }, sqla_session=db_session, ) res_ba = create_entry( { "resource_id": 4, "resource_name": "ba", "ordering": 1, "parent_id": res_b.resource_id, }, sqla_session=db_session, ) res_c = create_entry( { "resource_id": 3, "resource_name": "c", "ordering": 3, "parent_id": root.resource_id, }, sqla_session=db_session, ) res_d = create_entry( { "resource_id": 10, "resource_name": "d", "ordering": 4, "parent_id": root.resource_id, }, sqla_session=db_session, ) res_e = create_entry( { "resource_id": 11, "resource_name": "e", "ordering": 5, "parent_id": root.resource_id, }, sqla_session=db_session, ) root_b = create_entry( {"resource_id": -2, "resource_name": "root b", "ordering": 2}, sqla_session=db_session, ) root_c = create_entry( {"resource_id": -3, "resource_name": "root 3", "ordering": 3}, sqla_session=db_session, ) return [root, root_b, root_c]