code: def test_run_celery(tmp_dir, scm, dvc, exp_stage, mocker):
      """Test running with full (non-pytest-celery) dvc-task queue."""
      dvc.experiments.run(
          exp_stage.addressing, params=["foo=2"], queue=True
      )
      dvc.experiments.run(
          exp_stage.addressing, params=["foo=3"], queue=True
      )
      assert len(dvc.experiments.stash_revs) == 2
  
      repro_spy = mocker.spy(dvc.experiments, "reproduce_celery")
      results = dvc.experiments.run(run_all=True)
      assert len(results) == 2
      repro_spy.assert_called_once_with(jobs=1)
  
      expected = {"foo: 2", "foo: 3"}
      metrics = set()
      for exp in results:
          fs = scm.get_fs(exp)
          with fs.open(
              "metrics.yaml", mode="r", encoding="utf-8"
          ) as fobj:
              metrics.add(fobj.read().strip())
      assert expected == metrics
  
imports: import itertools
  import logging
  import os
  import stat
  from textwrap import dedent
  import pytest
  from configobj import ConfigObj
  from funcy import first
  from dvc.dvcfile import PROJECT_FILE
  from dvc.env import DVC_EXP_BASELINE_REV, DVC_EXP_NAME, DVC_ROOT, DVC_STUDIO_OFFLINE, DVC_STUDIO_REPO_URL, DVC_STUDIO_TOKEN, DVC_STUDIO_URL
  from dvc.exceptions import DvcException, ReproductionError
  from dvc.repo.experiments.exceptions import ExperimentExistsError
  from dvc.repo.experiments.queue.base import BaseStashQueue
  from dvc.repo.experiments.refs import CELERY_STASH
  from dvc.repo.experiments.utils import exp_refs_by_rev
  from dvc.scm import SCMError, resolve_rev
  from dvc.stage.exceptions import StageFileDoesNotExistError
  from dvc.testing.scripts import COPY_SCRIPT
  from dvc.utils.serialize import PythonFileCorruptedError
label_desc: Use image node_id 15 for calling a global function with example usage: test_run_celery(tmp_dir, scm, dvc, exp_stage, mocker) without return types