22
33import pytest
44
5- from rest_client_gen .dynamic_typing import (DList , DOptional , FloatString , ModelMeta , compile_imports )
5+ from rest_client_gen .dynamic_typing import (DList , DOptional , FloatString , IntString , ModelMeta , compile_imports )
66from rest_client_gen .models import sort_fields
77from rest_client_gen .models .attr import AttrsModelCodeGenerator , METADATA_FIELD_NAME
88from rest_client_gen .models .base import generate_code
@@ -65,7 +65,7 @@ class Test:
6565 "model" : ("Test" , {
6666 "foo" : int ,
6767 "baz" : DOptional (DList (DList (str ))),
68- # "bar": DOptional(IntString),
68+ "bar" : DOptional (IntString ),
6969 "qwerty" : FloatString ,
7070 "asdfg" : DOptional (int )
7171 }),
@@ -80,11 +80,11 @@ class Test:
8080 "type" : "Optional[List[List[str]]]" ,
8181 "body" : f"attr.ib(factory=list, { field_meta ('baz' )} )"
8282 },
83- # "bar": {
84- # "name": "bar",
85- # "type": "Optional[IntString]",
86- # "body": f"attr.ib(converter=IntString, default=None , {field_meta('bar')})"
87- # },
83+ "bar" : {
84+ "name" : "bar" ,
85+ "type" : "Optional[IntString]" ,
86+ "body" : f"attr.ib(default=None, converter=optional(IntString) , { field_meta ('bar' )} )"
87+ },
8888 "qwerty" : {
8989 "name" : "qwerty" ,
9090 "type" : "FloatString" ,
@@ -98,7 +98,8 @@ class Test:
9898 },
9999 "generated" : trim (f"""
100100 import attr
101- from rest_client_gen.dynamic_typing.string_serializable import FloatString
101+ from attr.converter import optional
102+ from rest_client_gen.dynamic_typing.string_serializable import FloatString, IntString
102103 from typing import List, Optional
103104
104105
@@ -107,6 +108,7 @@ class Test:
107108 foo: int = attr.ib({ field_meta ('foo' )} )
108109 qwerty: FloatString = attr.ib(converter=FloatString, { field_meta ('qwerty' )} )
109110 baz: Optional[List[List[str]]] = attr.ib(factory=list, { field_meta ('baz' )} )
111+ bar: Optional[IntString] = attr.ib(default=None, converter=optional(IntString), { field_meta ('bar' )} )
110112 asdfg: Optional[int] = attr.ib(default=None, { field_meta ('asdfg' )} )
111113 """ )
112114 }
0 commit comments