code: def test_parse_subdirectory():
      # Make sure the parsing works as intended.
      test_uri = "uri#subdirectory"
      parsed_uri, parsed_subdirectory = _parse_subdirectory(test_uri)
      assert parsed_uri == "uri"
      assert parsed_subdirectory == "subdirectory"
  
      # Make sure the parsing works with quotes.
      test_uri = "'uri#subdirectory'"
      parsed_uri, parsed_subdirectory = _parse_subdirectory(test_uri)
      assert parsed_uri == "uri"
      assert parsed_subdirectory == "subdirectory"
  
      # Make sure periods are restricted in Git repo subdirectory paths.
      period_fail_uri = GIT_PROJECT_URI + "#.."
      with pytest.raises(
          ExecutionException, match=r"'\.' is not allowed"
      ):
          _parse_subdirectory(period_fail_uri)
  
imports: import os
  import tempfile
  import zipfile
  from unittest import mock
  import git
  import pytest
  import mlflow
  from mlflow.exceptions import ExecutionException
  from mlflow.projects import _project_spec
  from mlflow.projects.utils import _fetch_git_repo, _fetch_project, _get_storage_dir, _is_valid_branch_name, _is_zip_uri, _parse_subdirectory, fetch_and_validate_project, get_or_create_run, load_project
  from mlflow.utils.mlflow_tags import MLFLOW_PROJECT_ENTRY_POINT, MLFLOW_SOURCE_NAME
  from tests.projects.utils import GIT_PROJECT_BRANCH, GIT_PROJECT_URI, TEST_PROJECT_DIR, TEST_PROJECT_NAME, assert_dirs_equal
label_desc: Use image node_id 10 for calling a global function with example usage: test_parse_subdirectory() without return types