Merge pull request #3046 from alyssais/double_formula_load_error
Raise an exception when double loading a formula
This commit is contained in:
		
						commit
						b93f1e3569
					
				@ -20,6 +20,8 @@ module Formulary
 | 
			
		||||
      raise "Formula loading disabled by HOMEBREW_DISABLE_LOAD_FORMULA!"
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    raise "Formula #{name} has already been loaded" if const_defined?(namespace)
 | 
			
		||||
 | 
			
		||||
    mod = Module.new
 | 
			
		||||
    const_set(namespace, mod)
 | 
			
		||||
    begin
 | 
			
		||||
 | 
			
		||||
@ -27,6 +27,16 @@ describe Formulary do
 | 
			
		||||
  let(:bottle_dir) { Pathname.new("#{TEST_FIXTURE_DIR}/bottles") }
 | 
			
		||||
  let(:bottle) { bottle_dir/"testball_bottle-0.1.#{Utils::Bottles.tag}.bottle.tar.gz" }
 | 
			
		||||
 | 
			
		||||
  describe "::load_formula" do
 | 
			
		||||
    it "does not allow namespace repetition" do |example|
 | 
			
		||||
      definition = "Foo = Class.new(Formula)"
 | 
			
		||||
      namespace = "Test#{example.description.hash.abs}"
 | 
			
		||||
      subject.load_formula("foo", "bar", definition, namespace)
 | 
			
		||||
      expect { subject.load_formula("foo", "bar", definition, namespace) }
 | 
			
		||||
        .to raise_error RuntimeError, /already.* loaded/
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe "::class_s" do
 | 
			
		||||
    it "replaces '+' with 'x'" do
 | 
			
		||||
      expect(subject.class_s("foo++")).to eq("Fooxx")
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user