diff --git a/sqlmesh/dbt/builtin.py b/sqlmesh/dbt/builtin.py index fa05e3d7f9..3b06ec985a 100644 --- a/sqlmesh/dbt/builtin.py +++ b/sqlmesh/dbt/builtin.py @@ -369,7 +369,7 @@ def to_yaml(value: t.Any, default: t.Optional[t.Any] = None) -> t.Optional[t.Any def from_yaml(value: t.Any, default: t.Optional[t.Any] = None) -> t.Optional[t.Any]: try: - return dict(yaml.load(value, raise_if_empty=False, render_jinja=False)) + return yaml.load(value, raise_if_empty=False, render_jinja=False) except (TypeError, YAMLError): return default diff --git a/tests/dbt/test_transformation.py b/tests/dbt/test_transformation.py index fe6073dfad..32249cbef3 100644 --- a/tests/dbt/test_transformation.py +++ b/tests/dbt/test_transformation.py @@ -1792,6 +1792,12 @@ def test_yaml(sushi_test_project: Project): assert context.render("{{ toyaml(invalid) }}", invalid=lambda: "") == "None" assert context.render("""{{ fromyaml('key: value') }}""") == "{'key': 'value'}" + assert context.render("""{{ fromyaml('[1, 2]') }}""") == "[1, 2]" + assert ( + context.render("{% set my_yaml %}\n- good\n- bad\n{% endset %}{{ fromyaml(my_yaml) }}") + == "['good', 'bad']" + ) + assert context.render("""{{ fromyaml('42') }}""") == "42" @pytest.mark.xdist_group("dbt_manifest")