Merge pull request #18334 from Homebrew/NoSuchKegFromTapError
This commit is contained in:
commit
076c4e01f2
@ -423,7 +423,7 @@ module Homebrew
|
|||||||
keg.tab.tap == requested_tap
|
keg.tab.tap == requested_tap
|
||||||
end
|
end
|
||||||
|
|
||||||
raise NoSuchKegFromTapError.new(requested_formula, requested_tap) if kegs.none?
|
raise NoSuchKegError.new(requested_formula, tap: requested_tap) if kegs.none?
|
||||||
end
|
end
|
||||||
|
|
||||||
raise NoSuchKegError, name if kegs.none?
|
raise NoSuchKegError, name if kegs.none?
|
||||||
|
|||||||
@ -53,23 +53,14 @@ class NotAKegError < RuntimeError; end
|
|||||||
|
|
||||||
# Raised when a keg doesn't exist.
|
# Raised when a keg doesn't exist.
|
||||||
class NoSuchKegError < RuntimeError
|
class NoSuchKegError < RuntimeError
|
||||||
attr_reader :name
|
|
||||||
|
|
||||||
def initialize(name)
|
|
||||||
@name = name
|
|
||||||
super "No such keg: #{HOMEBREW_CELLAR}/#{name}"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# Raised when a keg from a specific tap doesn't exist.
|
|
||||||
class NoSuchKegFromTapError < RuntimeError
|
|
||||||
attr_reader :name, :tap
|
attr_reader :name, :tap
|
||||||
|
|
||||||
sig { params(name: String, tap: Tap).void }
|
def initialize(name, tap: nil)
|
||||||
def initialize(name, tap)
|
|
||||||
@name = name
|
@name = name
|
||||||
@tap = tap
|
@tap = tap
|
||||||
super "No such keg: #{HOMEBREW_CELLAR}/#{name} from tap #{tap}"
|
message = "No such keg: #{HOMEBREW_CELLAR}/#{name}"
|
||||||
|
message += " from tap #{tap}" if tap
|
||||||
|
super message
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -244,7 +244,7 @@ RSpec.describe Homebrew::CLI::NamedArgs do
|
|||||||
it "raises an error if there is no tap match" do
|
it "raises an error if there is no tap match" do
|
||||||
stub_formula_loader bar, "other/tap/bar"
|
stub_formula_loader bar, "other/tap/bar"
|
||||||
|
|
||||||
expect { described_class.new("other/tap/bar").to_kegs }.to raise_error(NoSuchKegFromTapError)
|
expect { described_class.new("other/tap/bar").to_kegs }.to raise_error(NoSuchKegError, %r{from tap other/tap})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -19,18 +19,20 @@ RSpec.describe "Exception" do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe NoSuchKegFromTapError do
|
describe NoSuchKegError do
|
||||||
subject(:error) { described_class.new("foo", tap) }
|
context "without a tap" do
|
||||||
|
subject(:error) { described_class.new("foo") }
|
||||||
|
|
||||||
|
it(:to_s) { expect(error.to_s).to eq("No such keg: #{HOMEBREW_CELLAR}/foo") }
|
||||||
|
end
|
||||||
|
|
||||||
|
context "with a tap" do
|
||||||
|
subject(:error) { described_class.new("foo", tap:) }
|
||||||
|
|
||||||
let(:tap) { instance_double(Tap, to_s: "u/r") }
|
let(:tap) { instance_double(Tap, to_s: "u/r") }
|
||||||
|
|
||||||
it(:to_s) { expect(error.to_s).to eq("No such keg: #{HOMEBREW_CELLAR}/foo from tap u/r") }
|
it(:to_s) { expect(error.to_s).to eq("No such keg: #{HOMEBREW_CELLAR}/foo from tap u/r") }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe NoSuchKegError do
|
|
||||||
subject(:error) { described_class.new("foo") }
|
|
||||||
|
|
||||||
it(:to_s) { expect(error.to_s).to eq("No such keg: #{HOMEBREW_CELLAR}/foo") }
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe FormulaValidationError do
|
describe FormulaValidationError do
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user