diff --git a/unittests/test_macros.py b/unittests/test_macros.py index 7ac34cc7c48df3cb2855d7022119e4775d90c9a6..8adc4194444b913f548599354e784fdc53b025be 100644 --- a/unittests/test_macros.py +++ b/unittests/test_macros.py @@ -328,3 +328,38 @@ extroot: !macro assert cfood["extroot"]["once"]["something"]["a"] == "4" assert cfood["extroot"]["twice"]["something"]["a"] == "5" assert cfood["extroot"]["default_name"]["something"]["a"] == "4" + + + +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 + a: $macro_name + definition: + $macro_name: + macro_name: $macro_name + a: $a +--- +extroot: !macro + test_def_replacements: + - macro_name: once + - macro_name: twice + a: 5 + - {} + """) + assert cfood["extroot"]["once"]["a"] == "once" + assert cfood["extroot"]["once"]["macro_name"] == "once" + assert cfood["extroot"]["twice"]["a"] == "5" + assert cfood["extroot"]["twice"]["macro_name"] == "twice" + assert cfood["extroot"]["default_name"]["a"] == "default_name" + assert cfood["extroot"]["default_name"]["macro_name"] == "default_name"