From ae1e69d5fd4246f4630d18fccde319153f8ab18f Mon Sep 17 00:00:00 2001 From: IluaAir Date: Thu, 23 Jul 2026 11:15:10 +0300 Subject: [PATCH] Refactor dump_json method to use model_dump_json - Fix the `dump_json` method in the `ModelView` class to call `model_dump_json` instead of `model_dump`, ensuring consistency in JSON serialization. - Added a new test case in `TestListModelView` to verify the functionality of `dump_json` and check for correct IP address serialization. --- oxi/conf.py | 2 +- tests/test_view.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/oxi/conf.py b/oxi/conf.py index 7ed2fb2..d0a798d 100644 --- a/oxi/conf.py +++ b/oxi/conf.py @@ -23,7 +23,7 @@ class ModelView(Generic[TModel]): def dump_json(self) -> str: if isinstance(self._model, list): return json.dumps( - [item.model_dump(by_alias=True) for item in self._model], + [item.model_dump_json(by_alias=True) for item in self._model], ensure_ascii=False, ) return self._model.model_dump_json(by_alias=True) diff --git a/tests/test_view.py b/tests/test_view.py index ea38ac8..a3b581f 100644 --- a/tests/test_view.py +++ b/tests/test_view.py @@ -1,4 +1,5 @@ import json +from ipaddress import IPv4Address import pytest @@ -66,6 +67,10 @@ class TestListModelView: def test_dump_uses_aliases(self, interfaces_view): dumped = interfaces_view.dump() assert dumped[0]["interface"] == "eth0" + assert dumped[0]["ip_address"] == IPv4Address("192.168.1.1") + + def test_dump_json(self, interfaces_view): + assert interfaces_view.dump_json() def test_dump_json_keeps_unicode(self): view = ModelView([Interfaces(interface="eth0", description="Дом")])