Exemple #1
0
    def test_package_to_api2(self):
        CreateTestData.create()
        context = {"model": model, "session": model.Session}

        pkg = model.Package.get("annakarenina")
        as_dict = pkg.as_dict(ref_package_by="id", ref_group_by="id")
        dictize = package_to_api2(pkg, context)

        as_dict_string = pformat(as_dict)
        dictize_string = pformat(dictize)

        assert package_to_api2(pkg, context) == dictize, "\n".join(
            unified_diff(as_dict_string.split("\n"),
                         dictize_string.split("\n")))
Exemple #2
0
    def test_06_package_to_api2_with_relationship(self):

        context = {"model": model, "session": model.Session}

        pkg = model.Session.query(model.Package).filter_by(name='homer').one()

        as_dict = pkg.as_dict(ref_package_by='id', ref_group_by='id')
        as_dict['license_title'] = None
        as_dict['num_tags'] = 0
        as_dict['num_resources'] = 0
        dictize = package_to_api2(pkg, context)

        as_dict["relationships"].sort(key=lambda x: x.items())
        dictize["relationships"].sort(key=lambda x: x.items())

        # the is_dict method doesn't care about organizations
        del dictize['organization']
        as_dict_string = pformat(as_dict)
        dictize_string = pformat(dictize)
        print as_dict_string
        print dictize_string

        assert as_dict == dictize, "\n".join(
            unified_diff(as_dict_string.split("\n"),
                         dictize_string.split("\n")))
Exemple #3
0
def package_update_rest(context, data_dict):

    model = context['model']
    id = data_dict.get("id")
    request_id = context['id']
    api = context.get('api_version') or '1'
    pkg = model.Package.get(request_id)

    if not pkg:
        raise NotFound

    if id and id != pkg.id:
        pkg_from_data = model.Package.get(id)
        if pkg_from_data != pkg:
            error_dict = {id:('Cannot change value of key from %s to %s. '
                'This key is read-only') % (pkg.id, id)}
            raise ValidationError(error_dict)

    context["package"] = pkg
    context["allow_partial_update"] = True
    dictized_package = model_save.package_api_to_dict(data_dict, context)

    check_access('package_update_rest', context, dictized_package)

    dictized_after = get_action('package_update')(context, dictized_package)

    pkg = context['package']

    if api == '1':
        package_dict = model_dictize.package_to_api1(pkg, context)
    else:
        package_dict = model_dictize.package_to_api2(pkg, context)

    return package_dict
Exemple #4
0
    def test_05_package_to_api2(self):

        context = {"model": model,
                 "session": model.Session}

        pkg = model.Session.query(model.Package).filter_by(name='annakarenina').first()

        as_dict = pkg.as_dict(ref_package_by='id', ref_group_by='id')
        dictize = package_to_api2(pkg, context)

        as_dict_string = pformat(as_dict)
        dictize_string = pformat(dictize)
        print(as_dict_string)
        print(dictize_string)

        assert package_to_api2(pkg, context) == dictize, "\n".join(unified_diff(as_dict_string.split("\n"), dictize_string.split("\n")))
Exemple #5
0
    def test_package_to_api2_with_relationship(self):
        context = {"model": model, "session": model.Session}
        CreateTestData.create_family_test_data()

        pkg = model.Package.get("homer")

        as_dict = pkg.as_dict(ref_package_by="id", ref_group_by="id")
        as_dict["license_title"] = None
        as_dict["num_tags"] = 0
        as_dict["num_resources"] = 0
        dictize = package_to_api2(pkg, context)

        as_dict["relationships"].sort(key=lambda x: list(x.items()))
        dictize["relationships"].sort(key=lambda x: list(x.items()))

        # the is_dict method doesn't care about organizations
        del dictize["organization"]
        as_dict_string = pformat(as_dict)
        dictize_string = pformat(dictize)

        assert as_dict == dictize, "\n".join(
            unified_diff(
                as_dict_string.split("\n"), dictize_string.split("\n")
            )
        )
