Merge pull request #14621 from Bo98/api-uses_from_macos-fix
formulary: fix uses_from_macos handling on macOS
This commit is contained in:
commit
70db4bc723
@ -194,14 +194,14 @@ module Formulary
|
||||
end
|
||||
|
||||
json_formula["dependencies"].each do |dep|
|
||||
next if uses_from_macos_names.include? dep
|
||||
next if uses_from_macos_names.include?(dep) && !Homebrew::SimulateSystem.simulating_or_running_on_macos?
|
||||
|
||||
depends_on dep
|
||||
end
|
||||
|
||||
[:build, :test, :recommended, :optional].each do |type|
|
||||
json_formula["#{type}_dependencies"].each do |dep|
|
||||
next if uses_from_macos_names.include? dep
|
||||
next if uses_from_macos_names.include?(dep) && !Homebrew::SimulateSystem.simulating_or_running_on_macos?
|
||||
|
||||
depends_on dep => type
|
||||
end
|
||||
|
@ -273,6 +273,16 @@ describe Formulary do
|
||||
}
|
||||
end
|
||||
|
||||
let(:older_macos_variations_json) do
|
||||
{
|
||||
"variations" => {
|
||||
Utils::Bottles.tag.to_s => {
|
||||
"dependencies" => ["uses_from_macos_dep"],
|
||||
},
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
let(:linux_variations_json) do
|
||||
{
|
||||
"variations" => {
|
||||
@ -338,6 +348,7 @@ describe Formulary do
|
||||
expect(formula).to be_a(Formula)
|
||||
expect(formula.deps.count).to eq 6
|
||||
expect(formula.deps.map(&:name).include?("variations_dep")).to be true
|
||||
expect(formula.deps.map(&:name).include?("uses_from_macos_dep")).to be false
|
||||
end
|
||||
|
||||
it "returns a Formula without duplicated deps and uses_from_macos with variations on Linux", :needs_linux do
|
||||
@ -349,6 +360,16 @@ describe Formulary do
|
||||
expect(formula.deps.count).to eq 6
|
||||
expect(formula.deps.map(&:name).include?("uses_from_macos_dep")).to be true
|
||||
end
|
||||
|
||||
it "returns a Formula with the correct uses_from_macos dep on older macOS", :needs_macos do
|
||||
allow(Homebrew::API::Formula)
|
||||
.to receive(:all_formulae).and_return formula_json_contents(older_macos_variations_json)
|
||||
|
||||
formula = described_class.factory(formula_name)
|
||||
expect(formula).to be_a(Formula)
|
||||
expect(formula.deps.count).to eq 5
|
||||
expect(formula.deps.map(&:name).include?("uses_from_macos_dep")).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user