def can_update_repository_to_latest_version(vcs, target): with vcs.temporary_repo() as repo: original_uri = "{0}+file://{1}".format(vcs.name, repo.working_directory) fetch(original_uri, target) assert_equal("Run it.", read_file(os.path.join(target, "README"))) add_commit_to_repo(repo) fetch(original_uri, target) assert_equal("Run away!", read_file(os.path.join(target, "README")))
def can_update_repository_to_specific_commit_using_hash_before_commit_name(vcs, target, commit): with vcs.temporary_repo() as repo: original_uri = "{0}+file://{1}".format(vcs.name, repo.working_directory) add_commit_to_repo(repo) fetch(original_uri, target) assert_equal("Run away!", read_file(os.path.join(target, "README"))) fetch("{0}#{1}".format(original_uri, commit), target) assert_equal("Run it.", read_file(os.path.join(target, "README")))
def origin_is_prefixed_to_git_commit_if_necessary(): with temporary_empty_dir() as target: with temporary_git_repo() as git_repo: original_uri = "git+file://" + git_repo.working_directory # master == origin/master fetch(original_uri, target) assert_equal("Run it.", read_file(os.path.join(target, "README"))) add_commit_to_repo(git_repo) # If we checkout master rather than origin/master, we don't change revision fetch(original_uri + "#master", target) assert_equal("Run away!", read_file(os.path.join(target, "README")))
def can_use_cache_when_cloning_git_repository(): with temporary_empty_dir() as target: with temporary_git_repo() as git_repo: original_uri = "git+file://" + git_repo.working_directory add_commit_to_repo(git_repo) fetch(original_uri + "#master^", target, use_cache=True) assert_equal("Run it.", read_file(os.path.join(target, "README")))
def can_fetch_repo_without_vcs_files(vcs, target): with vcs.temporary_repo() as repo: original_uri = "{0}+file://{1}".format(vcs.name, repo.working_directory) archive(original_uri, target) assert_equal("Run it.", read_file(os.path.join(target, "README"))) assert_false(os.path.exists(os.path.join(target, vcs.directory_name)))
def can_clone_repository_to_specific_commit_using_hash_before_commit_name( vcs, target, commit): with vcs.temporary_repo() as repo: original_uri = "{0}+file://{1}".format(vcs.name, repo.working_directory) add_commit_to_repo(repo) fetch("{0}#{1}".format(original_uri, commit), target) assert_equal("Run it.", read_file(os.path.join(target, "README")))
def can_fetch_repository_into_new_directory(vcs, target): with vcs.temporary_repo() as repo: original_uri = "{0}+file://{1}".format(vcs.name, repo.working_directory) fetch(original_uri, target) assert_equal("Run it.", read_file(os.path.join(target, "README")))