55from fastapi_forge .dtos import (
66 Model ,
77 ModelField ,
8- ModelFieldMetadata ,
98 ModelMetadata ,
109 ModelRelationship ,
1110)
@@ -68,7 +67,7 @@ class {{ model.name_cc }}InputDTO(BaseModel):
6867 \" \" \" {{ model.name_cc }} input DTO.\" \" \"
6968
7069 {% for field in model.fields_sorted if not (field.metadata.is_created_at_timestamp or field.metadata.is_updated_at_timestamp or field.primary_key) -%}
71- {{ field.name }}: {{ type_mapping[ field.type] }}{% if field.nullable %} | None{% endif %}
70+ {{ field.name }}: {{ field.type_info.python_type }}{% if field.nullable %} | None{% endif %}
7271 {% endfor %}
7372
7473
@@ -267,11 +266,7 @@ async def test_get_{{ model.name }}_by_id(client: AsyncClient,) -> None:
267266 {%- if not field.primary_key and field.name.endswith('_id') %}
268267 assert response_data["{{ field.name }}"] == str({{ model.name }}.{{ field.name }})
269268 {%- elif not field.primary_key %}
270- {%- if field.type == "DateTime" %}
271- assert response_data["{{ field.name }}"] == {{ model.name }}.{{ field.name }}.isoformat()
272- {%- else %}
273- assert response_data["{{ field.name }}"] == {{ model.name }}.{{ field.name }}
274- {%- endif %}
269+ assert response_data["{{ field.name }}"] == {{ model.name }}.{{ field.name }}{{ field.type_info.test_func }}
275270 {%- endif %}
276271 {%- endfor %}
277272"""
@@ -301,11 +296,7 @@ async def test_patch_{{ model.name }}(client: AsyncClient, daos: AllDAOs,) -> No
301296 {%- if not field.primary_key and field.name.endswith('_id') -%}
302297 "{{ field.name }}": str({{ field.name | replace('_id', '.id') }}),
303298 {% elif not field.primary_key %}
304- {%- if field.type == "DateTime" %}
305- "{{ field.name }}": {{ type_to_input_value_mapping[field.type] }}.isoformat(),
306- {%- else %}
307- "{{ field.name }}": {{ type_to_input_value_mapping[field.type] }},
308- {%- endif %}
299+ "{{ field.name }}": {{ field.type_info.test_value }}{{ field.type_info.test_func }},
309300 {%- endif %}
310301 {%- endfor %}
311302 }
@@ -320,11 +311,7 @@ async def test_patch_{{ model.name }}(client: AsyncClient, daos: AllDAOs,) -> No
320311 {%- if not field.primary_key and field.name.endswith('_id') %}
321312 assert db_{{ model.name }}.{{ field.name }} == UUID(input_json["{{ field.name }}"])
322313 {%- elif not field.primary_key %}
323- {%- if field.type == "DateTime" %}
324- assert db_{{ model.name }}.{{ field.name }}.isoformat() == input_json["{{ field.name }}"]
325- {%- else %}
326- assert db_{{ model.name }}.{{ field.name }} == input_json["{{ field.name }}"]
327- {%- endif %}
314+ assert db_{{ model.name }}.{{ field.name }}{{ field.type_info.test_func }} == input_json["{{ field.name }}"]
328315 {%- endif %}
329316 {%- endfor %}
330317
@@ -353,26 +340,6 @@ async def test_delete_{{ model.name }}(client: AsyncClient, daos: AllDAOs,) -> N
353340 assert db_{{ model.name }} is None
354341"""
355342
356- TYPE_MAPPING = {
357- "Integer" : "int" ,
358- "Float" : "float" ,
359- "String" : "str" ,
360- "UUID" : "UUID" ,
361- "DateTime" : "datetime" ,
362- "JSONB" : "dict[str, Any]" ,
363- "Boolean" : "bool" ,
364- }
365-
366- TYPE_TO_INPUT_VALUE_MAPPING = {
367- "Integer" : "1" ,
368- "Float" : "1.0" ,
369- "String" : "'string'" ,
370- "UUID" : "UUID('00000000-0000-0000-0000-000000000000')" ,
371- "DateTime" : "datetime.now(timezone.utc)" ,
372- "JSONB" : '{"json": "value"}' ,
373- "Boolean" : "True" ,
374- }
375-
376343
377344def _render (model : Model , template_name : str , ** kwargs : Any ) -> str :
378345 template = env .from_string (template_name )
@@ -490,15 +457,15 @@ def render_model_to_delete_test(model: Model) -> str:
490457 ]
491458
492459 render_funcs = [
493- # render_model_to_model,
494- # render_model_to_dto,
495- # render_model_to_dao,
496- # render_model_to_routers,
460+ render_model_to_model ,
461+ render_model_to_dto ,
462+ render_model_to_dao ,
463+ render_model_to_routers ,
497464 render_model_to_post_test ,
498- # render_model_to_get_test,
499- # render_model_to_get_id_test,
500- # render_model_to_patch_test,
501- # render_model_to_delete_test,
465+ render_model_to_get_test ,
466+ render_model_to_get_id_test ,
467+ render_model_to_patch_test ,
468+ render_model_to_delete_test ,
502469 ]
503470
504471 for fn in render_funcs :
0 commit comments