code: def test_inherit_src_candidates(lcl=None, storepath=None, url=None):
      lcl = Path(lcl)
      storepath = Path(storepath)
      # dataset with a subdataset
      ds1 = Dataset(lcl / "ds1").create()
      ds1sub = ds1.create("sub")
      # a different dataset into which we install ds1, but do not touch its subds
      ds2 = Dataset(lcl / "ds2").create()
      ds2.clone(source=ds1.path, path="mysub")
  
      # we give no dataset a source candidate config!
      # move all dataset into the store
      for d in (ds1, ds1sub, ds2):
          _move2store(storepath, d)
  
      # now we must be able to obtain all three datasets from the store
      riaclone = clone(
          "ria+{}#{}".format(
              # store URL
              url,
              # ID of the root dataset
              ds2.id,
          ),
          lcl / "clone",
      )
      # what happens is the the initial clone call sets a source candidate
      # config, because it sees the dataset coming from a store
      # all obtained subdatasets get the config inherited on-clone
      datasets = riaclone.get(
          ".", get_data=False, recursive=True, result_xfm="datasets"
      )
      # we get two subdatasets
      eq_(len(datasets), 2)
      for ds in datasets:
          eq_(
              ConfigManager(dataset=ds, source="branch-local").get(
                  "datalad.get.subdataset-source-candidate-200origin"
              ),
              "ria+%s#{id}" % url,
          )
  
imports: import logging
  import os.path
  import stat
  from unittest.mock import patch
  import pytest
  from datalad import consts
  from datalad.api import clone, create, remove
  from datalad.cmd import GitWitlessRunner
  from datalad.cmd import WitlessRunner
  from datalad.config import ConfigManager
  from datalad.core.distributed.clone_utils import _get_installationpath_from_url, decode_source_spec
  from datalad.distribution.dataset import Dataset
  from datalad.support.annexrepo import AnnexRepo
  from datalad.support.exceptions import IncompleteResultsError
  from datalad.support.external_versions import external_versions
  from datalad.support.gitrepo import GitRepo
  from datalad.support.network import get_local_file_url
  from datalad.tests.utils_pytest import DEFAULT_BRANCH, DEFAULT_REMOTE, SkipTest, assert_false, assert_in, assert_in_results, assert_message, assert_not_in, assert_not_is_instance, assert_raises, assert_repo_status, assert_result_count, assert_result_values_equal, assert_status, create_tree, eq_, get_datasets_topdir, has_symlink_capability, integration, known_failure, known_failure_githubci_win, known_failure_osx, known_failure_windows, neq_, nok_, ok_, ok_file_has_content, ok_startswith, on_github, on_osx, on_travis, patch_config, serve_path_via_http, set_date, skip_if, skip_if_adjusted_branch, skip_if_no_network, skip_if_on_windows, skip_ssh, slow, swallow_logs, with_sameas_remote, with_tempfile, with_tree, xfail_buggy_annex_info
  from datalad.utils import Path, chpwd, get_home_envvars, on_windows, rmtree
label_desc: Use image node_id 34 for calling a global function with example usage: test_inherit_src_candidates(lcl, storepath, url) without return types