Detect when tests are defined

This commit is contained in:
Jack Nagel 2013-01-07 17:34:56 -06:00
parent 429caf69a9
commit 967a60a054
2 changed files with 13 additions and 3 deletions

View File

@ -17,7 +17,7 @@ module Homebrew extend self
end end
# Cannot test formulae without a test method # Cannot test formulae without a test method
unless f.respond_to? :test unless f.test_defined?
ofail "#{f.name} defines no test" ofail "#{f.name} defines no test"
next next
end end

View File

@ -26,6 +26,7 @@ class Formula
set_instance_variable :bottle set_instance_variable :bottle
set_instance_variable :devel set_instance_variable :devel
set_instance_variable :head set_instance_variable :head
set_instance_variable :test
@name = name @name = name
validate_variable :name validate_variable :name
@ -590,12 +591,16 @@ public
ret = nil ret = nil
mktemp do mktemp do
@testpath = Pathname.pwd @testpath = Pathname.pwd
ret = instance_eval(&self.class.test) ret = instance_eval(&@test)
@testpath = nil @testpath = nil
end end
ret ret
end end
def test_defined?
not @test.nil?
end
private private
def stage def stage
@ -642,7 +647,12 @@ private
end end
def self.method_added method def self.method_added method
raise 'You cannot override Formula.brew' if method == :brew case method
when :brew
raise "You cannot override Formula#brew"
when :test
@test = method
end
end end
class << self class << self