aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
authorMike McQuaid2016-09-19 15:22:24 +0100
committerGitHub2016-09-19 15:22:24 +0100
commitc45119de75e70f32e3b3fdcccb210a88282a2f26 (patch)
tree9f3bd4abbc80df1ca391537da0c195281e9a94a7 /Library/Homebrew/test
parent7ed7e3cd1a22a258ab8336b1f34b258ab8774e04 (diff)
parentd89a696d83cd325656e30a99cb4ba8342ffb39c9 (diff)
downloadbrew-c45119de75e70f32e3b3fdcccb210a88282a2f26.tar.bz2
Merge pull request #971 from penman/follow_alias
Make `brew upgrade` and `brew outdated` follow alias changes
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/test_formula.rb428
-rw-r--r--Library/Homebrew/test/test_formulary.rb2
-rw-r--r--Library/Homebrew/test/testing_env.rb8
3 files changed, 388 insertions, 50 deletions
diff --git a/Library/Homebrew/test/test_formula.rb b/Library/Homebrew/test/test_formula.rb
index 7c09e765f..1da60c214 100644
--- a/Library/Homebrew/test/test_formula.rb
+++ b/Library/Homebrew/test/test_formula.rb
@@ -8,15 +8,153 @@ class FormulaTests < Homebrew::TestCase
name = "formula_name"
path = Formulary.core_path(name)
spec = :stable
- alias_path = CoreTap.instance.alias_dir/"formula_alias"
+
+ f = klass.new(name, path, spec)
+ assert_equal name, f.name
+ assert_equal name, f.specified_name
+ assert_equal name, f.full_name
+ assert_equal name, f.full_specified_name
+ assert_equal path, f.path
+ assert_nil f.alias_path
+ assert_nil f.alias_name
+ assert_nil f.full_alias_name
+ assert_raises(ArgumentError) { klass.new }
+ end
+
+ def test_formula_instantiation_with_alias
+ klass = Class.new(Formula) { url "http://example.com/foo-1.0.tar.gz" }
+ name = "formula_name"
+ path = Formulary.core_path(name)
+ spec = :stable
+ alias_name = "baz@1"
+ alias_path = CoreTap.instance.alias_dir/alias_name
+
+ f = klass.new(name, path, spec, alias_path: alias_path)
+ assert_equal name, f.name
+ assert_equal name, f.full_name
+ assert_equal path, f.path
+ assert_equal alias_path, f.alias_path
+ assert_equal alias_name, f.alias_name
+ assert_equal alias_name, f.specified_name
+ assert_equal alias_name, f.full_alias_name
+ assert_equal alias_name, f.full_specified_name
+ assert_raises(ArgumentError) { klass.new }
+ end
+
+ def test_tap_formula_instantiation
+ tap = Tap.new("foo", "bar")
+ klass = Class.new(Formula) { url "baz-1.0" }
+ name = "baz"
+ full_name = "#{tap.user}/#{tap.repo}/#{name}"
+ path = tap.path/"Formula/#{name}.rb"
+ spec = :stable
+
+ f = klass.new(name, path, spec)
+ assert_equal name, f.name
+ assert_equal name, f.specified_name
+ assert_equal full_name, f.full_name
+ assert_equal full_name, f.full_specified_name
+ assert_equal path, f.path
+ assert_nil f.alias_path
+ assert_nil f.alias_name
+ assert_nil f.full_alias_name
+ assert_raises(ArgumentError) { klass.new }
+ end
+
+ def test_tap_formula_instantiation_with_alias
+ tap = Tap.new("foo", "bar")
+ klass = Class.new(Formula) { url "baz-1.0" }
+ name = "baz"
+ full_name = "#{tap.user}/#{tap.repo}/#{name}"
+ path = tap.path/"Formula/#{name}.rb"
+ spec = :stable
+ alias_name = "baz@1"
+ full_alias_name = "#{tap.user}/#{tap.repo}/#{alias_name}"
+ alias_path = CoreTap.instance.alias_dir/alias_name
f = klass.new(name, path, spec, alias_path: alias_path)
assert_equal name, f.name
+ assert_equal full_name, f.full_name
assert_equal path, f.path
assert_equal alias_path, f.alias_path
+ assert_equal alias_name, f.alias_name
+ assert_equal alias_name, f.specified_name
+ assert_equal full_alias_name, f.full_alias_name
+ assert_equal full_alias_name, f.full_specified_name
assert_raises(ArgumentError) { klass.new }
end
+ def test_follow_installed_alias
+ f = formula { url "foo-1.0" }
+ assert_predicate f, :follow_installed_alias?
+
+ f.follow_installed_alias = true
+ assert_predicate f, :follow_installed_alias?
+
+ f.follow_installed_alias = false
+ refute_predicate f, :follow_installed_alias?
+ end
+
+ def test_installed_alias_with_core
+ f = formula { url "foo-1.0" }
+
+ build_values_with_no_installed_alias = [
+ nil,
+ BuildOptions.new({}, {}),
+ Tab.new(source: { "path" => f.path.to_s }),
+ ]
+
+ build_values_with_no_installed_alias.each do |build|
+ f.build = build
+ assert_nil f.installed_alias_path
+ assert_nil f.installed_alias_name
+ assert_nil f.full_installed_alias_name
+ assert_equal f.name, f.installed_specified_name
+ assert_equal f.name, f.full_installed_specified_name
+ end
+
+ alias_name = "bar"
+ alias_path = "#{CoreTap.instance.alias_dir}/#{alias_name}"
+ f.build = Tab.new(source: { "path" => alias_path })
+ assert_equal alias_path, f.installed_alias_path
+ assert_equal alias_name, f.installed_alias_name
+ assert_equal alias_name, f.full_installed_alias_name
+ assert_equal alias_name, f.installed_specified_name
+ assert_equal alias_name, f.full_installed_specified_name
+ end
+
+ def test_installed_alias_with_tap
+ tap = Tap.new("user", "repo")
+ name = "foo"
+ path = "#{tap.path}/Formula/#{name}.rb"
+ f = formula(name, path) { url "foo-1.0" }
+
+ build_values_with_no_installed_alias = [
+ nil,
+ BuildOptions.new({}, {}),
+ Tab.new(source: { "path" => f.path }),
+ ]
+
+ build_values_with_no_installed_alias.each do |build|
+ f.build = build
+ assert_nil f.installed_alias_path
+ assert_nil f.installed_alias_name
+ assert_nil f.full_installed_alias_name
+ assert_equal f.name, f.installed_specified_name
+ assert_equal f.full_name, f.full_installed_specified_name
+ end
+
+ alias_name = "bar"
+ full_alias_name = "#{tap.user}/#{tap.repo}/#{alias_name}"
+ alias_path = "#{tap.alias_dir}/#{alias_name}"
+ f.build = Tab.new(source: { "path" => alias_path })
+ assert_equal alias_path, f.installed_alias_path
+ assert_equal alias_name, f.installed_alias_name
+ assert_equal full_alias_name, f.full_installed_alias_name
+ assert_equal alias_name, f.installed_specified_name
+ assert_equal full_alias_name, f.full_installed_specified_name
+ end
+
def test_prefix
f = Testball.new
assert_equal HOMEBREW_CELLAR/f.name/"0.1", f.prefix
@@ -248,6 +386,62 @@ class FormulaTests < Homebrew::TestCase
assert_nil Testball.new <=> Object.new
end
+ def test_alias_paths_with_build_options
+ alias_path = CoreTap.instance.alias_dir/"another_name"
+ f = formula(:alias_path => alias_path) { url "foo-1.0" }
+ f.build = BuildOptions.new({}, {})
+ assert_equal alias_path, f.alias_path
+ assert_nil f.installed_alias_path
+ end
+
+ def test_alias_paths_with_tab_with_non_alias_source_path
+ alias_path = CoreTap.instance.alias_dir/"another_name"
+ source_path = CoreTap.instance.formula_dir/"another_other_name"
+ f = formula(:alias_path => alias_path) { url "foo-1.0" }
+ f.build = Tab.new(:source => { "path" => source_path.to_s })
+ assert_equal alias_path, f.alias_path
+ assert_nil f.installed_alias_path
+ end
+
+ def test_alias_paths_with_tab_with_alias_source_path
+ alias_path = CoreTap.instance.alias_dir/"another_name"
+ source_path = CoreTap.instance.alias_dir/"another_other_name"
+ f = formula(:alias_path => alias_path) { url "foo-1.0" }
+ f.build = Tab.new(:source => { "path" => source_path.to_s })
+ assert_equal alias_path, f.alias_path
+ assert_equal source_path.to_s, f.installed_alias_path
+ end
+
+ def test_installed_with_alias_path_with_nil
+ assert_predicate Formula.installed_with_alias_path(nil), :empty?
+ end
+
+ def test_installed_with_alias_path_with_a_path
+ alias_path = "#{CoreTap.instance.alias_dir}/alias"
+ different_alias_path = "#{CoreTap.instance.alias_dir}/another_alias"
+
+ formula_with_alias = formula("foo") { url "foo-1.0" }
+ formula_with_alias.build = Tab.empty
+ formula_with_alias.build.source["path"] = alias_path
+
+ formula_without_alias = formula("bar") { url "bar-1.0" }
+ formula_without_alias.build = Tab.empty
+ formula_without_alias.build.source["path"] = formula_without_alias.path.to_s
+
+ formula_with_different_alias = formula("baz") { url "baz-1.0" }
+ formula_with_different_alias.build = Tab.empty
+ formula_with_different_alias.build.source["path"] = different_alias_path
+
+ formulae = [
+ formula_with_alias,
+ formula_without_alias,
+ formula_with_different_alias,
+ ]
+
+ Formula.stubs(:installed).returns(formulae)
+ assert_equal [formula_with_alias], Formula.installed_with_alias_path(alias_path)
+ end
+
def test_formula_spec_integration
f = formula do
homepage "http://example.com"
@@ -581,29 +775,113 @@ class FormulaTests < Homebrew::TestCase
end
end
+class AliasChangeTests < Homebrew::TestCase
+ attr_reader :f, :new_formula, :tab, :alias_path
+
+ def make_formula(version)
+ f = formula(alias_path: alias_path) { url "foo-#{version}" }
+ f.build = tab
+ f
+ end
+
+ def setup
+ alias_name = "bar"
+ @alias_path = "#{CoreTap.instance.alias_dir}/#{alias_name}"
+
+ @tab = Tab.empty
+
+ @f = make_formula("1.0")
+ @new_formula = make_formula("1.1")
+
+ Formula.stubs(:installed).returns([f])
+ end
+
+ def test_alias_changes_when_not_installed_with_alias
+ tab.source["path"] = Formulary.core_path(f.name).to_s
+
+ assert_nil f.current_installed_alias_target
+ assert_equal f, f.latest_formula
+ refute_predicate f, :installed_alias_target_changed?
+ refute_predicate f, :supersedes_an_installed_formula?
+ refute_predicate f, :alias_changed?
+ assert_predicate f.old_installed_formulae, :empty?
+ end
+
+ def test_alias_changes_when_not_changed
+ tab.source["path"] = alias_path
+ stub_formula_loader(f, alias_path)
+
+ assert_equal f, f.current_installed_alias_target
+ assert_equal f, f.latest_formula
+ refute_predicate f, :installed_alias_target_changed?
+ refute_predicate f, :supersedes_an_installed_formula?
+ refute_predicate f, :alias_changed?
+ assert_predicate f.old_installed_formulae, :empty?
+ end
+
+ def test_alias_changes_when_new_alias_target
+ tab.source["path"] = alias_path
+ stub_formula_loader(new_formula, alias_path)
+
+ assert_equal new_formula, f.current_installed_alias_target
+ assert_equal new_formula, f.latest_formula
+ assert_predicate f, :installed_alias_target_changed?
+ refute_predicate f, :supersedes_an_installed_formula?
+ assert_predicate f, :alias_changed?
+ assert_predicate f.old_installed_formulae, :empty?
+ end
+
+ def test_alias_changes_when_old_formulae_installed
+ tab.source["path"] = alias_path
+ stub_formula_loader(new_formula, alias_path)
+
+ assert_equal new_formula, new_formula.current_installed_alias_target
+ assert_equal new_formula, new_formula.latest_formula
+ refute_predicate new_formula, :installed_alias_target_changed?
+ assert_predicate new_formula, :supersedes_an_installed_formula?
+ assert_predicate new_formula, :alias_changed?
+ assert_equal [f], new_formula.old_installed_formulae
+ end
+end
+
class OutdatedVersionsTests < Homebrew::TestCase
- attr_reader :outdated_prefix, :same_prefix, :greater_prefix, :head_prefix
- attr_reader :f
+ attr_reader :outdated_prefix,
+ :same_prefix,
+ :greater_prefix,
+ :head_prefix,
+ :old_alias_target_prefix
+ attr_reader :f, :old_formula, :new_formula
def setup
@f = formula do
url "foo"
version "1.20"
end
+
+ @old_formula = formula("foo@1") { url "foo-1.0" }
+ @new_formula = formula("foo@2") { url "foo-2.0" }
+
@outdated_prefix = HOMEBREW_CELLAR/"#{f.name}/1.11"
@same_prefix = HOMEBREW_CELLAR/"#{f.name}/1.20"
@greater_prefix = HOMEBREW_CELLAR/"#{f.name}/1.21"
@head_prefix = HOMEBREW_CELLAR/"#{f.name}/HEAD"
+ @old_alias_target_prefix = HOMEBREW_CELLAR/"#{old_formula.name}/1.0"
end
def teardown
- @f.rack.rmtree if @f.rack.exist?
+ formulae = [@f, @old_formula, @new_formula]
+ formulae.map(&:rack).select(&:exist?).each(&:rmtree)
+ end
+
+ def alias_path
+ "#{@f.tap.alias_dir}/bar"
end
def setup_tab_for_prefix(prefix, options = {})
prefix.mkpath
tab = Tab.empty
tab.tabfile = prefix.join("INSTALL_RECEIPT.json")
+ tab.source["path"] = options[:path].to_s if options[:path]
tab.source["tap"] = options[:tap] if options[:tap]
tab.source["versions"] = options[:versions] if options[:versions]
tab.source_modified_time = options[:source_modified_time].to_i
@@ -611,96 +889,148 @@ class OutdatedVersionsTests < Homebrew::TestCase
tab
end
- def reset_outdated_versions
- f.instance_variable_set(:@outdated_versions, nil)
+ def reset_outdated_kegs
+ f.instance_variable_set(:@outdated_kegs, nil)
end
def test_greater_different_tap_installed
setup_tab_for_prefix(greater_prefix, tap: "user/repo")
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
end
def test_greater_same_tap_installed
f.instance_variable_set(:@tap, CoreTap.instance)
setup_tab_for_prefix(greater_prefix, tap: "homebrew/core")
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
end
def test_outdated_different_tap_installed
setup_tab_for_prefix(outdated_prefix, tap: "user/repo")
- refute_predicate f.outdated_versions, :empty?
+ refute_predicate f.outdated_kegs, :empty?
end
def test_outdated_same_tap_installed
f.instance_variable_set(:@tap, CoreTap.instance)
setup_tab_for_prefix(outdated_prefix, tap: "homebrew/core")
- refute_predicate f.outdated_versions, :empty?
+ refute_predicate f.outdated_kegs, :empty?
+ end
+
+ def test_outdated_follow_alias_and_alias_unchanged
+ f.follow_installed_alias = true
+ f.build = setup_tab_for_prefix(same_prefix, path: alias_path)
+ stub_formula_loader(f, alias_path)
+ assert_predicate f.outdated_kegs, :empty?
+ end
+
+ def test_outdated_follow_alias_and_alias_changed_and_new_target_not_installed
+ f.follow_installed_alias = true
+ f.build = setup_tab_for_prefix(same_prefix, path: alias_path)
+ stub_formula_loader(new_formula, alias_path)
+ refute_predicate f.outdated_kegs, :empty?
+ end
+
+ def test_outdated_follow_alias_and_alias_changed_and_new_target_installed
+ f.follow_installed_alias = true
+ f.build = setup_tab_for_prefix(same_prefix, path: alias_path)
+ stub_formula_loader(new_formula, alias_path)
+ setup_tab_for_prefix(new_formula.prefix) # install new_formula
+ assert_predicate f.outdated_kegs, :empty?
+ end
+
+ def test_outdated_no_follow_alias_and_alias_unchanged
+ f.follow_installed_alias = false
+ f.build = setup_tab_for_prefix(same_prefix, path: alias_path)
+ stub_formula_loader(f, alias_path)
+ assert_predicate f.outdated_kegs, :empty?
+ end
+
+ def test_outdated_no_follow_alias_and_alias_changed
+ f.follow_installed_alias = false
+ f.build = setup_tab_for_prefix(same_prefix, path: alias_path)
+ stub_formula_loader(formula("foo@2") { url "foo-2.0" }, alias_path)
+ assert_predicate f.outdated_kegs, :empty?
+ end
+
+ def test_outdated_old_alias_targets_installed
+ @f = formula(alias_path: alias_path) { url "foo-1.0" }
+ tab = setup_tab_for_prefix(old_alias_target_prefix, path: alias_path)
+ old_formula.build = tab
+ Formula.stubs(:installed).returns([old_formula])
+ refute_predicate f.outdated_kegs, :empty?
+ end
+
+ def test_outdated_old_alias_targets_not_installed
+ @f = formula(alias_path: alias_path) { url "foo-1.0" }
+ tab = setup_tab_for_prefix(old_alias_target_prefix, path: old_formula.path)
+ old_formula.build = tab
+ Formula.stubs(:installed).returns([old_formula])
+ assert_predicate f.outdated_kegs, :empty?
end
- def test_same_head_installed
+ def test_outdated_same_head_installed
f.instance_variable_set(:@tap, CoreTap.instance)
setup_tab_for_prefix(head_prefix, tap: "homebrew/core")
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
end
- def test_different_head_installed
+ def test_outdated_different_head_installed
f.instance_variable_set(:@tap, CoreTap.instance)
setup_tab_for_prefix(head_prefix, tap: "user/repo")
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
end
- def test_mixed_taps_greater_version_installed
+ def test_outdated_mixed_taps_greater_version_installed
f.instance_variable_set(:@tap, CoreTap.instance)
setup_tab_for_prefix(outdated_prefix, tap: "homebrew/core")
setup_tab_for_prefix(greater_prefix, tap: "user/repo")
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
setup_tab_for_prefix(greater_prefix, tap: "homebrew/core")
- reset_outdated_versions
+ reset_outdated_kegs
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
end
- def test_mixed_taps_outdated_version_installed
+ def test_outdated_mixed_taps_outdated_version_installed
f.instance_variable_set(:@tap, CoreTap.instance)
extra_outdated_prefix = HOMEBREW_CELLAR/"#{f.name}/1.0"
setup_tab_for_prefix(outdated_prefix)
setup_tab_for_prefix(extra_outdated_prefix, tap: "homebrew/core")
- reset_outdated_versions
+ reset_outdated_kegs
- refute_predicate f.outdated_versions, :empty?
+ refute_predicate f.outdated_kegs, :empty?
setup_tab_for_prefix(outdated_prefix, tap: "user/repo")
- reset_outdated_versions
+ reset_outdated_kegs
- refute_predicate f.outdated_versions, :empty?
+ refute_predicate f.outdated_kegs, :empty?
end
- def test_same_version_tap_installed
+ def test_outdated_same_version_tap_installed
f.instance_variable_set(:@tap, CoreTap.instance)
setup_tab_for_prefix(same_prefix, tap: "homebrew/core")
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
setup_tab_for_prefix(same_prefix, tap: "user/repo")
- reset_outdated_versions
+ reset_outdated_kegs
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
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?
+ refute_predicate f.outdated_kegs, :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
+ reset_outdated_kegs
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
end
def test_outdated_fetch_head
@@ -738,20 +1068,20 @@ class OutdatedVersionsTests < Homebrew::TestCase
end
end
- refute_predicate f.outdated_versions(fetch_head: true), :empty?
+ refute_predicate f.outdated_kegs(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?
+ reset_outdated_kegs
+ refute_predicate f.outdated_kegs(fetch_head: true), :empty?
head_prefix_a.rmtree
- reset_outdated_versions
- refute_predicate f.outdated_versions(fetch_head: true), :empty?
+ reset_outdated_kegs
+ refute_predicate f.outdated_kegs(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?
+ reset_outdated_kegs
+ assert_predicate f.outdated_kegs(fetch_head: true), :empty?
ensure
ENV.replace(initial_env)
testball_repo.rmtree if testball_repo.exist?
@@ -762,7 +1092,7 @@ class OutdatedVersionsTests < Homebrew::TestCase
FileUtils.rm_rf HOMEBREW_CELLAR/"testball"
end
- def test_outdated_versions_version_scheme_changed
+ def test_outdated_kegs_version_scheme_changed
@f = formula("testball") do
url "foo"
version "20141010"
@@ -772,12 +1102,12 @@ class OutdatedVersionsTests < Homebrew::TestCase
prefix = HOMEBREW_CELLAR.join("testball/0.1")
setup_tab_for_prefix(prefix, versions: { "stable" => "0.1" })
- refute_predicate f.outdated_versions, :empty?
+ refute_predicate f.outdated_kegs, :empty?
ensure
prefix.rmtree
end
- def test_outdated_versions_mixed_version_schemes
+ def test_outdated_kegs_mixed_version_schemes
@f = formula("testball") do
url "foo"
version "20141010"
@@ -790,23 +1120,23 @@ class OutdatedVersionsTests < Homebrew::TestCase
prefix_b = HOMEBREW_CELLAR.join("testball/2.14")
setup_tab_for_prefix(prefix_b, versions: { "stable" => "2.14", "version_scheme" => 2 })
- refute_predicate f.outdated_versions, :empty?
- reset_outdated_versions
+ refute_predicate f.outdated_kegs, :empty?
+ reset_outdated_kegs
prefix_c = HOMEBREW_CELLAR.join("testball/20141009")
setup_tab_for_prefix(prefix_c, versions: { "stable" => "20141009", "version_scheme" => 3 })
- refute_predicate f.outdated_versions, :empty?
- reset_outdated_versions
+ refute_predicate f.outdated_kegs, :empty?
+ reset_outdated_kegs
prefix_d = HOMEBREW_CELLAR.join("testball/20141011")
setup_tab_for_prefix(prefix_d, versions: { "stable" => "20141009", "version_scheme" => 3 })
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
ensure
f.rack.rmtree
end
- def test_outdated_versions_head_with_version_scheme
+ def test_outdated_kegs_head_with_version_scheme
@f = formula("testball") do
url "foo"
version "1.0"
@@ -816,13 +1146,13 @@ class OutdatedVersionsTests < Homebrew::TestCase
head_prefix = HOMEBREW_CELLAR.join("testball/HEAD")
setup_tab_for_prefix(head_prefix, versions: { "stable" => "1.0", "version_scheme" => 1 })
- refute_predicate f.outdated_versions, :empty?
+ refute_predicate f.outdated_kegs, :empty?
- reset_outdated_versions
+ reset_outdated_kegs
head_prefix.rmtree
setup_tab_for_prefix(head_prefix, versions: { "stable" => "1.0", "version_scheme" => 2 })
- assert_predicate f.outdated_versions, :empty?
+ assert_predicate f.outdated_kegs, :empty?
ensure
head_prefix.rmtree
end
diff --git a/Library/Homebrew/test/test_formulary.rb b/Library/Homebrew/test/test_formulary.rb
index 8b3417dad..c545ff84d 100644
--- a/Library/Homebrew/test/test_formulary.rb
+++ b/Library/Homebrew/test/test_formulary.rb
@@ -89,7 +89,7 @@ class FormularyFactoryTest < Homebrew::TestCase
FileUtils.ln_s @path, alias_path
result = Formulary.factory("foo")
assert_kind_of Formula, result
- assert_equal alias_path, result.alias_path
+ assert_equal alias_path.to_s, result.alias_path
ensure
alias_dir.rmtree
end
diff --git a/Library/Homebrew/test/testing_env.rb b/Library/Homebrew/test/testing_env.rb
index cbbc5eff1..aa89ba2bd 100644
--- a/Library/Homebrew/test/testing_env.rb
+++ b/Library/Homebrew/test/testing_env.rb
@@ -121,5 +121,13 @@ module Homebrew
ENV.replace old
end
end
+
+ # Use a stubbed {Formulary::FormulaLoader} to make a given formula be found
+ # when loading from {Formulary} with `ref`.
+ def stub_formula_loader(formula, ref = formula.name)
+ loader = mock
+ loader.stubs(:get_formula).returns(formula)
+ Formulary.stubs(:loader_for).with(ref).returns(loader)
+ end
end
end