Skip to content

Commit e5fb8c9

Browse files
committed
Test sort_kwargs function
1 parent ab67e6c commit e5fb8c9

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

rest_client_gen/models/attr.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ def decorators(self) -> List[str]:
6767
"""
6868
:return: List of decorators code (without @)
6969
"""
70-
return [self.ATTRS.render(kwargs=sort_kwargs(self.attrs_kwargs))]
70+
return [self.ATTRS.render(kwargs=self.attrs_kwargs)]
7171

7272
def field_data(self, name: str, meta: MetaData, optional: bool) -> Tuple[ImportPathList, dict]:
7373
"""

test/test_code_generation/test_attrs_generation.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,31 @@
44

55
from rest_client_gen.dynamic_typing import (DList, DOptional, FloatString, IntString, ModelMeta, compile_imports)
66
from rest_client_gen.models import sort_fields
7-
from rest_client_gen.models.attr import AttrsModelCodeGenerator, METADATA_FIELD_NAME
7+
from rest_client_gen.models.attr import AttrsModelCodeGenerator, METADATA_FIELD_NAME, sort_kwargs
88
from rest_client_gen.models.base import generate_code
99
from test.test_code_generation.test_models_code_generator import model_factory, trim
1010

1111

12+
def test_attrib_kwargs_sort():
13+
sorted_kwargs = sort_kwargs(dict(
14+
y=2,
15+
metadata='b',
16+
converter='a',
17+
default=None,
18+
x=1,
19+
))
20+
expected = ['default', 'converter', 'y', 'x', 'metadata']
21+
for k1, k2 in zip(sorted_kwargs.keys(), expected):
22+
assert k1 == k2
23+
try:
24+
sort_kwargs({}, ['wrong_char'])
25+
except ValueError as e:
26+
assert e.args[0].endswith('wrong_char')
27+
else:
28+
assert 0, "XPass"
29+
30+
31+
1232
def field_meta(original_name):
1333
return f"metadata={{'{METADATA_FIELD_NAME}': '{original_name}'}}"
1434

0 commit comments

Comments
 (0)