From 71b9b7075525415e8dce75d90d10905a2ca7eb50 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Thu, 24 Dec 2020 19:53:49 +0100 Subject: [PATCH] add valid_enum tests --- src/rougail/annotator/constrainte.py | 15 ++++++---- .../80valid_enum_multi_param/00-base.xml | 23 +++++++++++++++ .../80valid_enum_multi_param/__init__.py | 0 .../80valid_enum_multi_param/errno_7 | 0 .../80valid_enum_multi_variable/00-base.xml | 28 +++++++++++++++++++ .../80valid_enum_multi_variable/__init__.py | 0 .../80valid_enum_multi_variable/errno_5 | 0 .../80valid_enum_no_param/00-base.xml | 22 +++++++++++++++ .../80valid_enum_no_param/__init__.py | 0 .../80valid_enum_no_param/errno_4 | 0 .../00-base.xml | 20 +++++++++++++ .../__init__.py | 0 .../80valid_enum_none_multi_variable/errno_6 | 0 .../00-base.xml | 22 +++++++++++++++ .../__init__.py | 0 .../80valid_enum_number_without_value/errno_8 | 0 16 files changed, 125 insertions(+), 5 deletions(-) create mode 100644 tests/dictionaries/80valid_enum_multi_param/00-base.xml create mode 100644 tests/dictionaries/80valid_enum_multi_param/__init__.py create mode 100644 tests/dictionaries/80valid_enum_multi_param/errno_7 create mode 100644 tests/dictionaries/80valid_enum_multi_variable/00-base.xml create mode 100644 tests/dictionaries/80valid_enum_multi_variable/__init__.py create mode 100644 tests/dictionaries/80valid_enum_multi_variable/errno_5 create mode 100644 tests/dictionaries/80valid_enum_no_param/00-base.xml create mode 100644 tests/dictionaries/80valid_enum_no_param/__init__.py create mode 100644 tests/dictionaries/80valid_enum_no_param/errno_4 create mode 100644 tests/dictionaries/80valid_enum_none_multi_variable/00-base.xml create mode 100644 tests/dictionaries/80valid_enum_none_multi_variable/__init__.py create mode 100644 tests/dictionaries/80valid_enum_none_multi_variable/errno_6 create mode 100644 tests/dictionaries/80valid_enum_number_without_value/00-base.xml create mode 100644 tests/dictionaries/80valid_enum_number_without_value/__init__.py create mode 100644 tests/dictionaries/80valid_enum_number_without_value/errno_8 diff --git a/src/rougail/annotator/constrainte.py b/src/rougail/annotator/constrainte.py index df4d2c03..8e9e4d7c 100644 --- a/src/rougail/annotator/constrainte.py +++ b/src/rougail/annotator/constrainte.py @@ -126,7 +126,8 @@ class ConstrainteAnnotator: xmlfiles = self.objectspace.display_xmlfiles(check.xmlfiles) raise DictConsistencyError(_(f'valid_enum define in {xmlfiles} but already set in {old_xmlfiles} for "{check.target}", did you forget remove_check?'), 3) if not hasattr(check, 'param'): - raise DictConsistencyError(_(f'param is mandatory for a valid_enum of variable {check.target}'), 4) + xmlfiles = self.objectspace.display_xmlfiles(check.xmlfiles) + raise DictConsistencyError(_(f'param is mandatory for a valid_enum of variable "{check.target}" in {xmlfiles}'), 4) variable = self.objectspace.paths.get_variable_obj(check.target) values = self.load_params_in_valid_enum(check.param, variable.name, @@ -153,18 +154,22 @@ class ConstrainteAnnotator: for param in params: if param.type == 'variable': if has_variable is not None: - raise DictConsistencyError(_(f'only one "variable" parameter is allowed for valid_enum of variable {variable_name}'), 5) + xmlfiles = self.objectspace.display_xmlfiles(param.xmlfiles) + raise DictConsistencyError(_(f'only one "variable" parameter is allowed for valid_enum of variable "{variable_name}" in {xmlfiles}'), 5) has_variable = True variable = self.objectspace.paths.get_variable_obj(param.text) if not variable.multi: - raise DictConsistencyError(_(f'only multi "variable" parameter is allowed for valid_enum of variable {variable_name}'), 6) + xmlfiles = self.objectspace.display_xmlfiles(param.xmlfiles) + raise DictConsistencyError(_(f'only multi "variable" parameter is allowed for valid_enum of variable "{variable_name}" in {xmlfiles}'), 6) values = param.text else: if has_variable: - raise DictConsistencyError(_(f'only one "variable" parameter is allowed for valid_enum of variable {variable_name}'), 7) + xmlfiles = self.objectspace.display_xmlfiles(param.xmlfiles) + raise DictConsistencyError(_(f'only one parameter is allowed for valid_enum of variable "{variable_name}" in {xmlfiles}'), 7) if not hasattr(param, 'text'): if param.type == 'number': - raise DictConsistencyError(_(f'value is mandatory for valid_enum of variable {variable_name}'), 8) + xmlfiles = self.objectspace.display_xmlfiles(param.xmlfiles) + raise DictConsistencyError(_(f'param type is number, so value is mandatory for valid_enum of variable "{variable_name}" in {xmlfiles}'), 8) values.append(None) else: values.append(param.text) diff --git a/tests/dictionaries/80valid_enum_multi_param/00-base.xml b/tests/dictionaries/80valid_enum_multi_param/00-base.xml new file mode 100644 index 00000000..cc026b8e --- /dev/null +++ b/tests/dictionaries/80valid_enum_multi_param/00-base.xml @@ -0,0 +1,23 @@ + + + + + + a + + + a + b + c + + + + + + var + d + + + + diff --git a/tests/dictionaries/80valid_enum_multi_param/__init__.py b/tests/dictionaries/80valid_enum_multi_param/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_multi_param/errno_7 b/tests/dictionaries/80valid_enum_multi_param/errno_7 new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_multi_variable/00-base.xml b/tests/dictionaries/80valid_enum_multi_variable/00-base.xml new file mode 100644 index 00000000..52d0748d --- /dev/null +++ b/tests/dictionaries/80valid_enum_multi_variable/00-base.xml @@ -0,0 +1,28 @@ + + + + + + a + + + a + b + c + + + a + b + c + + + + + + var + var2 + + + + diff --git a/tests/dictionaries/80valid_enum_multi_variable/__init__.py b/tests/dictionaries/80valid_enum_multi_variable/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_multi_variable/errno_5 b/tests/dictionaries/80valid_enum_multi_variable/errno_5 new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_no_param/00-base.xml b/tests/dictionaries/80valid_enum_no_param/00-base.xml new file mode 100644 index 00000000..1796ffd3 --- /dev/null +++ b/tests/dictionaries/80valid_enum_no_param/00-base.xml @@ -0,0 +1,22 @@ + + + + + + non + + + + + c + + + + + + + + + + diff --git a/tests/dictionaries/80valid_enum_no_param/__init__.py b/tests/dictionaries/80valid_enum_no_param/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_no_param/errno_4 b/tests/dictionaries/80valid_enum_no_param/errno_4 new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_none_multi_variable/00-base.xml b/tests/dictionaries/80valid_enum_none_multi_variable/00-base.xml new file mode 100644 index 00000000..aec6f36f --- /dev/null +++ b/tests/dictionaries/80valid_enum_none_multi_variable/00-base.xml @@ -0,0 +1,20 @@ + + + + + + a + + + a + + + + + + var + + + + diff --git a/tests/dictionaries/80valid_enum_none_multi_variable/__init__.py b/tests/dictionaries/80valid_enum_none_multi_variable/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_none_multi_variable/errno_6 b/tests/dictionaries/80valid_enum_none_multi_variable/errno_6 new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_number_without_value/00-base.xml b/tests/dictionaries/80valid_enum_number_without_value/00-base.xml new file mode 100644 index 00000000..3986eae3 --- /dev/null +++ b/tests/dictionaries/80valid_enum_number_without_value/00-base.xml @@ -0,0 +1,22 @@ + + + + + + non + + + + + + + + + + + + + + + diff --git a/tests/dictionaries/80valid_enum_number_without_value/__init__.py b/tests/dictionaries/80valid_enum_number_without_value/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/tests/dictionaries/80valid_enum_number_without_value/errno_8 b/tests/dictionaries/80valid_enum_number_without_value/errno_8 new file mode 100644 index 00000000..e69de29b