Isolate ARGV extension tests

This commit is contained in:
Jack Nagel 2013-04-07 16:35:34 -05:00
parent a79b7d6e0f
commit bafbd07c9e
2 changed files with 34 additions and 51 deletions

View File

@ -1,65 +1,57 @@
require 'testing_env' require 'testing_env'
require 'extend/ARGV'
module ExtendArgvPlusYeast class ArgvExtensionTests < Test::Unit::TestCase
def reset def setup
@named = nil @argv = [].extend(HomebrewArgvExtension)
@downcased_unique_named = nil
@formulae = nil
@kegs = nil
ARGV.shift while ARGV.length > 0
end
end
ARGV.extend ExtendArgvPlusYeast
class ARGVTests < Test::Unit::TestCase
def teardown
ARGV.reset
end end
def test_ARGV def test_argv_formulae
assert ARGV.named.empty? @argv.unshift 'mxcl'
assert_raises(FormulaUnavailableError) { @argv.formulae }
end
(HOMEBREW_CELLAR+'mxcl/10.0').mkpath def test_argv_kegs
keg = HOMEBREW_CELLAR + "mxcl/10.0"
keg.mkpath
@argv << 'mxcl'
assert_equal 1, @argv.kegs.length
ensure
keg.rmtree
end
ARGV.reset def test_argv_named
ARGV.unshift 'mxcl' @argv << 'mxcl' << '--debug' << '-v'
assert_equal 1, ARGV.named.length assert_equal 1, @argv.named.length
assert_equal 1, ARGV.kegs.length end
assert_raises(FormulaUnavailableError) { ARGV.formulae }
def test_empty_argv
assert_empty @argv.named
assert_empty @argv.kegs
assert_empty @argv.formulae
assert_empty @argv
end end
def test_switch? def test_switch?
ARGV.unshift "-ns" @argv << "-ns" << "-i" << "--bar"
ARGV.unshift "-i" %w{n s i}.each { |s| assert @argv.switch?(s) }
ARGV.unshift "--bar" %w{b ns bar --bar -n}.each { |s| assert !@argv.switch?(s) }
assert ARGV.switch?('n')
assert ARGV.switch?('s')
assert ARGV.switch?('i')
assert !ARGV.switch?('b')
assert !ARGV.switch?('ns')
assert !ARGV.switch?('bar')
assert !ARGV.switch?('--bar')
assert !ARGV.switch?('-n')
end end
def test_filter_for_dependencies_clears_flags def test_filter_for_dependencies_clears_flags
ARGV.unshift("--debug") @argv << "--debug"
ARGV.filter_for_dependencies do @argv.filter_for_dependencies { assert @argv.empty? }
assert ARGV.empty?
end
end end
def test_filter_for_dependencies_ensures_argv_restored def test_filter_for_dependencies_ensures_argv_restored
ARGV.expects(:replace).with(ARGV.clone) @argv.expects(:replace).with(@argv.clone)
begin begin
ARGV.filter_for_dependencies { raise Exception } @argv.filter_for_dependencies { raise Exception }
rescue Exception rescue Exception
end end
end end
def test_filter_for_dependencies_returns_block_value def test_filter_for_dependencies_returns_block_value
assert_equal 1, ARGV.filter_for_dependencies { 1 } assert_equal 1, @argv.filter_for_dependencies { 1 }
end end
end end

View File

@ -54,15 +54,6 @@ class BeerTasting < Test::Unit::TestCase
shutup { assert_nothing_raised { TestZip.new.brew {} } } shutup { assert_nothing_raised { TestZip.new.brew {} } }
end end
# needs resurrecting
# def test_no_ARGV_dupes
# ARGV.reset
# ARGV << 'foo' << 'foo'
# n=0
# ARGV.named.each{|f| n+=1 if f == 'foo'}
# assert_equal 1, n
# end
def test_brew_h def test_brew_h
require 'cmd/info' require 'cmd/info'
require 'cmd/prune' require 'cmd/prune'