code: def test_get_uncommitted_changes(mock_get_sha, mock_repo):
      # given
      mock_repo.git.diff.return_value = "some_diff"
      mock_repo.head.name = "HEAD"
  
      # when
      uncommitted_changes = get_uncommitted_changes(mock_repo)
  
      # then
      assert mock_repo.git.diff.call_count == 2
      assert mock_get_sha.call_count == 1
      assert uncommitted_changes.diff_head == "some_diff\n"
      assert uncommitted_changes.upstream_sha == "test_sha"
      assert uncommitted_changes.diff_upstream == "some_diff\n"
  
imports: import datetime
  import git
  from git import Repo
  from mock import MagicMock, patch
  from neptune.internal.utils.git import GitInfo, get_diff, get_relevant_upstream_commit, get_repo_from_git_ref, get_uncommitted_changes, get_upstream_index_sha, search_for_most_recent_ancestor, to_git_info, track_uncommitted_changes
  from neptune.types import GitRef
label_desc: Use image node_id 10 for calling a global function with example usage: test_get_uncommitted_changes(mock_get_sha, mock_repo) without return types