diff --git a/src/rougail/convert.py b/src/rougail/convert.py index eecece0e0..afdc5c3d9 100644 --- a/src/rougail/convert.py +++ b/src/rougail/convert.py @@ -391,7 +391,7 @@ class ParserVariable: ) -> None: """Parse a family""" if obj is None: - return + obj = {} family_obj = {} subfamily_obj = {} if version != "1.0": @@ -406,6 +406,9 @@ class ParserVariable: family_obj[key] = value else: subfamily_obj[key] = value + if version != "1.0" and not family_obj and comment: + family_obj["description"] = comment + if path in self.paths: # it's just for modify subfamily or subvariable, do not redefine if family_obj: @@ -472,8 +475,6 @@ class ParserVariable: msg = f'dynamic family name must have "{{{{ identifier }}}}" in his name for "{path}"' raise DictConsistencyError(msg, 13, [filename]) parent_dynamic = path - if version != "1.0" and not family_obj and comment: - family_obj["description"] = comment self.add_family( path, name, diff --git a/tests/errors/10_family_redefine_1/errno_32 b/tests/errors/10_family_redefine_1/errno_32 new file mode 100644 index 000000000..e69de29bb diff --git a/tests/errors/10_family_redefine_1/rougail/00-rougail.yml b/tests/errors/10_family_redefine_1/rougail/00-rougail.yml new file mode 100644 index 000000000..afb2fb01c --- /dev/null +++ b/tests/errors/10_family_redefine_1/rougail/00-rougail.yml @@ -0,0 +1,6 @@ +--- +version: 1.1 + +family: + + var: diff --git a/tests/errors/10_family_redefine_1/rougail/10-rougail.yml b/tests/errors/10_family_redefine_1/rougail/10-rougail.yml new file mode 100644 index 000000000..61b264113 --- /dev/null +++ b/tests/errors/10_family_redefine_1/rougail/10-rougail.yml @@ -0,0 +1,5 @@ +--- +version: 1.1 + +family: + description: redefined diff --git a/tests/errors/10_family_redefine_2/errno_32 b/tests/errors/10_family_redefine_2/errno_32 new file mode 100644 index 000000000..e69de29bb diff --git a/tests/errors/10_family_redefine_2/rougail/00-rougail.yml b/tests/errors/10_family_redefine_2/rougail/00-rougail.yml new file mode 100644 index 000000000..afb2fb01c --- /dev/null +++ b/tests/errors/10_family_redefine_2/rougail/00-rougail.yml @@ -0,0 +1,6 @@ +--- +version: 1.1 + +family: + + var: diff --git a/tests/errors/10_family_redefine_2/rougail/10-rougail.yml b/tests/errors/10_family_redefine_2/rougail/10-rougail.yml new file mode 100644 index 000000000..3e9a7405a --- /dev/null +++ b/tests/errors/10_family_redefine_2/rougail/10-rougail.yml @@ -0,0 +1,4 @@ +--- +version: 1.1 + +family: # redefined diff --git a/tests/errors/10_variable_redefine_1/errno_45 b/tests/errors/10_variable_redefine_1/errno_45 new file mode 100644 index 000000000..e69de29bb diff --git a/tests/errors/10_variable_redefine_1/rougail/00-rougail.yml b/tests/errors/10_variable_redefine_1/rougail/00-rougail.yml new file mode 100644 index 000000000..12e769650 --- /dev/null +++ b/tests/errors/10_variable_redefine_1/rougail/00-rougail.yml @@ -0,0 +1,4 @@ +--- +version: 1.1 + +variable: diff --git a/tests/errors/10_variable_redefine_1/rougail/10-rougail.yml b/tests/errors/10_variable_redefine_1/rougail/10-rougail.yml new file mode 100644 index 000000000..52fc5f750 --- /dev/null +++ b/tests/errors/10_variable_redefine_1/rougail/10-rougail.yml @@ -0,0 +1,5 @@ +--- +version: 1.1 + +variable: + description: redefined diff --git a/tests/errors/10_variable_redefine_2/errno_45 b/tests/errors/10_variable_redefine_2/errno_45 new file mode 100644 index 000000000..e69de29bb diff --git a/tests/errors/10_variable_redefine_2/rougail/00-rougail.yml b/tests/errors/10_variable_redefine_2/rougail/00-rougail.yml new file mode 100644 index 000000000..12e769650 --- /dev/null +++ b/tests/errors/10_variable_redefine_2/rougail/00-rougail.yml @@ -0,0 +1,4 @@ +--- +version: 1.1 + +variable: diff --git a/tests/errors/10_variable_redefine_2/rougail/10-rougail.yml b/tests/errors/10_variable_redefine_2/rougail/10-rougail.yml new file mode 100644 index 000000000..cc2fe3882 --- /dev/null +++ b/tests/errors/10_variable_redefine_2/rougail/10-rougail.yml @@ -0,0 +1,4 @@ +--- +version: 1.1 + +variable: # redefined