diff options
| author | Tim D. Smith | 2016-06-27 20:16:32 -0700 |
|---|---|---|
| committer | Tim D. Smith | 2016-06-29 21:17:09 -0700 |
| commit | a2681d196fe91d53f67d3eaea03cb2313db6b751 (patch) | |
| tree | 4233e42fb691eda77a4f26cb0ddcc7f57013792f /Library | |
| parent | f04ffb614d7e76997039f42d4406494e25d3390a (diff) | |
| download | brew-a2681d196fe91d53f67d3eaea03cb2313db6b751.tar.bz2 | |
Tests for Step class
Closes #419.
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/test/test_cmd_testbot.rb | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_cmd_testbot.rb b/Library/Homebrew/test/test_cmd_testbot.rb index 40dd22f34..a696b9e95 100644 --- a/Library/Homebrew/test/test_cmd_testbot.rb +++ b/Library/Homebrew/test/test_cmd_testbot.rb @@ -1,3 +1,5 @@ +require "pathname" + require "testing_env" require "dev-cmd/test-bot" @@ -33,3 +35,65 @@ class TestbotCommandTests < Homebrew::TestCase predicate.call "ARGV" end end + +class TestbotStepTests < Homebrew::TestCase + def run + [nil, "1"].each do |travis| + with_environment("TRAVIS" => travis) { super } + end + self + end + + def teardown + unless passed? + raise "INFO: Previous test failed with ENV['TRAVIS'] = #{ENV["TRAVIS"].inspect}" + end + end + + def stub_test_instance + stub( + :category => "stub", + :log_root => Pathname.pwd + ) + end + + def test_step_run_measures_execution_time + step = Homebrew::Step.new stub_test_instance, %w[sleep 0.1] + shutup do + step.run + end + assert_operator step.time, :>, 0.1 + assert_operator step.time, :<, 1 + assert_equal step.passed?, true + end + + def test_step_run_observes_failure + step = Homebrew::Step.new stub_test_instance, ["false", ""] + shutup do + step.run + end + assert_equal step.passed?, false + assert_equal step.failed?, true + end + + def test_step_dry_run_is_dry_and_always_succeeds + step = Homebrew::Step.new stub_test_instance, ["false", ""] + ARGV.expects(:include?).with("--dry-run").returns(true) + step.stubs(:fork).raises("Dry run isn't dry!") + shutup do + step.run + end + assert_equal step.passed?, true + end + + def test_step_fail_fast_exits_on_failure + step = Homebrew::Step.new stub_test_instance, ["false", ""] + ARGV.stubs(:include?).returns(false) + ARGV.expects(:include?).with("--fail-fast").returns(true) + step.expects(:exit).with(1).returns(nil) + shutup do + step.run + end + assert_equal step.passed?, false + end +end |
