code: def test_GitRepo_push_n_checkout(orig_path=None, clone_path=None):
      origin = GitRepo(orig_path)
      clone = GitRepo.clone(orig_path, clone_path)
      filename = get_most_obscure_supported_name()
  
      with open(op.join(clone_path, filename), "w") as f:
          f.write("New file.")
      clone.add(filename)
      clone.commit("new file added.")
      # TODO: need checkout first:
      clone.push(
          DEFAULT_REMOTE, "+{}:new-branch".format(DEFAULT_BRANCH)
      )
      origin.checkout("new-branch")
      ok_(op.exists(op.join(orig_path, filename)))
  
imports: import logging
  import os
  import os.path
  import sys
  import pytest
  from datalad import get_encoding_info
  from datalad.cmd import StdOutCapture, StdOutErrCapture, WitlessRunner
  from datalad.support.exceptions import CommandError, FileNotInRepositoryError, InvalidGitRepositoryError, NoSuchPathError, PathKnownToRepositoryError
  from datalad.support.external_versions import external_versions
  from datalad.support.gitrepo import GitRepo, _normalize_path, normalize_paths, to_options
  from datalad.support.sshconnector import get_connection_hash
  from datalad.tests.utils_pytest import DEFAULT_BRANCH, DEFAULT_REMOTE, SkipTest, assert_cwd_unchanged, assert_equal, assert_false, assert_in, assert_in_results, assert_is_instance, assert_not_equal, assert_not_in, assert_raises, assert_repo_status, assert_true, create_tree, eq_, get_most_obscure_supported_name, integration, neq_, ok_, skip_if_no_network, skip_if_on_windows, skip_nomultiplex_ssh, slow, swallow_logs, with_tempfile, with_tree, xfail_buggy_annex_info
  from datalad.utils import Path, chpwd, getpwd, on_windows, rmtree
label_desc: Use image node_id 22 for calling a global function with example usage: test_GitRepo_push_n_checkout(orig_path, clone_path) without return types