code: def test_run_remove_keeps_leading_directory(path=None):
      ds = Dataset(op.join(path, "ds")).create()
      repo = ds.repo
  
      (ds.pathobj / "d").mkdir()
      output = ds.pathobj / "d" / "foo"
      output.write_text("foo")
      ds.save()
  
      output_rel = str(output.relative_to(ds.pathobj))
      repo.drop(output_rel, options=["--force"])
  
      assert_in_results(
          ds.run(
              "cd .> {}".format(output_rel),
              outputs=[output_rel],
              result_renderer="disabled",
          ),
          action="run.remove",
          status="ok",
      )
  
      assert_repo_status(ds.path)
  
      # Remove still gets saved() if command doesn't generate the output (just as
      # it would if git-rm were used instead of unlink).
      repo.drop(output_rel, options=["--force"])
      assert_in_results(
          ds.run(
              "cd .> something-else",
              outputs=[output_rel],
              result_renderer="disabled",
          ),
          action="run.remove",
          status="ok",
      )
      assert_repo_status(ds.path)
  
imports: import logging
  import os
  import os.path
  import sys
  from os import mkdir, remove
  from unittest.mock import patch
  from datalad.api import clone, run
  from datalad.cli.main import main
  from datalad.core.local.run import _format_iospecs, _get_substitutions, format_command, run_command
  from datalad.distribution.dataset import Dataset
  from datalad.support.exceptions import CommandError, IncompleteResultsError, NoDatasetFound
  from datalad.tests.utils_pytest import DEFAULT_BRANCH, OBSCURE_FILENAME, assert_false, assert_in, assert_in_results, assert_not_in, assert_not_in_results, assert_raises, assert_repo_status, assert_result_count, assert_status, create_tree, eq_, known_failure_windows, neq_, ok_, ok_exists, ok_file_has_content, patch_config, swallow_logs, swallow_outputs, with_tempfile, with_tree
  from datalad.utils import chpwd, ensure_unicode, on_windows
label_desc: Use image node_id 16 for calling a global function with example usage: test_run_remove_keeps_leading_directory(path) without return types