code: def test_failed_to_interpolate(tmp_dir, dvc):
      context = Context(models={"foo": "bar"})
      definition = make_entry_definition(
          tmp_dir, "build", {"cmd": "echo ${models.foo.}"}, context
      )
  
      with pytest.raises(ResolveError) as exc_info:
          definition.resolve()
  
      assert (
          escape_ansi(str(exc_info.value))
          == "failed to parse 'stages.build.cmd' in 'dvc.yaml':\n"
          "${models.foo.}\n"
          "            ^\n"
          "ParseException: Expected end of text, found '.'"
          "  (at char 12), (line:1, col:13)"
      )
      assert definition.context == {"models": {"foo": "bar"}}
  
imports: import logging
  import re
  import pytest
  from dvc.parsing import ResolveError
  from dvc.parsing.context import Context
  from dvc.parsing.interpolate import embrace
  from dvc.utils.humanize import join
  from .None import make_entry_definition, make_foreach_def
label_desc: Use image node_id 3 for calling a global function with example usage: test_failed_to_interpolate(tmp_dir, dvc) without return types