Fix the update tests

Signed-off-by: Adam Vandenberg <flangy@gmail.com>
This commit is contained in:
David Porter 2010-05-08 15:35:06 +10:00 committed by Adam Vandenberg
parent 5f4871ba9d
commit 4da905b7fb
3 changed files with 11 additions and 14 deletions

View File

@ -23,6 +23,8 @@ class RefreshBrewMock < RefreshBrew
raise "#{inspect} Unexpectedly called backticks in pwd `#{HOMEBREW_PREFIX}' and command `#{cmd}'"
end
end
alias safe_system `
def expectations_met?
@expect.keys.sort == @called.sort
@ -54,8 +56,8 @@ class UpdaterTests < Test::Unit::TestCase
def test_update_homebrew_without_any_changes
outside_prefix do
updater = RefreshBrewMock.new
updater.in_prefix_expect("git checkout master")
updater.in_prefix_expect("git pull origin master", "Already up-to-date.\n")
updater.in_prefix_expect(RefreshBrew::INIT_COMMAND)
updater.in_prefix_expect(RefreshBrew::UPDATE_COMMAND, "Already up-to-date.\n")
assert_equal false, updater.update_from_masterbrew!
assert updater.expectations_met?
@ -67,9 +69,9 @@ class UpdaterTests < Test::Unit::TestCase
def test_update_homebrew_without_formulae_changes
outside_prefix do
updater = RefreshBrewMock.new
updater.in_prefix_expect("git checkout master")
updater.in_prefix_expect(RefreshBrew::INIT_COMMAND)
output = fixture('update_git_pull_output_without_formulae_changes')
updater.in_prefix_expect("git pull origin master", output)
updater.in_prefix_expect(RefreshBrew::UPDATE_COMMAND, output)
assert_equal true, updater.update_from_masterbrew!
assert !updater.pending_formulae_changes?
@ -81,9 +83,9 @@ class UpdaterTests < Test::Unit::TestCase
def test_update_homebrew_with_formulae_changes
outside_prefix do
updater = RefreshBrewMock.new
updater.in_prefix_expect("git checkout master")
updater.in_prefix_expect(RefreshBrew::INIT_COMMAND)
output = fixture('update_git_pull_output_with_formulae_changes')
updater.in_prefix_expect("git pull origin master", output)
updater.in_prefix_expect(RefreshBrew::UPDATE_COMMAND, output)
assert_equal true, updater.update_from_masterbrew!
assert updater.pending_formulae_changes?
@ -95,7 +97,7 @@ class UpdaterTests < Test::Unit::TestCase
def test_updater_returns_current_revision
outside_prefix do
updater = RefreshBrewMock.new
updater.in_prefix_expect('git log -l -1 --pretty=format:%H', 'the-revision-hash')
updater.in_prefix_expect(RefreshBrew::REVISION_COMMAND, 'the-revision-hash')
assert_equal 'the-revision-hash', updater.current_revision
end
end

View File

@ -5,10 +5,6 @@
# Note: "formula_test" is omitted; these aren't unit tests but sanity checks
# on the real formulae.
#
# Run as:
# ./tests -- --skip-update
# to omit the update tests which only seem to work for mxcl
#
# Feel free to split out test_bucket
ruby test_bucket.rb $*
@ -24,6 +20,4 @@ ruby test_pathname_install.rb $*
ruby test_utils.rb $*
ruby test_ARGV.rb $*
ruby test_ENV.rb $*
# Update tests (only seem to work for mxcl)
ruby test_updater.rb $*

View File

@ -1,5 +1,6 @@
class RefreshBrew
RESPOSITORY_URL = 'git://github.com/mxcl/homebrew.git'
INIT_COMMAND = "git init"
CHECKOUT_COMMAND = 'git checkout -q master'
UPDATE_COMMAND = "git pull #{RESPOSITORY_URL} master"
REVISION_COMMAND = 'git log -l -1 --pretty=format:%H 2> /dev/null'
@ -60,7 +61,7 @@ class RefreshBrew
def execute(cmd)
out = `#{cmd}`
unless $?.success?
if $? && !$?.success?
puts out
raise "Failed while executing #{cmd}"
end