test_download_strategies: add git tests
This commit is contained in:
parent
2f5f352baa
commit
0b2cc5c20d
@ -60,6 +60,69 @@ class VCSDownloadStrategyTests < Homebrew::TestCase
|
||||
end
|
||||
end
|
||||
|
||||
class GitDownloadStrategyTests < Homebrew::TestCase
|
||||
include FileUtils
|
||||
|
||||
def setup
|
||||
resource = ResourceDouble.new("https://github.com/homebrew/foo")
|
||||
@commit_id = 1
|
||||
@strategy = GitDownloadStrategy.new("baz", resource)
|
||||
@cached_location = @strategy.cached_location
|
||||
mkpath @cached_location
|
||||
touch @cached_location/"README"
|
||||
end
|
||||
|
||||
def teardown
|
||||
rmtree @cached_location
|
||||
end
|
||||
|
||||
def git_commit_all
|
||||
shutup do
|
||||
system "git", "add", "--all"
|
||||
system "git", "commit", "-m", "commit number #{@commit_id}"
|
||||
@commit_id += 1
|
||||
end
|
||||
end
|
||||
|
||||
def inside_repo_using_git_env
|
||||
initial_env = ENV.to_hash
|
||||
%w[AUTHOR COMMITTER].each do |role|
|
||||
ENV["GIT_#{role}_NAME"] = "brew tests"
|
||||
ENV["GIT_#{role}_EMAIL"] = "brew-tests@localhost"
|
||||
ENV["GIT_#{role}_DATE"] = "Thu May 21 00:04:11 2009 +0100"
|
||||
end
|
||||
@cached_location.cd do
|
||||
yield
|
||||
end
|
||||
ensure
|
||||
ENV.replace(initial_env)
|
||||
end
|
||||
|
||||
def setup_git_repo
|
||||
inside_repo_using_git_env do
|
||||
shutup do
|
||||
system "git", "init"
|
||||
system "git", "remote", "add", "origin", "https://github.com/Homebrew/homebrew-foo"
|
||||
end
|
||||
git_commit_all
|
||||
end
|
||||
end
|
||||
|
||||
def test_source_modified_time
|
||||
setup_git_repo
|
||||
assert_equal 1242860651, @strategy.source_modified_time.to_i
|
||||
end
|
||||
|
||||
def test_last_commit
|
||||
setup_git_repo
|
||||
inside_repo_using_git_env do
|
||||
touch "LICENSE"
|
||||
git_commit_all
|
||||
end
|
||||
assert_equal "c50c79b", @strategy.last_commit
|
||||
end
|
||||
end
|
||||
|
||||
class DownloadStrategyDetectorTests < Homebrew::TestCase
|
||||
def setup
|
||||
@d = DownloadStrategyDetector.new
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user