From 72b5d2701f63deed07c34a8252dc3019dc67e815 Mon Sep 17 00:00:00 2001 From: Samuel Heid Laptop Date: Fri, 17 Jan 2025 12:25:29 +0100 Subject: [PATCH 1/2] fix #65 booleans are not capitalized --- omymodels/from_ddl.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/omymodels/from_ddl.py b/omymodels/from_ddl.py index f1323d1..a4c700a 100644 --- a/omymodels/from_ddl.py +++ b/omymodels/from_ddl.py @@ -172,9 +172,17 @@ def prepare_data(item: Dict) -> Dict: item[key] = clean_value(value) elif isinstance(value, dict): value = prepare_data(value) + else: + item[key] = format_to_py_var(value) return item +def format_to_py_var(value: str) -> str: + if value in ["false", "true"]: + return value.capitalize() + return value + + def clean_value(string: str) -> str: string = string.replace('"', "") if string.startswith("[") and string.endswith("]"): From a3d9668b57eaeeab0e88d1dcce83aed7665a8f54 Mon Sep 17 00:00:00 2001 From: Samuel Heid Laptop Date: Fri, 17 Jan 2025 12:25:43 +0100 Subject: [PATCH 2/2] add test case for #65 --- .../functional/generator/test_dataclasses.py | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/functional/generator/test_dataclasses.py b/tests/functional/generator/test_dataclasses.py index 5c530d1..82cd0f0 100644 --- a/tests/functional/generator/test_dataclasses.py +++ b/tests/functional/generator/test_dataclasses.py @@ -209,3 +209,30 @@ class Material: """ result = create_models(ddl, models_type="dataclass")["code"] assert expected == result + + +def test_default_boolean(): + expected = """from dataclasses import dataclass + + +@dataclass +class Material: + + id: int + name: str + edited: bool = False + deleted: bool = True +""" + + ddl = """ + CREATE TABLE Material + ( + id integer, + name string, + edited boolean DEFAULT false, + deleted boolean DEFAULT true, + PRIMARY KEY (id, name) + ); + """ + result = create_models(ddl, models_type="dataclass")["code"] + assert expected == result