diff --git a/unittests/test_macros.py b/unittests/test_macros.py index 2934d7902a2f7be6925491f73412b0350265145d..4e27e42f8d1e633cf97fa142e2c0ec8aa013af05 100644 --- a/unittests/test_macros.py +++ b/unittests/test_macros.py @@ -327,7 +327,6 @@ extroot: !macro assert cfood["extroot"]["once"]["something"]["a"] == "4" assert cfood["extroot"]["twice"]["something"]["a"] == "5" assert cfood["extroot"]["default_name"]["something"]["a"] == "4" - # Code sample to generate the expanded macro: # with open("expanded_test_macro.yaml", "w") as f: # f.write(yaml.dump(cfood)) @@ -409,3 +408,51 @@ SimulationData: # Code sample to generate the expanded macro: # with open("expanded_test_macro.yaml", "w") as f: # f.write(yaml.dump(cfood)) + + +@pytest.mark.xfail( + reason="Wait until this feature is implemented" + "https://gitlab.com/caosdb/caosdb-crawler/-/issues/21." +) +def test_def_replacements(): + """Test that parameters in macro definitions can be used + for defining subsequent parameters. + """ + + cfood = _temp_file_load(""" +--- +metadata: + macros: + - !defmacro + name: test_def_replacements + params: + macro_name: default_name + z: $macro_name + a: $macro_name + v: $z + definition: + $macro_name: + macro_name: $macro_name + z: $z + a: $a + v: $v +--- +extroot: !macro + test_def_replacements: + - macro_name: once + - macro_name: twice + z: 5 + - {} + """) + assert cfood["extroot"]["once"]["z"] == "once" + assert cfood["extroot"]["once"]["a"] == "once" + assert cfood["extroot"]["once"]["v"] == "once" + assert cfood["extroot"]["once"]["macro_name"] == "once" + assert cfood["extroot"]["twice"]["z"] == "5" + assert cfood["extroot"]["twice"]["a"] == "5" + assert cfood["extroot"]["twice"]["v"] == "5" + assert cfood["extroot"]["twice"]["macro_name"] == "twice" + assert cfood["extroot"]["default_name"]["z"] == "default_name" + assert cfood["extroot"]["default_name"]["a"] == "default_name" + assert cfood["extroot"]["default_name"]["v"] == "default_name" + assert cfood["extroot"]["default_name"]["macro_name"] == "default_name"