Move test helpers into Homebrew::TestCase

This commit is contained in:
Jack Nagel 2014-06-18 20:32:51 -05:00
parent 982e9239b8
commit 89d74ec475
5 changed files with 38 additions and 53 deletions

View File

@ -2,8 +2,6 @@ require 'testing_env'
require 'test/testball' require 'test/testball'
class FormulaTests < Homebrew::TestCase class FormulaTests < Homebrew::TestCase
include VersionAssertions
def test_formula_instantiation def test_formula_instantiation
klass = Class.new(Formula) { url "http://example.com/foo-1.0.tar.gz" } klass = Class.new(Formula) { url "http://example.com/foo-1.0.tar.gz" }
name = "formula_name" name = "formula_name"

View File

@ -2,8 +2,6 @@ require 'testing_env'
require 'resource' require 'resource'
class ResourceTests < Homebrew::TestCase class ResourceTests < Homebrew::TestCase
include VersionAssertions
def setup def setup
@resource = Resource.new('test') @resource = Resource.new('test')
end end

View File

@ -2,8 +2,6 @@ require 'testing_env'
require 'software_spec' require 'software_spec'
class SoftwareSpecTests < Homebrew::TestCase class SoftwareSpecTests < Homebrew::TestCase
include VersionAssertions
def setup def setup
@spec = SoftwareSpec.new @spec = SoftwareSpec.new
end end
@ -88,8 +86,6 @@ class SoftwareSpecTests < Homebrew::TestCase
end end
class HeadSoftwareSpecTests < Homebrew::TestCase class HeadSoftwareSpecTests < Homebrew::TestCase
include VersionAssertions
def setup def setup
@spec = HeadSoftwareSpec.new @spec = HeadSoftwareSpec.new
end end

View File

@ -2,8 +2,6 @@ require 'testing_env'
require 'version' require 'version'
class VersionTests < Homebrew::TestCase class VersionTests < Homebrew::TestCase
include VersionAssertions
def test_accepts_objects_responding_to_to_str def test_accepts_objects_responding_to_to_str
value = stub(:to_str => '0.1') value = stub(:to_str => '0.1')
assert_equal '0.1', Version.new(value).to_s assert_equal '0.1', Version.new(value).to_s
@ -29,8 +27,6 @@ class VersionTests < Homebrew::TestCase
end end
class VersionComparisonTests < Homebrew::TestCase class VersionComparisonTests < Homebrew::TestCase
include VersionAssertions
def test_version_comparisons def test_version_comparisons
assert_operator version('0.1'), :==, version('0.1.0') assert_operator version('0.1'), :==, version('0.1.0')
assert_operator version('0.1'), :<, version('0.2') assert_operator version('0.1'), :<, version('0.2')
@ -96,8 +92,6 @@ class VersionComparisonTests < Homebrew::TestCase
end end
class VersionParsingTests < Homebrew::TestCase class VersionParsingTests < Homebrew::TestCase
include VersionAssertions
def test_pathname_version def test_pathname_version
d = HOMEBREW_CELLAR/'foo-0.1.9' d = HOMEBREW_CELLAR/'foo-0.1.9'
d.mkpath d.mkpath

View File

@ -56,23 +56,6 @@ at_exit { HOMEBREW_PREFIX.parent.rmtree }
# Test fixtures and files can be found relative to this path # Test fixtures and files can be found relative to this path
TEST_DIRECTORY = File.dirname(File.expand_path(__FILE__)) TEST_DIRECTORY = File.dirname(File.expand_path(__FILE__))
def shutup
if ARGV.verbose?
yield
else
begin
tmperr = $stderr.clone
tmpout = $stdout.clone
$stderr.reopen '/dev/null', 'w'
$stdout.reopen '/dev/null', 'w'
yield
ensure
$stderr.reopen tmperr
$stdout.reopen tmpout
end
end
end
require 'test/unit' # must be after at_exit require 'test/unit' # must be after at_exit
require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser require 'extend/ARGV' # needs to be after test/unit to avoid conflict with OptionsParser
ARGV.extend(HomebrewArgvExtension) ARGV.extend(HomebrewArgvExtension)
@ -84,28 +67,6 @@ rescue LoadError
warn 'The mocha gem is required to run some tests, expect failures' warn 'The mocha gem is required to run some tests, expect failures'
end end
module VersionAssertions
def version v
Version.new(v)
end
def assert_version_equal expected, actual
assert_equal Version.new(expected), actual
end
def assert_version_detected expected, url
assert_equal expected, Version.parse(url).to_s
end
def assert_version_nil url
assert_nil Version.parse(url)
end
def assert_version_tokens tokens, version
assert_equal tokens, version.send(:tokens).map(&:to_s)
end
end
module Test::Unit::Assertions module Test::Unit::Assertions
def assert_empty(obj, msg=nil) def assert_empty(obj, msg=nil)
assert_respond_to(obj, :empty?, msg) assert_respond_to(obj, :empty?, msg)
@ -114,12 +75,50 @@ module Test::Unit::Assertions
end end
module Homebrew module Homebrew
module VersionAssertions
def version v
Version.new(v)
end
def assert_version_equal expected, actual
assert_equal Version.new(expected), actual
end
def assert_version_detected expected, url
assert_equal expected, Version.parse(url).to_s
end
def assert_version_nil url
assert_nil Version.parse(url)
end
def assert_version_tokens tokens, version
assert_equal tokens, version.send(:tokens).map(&:to_s)
end
end
class TestCase < ::Test::Unit::TestCase class TestCase < ::Test::Unit::TestCase
include VersionAssertions
TEST_SHA1 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze TEST_SHA1 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze TEST_SHA256 = "deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef".freeze
def formula(name="formula_name", path=Formula.path(name), &block) def formula(name="formula_name", path=Formula.path(name), &block)
@_f = Class.new(Formula, &block).new(name, path) @_f = Class.new(Formula, &block).new(name, path)
end end
def shutup
err = $stderr.clone
out = $stdout.clone
begin
$stderr.reopen("/dev/null", "w")
$stdout.reopen("/dev/null", "w")
yield
ensure
$stderr.reopen(err)
$stdout.reopen(out)
end
end
end end
end end