Skip to content

Commit 68ce048

Browse files
authored
Merge pull request #53 from dapper91/dev
- model parameters inheritance bug fixed. See #51
2 parents 184584a + 7a93b36 commit 68ce048

File tree

4 files changed

+34
-6
lines changed

4 files changed

+34
-6
lines changed

CHANGELOG.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@ Changelog
22
=========
33

44

5+
0.6.1 (2023-04-15)
6+
------------------
7+
8+
- model parameters inheritance bug fixed. See https://github.com/dapper91/pydantic-xml/issues/51
9+
10+
511
0.6.0 (2023-02-05)
612
------------------
713

pydantic_xml/model.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,8 @@ def __init_subclass__(
218218
tag: Optional[str] = None,
219219
ns: Optional[str] = None,
220220
nsmap: Optional[NsMap] = None,
221-
ns_attrs: bool = False,
222-
search_mode: SearchMode = SearchMode.STRICT,
221+
ns_attrs: Optional[bool] = None,
222+
search_mode: Optional[SearchMode] = None,
223223
**kwargs: Any,
224224
):
225225
"""
@@ -237,8 +237,9 @@ def __init_subclass__(
237237
cls.__xml_tag__ = tag if tag is not None else getattr(cls, '__xml_tag__', None)
238238
cls.__xml_ns__ = ns if ns is not None else getattr(cls, '__xml_ns__', None)
239239
cls.__xml_nsmap__ = nsmap if nsmap is not None else getattr(cls, '__xml_nsmap__', None)
240-
cls.__xml_ns_attrs__ = ns_attrs if ns_attrs is not None else getattr(cls, '__xml_ns_attrs__', None)
241-
cls.__xml_search_mode__ = search_mode if search_mode is not None else getattr(cls, '__xml_search_mode__', None)
240+
cls.__xml_ns_attrs__ = ns_attrs if ns_attrs is not None else getattr(cls, '__xml_ns_attrs__', False)
241+
cls.__xml_search_mode__ = search_mode if search_mode is not None \
242+
else getattr(cls, '__xml_search_mode__', SearchMode.STRICT)
242243

243244
default_xml_encoder: Callable[[Any], Any]
244245
if xml_encoders := getattr(cls.Config, 'xml_encoders', None):

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "pydantic-xml"
3-
version = "0.6.0"
3+
version = "0.6.1"
44
description = "pydantic xml extension"
55
authors = ["Dmitry Pershin <dapper1291@gmail.com>"]
66
license = "Unlicense"
@@ -45,7 +45,7 @@ mypy = "^0.971"
4545
pre-commit = "^2.20.0"
4646
pytest = "^7.1.2"
4747
pytest-cov = "^3.0.0"
48-
xmldiff = "^2.4"
48+
xmldiff = "2.5"
4949

5050
[build-system]
5151
requires = ["poetry-core>=1.0.0"]

tests/test_misc.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,3 +163,24 @@ class TestModel(BaseXmlModel, tag='model'):
163163
'''
164164
actual_xml = actual_obj.to_xml(skip_empty=True)
165165
assert_xml_equal(actual_xml, expected_xml.encode())
166+
167+
168+
def test_model_params_inheritance():
169+
class BaseModel(
170+
BaseXmlModel,
171+
tag='TestTag',
172+
ns='TestNamespace',
173+
nsmap={'test': 'value'},
174+
ns_attrs=True,
175+
search_mode='ordered',
176+
):
177+
pass
178+
179+
class TestModel(BaseModel):
180+
pass
181+
182+
assert TestModel.__xml_tag__ == BaseModel.__xml_tag__
183+
assert TestModel.__xml_ns__ == BaseModel.__xml_ns__
184+
assert TestModel.__xml_nsmap__ == BaseModel.__xml_nsmap__
185+
assert TestModel.__xml_ns_attrs__ == BaseModel.__xml_ns_attrs__
186+
assert TestModel.__xml_search_mode__ == BaseModel.__xml_search_mode__

0 commit comments

Comments
 (0)