Exemple #6
0
def package_update_rest(context, data_dict):

    model = context['model']
    id = data_dict.get("id")
    request_id = context['id']
    api = context.get('api_version') or '1'
    pkg = model.Package.get(request_id)

    if not pkg:
        raise NotFound

    if id and id != pkg.id:
        pkg_from_data = model.Package.get(id)
        if pkg_from_data != pkg:
            error_dict = {
                id: ('Cannot change value of key from %s to %s. '
                     'This key is read-only') % (pkg.id, id)
            }
            raise ValidationError(error_dict)

    context["package"] = pkg
    context["allow_partial_update"] = True
    dictized_package = package_api_to_dict(data_dict, context)
    dictized_after = package_update(context, dictized_package)

    pkg = context['package']

    if api == '1':
        package_dict = package_to_api1(pkg, context)
    else:
        package_dict = package_to_api2(pkg, context)

    return package_dict
Exemple #7
0
def package_update_rest(context, data_dict):

    model = context["model"]
    id = data_dict.get("id")
    request_id = context["id"]
    api = context.get("api_version") or "1"
    pkg = model.Package.get(request_id)

    if not pkg:
        raise NotFound

    if id and id != pkg.id:
        pkg_from_data = model.Package.get(id)
        if pkg_from_data != pkg:
            error_dict = {id: ("Cannot change value of key from %s to %s. " "This key is read-only") % (pkg.id, id)}
            raise ValidationError(error_dict)

    context["package"] = pkg
    context["allow_partial_update"] = True
    dictized_package = package_api_to_dict(data_dict, context)

    check_access("package_update_rest", context, dictized_package)

    dictized_after = package_update(context, dictized_package)

    pkg = context["package"]

    if api == "1":
        package_dict = package_to_api1(pkg, context)
    else:
        package_dict = package_to_api2(pkg, context)

    return package_dict
Exemple #8
0
def package_show_rest(context, data_dict):

    package_show(context, data_dict)

    api = context.get('api_version') or '1'
    pkg = context['package']

    if api == '1':
        package_dict = package_to_api1(pkg, context)
    else:
        package_dict = package_to_api2(pkg, context)

    return package_dict
Exemple #9
0
def package_show_rest(context, data_dict):

    package_show(context, data_dict)

    api = context.get('api_version') or '1'
    pkg = context['package']

    if api == '1':
        package_dict = package_to_api1(pkg, context)
    else:
        package_dict = package_to_api2(pkg, context)

    return package_dict
Exemple #10
0
def package_show_rest(context, data_dict):

    check_access('package_show_rest', context, data_dict)

    logic.get_action('package_show')(context, data_dict)

    api = context.get('api_version') or '1'
    pkg = context['package']

    if api == '1':
        package_dict = model_dictize.package_to_api1(pkg, context)
    else:
        package_dict = model_dictize.package_to_api2(pkg, context)

    return package_dict
Exemple #11
0
def package_show_rest(context, data_dict):

    check_access("package_show_rest", context, data_dict)

    package_show(context, data_dict)

    api = context.get("api_version") or "1"
    pkg = context["package"]

    if api == "1":
        package_dict = package_to_api1(pkg, context)
    else:
        package_dict = package_to_api2(pkg, context)

    return package_dict
Exemple #12
0
def package_show_rest(context, data_dict):

    check_access('package_show_rest',context, data_dict)

    logic.get_action('package_show')(context, data_dict)

    api = context.get('api_version') or '1'
    pkg = context['package']

    if api == '1':
        package_dict = model_dictize.package_to_api1(pkg, context)
    else:
        package_dict = model_dictize.package_to_api2(pkg, context)

    return package_dict
Exemple #13
0
def package_create_rest(context, data_dict):

    api = context.get('api_version') or '1'

    dictized_package = package_api_to_dict(data_dict, context)
    dictized_after = package_create(context, dictized_package)

    pkg = context['package']

    if api == '1':
        package_dict = package_to_api1(pkg, context)
    else:
        package_dict = package_to_api2(pkg, context)

    data_dict['id'] = pkg.id

    return package_dict
