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
 | 
					 | 
				
			||||||
    subject(:error) { described_class.new("foo", tap) }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    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") }
 | 
					 | 
				
			||||||
  end
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  describe NoSuchKegError do
 | 
					  describe NoSuchKegError do
 | 
				
			||||||
    subject(:error) { described_class.new("foo") }
 | 
					    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") }
 | 
					      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") }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      it(:to_s) { expect(error.to_s).to eq("No such keg: #{HOMEBREW_CELLAR}/foo from tap u/r") }
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  describe FormulaValidationError do
 | 
					  describe FormulaValidationError do
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user