From 16afcff557af2ffaea7f76ea70574f831f7f9ae2 Mon Sep 17 00:00:00 2001 From: Bo Anderson Date: Wed, 22 Sep 2021 02:08:18 +0100 Subject: [PATCH] formula: fix error in Formula#specified_path with aliases --- Library/Homebrew/formula.rb | 3 ++- Library/Homebrew/test/formula_spec.rb | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 135bb6fc97..6573a85262 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -310,7 +310,8 @@ class Formula # The path that was specified to find this formula. def specified_path - default_specified_path = alias_path || path + default_specified_path = Pathname(alias_path) if alias_path.present? + default_specified_path ||= path return default_specified_path if default_specified_path.presence&.exist? return local_bottle_path if local_bottle_path.presence&.exist? diff --git a/Library/Homebrew/test/formula_spec.rb b/Library/Homebrew/test/formula_spec.rb index 3d3a2734ce..a155d0017b 100644 --- a/Library/Homebrew/test/formula_spec.rb +++ b/Library/Homebrew/test/formula_spec.rb @@ -28,7 +28,7 @@ describe Formula do let(:path) { Formulary.core_path(name) } let(:spec) { :stable } let(:alias_name) { "baz@1" } - let(:alias_path) { CoreTap.instance.alias_dir/alias_name } + let(:alias_path) { (CoreTap.instance.alias_dir/alias_name).to_s } let(:f) { klass.new(name, path, spec) } let(:f_alias) { klass.new(name, path, spec, alias_path: alias_path) } @@ -41,6 +41,7 @@ describe Formula do expect(f.alias_path).to be nil expect(f.alias_name).to be nil expect(f.full_alias_name).to be nil + expect(f.specified_path).to eq(path) expect { klass.new }.to raise_error(ArgumentError) end @@ -51,6 +52,7 @@ describe Formula do expect(f_alias.alias_path).to eq(alias_path) expect(f_alias.alias_name).to eq(alias_name) expect(f_alias.specified_name).to eq(alias_name) + expect(f_alias.specified_path).to eq(Pathname(alias_path)) expect(f_alias.full_alias_name).to eq(alias_name) expect(f_alias.full_specified_name).to eq(alias_name) expect { klass.new }.to raise_error(ArgumentError) @@ -71,6 +73,7 @@ describe Formula do expect(f.alias_path).to be nil expect(f.alias_name).to be nil expect(f.full_alias_name).to be nil + expect(f.specified_path).to eq(path) expect { klass.new }.to raise_error(ArgumentError) end @@ -81,6 +84,7 @@ describe Formula do expect(f_alias.alias_path).to eq(alias_path) expect(f_alias.alias_name).to eq(alias_name) expect(f_alias.specified_name).to eq(alias_name) + expect(f_alias.specified_path).to eq(Pathname(alias_path)) expect(f_alias.full_alias_name).to eq(full_alias_name) expect(f_alias.full_specified_name).to eq(full_alias_name) expect { klass.new }.to raise_error(ArgumentError)