Skip to content

Commit f966d11

Browse files
committed
Sort classes by name before renaming
1 parent 1c65024 commit f966d11

File tree

3 files changed

+6
-6
lines changed

3 files changed

+6
-6
lines changed

tests/codegen/handlers/test_class_name_conflict.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -77,11 +77,11 @@ def test_rename_classes(self, mock_rename_class):
7777

7878
mock_rename_class.assert_has_calls(
7979
[
80-
mock.call(classes[0], False),
8180
mock.call(classes[1], False),
81+
mock.call(classes[0], False),
8282
mock.call(classes[2], False),
83-
mock.call(classes[0], True),
8483
mock.call(classes[1], True),
84+
mock.call(classes[0], True),
8585
mock.call(classes[2], True),
8686
]
8787
)

xsdata/codegen/handlers/attribute_default_value.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from operator import attrgetter
12
from typing import Optional
23

34
from xsdata.codegen.mixins import RelativeHandlerInterface
@@ -85,6 +86,5 @@ def find_enum(self, attr_type: AttrType) -> Optional[Class]:
8586
if attr_type.native:
8687
return None
8788

88-
return self.container.find(
89-
attr_type.qname, condition=lambda x: x.is_enumeration
90-
)
89+
is_enumeration = attrgetter("is_enumeration")
90+
return self.container.find(attr_type.qname, condition=is_enumeration)

xsdata/codegen/handlers/class_name_conflict.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def rename_classes(self, classes: List[Class], use_name: bool):
4040
the list.
4141
"""
4242
total_elements = sum(x.is_element for x in classes)
43-
for target in classes:
43+
for target in sorted(classes, key=operator.attrgetter("name")):
4444
if not target.is_element or total_elements > 1:
4545
self.rename_class(target, use_name)
4646

0 commit comments

Comments
 (0)