Exemple #14
0
def package_create_rest(context, data_dict):

    api = context.get('api_version') or '1'

    dictized_package = package_api_to_dict(data_dict, context)
    dictized_after = package_create(context, dictized_package) 

    pkg = context['package']

    if api == '1':
        package_dict = package_to_api1(pkg, context)
    else:
        package_dict = package_to_api2(pkg, context)

    data_dict['id'] = pkg.id

    return package_dict
Exemple #15
0
    def test_06_package_to_api2_with_relationship(self):

        context = {"model": model, "session": model.Session}

        pkg = model.Session.query(model.Package).filter_by(name="homer").one()

        as_dict = pkg.as_dict(ref_package_by="id", ref_group_by="id")
        dictize = package_to_api2(pkg, context)

        as_dict["relationships"].sort(key=lambda x: x.items())
        dictize["relationships"].sort(key=lambda x: x.items())

        as_dict_string = pformat(as_dict)
        dictize_string = pformat(dictize)
        print as_dict_string
        print dictize_string

        assert as_dict == dictize, "\n".join(unified_diff(as_dict_string.split("\n"), dictize_string.split("\n")))
Exemple #16
0
def package_create_rest(context, data_dict):

    api = context.get('api_version') or '1'

    check_access('package_create_rest', context, data_dict)

    dictized_package = model_save.package_api_to_dict(data_dict, context)
    dictized_after = get_action('package_create')(context, dictized_package)

    pkg = context['package']

    if api == '1':
        package_dict = model_dictize.package_to_api1(pkg, context)
    else:
        package_dict = model_dictize.package_to_api2(pkg, context)

    data_dict['id'] = pkg.id

    return package_dict
Exemple #17
0
def package_create_rest(context, data_dict):

    api = context.get('api_version') or '1'

    check_access('package_create_rest', context, data_dict)

    dictized_package = model_save.package_api_to_dict(data_dict, context)
    dictized_after = get_action('package_create')(context, dictized_package)

    pkg = context['package']

    if api == '1':
        package_dict = model_dictize.package_to_api1(pkg, context)
    else:
        package_dict = model_dictize.package_to_api2(pkg, context)

    data_dict['id'] = pkg.id

    return package_dict
Exemple #18
0
    def test_06_package_to_api2_with_relationship(self):

        context = {"model": model, "session": model.Session}

        pkg = model.Session.query(model.Package).filter_by(name='homer').one()

        as_dict = pkg.as_dict(ref_package_by='id', ref_group_by='id')
        dictize = package_to_api2(pkg, context)

        as_dict["relationships"].sort(key=lambda x: x.items())
        dictize["relationships"].sort(key=lambda x: x.items())

        as_dict_string = pformat(as_dict)
        dictize_string = pformat(dictize)
        print as_dict_string
        print dictize_string

        assert as_dict == dictize, "\n".join(
            unified_diff(as_dict_string.split("\n"),
                         dictize_string.split("\n")))
Exemple #19
0
    def test_06_package_to_api2_with_relationship(self):

        context = {"model": model,
                 "session": model.Session}

        pkg = model.Session.query(model.Package).filter_by(name='homer').one()

        as_dict = pkg.as_dict(ref_package_by='id', ref_group_by='id')
        as_dict['license_title'] = None
        dictize = package_to_api2(pkg, context)

        as_dict["relationships"].sort(key=lambda x:x.items())
        dictize["relationships"].sort(key=lambda x:x.items())

        # the is_dict method doesn't care about organizations
        del dictize['organization']
        as_dict_string = pformat(as_dict)
        dictize_string = pformat(dictize)
        print as_dict_string
        print dictize_string

        assert as_dict == dictize, "\n".join(unified_diff(as_dict_string.split("\n"), dictize_string.split("\n")))