Exemple #1
0
def test_admin_options_setting(admin_ddb_request, settings):
    assert "core.InAdmin" in get_models(admin_ddb_request)
    settings.DATA_BROWSER_ADMIN_OPTIONS = {
        "tests.core.admin.InAdmin": {
            "ignore": True
        }
    }
    assert "core.InAdmin" not in get_models(admin_ddb_request)
Exemple #2
0
def forwards_0009(View):
    User = get_user_model()

    request = RequestFactory().get(reverse("admin:index"))
    request.user = User(is_superuser=True)
    models = get_models(request)

    for view in View.objects.all():
        filters = []
        for key, value in parse_qsl(view.query):
            *parts, lookup = key.split("__")

            model_name = view.model_name
            for part in parts:
                model = models[model_name]
                if part not in model.fields:
                    break
                field = model.fields[part]
                model_name = field.rel_name
            else:
                parts, lookup, value = _fix_filter(models, field, parts, lookup, value)

            key = "__".join(parts + [lookup])
            filters.append((key, value))
        view.query = urlencode(filters)
        view.save()
def test_bad_storage(monkeypatch, req):
    # break storage
    from django.core.files.storage import FileSystemStorage, default_storage
    from django.utils.functional import empty

    def boom(*args, **kwargs):
        assert False

    monkeypatch.setattr(FileSystemStorage, "__init__", boom)
    default_storage._wrapped = empty

    # copy what the fixture does
    orm_models = get_models(req)

    def get_product_flat(*args, **kwargs):
        query = Query.from_request("core.Product", *args)
        bound_query = BoundQuery.bind(query, orm_models)
        data = get_results(req, bound_query, orm_models, False)
        return flatten_table(bound_query.fields, data["rows"])

    # some storage backends will hard fail if their underlying storage isn't
    # setup right https://github.com/tolomea/django-data-browser/issues/11
    producer = models.Producer.objects.create()
    models.Product.objects.create(name="a", producer=producer)
    models.Product.objects.create(name="b", producer=producer, image="bob.jpg")
    data = get_product_flat("name,image", {})
    sortedAssert(data, [["a", None], ["b", "assert False"]])
    def get_fields_with_perms(self, ddb_request, perms):
        user = User.objects.create()
        for perm in perms:
            user.user_permissions.add(Permission.objects.get(codename=f"change_{perm}"))

        ddb_request.user = user
        return get_models(ddb_request)
def test_0009(req, with_arrays, before, after):  # pragma: postgres
    orm_models = get_models(req)
    valid = int("wtf" not in before)

    view = View.objects.create(model_name="array.ArrayModel", query=before)
    migration_helpers.forwards_0009(View)
    view.refresh_from_db()
    assert view.query == after
    assert len(BoundQuery.bind(view.get_query(), orm_models).valid_filters) == valid
Exemple #6
0
    def helper(fields, query=None):
        query = query or {}

        admin.site.register(JsonModel, JsonAdmin)
        try:
            orm_models = get_models(req)
            query = Query.from_request("json.JsonModel", fields, query)
            bound_query = BoundQuery.bind(query, orm_models)
            data = get_results(req, bound_query, orm_models, False)
        finally:
            admin.site.unregister(JsonModel)
        return data["rows"]
Exemple #7
0
    def helper(*fields, **filters):
        orm_models = get_models(admin_ddb_request)
        query = Query.from_request("array.ArrayModel", ",".join(fields),
                                   list(filters.items()))
        bound_query = BoundQuery.bind(query, orm_models)
        data = get_results(admin_ddb_request, bound_query, orm_models, False)

        for f in bound_query.filters:
            if f.err_message:
                print(  # pragma: no cover
                    "filter error:", f.path_str, f.lookup, f.value, "->",
                    f.err_message)

        return data["rows"]
Exemple #8
0
    def helper(fields, query=None):
        query = query or []

        orm_models = get_models(req)
        query = Query.from_request("array.ArrayModel", fields, query)
        bound_query = BoundQuery.bind(query, orm_models)
        data = get_results(req, bound_query, orm_models, False)

        for f in bound_query.filters:
            if f.err_message:
                print("filter error:", f.path_str, f.lookup, f.value, "->",
                      f.err_message)

        return data["rows"]
def orm_models(req):
    return get_models(req)
Exemple #10
0
def models(req):
    return get_models(req)
def models(admin_ddb_request):
    return get_models(admin_ddb_request)
def get_orm_models(admin_ddb_request):
    return lambda: get_models(admin_ddb_request)