From 967a60a0543aab16a9a472d8150f41b6a4943359 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 7 Jan 2013 17:34:56 -0600 Subject: [PATCH] Detect when tests are defined --- Library/Homebrew/cmd/test.rb | 2 +- Library/Homebrew/formula.rb | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/cmd/test.rb b/Library/Homebrew/cmd/test.rb index 4a966d2ff2..3550727910 100644 --- a/Library/Homebrew/cmd/test.rb +++ b/Library/Homebrew/cmd/test.rb @@ -17,7 +17,7 @@ module Homebrew extend self end # Cannot test formulae without a test method - unless f.respond_to? :test + unless f.test_defined? ofail "#{f.name} defines no test" next end diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index 740577ba74..2a9e4e704e 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -26,6 +26,7 @@ class Formula set_instance_variable :bottle set_instance_variable :devel set_instance_variable :head + set_instance_variable :test @name = name validate_variable :name @@ -590,12 +591,16 @@ public ret = nil mktemp do @testpath = Pathname.pwd - ret = instance_eval(&self.class.test) + ret = instance_eval(&@test) @testpath = nil end ret end + def test_defined? + not @test.nil? + end + private def stage @@ -642,7 +647,12 @@ private end 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 class << self