From 0da8dc07523855de399f50141818fc75f50169c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=98=D1=81=D0=B0=D0=B5=D0=B2=20=D0=92=D0=B0=D1=81=D0=B8?= =?UTF-8?q?=D0=BB=D0=B8=D0=B9=20=D0=A1=D0=B5=D1=80=D0=B3=D0=B5=D0=B5=D0=B2?= =?UTF-8?q?=D0=B8=D1=87?= Date: Thu, 10 Oct 2024 01:04:13 +0300 Subject: [PATCH] Add formats. --- sqladmin/models.py | 11 ++++++----- tests/test_views/test_view_sync.py | 1 + 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/sqladmin/models.py b/sqladmin/models.py index 016a6613..f0e9fe33 100644 --- a/sqladmin/models.py +++ b/sqladmin/models.py @@ -1183,15 +1183,15 @@ async def generate(writer: Writer) -> AsyncGenerator[Any, None]: ) async def _export_json( - self, - data: List[Any], + self, + data: List[Any], ) -> StreamingResponse: async def generate() -> AsyncGenerator[str, None]: - yield '[' + yield "[" first_row = True for row in data: if not first_row: - yield ',' + yield "," else: first_row = False row_dict = { @@ -1199,7 +1199,8 @@ async def generate() -> AsyncGenerator[str, None]: for name in self._export_prop_names } yield json.dumps(row_dict) - yield ']' + yield "]" + filename = secure_filename(self.get_export_name(export_type="json")) return StreamingResponse( content=generate(), diff --git a/tests/test_views/test_view_sync.py b/tests/test_views/test_view_sync.py index 6ddc6099..a9904ab0 100644 --- a/tests/test_views/test_view_sync.py +++ b/tests/test_views/test_view_sync.py @@ -740,6 +740,7 @@ def test_export_json(client: TestClient) -> None: response = client.get("/admin/user/export/json") assert response.text == '[{"name": "Daniel", "status": "ACTIVE"}]' + def test_export_csv_row_count(client: TestClient) -> None: def row_count(resp) -> int: return resp.text.count("\r\n") - 1