brew/Library/Homebrew/test/descriptions_test.rb
Alyssa Ross 70a381a00f tests: enforce super in lifecycle hooks
This will allow us to have global setup and teardown for tests.

For example, we can automatically clear caches after each test, to avoid
annoying intermittent failures like #1879 and #1886.
2017-01-21 11:34:52 +00:00

49 lines
1.4 KiB
Ruby

require "testing_env"
require "descriptions"
class DescriptionsTest < Homebrew::TestCase
def setup
super
@descriptions_hash = {}
@descriptions = Descriptions.new(@descriptions_hash)
@old_stdout = $stdout
$stdout = StringIO.new
end
def teardown
$stdout = @old_stdout
super
end
def test_single_core_formula
@descriptions_hash["homebrew/core/foo"] = "Core foo"
@descriptions.print
assert_equal "foo: Core foo", $stdout.string.chomp
end
def test_single_external_formula
@descriptions_hash["somedev/external/foo"] = "External foo"
@descriptions.print
assert_equal "foo: External foo", $stdout.string.chomp
end
def test_even_dupes
@descriptions_hash["homebrew/core/foo"] = "Core foo"
@descriptions_hash["somedev/external/foo"] = "External foo"
@descriptions.print
assert_equal "homebrew/core/foo: Core foo\nsomedev/external/foo: External foo",
$stdout.string.chomp
end
def test_odd_dupes
@descriptions_hash["homebrew/core/foo"] = "Core foo"
@descriptions_hash["somedev/external/foo"] = "External foo"
@descriptions_hash["otherdev/external/foo"] = "Other external foo"
@descriptions.print
assert_equal "homebrew/core/foo: Core foo\notherdev/external/foo: Other external foo\nsomedev/external/foo: External foo",
$stdout.string.chomp
end
end