From 53c7d295855f6e858c5ce9633b6c29cdd51ac7da922356415d5655849022c77d Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sat, 11 Jul 2026 07:46:43 +0200 Subject: [PATCH] fix: add error tests --- .../__pycache__/__init__.cpython-314.pyc | Bin 1030 -> 0 bytes .../__pycache__/__version__.cpython-314.pyc | Bin 201 -> 0 bytes .../__pycache__/config.cpython-314.pyc | Bin 5744 -> 0 bytes .../__pycache__/env.cpython-314.pyc | Bin 1802 -> 0 bytes .../__pycache__/export.cpython-314.pyc | Bin 13017 -> 0 bytes .../__pycache__/i18n.cpython-314.pyc | Bin 1219 -> 0 bytes .../test_load.cpython-314-pytest-8.3.5.pyc | Bin 4967 -> 0 bytes tests/errors/duplicate/rougail/00-file.yml | 12 +++++ .../multi_separator/rougail/00-file.yml | 8 ++++ .../multi_separator2/rougail/00-file.yml | 20 ++++++++ .../submulti_separator/rougail/00-file.yml | 20 ++++++++ tests/test_error.py | 43 ++++++++++++++++++ tests/test_load.py | 11 ++--- 13 files changed, 107 insertions(+), 7 deletions(-) delete mode 100644 src/rougail/output_environment/__pycache__/__init__.cpython-314.pyc delete mode 100644 src/rougail/output_environment/__pycache__/__version__.cpython-314.pyc delete mode 100644 src/rougail/output_environment/__pycache__/config.cpython-314.pyc delete mode 100644 src/rougail/output_environment/__pycache__/env.cpython-314.pyc delete mode 100644 src/rougail/output_environment/__pycache__/export.cpython-314.pyc delete mode 100644 src/rougail/output_environment/__pycache__/i18n.cpython-314.pyc delete mode 100644 tests/__pycache__/test_load.cpython-314-pytest-8.3.5.pyc create mode 100644 tests/errors/duplicate/rougail/00-file.yml create mode 100644 tests/errors/multi_separator/rougail/00-file.yml create mode 100644 tests/errors/multi_separator2/rougail/00-file.yml create mode 100644 tests/errors/submulti_separator/rougail/00-file.yml create mode 100644 tests/test_error.py diff --git a/src/rougail/output_environment/__pycache__/__init__.cpython-314.pyc b/src/rougail/output_environment/__pycache__/__init__.cpython-314.pyc deleted file mode 100644 index 21e29f468809f39718c7d5263ad9718b26f30d1f46a08e20c16e1b227bcf0ccf..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1030 zcmaiz&2G~`5PFCOhX7Cp7EtxuDpW&O+->!+|1Zl9BI zZTXh5KH9$R+0B9}9OQDrD>jR!cwl`fm@R+HZ2QG$R%x4kCs(J(6aG0vIEsx)^@;1w zX0wXE+pI*Yrz#=ed{D$RTCdOtePAI?NUMIcSF&Iu}V9O-5?0%CC#CCs`t2Qm*;Nn8=nv;e BNTvV) diff --git a/src/rougail/output_environment/__pycache__/__version__.cpython-314.pyc b/src/rougail/output_environment/__pycache__/__version__.cpython-314.pyc deleted file mode 100644 index 9eec0c0a41885bfab84452cc0caa293119f52bf38900f10d21e6ce75cede3287..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmdPq=WH>v& zw4|W4BtA8-EVC#-FE=%>L?6jSy@JYH95%W6DWy57c13JJ!$EE;2D#@0Gb1D84L;E( J?jjZ-7Xa9DHKYIl diff --git a/src/rougail/output_environment/__pycache__/config.cpython-314.pyc b/src/rougail/output_environment/__pycache__/config.cpython-314.pyc deleted file mode 100644 index 93a1975b3d6481e2d24f3ea41a14bd5f3edd6780b70425660bb1810f145ad75f..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5744 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 B9)th@ diff --git a/src/rougail/output_environment/__pycache__/i18n.cpython-314.pyc b/src/rougail/output_environment/__pycache__/i18n.cpython-314.pyc deleted file mode 100644 index f8321c23a646227c596521dfb9375d365e6eac00ab75f72d82d6913ea3ef510f..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1219 zcmai!L66%+6vyo(n+>ig6(_`{ue4fiL=;0oP<5+HA=>O(O0$uZrP{+{P3&P9IjvlC!s_YPHRrU3 z-}=Yy`Pt#+O|XmKu-3YCG23{CTVefEB(TFYP8-9@x&8mAc_ZAu?lc?ZN8AjAp-K?L zq#&H>l>voeoEb*7H$vm+{8Ss+wL`=1awd z0y54t$aFP17#u^NYK?mbR8U1Y42ub8G4xqXg{DC8^>#&PG=a&|p7MGYVzh>Up2Xm* zWLrQP?kkv6rBMa=X!D+Rv=$)LE-{u{c`~I6$FVahZi4}V$bIc~g zXqfPVaSjs-g{Eo2TYy5q{a}1}bUgMtgA=&l3B%4{e6ok0CX={J=kz=do8_Ega;T^x z!YnQGz5TFzi2j|=f_^YQvDm#}JlG$Nyxvg=9T;}PanL>PcS0B*hr^@Mej8wfvRH{< zuWGs~j-p;d4Pjhk#wS=xjbuE5jLa#PG^T8hTm)iljE$17jqMRG#dMV>!d!F@@&zdf zX^N#JpbrViS(UxlJW8H1dwSTwmHQn-(K|M59##YHKYeQnP@?9m1DI!OxVP2Ss ziaAqK%&0JBoy(YTI!5P4N;sd8_^UzFE4QO4k#Q82+f!-`ePEQmO67Kr0Xdr}d&$Zw z_HWsUqLgupuJs%n9AmopiJm(z?X4^K{Y=iNkG!II;7^(HwUKk`ubF(U;{WVd`F!@_ zEz!=GW#bNBjDpj<>TQf_{}^-^A7@q9b^oedaclqFa9sG^dFPMXTff!d$@M46vs+Ka ri=DlnclLhBe%D_fO^?pedxs(%-J6MXBcD;Vcr7u$F< diff --git a/tests/__pycache__/test_load.cpython-314-pytest-8.3.5.pyc b/tests/__pycache__/test_load.cpython-314-pytest-8.3.5.pyc deleted file mode 100644 index 1b6e9710d0896b5b16fee98c41102ff772468ba5b0a35f5ad451a52955620ed5..0000000000000000000000000000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4967 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 TDbB%7eeZQ}2Y!I+5Yy`4N9ZNx diff --git a/tests/errors/duplicate/rougail/00-file.yml b/tests/errors/duplicate/rougail/00-file.yml new file mode 100644 index 0000000..9c05f05 --- /dev/null +++ b/tests/errors/duplicate/rougail/00-file.yml @@ -0,0 +1,12 @@ +%YAML 1.2 +--- +version: 1.1 + +family_1: # A family + + variable: # A variable + +family_2: # An other family + + variable: # A variable +... diff --git a/tests/errors/multi_separator/rougail/00-file.yml b/tests/errors/multi_separator/rougail/00-file.yml new file mode 100644 index 0000000..a6c977f --- /dev/null +++ b/tests/errors/multi_separator/rougail/00-file.yml @@ -0,0 +1,8 @@ +%YAML 1.2 +--- +version: 1.1 + +variable: # A variable + - val1 + - val;2 +... diff --git a/tests/errors/multi_separator2/rougail/00-file.yml b/tests/errors/multi_separator2/rougail/00-file.yml new file mode 100644 index 0000000..e4bbc31 --- /dev/null +++ b/tests/errors/multi_separator2/rougail/00-file.yml @@ -0,0 +1,20 @@ +%YAML 1.2 +--- +version: 1.1 + +sequence: + description: A sequence + type: sequence + + variable1: + description: A variable 1 + default: + - val1 + - val2 + + variable2: + description: A variable 2 + default: + - val1 + - val;2 +... diff --git a/tests/errors/submulti_separator/rougail/00-file.yml b/tests/errors/submulti_separator/rougail/00-file.yml new file mode 100644 index 0000000..664c8f1 --- /dev/null +++ b/tests/errors/submulti_separator/rougail/00-file.yml @@ -0,0 +1,20 @@ +%YAML 1.2 +--- +version: 1.1 + +sequence: + description: A sequence + type: sequence + + variable1: + description: A variable 1 + default: + - val1 + - val2 + + variable2: + description: A variable 2 + default: + - val1 + - val,2 +... diff --git a/tests/test_error.py b/tests/test_error.py new file mode 100644 index 0000000..0d5c876 --- /dev/null +++ b/tests/test_error.py @@ -0,0 +1,43 @@ +from pathlib import Path +from pytest import raises +from rougail_tests.utils import get_rougail_config, get_values_for_config +######################### +from rougail.output_environment import RougailOutputEnvironment as RougailOutput +######################### +from rougail.error import ExtensionError +from rougail import Rougail + + +def _test_error(test_dir): + rougailconfig = get_rougail_config(test_dir, False) + if not rougailconfig: + return +# rougailconfig['tiramisu_cache'] = "cache.py" + ################################## + rougailconfig['step.output'] = 'environment' + rougailconfig["environment.output.path_is_variable_name"] = False + rougailconfig["environment.output.multi_in_array"] = False + ################################## + rougail = Rougail(rougailconfig) + config = rougail.run() + ################################## + get_values_for_config(config, level="mandatory") + ################################## + with raises(ExtensionError): + RougailOutput(config, rougailconfig=rougailconfig).run() + + +def test_error_duplicate(): + _test_error(Path("tests/errors/duplicate")) + + +def test_error_multi_separator(): + _test_error(Path("tests/errors/multi_separator")) + + +def test_error_multi_separator2(): + _test_error(Path("tests/errors/multi_separator2")) + + +def test_error_submulti_separator(): + _test_error(Path("tests/errors/submulti_separator")) diff --git a/tests/test_load.py b/tests/test_load.py index bf7c8b4..38dc4c2 100644 --- a/tests/test_load.py +++ b/tests/test_load.py @@ -1,13 +1,10 @@ -import os -from pytest import fixture, raises from pathlib import Path -from rougail import Rougail, RougailConfig +from pytest import fixture +from rougail_tests.utils import get_structures_list, get_rougail_config, get_values_for_config ######################### from rougail.output_environment import RougailOutputEnvironment as RougailOutput -from json import load, dump ######################### - -from rougail_tests.utils import get_structures_list, get_rougail_config, get_values_for_config, config_to_dict +from rougail import Rougail EXT = "env" @@ -64,7 +61,7 @@ def _test_structural_files(test_dir, namespace, ext, change=False): with output_file.open('w') as outfh: outfh.write(generated_output) with output_file.open() as outfh: - attented_output = outfh.read() + attented_output = outfh.read() assert generated_output == attented_output, f'filename {output_file}'