diff options
| author | Max Howell | 2009-07-31 14:17:56 +0100 |
|---|---|---|
| committer | Max Howell | 2009-07-31 14:21:27 +0100 |
| commit | f6e5874ff76b66ed2e2af30ec2c28e910d72bf89 (patch) | |
| tree | fb751f50065fe2abe4ea9af6a4c0602a15875ede /Library | |
| parent | 39fa1f0aeefb8139c5f10fc426e39cf3282f50e6 (diff) | |
| download | homebrew-f6e5874ff76b66ed2e2af30ec2c28e910d72bf89.tar.bz2 | |
More tests for Formula and Keg
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/formula.rb | 12 | ||||
| -rwxr-xr-x | Library/Homebrew/unittest.rb | 17 |
2 files changed, 23 insertions, 6 deletions
diff --git a/Library/Homebrew/formula.rb b/Library/Homebrew/formula.rb index ed7dd158f..49096c1a3 100644 --- a/Library/Homebrew/formula.rb +++ b/Library/Homebrew/formula.rb @@ -190,10 +190,6 @@ private end return tgz end - - def method_added method - raise 'You cannot override Formula.brew' if method == 'brew' - end end # somewhat useful, it'll raise if you call prefix, but it'll unpack a tar/zip @@ -232,7 +228,7 @@ class Formula <UnidentifiedFormula super name @version=Pathname.new(@url).version unless @version end - + def self.class name #remove invalid characters and camelcase name.capitalize.gsub(/[-_\s]([a-zA-Z0-9])/) { $1.upcase } @@ -241,13 +237,17 @@ class Formula <UnidentifiedFormula def self.path name Pathname.new(HOMEBREW_PREFIX)+'Library'+'Formula'+(name.downcase+'.rb') end - + def self.create name require Formula.path(name) return eval(Formula.class(name)).new(name) rescue LoadError raise "No formula for #{name}" end + + def method_added method + raise 'You cannot override Formula.brew' if method == 'brew' + end end # see ack.rb for an example usage diff --git a/Library/Homebrew/unittest.rb b/Library/Homebrew/unittest.rb index 8e3fcf453..b23db7d58 100755 --- a/Library/Homebrew/unittest.rb +++ b/Library/Homebrew/unittest.rb @@ -47,6 +47,15 @@ class TestBallInvalidMd5 <TestBall @md5='61aa838a9e4050d1876a295a9e62cbe6' end +class TestBallOverrideBrew <Formula + def initialize + super "foo" + end + def brew + puts "We can't override brew" + end +end + def nostdout tmp=$stdout @@ -177,6 +186,10 @@ class BeerTasting <Test::Unit::TestCase assert_equal 2, HOMEBREW_PREFIX.children.length assert (HOMEBREW_PREFIX+'bin').directory? assert_equal 3, (HOMEBREW_PREFIX+'bin').children.length + + keg.rm + assert !keg.path.exist? + assert !f.installed? end def test_md5 @@ -203,4 +216,8 @@ class BeerTasting <Test::Unit::TestCase assert_not_nil Formula.create(FOOBAR) end + + def test_cant_override_brew + assert_raises(RuntimeError) { TestBallOverrideBrew.new } + end end |
