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)
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
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"]
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"]
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)
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)