code: def test_vars_and_params_import(tmp_dir, dvc):
      """
      Test that vars and params are both merged together for interpolation,
      whilst tracking the "used" variables from params.
      """
      d = {
          "vars": [DEFAULT_PARAMS_FILE, {"dict": {"foo": "foobar"}}],
          "stages": {"stage1": {"cmd": "echo ${dict.foo} ${dict.bar}"}},
      }
      (tmp_dir / DEFAULT_PARAMS_FILE).dump({"dict": {"bar": "bar"}})
      resolver = DataResolver(dvc, tmp_dir.fs_path, d)
  
      assert_stage_equal(
          resolver.resolve(),
          {"stages": {"stage1": {"cmd": "echo foobar bar"}}},
      )
      assert resolver.tracked_vars == {
          "stage1": {DEFAULT_PARAMS_FILE: {"dict.bar": "bar"}}
      }
  
file_path: dvc/tests/func/parsing/test_interpolated_entry.py
imports: import os
  from copy import deepcopy
  import pytest
  from dvc.dependency import _merge_params
  from dvc.parsing import DEFAULT_PARAMS_FILE, DataResolver
  from dvc.parsing.context import recurse_not_a_node
  from dvc.parsing.interpolate import escape_str
  from .None import CONTEXT_DATA, RESOLVED_DVC_YAML_DATA, TEMPLATED_DVC_YAML_DATA, USED_VARS
label_desc: Use image node_id 4 for calling a global function with example usage: test_vars_and_params_import(tmp_dir, dvc) without return types