Files
testium/test/validation/items/py_func/test.tum
François d92f518e1e Add context_id to py_func and lua_func for shared persistent subprocess
- py_func and lua_func items accept a context_id parameter; items sharing
  the same id reuse the same subprocess for the duration of the test run
- Subprocess-side tm.setgd/tm.gd use a local fallback dict for non-JSON-
  serializable values (py_func only); serializable values reach the main
  process global dict and are accessible from any test item or subprocess
- Shared subprocess engines are cleaned up in process.py finally block
- LuaProcessBase gains is_alive() (was missing, broke all lua_func items)
- Validation tests cover serializable sharing across different context ids,
  non-serializable sharing within the same context_id, and cross-item access
- RST documentation updated for both py_func and lua_func items

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 16:02:36 +02:00

240 lines
6.7 KiB
Plaintext

- let:
name: py_func test constants,
values:
py_func test parameter: test parameter
- py_func:
name: pass py_func
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: assertparam
param:
- true
- py_func:
name: fail py_func
key: $(test)_FAIL
file: $(test_path)$(psep)py_func.py
func_name: assertparam
param:
- false
- py_func:
name: fail py_func with expected result "FAIL"
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: assertparam
param:
- false
expected_result: FAIL
- py_func:
name: pass py_func with expected result FAIL
key: $(test)_FAIL
file: $(test_path)$(psep)py_func.py
func_name: assertparam
param:
- true
expected_result: FAIL
- py_func:
name: expected -1
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param:
- -1
expected_result: -1
- py_func:
name: expected eval
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param:
- -1
expected_result: "354848436 - 354848437"
- py_func:
name: expected table
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param:
- [-1, a, {toto: tata}]
expected_result: "[-1, 'a', {'toto': 'tata'}]"
- py_func:
name: global param py_func
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: checkglobal
param:
- $(py_func test parameter)
- let:
name: python2func
key: $(test)_PASS
values:
- py: $(test_path)$(psep)py_func.py
- py_func:
name: global param py_func 2
key: $(test)_PASS
file: $(py)
func_name: checkglobal2
expected_result: $(py_func test parameter)
- py_func:
name: global param py_func
key: $(test)_PASS
file: $(py)
func_name: checkglobal
param:
- $(py_func test parameter)
- py_func:
name: skipped_checkglobal
file: $(test_path)$(psep)py_func.py
func_name: should_not_be_called
param:
- $(py_func test parameter)
- py_func:
name: skipped true
file: $(test_path)$(psep)py_func.py
func_name: checkglobal
skipped: true
param:
- $(py_func test parameter)
- py_func:
name: skipped 1
file: $(test_path)$(psep)py_func.py
func_name: checkglobal
skipped: 1
param:
- $(py_func test parameter)
- py_func:
name: FunctionItem test
file: $(test_path)$(psep)py_func.py
func_name: ValidationTest
param:
- $(py_func test parameter)
- group:
name: Function results check
steps:
- group:
name: Function result 1
steps:
- py_func:
name: int failure
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param: [-1]
expected_result: -1
- py_func:
name: float failure
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param: [-1.3]
expected_result: -1.3
- py_func:
name: String failure
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param: [ "FAIL" ]
expected_result: FAIL
- py_func:
name: Tuple int,str failure
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: tuple_return
param: [ -1, "Got a failure" ]
expected_result: [-1, "Got a failure"]
- group:
name: Functions result 2
steps:
- py_func:
name: int success
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param: [0]
expected_result: 0
- py_func:
name: float success
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param: [0.3]
expected_result: 0.3
- py_func:
name: String success
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: echo
param: [ "Something that is not only strictly FAIL" ]
expected_result: Something that is not only strictly FAIL
- py_func:
name: Tuple int,str success
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: tuple_return
param: [ 0, "OK" ]
expected_result: [0, "OK"]
- group:
name: context_id tests
steps:
- py_func:
name: set serializable value
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: set_context_value
param:
- hello context
expected_result: hello context
- py_func:
name: get serializable value (same context_id)
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: get_context_value
context_id: ctx_test
expected_result: hello context
- py_func:
name: get serializable value (no context_id, from main gd)
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: get_context_value
expected_result: hello context
- py_func:
name: get serializable value (different context_id)
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: get_context_value
context_id: ctx_other
expected_result: hello context
- py_func:
name: set non-serializable value
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: set_ns_value
context_id: ctx_ns_test
param:
- hello ns
expected_result: hello ns
- py_func:
name: get non-serializable value (same context_id)
key: $(test)_PASS
file: $(test_path)$(psep)py_func.py
func_name: get_ns_value
context_id: ctx_ns_test
expected_result: hello ns