Esempio n. 1
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'
Esempio n. 2
0
    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)
Esempio n. 3
0
    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)
Esempio n. 4
0
 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)
Esempio n. 5
0
    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
Esempio n. 6
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"
Esempio n. 7
0
    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"]
Esempio n. 8
0
    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
Esempio n. 9
0
    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)
Esempio n. 10
0
    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']
Esempio n. 11
0
    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
Esempio n. 12
0
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]
Esempio n. 13
0
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]