From 899857767a99826c185796dfe93ccf1f7bad9859 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois?= Date: Fri, 13 Feb 2026 18:51:49 +0100 Subject: [PATCH] Changed (once again) the evaluation delimiters (<| and |>) --- doc/examples/example_conditional.tum | 28 +++++++++--------- doc/examples/example_cycle.tum | 2 +- doc/examples/example_items.tum | 4 +-- doc/examples/example_sequence.tum | 2 +- doc/examples/example_simple.tum | 2 +- doc/examples/example_text_manip.tum | 4 +-- .../source/test_items/group_test_item.rst | 2 +- .../test_items/items_common_attributes.rst | 4 +-- .../source/test_items/let_test_item.rst | 2 +- doc/manual/sphinx/source/tum_syntax.rst | 8 ++--- doc/manual/testium_manual.pdf | Bin 669440 -> 669328 bytes src/testium/interpreter/utils/params.py | 4 +-- test/validation/items/check/test.tum | 4 +-- .../items/common/conditional/test.tum | 23 +++++++------- test/validation/items/common/results/test.tum | 4 +-- test/validation/items/expanse/param.yaml | 2 +- test/validation/items/expanse/test.tum | 28 +++++++++--------- test/validation/items/jsonrpc/test.tum | 2 +- test/validation/items/let/test.tum | 10 +++---- test/validation/main.tum | 4 +-- test/validation/param.yaml | 2 +- 21 files changed, 71 insertions(+), 70 deletions(-) diff --git a/doc/examples/example_conditional.tum b/doc/examples/example_conditional.tum index fd3664c..7aaadf6 100644 --- a/doc/examples/example_conditional.tum +++ b/doc/examples/example_conditional.tum @@ -10,12 +10,12 @@ main: - let: name: Set test variables for Linux - condition: $| "$(os)" == "Linux" | + condition: <| "$(os)" == "Linux" |> values: - terminal_prompt: $(linux_prompt) - let: name: Set test variables for Windows - condition: $| "$(os)" == "Windows" | + condition: <| "$(os)" == "Windows" |> values: - terminal_prompt: $(windows_prompt) @@ -35,17 +35,17 @@ main: no_fail: True exit_condition: - value: $| "$(last_test_result)" == "PASS" | + value: <| "$(last_test_result)" == "PASS" |> - let: name: let values: - - conditional_exec: $| random.randint(1, 4) | + - conditional_exec: <| random.randint(1, 4) |> - console: name: Console creation - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname doc: Opening the console steps: @@ -55,56 +55,56 @@ main: - console: name: Console read_until with timeout - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname steps: - read_until: {expected: "$(terminal_prompt)", timeout: 10} - console: name: Console write - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname steps: - writeln: echo 0 - sleep: name: sleep item - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> timeout: 5 - console: name: Console read_until immediate - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname steps: - read_until: {expected: "0", timeout: 0} - console: name: Console read_until immediate (2) - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname steps: - read_until: {expected: "$(terminal_prompt)", timeout: 0} - console: name: Console closure - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname steps: - close: consname - sleep: name: sleep item - condition: $| $(conditional_exec) == 2 | + condition: <| $(conditional_exec) == 2 |> timeout: 5 - dialog_image: name: dialog image item - condition: $| $(conditional_exec) == 3 | + condition: <| $(conditional_exec) == 3 |> question: click ok if you see the image filename: image.jpg - dialog_value: name: dialog_value item - condition: $| $(conditional_exec) == 4 | + condition: <| $(conditional_exec) == 4 |> question: enter something and click ok \ No newline at end of file diff --git a/doc/examples/example_cycle.tum b/doc/examples/example_cycle.tum index e7b18f8..6d068ae 100644 --- a/doc/examples/example_cycle.tum +++ b/doc/examples/example_cycle.tum @@ -139,7 +139,7 @@ main: timeout: 0.2 dialog: false exit_condition: - value: $| $(variable) >= 10 | + value: <| $(variable) >= 10 |> # This loop must fail du to an exception in exit condition. - loop: diff --git a/doc/examples/example_items.tum b/doc/examples/example_items.tum index 9b367f2..5a5fd90 100644 --- a/doc/examples/example_items.tum +++ b/doc/examples/example_items.tum @@ -16,7 +16,7 @@ main: - group: name: Set test variables for Linux - condition: $| "$(os)" == "Linux" | + condition: <| "$(os)" == "Linux" |> steps: - let: @@ -26,7 +26,7 @@ main: - group: name: Set test variables for Windows - condition: $| "$(os)" == "Windows" | + condition: <| "$(os)" == "Windows" |> steps: - let: diff --git a/doc/examples/example_sequence.tum b/doc/examples/example_sequence.tum index 8deb2d1..eb6f4a3 100644 --- a/doc/examples/example_sequence.tum +++ b/doc/examples/example_sequence.tum @@ -22,6 +22,6 @@ main: - *seq_sleep exit_condition: - value: $| $(variable) >= 3 | + value: <| $(variable) >= 3 |> - !include {file: seq2.tum, is_dialog: True, sleep_timeout: 12, func_para: truc} \ No newline at end of file diff --git a/doc/examples/example_simple.tum b/doc/examples/example_simple.tum index f4a439e..201c733 100644 --- a/doc/examples/example_simple.tum +++ b/doc/examples/example_simple.tum @@ -23,5 +23,5 @@ main: - sleep: name: sleep item dialog: true - timeout: $| 3600 + random.randint(1, 10) | + timeout: <| 3600 + random.randint(1, 10) |> no_fail: true diff --git a/doc/examples/example_text_manip.tum b/doc/examples/example_text_manip.tum index 9619119..8793447 100644 --- a/doc/examples/example_text_manip.tum +++ b/doc/examples/example_text_manip.tum @@ -21,9 +21,9 @@ main: - let: name: Extract data values: - - text_extract: $| [l for l in '''$(rand_text)'''.splitlines() if '$(text_searched)' in l][0] | + - text_extract: <| [l for l in '''$(rand_text)'''.splitlines() if '$(text_searched)' in l][0] |> - dialog_message: - condition: $| len('$(text_extract)') > 0 | + condition: <| len('$(text_extract)') > 0 |> name: dialog value test item question: Tataaaaa ! \ No newline at end of file diff --git a/doc/manual/sphinx/source/test_items/group_test_item.rst b/doc/manual/sphinx/source/test_items/group_test_item.rst index af74fb7..3af307d 100644 --- a/doc/manual/sphinx/source/test_items/group_test_item.rst +++ b/doc/manual/sphinx/source/test_items/group_test_item.rst @@ -8,7 +8,7 @@ This element is of the following form: - group: name: Group Item - condition: $| "$(OS)" == "Linux" | + condition: <| "$(OS)" == "Linux" |> steps: - unittest_file: test_file: test_prod_alpha_13.py diff --git a/doc/manual/sphinx/source/test_items/items_common_attributes.rst b/doc/manual/sphinx/source/test_items/items_common_attributes.rst index 11b5358..b9c2f15 100644 --- a/doc/manual/sphinx/source/test_items/items_common_attributes.rst +++ b/doc/manual/sphinx/source/test_items/items_common_attributes.rst @@ -196,8 +196,8 @@ Export attribute key: - GID-1510554_step_1 report: - reported_list: $| random.sample(range(0,20), k=10) | - reported_float: $| math.sqrt(float(1)) | + reported_list: <| random.sample(range(0,20), k=10) |> + reported_float: <| math.sqrt(float(1)) |> reported_str: This is my reported sentence diff --git a/doc/manual/sphinx/source/test_items/let_test_item.rst b/doc/manual/sphinx/source/test_items/let_test_item.rst index 4ffd38e..f896259 100644 --- a/doc/manual/sphinx/source/test_items/let_test_item.rst +++ b/doc/manual/sphinx/source/test_items/let_test_item.rst @@ -11,7 +11,7 @@ This element is of the following form: values: key1: value1 key2: value2 - key3: $| $(variable)[$(loop_index)] | + key3: <| $(variable)[$(loop_index)] |> The ``let`` element is used to set values in the global directory. diff --git a/doc/manual/sphinx/source/tum_syntax.rst b/doc/manual/sphinx/source/tum_syntax.rst index e039a9b..4cecc6b 100644 --- a/doc/manual/sphinx/source/tum_syntax.rst +++ b/doc/manual/sphinx/source/tum_syntax.rst @@ -63,7 +63,7 @@ The parameter file can be specified in the `.tum` file root: parameter1: value1 parameter2: 1234 - parameter3: $| 12.34 * 2 | + parameter3: <| 12.34 * 2 |> parameter4: - $(parameter1) - $(parameter3) @@ -205,7 +205,7 @@ The variable substitution is recursive and checks all the occurrences of the ``$(x)`` pattern in a string. It is also possible to perform evaluation of python substrings during parameters passing. -It is done by using the ``$| expr |`` pattern in a string. +It is done by using the ``<| expr |>`` pattern in a string. `expr` may then be a correct python expression. Below are illustrated simple and more complicated cases of expansion and evaluation depending on @@ -218,10 +218,10 @@ their pattern. name: Dynamic variables expansion key: $(test)_PASS values: - - expanse_select: $|"$(expanse_select)".replace("o", "a")| + - expanse_select: <|"$(expanse_select)".replace("o", "a")|> - expanse_index: $(expanse_index_$(expanse_select)) - expanse_table: $(expanse_table_$(expanse_select)) - - expanse_eval: $|$(expanse_index) == 1| + - expanse_eval: <|$(expanse_index) == 1|> Test Items -------------------- diff --git a/doc/manual/testium_manual.pdf b/doc/manual/testium_manual.pdf index 82a1223a241e0db4530df93be1dc69b816629078..eb9a886dd25f2fc833c7b32cb283b32ba848989e 100644 GIT binary patch delta 32661 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 D{?h^z delta 32753 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 diff --git a/src/testium/interpreter/utils/params.py b/src/testium/interpreter/utils/params.py index 0564c48..d8c22a1 100644 --- a/src/testium/interpreter/utils/params.py +++ b/src/testium/interpreter/utils/params.py @@ -307,13 +307,13 @@ def _preprocess_string(value, parent=None): def _eval_param(value): """This function parses a string value to check if patterns corresponding - to $|xxx| exists. + to <|xxx|> exists. When this kind of pattern is found, an attempt to evaluate its content is done. If it is not evaluable, not replaced. """ global glob_eval_func - return _parse_and_process("$|", "|", value, glob_eval_func) + return _parse_and_process("<|", "|>", value, glob_eval_func) def _process_recursively(func, param_value, *fparams): diff --git a/test/validation/items/check/test.tum b/test/validation/items/check/test.tum index f9c7bd3..346b8da 100644 --- a/test/validation/items/check/test.tum +++ b/test/validation/items/check/test.tum @@ -19,10 +19,10 @@ name: Check condition on existing variable (PASS) key: $(test)_PASS values: - - $| $(pfn_Dummy_int) > 1 | + - <| $(pfn_Dummy_int) > 1 |> - check: name: Check condition on existing variable (FAIL) key: $(test)_FAIL values: - - $| "tailor" in "$(pfn_Dummy_str)" | \ No newline at end of file + - <| "tailor" in "$(pfn_Dummy_str)" |> \ No newline at end of file diff --git a/test/validation/items/common/conditional/test.tum b/test/validation/items/common/conditional/test.tum index 9dcd2e7..571f567 100644 --- a/test/validation/items/common/conditional/test.tum +++ b/test/validation/items/common/conditional/test.tum @@ -16,17 +16,17 @@ - $(loop_param) exit_condition: - value: $| $(pfn_Echo function) > 3 | + value: <| $(pfn_Echo function) > 3 |> - let: name: let key: $(test)_PASS values: - - conditional_exec: $| random.randint(1, 2) | + - conditional_exec: <| random.randint(1, 2) |> - console: name: Console creation - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname doc: Opening the console key: $(test)_PASS @@ -34,18 +34,19 @@ - open: protocol: terminal terminal_path: $(test_directory) + - writeln: echo "terminal loaded" - console: name: Console read_until with timeout - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname key: $(test)_PASS steps: - - read_until: {expected: "$(terminal_prompt)", timeout: 10} + - read_until: {expected: terminal loaded, timeout: 5} - console: name: Console write - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname key: $(test)_PASS steps: @@ -53,12 +54,12 @@ - sleep: name: sleep item - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> timeout: 1 - console: name: Console read_until immediate - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname key: $(test)_PASS steps: @@ -66,7 +67,7 @@ - console: name: Console read_until immediate (2) - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname key: $(test)_PASS steps: @@ -74,7 +75,7 @@ - console: name: Console closure - condition: $| $(conditional_exec) == 1 | + condition: <| $(conditional_exec) == 1 |> console_name: consname key: $(test)_PASS steps: @@ -82,5 +83,5 @@ - sleep: name: sleep item - condition: $| $(conditional_exec) == 2 | + condition: <| $(conditional_exec) == 2 |> timeout: 1 diff --git a/test/validation/items/common/results/test.tum b/test/validation/items/common/results/test.tum index 007ee12..fb17fbe 100644 --- a/test/validation/items/common/results/test.tum +++ b/test/validation/items/common/results/test.tum @@ -138,7 +138,7 @@ - py_func: name: Return True expect False but no_fail expansed - no_fail: $| bool(0) == False | + no_fail: <| bool(0) == False |> key: $(test)_PASS file: $(test_path)$(psep)results$(psep)results.py func_name: echo @@ -147,7 +147,7 @@ - py_func: name: Return True expect False but no_fail expansed (must fail) - no_fail: $| bool(1) == False | + no_fail: <| bool(1) == False |> key: $(test)_FAIL file: $(test_path)$(psep)results$(psep)results.py func_name: echo diff --git a/test/validation/items/expanse/param.yaml b/test/validation/items/expanse/param.yaml index f3a3d8f..8614575 100644 --- a/test/validation/items/expanse/param.yaml +++ b/test/validation/items/expanse/param.yaml @@ -9,4 +9,4 @@ expanse_index_blo: 1 expanse_index: $(expanse_index_$(expanse_select)) expanse_table: $(expanse_table_$(expanse_select)) -expanse_eval: $|$(expanse_index) == 1| +expanse_eval: <|$(expanse_index) == 1|> diff --git a/test/validation/items/expanse/test.tum b/test/validation/items/expanse/test.tum index b8bd816..ae0c0cc 100644 --- a/test/validation/items/expanse/test.tum +++ b/test/validation/items/expanse/test.tum @@ -2,26 +2,26 @@ name: Check variables expansion is correct (PASS) key: $(test)_PASS values: - - $(expanse_index) == 1 - - $(expanse_table)[$(expanse_index)] == 9012 - - $(expanse_eval) == True + - <| $(expanse_index) == 1 |> + - <| $(expanse_table)[$(expanse_index)] == 9012 |> + - <| $(expanse_eval) == True |> - let: name: Dynamic variables expansion key: $(test)_PASS values: - - expanse_select: $|"$(expanse_select)".replace("o", "a")| + - expanse_select: <|"$(expanse_select)".replace("o", "a")|> - expanse_index: $(expanse_index_$(expanse_select)) - expanse_table: $(expanse_table_$(expanse_select)) - - expanse_eval: $|$(expanse_index) == 1| + - expanse_eval: <|$(expanse_index) == 1|> - check: name: Check variables expansion is correct (PASS) key: $(test)_PASS values: - - $(expanse_index) == 0 - - $(expanse_table)[$(expanse_index)] == "abcd" - - $(expanse_eval) == False + - <| $(expanse_index) == 0 |> + - <| $(expanse_table)[$(expanse_index)] == "abcd" |> + - <| $(expanse_eval) == False |> - let: name: Complex variables expansion @@ -33,13 +33,13 @@ - var4: blo - expanse_var_bla: 3 - expanse_blo_var: 5 - - expanse_complex: $|$|$(expanse_$(var2)_$(var3))*6| + $|4*$($(var1)_$(var4)_$(var2))|| + - expanse_complex: <|<|$(expanse_$(var2)_$(var3))*6|> + <|4*$($(var1)_$(var4)_$(var2))|>|> - check: name: Check complex variables expansion is correct (PASS) key: $(test)_PASS values: - - $| $(expanse_complex) == 38 | + - <| $(expanse_complex) == 38 |> - let: name: Variables expansion in object @@ -50,10 +50,10 @@ - expanse_var_2: 6 - expanse_object: [ - { a: $(expanse_var_2), $(expanse_key): $|2**3| }, + { a: $(expanse_var_2), $(expanse_key): <|2**3|> }, { - '$|"bla".replace("a", "o")|': - [$|$(expanse_var)*$(expanse_var_2)|, 25], + '<|"bla".replace("a", "o")|>': + [<|$(expanse_var)*$(expanse_var_2)|>, 25], }, ] @@ -61,4 +61,4 @@ name: Check complex variables expansion is correct (PASS) key: $(test)_PASS values: - - '$| $(expanse_object) == [{"a": 6, "b": 8}, {"blo": [18, 25]}] |' + - '<| $(expanse_object) == [{"a": 6, "b": 8}, {"blo": [18, 25]}] |>' diff --git a/test/validation/items/jsonrpc/test.tum b/test/validation/items/jsonrpc/test.tum index 87c0d1b..1eba894 100644 --- a/test/validation/items/jsonrpc/test.tum +++ b/test/validation/items/jsonrpc/test.tum @@ -13,7 +13,7 @@ - group: name: jsonrpc tests - condition: $| '/jrpces' in r'''$(cn_json rpc echo server)''' | + condition: <| '/jrpces' in r'''$(cn_json rpc echo server)''' |> steps: - console: name: Start the json rpc echo server diff --git a/test/validation/items/let/test.tum b/test/validation/items/let/test.tum index 08c6a41..83d4252 100644 --- a/test/validation/items/let/test.tum +++ b/test/validation/items/let/test.tum @@ -12,7 +12,7 @@ name: Let it be values: it: $(loop_param) - be: $| $(loop_param) == $(it) | + be: <| $(loop_param) == $(it) |> - loop: name: Cycle iterating on list @@ -30,7 +30,7 @@ name: Let it be values: - it: $(loop_param) - - be: $| $(loop_param) == $(it) | + - be: <| $(loop_param) == $(it) |> - let: name: Get time @@ -44,7 +44,7 @@ name: Get parameter file value key: $(test)_PASS values: - - test_overwrite_me: $| $(overwrite_me) == True | + - test_overwrite_me: <| $(overwrite_me) == True |> - py_func: name: Check global dic pass @@ -84,10 +84,10 @@ name: Evaluate Overwriting parameter file value key: $(test)_PASS values: - - test_overwrite_me: $| "$(overwrite_me)" == True | + - test_overwrite_me: <| "$(overwrite_me)" == True |> - check: name: Check Overwriting parameter file value key: $(test)_PASS values: - - $(test_overwrite_me) == False \ No newline at end of file + - <| $(test_overwrite_me) == False |> \ No newline at end of file diff --git a/test/validation/main.tum b/test/validation/main.tum index bea81b6..aa15916 100644 --- a/test/validation/main.tum +++ b/test/validation/main.tum @@ -13,14 +13,14 @@ main: - let: name: Set test variables for Linux - condition: $| "$(os)" == "Linux" | + condition: <| "$(os)" == "Linux" |> values: - terminal_prompt: $(linux_prompt) - psep: "/" - let: name: Set test variables for Windows - condition: $| "$(os)" == "Windows" | + condition: <| "$(os)" == "Windows" |> values: - terminal_prompt: $(windows_prompt) - psep: "\\" diff --git a/test/validation/param.yaml b/test/validation/param.yaml index 534c4ac..af179f3 100644 --- a/test/validation/param.yaml +++ b/test/validation/param.yaml @@ -1,5 +1,5 @@ # All sub directory in items are evaluated as a list -items: $| [os.path.basename(f.path) for f in os.scandir(os.path.join(r"$(test_directory)", "items")) if f.is_dir()] | +items: <| [os.path.basename(f.path) for f in os.scandir(os.path.join(r"$(test_directory)", "items")) if f.is_dir()] |> # - common # - check # - console