
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.
49 lines
1.4 KiB
Ruby
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
|