test_formula: add outdated_versions tests
This commit is contained in:
parent
001bef0604
commit
04cb161ddb
@ -134,6 +134,47 @@ class FormulaTests < Homebrew::TestCase
|
|||||||
f.rack.rmtree
|
f.rack.rmtree
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_installed_prefix_outdated_stable_head_installed
|
||||||
|
f = formula do
|
||||||
|
url "foo"
|
||||||
|
version "1.9"
|
||||||
|
head "foo"
|
||||||
|
end
|
||||||
|
|
||||||
|
head_prefix = HOMEBREW_CELLAR/"#{f.name}/HEAD"
|
||||||
|
head_prefix.mkpath
|
||||||
|
tab = Tab.empty
|
||||||
|
tab.tabfile = head_prefix.join("INSTALL_RECEIPT.json")
|
||||||
|
tab.source["versions"] = { "stable" => "1.0" }
|
||||||
|
tab.write
|
||||||
|
|
||||||
|
assert_equal HOMEBREW_CELLAR/"#{f.name}/#{f.version}", f.installed_prefix
|
||||||
|
ensure
|
||||||
|
f.rack.rmtree
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_installed_prefix_outdated_devel_head_installed
|
||||||
|
f = formula do
|
||||||
|
url "foo"
|
||||||
|
version "1.9"
|
||||||
|
devel do
|
||||||
|
url "foo"
|
||||||
|
version "2.1"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
head_prefix = HOMEBREW_CELLAR/"#{f.name}/HEAD"
|
||||||
|
head_prefix.mkpath
|
||||||
|
tab = Tab.empty
|
||||||
|
tab.tabfile = head_prefix.join("INSTALL_RECEIPT.json")
|
||||||
|
tab.source["versions"] = { "stable" => "1.9", "devel" => "2.0" }
|
||||||
|
tab.write
|
||||||
|
|
||||||
|
assert_equal HOMEBREW_CELLAR/"#{f.name}/#{f.version}", f.installed_prefix
|
||||||
|
ensure
|
||||||
|
f.rack.rmtree
|
||||||
|
end
|
||||||
|
|
||||||
def test_installed_prefix_head
|
def test_installed_prefix_head
|
||||||
f = formula("test", Pathname.new(__FILE__).expand_path, :head) do
|
f = formula("test", Pathname.new(__FILE__).expand_path, :head) do
|
||||||
head "foo"
|
head "foo"
|
||||||
@ -526,60 +567,67 @@ class OutdatedVersionsTests < Homebrew::TestCase
|
|||||||
end
|
end
|
||||||
|
|
||||||
def teardown
|
def teardown
|
||||||
@f.rack.rmtree
|
@f.rack.rmtree if @f.rack.exist?
|
||||||
end
|
end
|
||||||
|
|
||||||
def setup_tab_for_prefix(prefix, tap_string = nil)
|
def setup_tab_for_prefix(prefix, options = {})
|
||||||
prefix.mkpath
|
prefix.mkpath
|
||||||
tab = Tab.empty
|
tab = Tab.empty
|
||||||
tab.tabfile = prefix.join("INSTALL_RECEIPT.json")
|
tab.tabfile = prefix.join("INSTALL_RECEIPT.json")
|
||||||
tab.source["tap"] = tap_string if tap_string
|
tab.source["tap"] = options[:tap] if options[:tap]
|
||||||
tab.write
|
tab.source["versions"] = options[:versions] if options[:versions]
|
||||||
|
tab.source_modified_time = options[:source_modified_time].to_i
|
||||||
|
tab.write unless options[:no_write]
|
||||||
tab
|
tab
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def reset_outdated_versions
|
||||||
|
f.instance_variable_set(:@outdated_versions, nil)
|
||||||
|
end
|
||||||
|
|
||||||
def test_greater_different_tap_installed
|
def test_greater_different_tap_installed
|
||||||
setup_tab_for_prefix(greater_prefix, "user/repo")
|
setup_tab_for_prefix(greater_prefix, :tap => "user/repo")
|
||||||
assert_predicate f.outdated_versions, :empty?
|
assert_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_greater_same_tap_installed
|
def test_greater_same_tap_installed
|
||||||
f.instance_variable_set(:@tap, CoreTap.instance)
|
f.instance_variable_set(:@tap, CoreTap.instance)
|
||||||
setup_tab_for_prefix(greater_prefix, "homebrew/core")
|
setup_tab_for_prefix(greater_prefix, :tap => "homebrew/core")
|
||||||
assert_predicate f.outdated_versions, :empty?
|
assert_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_outdated_different_tap_installed
|
def test_outdated_different_tap_installed
|
||||||
setup_tab_for_prefix(outdated_prefix, "user/repo")
|
setup_tab_for_prefix(outdated_prefix, :tap => "user/repo")
|
||||||
refute_predicate f.outdated_versions, :empty?
|
refute_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_outdated_same_tap_installed
|
def test_outdated_same_tap_installed
|
||||||
f.instance_variable_set(:@tap, CoreTap.instance)
|
f.instance_variable_set(:@tap, CoreTap.instance)
|
||||||
setup_tab_for_prefix(outdated_prefix, "homebrew/core")
|
setup_tab_for_prefix(outdated_prefix, :tap => "homebrew/core")
|
||||||
refute_predicate f.outdated_versions, :empty?
|
refute_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_same_head_installed
|
def test_same_head_installed
|
||||||
f.instance_variable_set(:@tap, CoreTap.instance)
|
f.instance_variable_set(:@tap, CoreTap.instance)
|
||||||
setup_tab_for_prefix(head_prefix, "homebrew/core")
|
setup_tab_for_prefix(head_prefix, :tap => "homebrew/core")
|
||||||
assert_predicate f.outdated_versions, :empty?
|
assert_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_different_head_installed
|
def test_different_head_installed
|
||||||
f.instance_variable_set(:@tap, CoreTap.instance)
|
f.instance_variable_set(:@tap, CoreTap.instance)
|
||||||
setup_tab_for_prefix(head_prefix, "user/repo")
|
setup_tab_for_prefix(head_prefix, :tap => "user/repo")
|
||||||
assert_predicate f.outdated_versions, :empty?
|
assert_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_mixed_taps_greater_version_installed
|
def test_mixed_taps_greater_version_installed
|
||||||
f.instance_variable_set(:@tap, CoreTap.instance)
|
f.instance_variable_set(:@tap, CoreTap.instance)
|
||||||
setup_tab_for_prefix(outdated_prefix, "homebrew/core")
|
setup_tab_for_prefix(outdated_prefix, :tap => "homebrew/core")
|
||||||
setup_tab_for_prefix(greater_prefix, "user/repo")
|
setup_tab_for_prefix(greater_prefix, :tap => "user/repo")
|
||||||
|
|
||||||
assert_predicate f.outdated_versions, :empty?
|
assert_predicate f.outdated_versions, :empty?
|
||||||
|
|
||||||
setup_tab_for_prefix(greater_prefix, "homebrew/core")
|
setup_tab_for_prefix(greater_prefix, :tap => "homebrew/core")
|
||||||
|
reset_outdated_versions
|
||||||
|
|
||||||
assert_predicate f.outdated_versions, :empty?
|
assert_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
@ -590,23 +638,97 @@ class OutdatedVersionsTests < Homebrew::TestCase
|
|||||||
extra_outdated_prefix = HOMEBREW_CELLAR/"#{f.name}/1.0"
|
extra_outdated_prefix = HOMEBREW_CELLAR/"#{f.name}/1.0"
|
||||||
|
|
||||||
setup_tab_for_prefix(outdated_prefix)
|
setup_tab_for_prefix(outdated_prefix)
|
||||||
setup_tab_for_prefix(extra_outdated_prefix, "homebrew/core")
|
setup_tab_for_prefix(extra_outdated_prefix, :tap => "homebrew/core")
|
||||||
|
reset_outdated_versions
|
||||||
|
|
||||||
refute_predicate f.outdated_versions, :empty?
|
refute_predicate f.outdated_versions, :empty?
|
||||||
|
|
||||||
setup_tab_for_prefix(outdated_prefix, "user/repo")
|
setup_tab_for_prefix(outdated_prefix, :tap => "user/repo")
|
||||||
|
reset_outdated_versions
|
||||||
|
|
||||||
refute_predicate f.outdated_versions, :empty?
|
refute_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
def test_same_version_tap_installed
|
def test_same_version_tap_installed
|
||||||
f.instance_variable_set(:@tap, CoreTap.instance)
|
f.instance_variable_set(:@tap, CoreTap.instance)
|
||||||
setup_tab_for_prefix(same_prefix, "homebrew/core")
|
setup_tab_for_prefix(same_prefix, :tap => "homebrew/core")
|
||||||
|
|
||||||
assert_predicate f.outdated_versions, :empty?
|
assert_predicate f.outdated_versions, :empty?
|
||||||
|
|
||||||
setup_tab_for_prefix(same_prefix, "user/repo")
|
setup_tab_for_prefix(same_prefix, :tap => "user/repo")
|
||||||
|
reset_outdated_versions
|
||||||
|
|
||||||
assert_predicate f.outdated_versions, :empty?
|
assert_predicate f.outdated_versions, :empty?
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_outdated_installed_head_less_than_stable
|
||||||
|
tab = setup_tab_for_prefix(head_prefix, :versions => { "stable" => "1.0" })
|
||||||
|
refute_predicate f.outdated_versions, :empty?
|
||||||
|
|
||||||
|
# Tab.for_keg(head_prefix) will be fetched from CACHE but we write it anyway
|
||||||
|
tab.source["versions"] = { "stable" => f.version.to_s }
|
||||||
|
tab.write
|
||||||
|
reset_outdated_versions
|
||||||
|
|
||||||
|
assert_predicate f.outdated_versions, :empty?
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_outdated_fetch_head
|
||||||
|
outdated_stable_prefix = HOMEBREW_CELLAR.join("testball/1.0")
|
||||||
|
head_prefix_a = HOMEBREW_CELLAR.join("testball/HEAD")
|
||||||
|
head_prefix_b = HOMEBREW_CELLAR.join("testball/HEAD-aaaaaaa_1")
|
||||||
|
head_prefix_c = HOMEBREW_CELLAR.join("testball/HEAD-5658946")
|
||||||
|
|
||||||
|
setup_tab_for_prefix(outdated_stable_prefix)
|
||||||
|
tab_a = setup_tab_for_prefix(head_prefix_a, :versions => { "stable" => "1.0" })
|
||||||
|
setup_tab_for_prefix(head_prefix_b)
|
||||||
|
|
||||||
|
initial_env = ENV.to_hash
|
||||||
|
testball_repo = HOMEBREW_PREFIX.join("testball_repo")
|
||||||
|
testball_repo.mkdir
|
||||||
|
|
||||||
|
@f = formula("testball") do
|
||||||
|
url "foo"
|
||||||
|
version "2.10"
|
||||||
|
head "file://#{testball_repo}", :using => :git
|
||||||
|
end
|
||||||
|
|
||||||
|
%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
|
||||||
|
|
||||||
|
testball_repo.cd do
|
||||||
|
FileUtils.touch "LICENSE"
|
||||||
|
shutup do
|
||||||
|
system "git", "init"
|
||||||
|
system "git", "add", "--all"
|
||||||
|
system "git", "commit", "-m", "Initial commit"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
refute_predicate f.outdated_versions(:fetch_head => true), :empty?
|
||||||
|
|
||||||
|
tab_a.source["versions"] = { "stable" => f.version.to_s }
|
||||||
|
tab_a.write
|
||||||
|
reset_outdated_versions
|
||||||
|
refute_predicate f.outdated_versions(:fetch_head => true), :empty?
|
||||||
|
|
||||||
|
head_prefix_a.rmtree
|
||||||
|
reset_outdated_versions
|
||||||
|
refute_predicate f.outdated_versions(:fetch_head => true), :empty?
|
||||||
|
|
||||||
|
setup_tab_for_prefix(head_prefix_c, :source_modified_time => 1)
|
||||||
|
reset_outdated_versions
|
||||||
|
assert_predicate f.outdated_versions(:fetch_head => true), :empty?
|
||||||
|
ensure
|
||||||
|
ENV.replace(initial_env)
|
||||||
|
testball_repo.rmtree if testball_repo.exist?
|
||||||
|
outdated_stable_prefix.rmtree if outdated_stable_prefix.exist?
|
||||||
|
head_prefix_b.rmtree if head_prefix.exist?
|
||||||
|
head_prefix_c.rmtree if head_prefix_c.exist?
|
||||||
|
FileUtils.rm_rf HOMEBREW_CACHE/"testball--git"
|
||||||
|
FileUtils.rm_rf HOMEBREW_CELLAR/"testball"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user