aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/test')
-rw-r--r--Library/Homebrew/test/fixtures/updater_fixture.yaml79
-rw-r--r--Library/Homebrew/test/test_updater.rb75
2 files changed, 78 insertions, 76 deletions
diff --git a/Library/Homebrew/test/fixtures/updater_fixture.yaml b/Library/Homebrew/test/fixtures/updater_fixture.yaml
index 55e9d0f40..b3dd14d23 100644
--- a/Library/Homebrew/test/fixtures/updater_fixture.yaml
+++ b/Library/Homebrew/test/fixtures/updater_fixture.yaml
@@ -1,53 +1,26 @@
-update_git_pull_output_without_formulae_changes: |
- remote: counting objects: 58, done.
- remote: Compressing objects: 100% (35/35), done.
- remote: Total 39 (delta 20), reused 0 (delta 0)
- Unpacking objects: 100% (39/39), done.
- From git://github.com/mxcl/homebrew
- * branch master -> FETCH_HEAD
- Updating 14ef7f9..f414bc8
- Fast forward
- Library/Homebrew/ARGV+yeast.rb | 35 ++--
- Library/Homebrew/beer_events.rb | 181 +++++++++++++
- Library/Homebrew/hardware.rb | 71 ++++++
- Library/Homebrew/hw.model.c | 17 --
- README | 337 +++++++++++++------------
- bin/brew | 137 ++++++++---
- 40 files changed, 1107 insertions(+), 426 deletions(-)
- create mode 100644 Library/Homebrew/beer_events.rb
- create mode 100644 Library/Homebrew/hardware.rb
- delete mode 100644 Library/Homebrew/hw.model.c
- delete mode 100644 Library/Homebrew/hw.model.rb
-update_git_pull_output_with_formulae_changes: |
- remote: counting objects: 58, done.
- remote: Compressing objects: 100% (35/35), done.
- remote: Total 39 (delta 20), reused 0 (delta 0)
- Unpacking objects: 100% (39/39), done.
- From git://github.com/mxcl/homebrew
- * branch master -> FETCH_HEAD
- Updating 14ef7f9..f414bc8
- Fast forward
- Library/Contributions/brew_bash_completion.sh | 6 +-
- Library/Formula/antiword.rb | 13 +
- Library/Formula/bash-completion.rb | 25 ++
- Library/Formula/xar.rb | 19 ++
- Library/Formula/yajl.rb | 2 +-
- Library/Homebrew/ARGV+yeast.rb | 35 ++--
- Library/Homebrew/beer_events.rb | 181 +++++++++++++
- Library/Homebrew/hardware.rb | 71 ++++++
- Library/Homebrew/hw.model.c | 17 --
- Library/Homebrew/pathname+yeast.rb | 28 ++-
- Library/Homebrew/unittest.rb | 106 ++++++++-
- Library/Homebrew/utils.rb | 36 ++-
- README | 337 +++++++++++++------------
- bin/brew | 137 ++++++++---
- 40 files changed, 1107 insertions(+), 426 deletions(-)
- create mode 100644 Library/Formula/antiword.rb
- create mode 100644 Library/Formula/bash-completion.rb
- create mode 100644 Library/Formula/ddrescue.rb
- create mode 100644 Library/Formula/dict.rb
- create mode 100644 Library/Formula/lua.rb
- create mode 100644 Library/Homebrew/beer_events.rb
- create mode 100644 Library/Homebrew/hardware.rb
- delete mode 100644 Library/Homebrew/hw.model.c
- delete mode 100644 Library/Homebrew/hw.model.rb
+update_git_diff_output_without_formulae_changes: |
+ M Library/Homebrew/ARGV+yeast.rb
+ A Library/Homebrew/beer_events.rb
+ A Library/Homebrew/hardware.rb
+ D Library/Homebrew/hw.model.c
+ M README
+ M bin/brew
+update_git_diff_output_with_formulae_changes: |
+ M Library/Contributions/brew_bash_completion.sh
+ A Library/Formula/antiword.rb
+ A Library/Formula/bash-completion.rb
+ M Library/Formula/xar.rb
+ M Library/Formula/yajl.rb
+ M Library/Homebrew/ARGV+yeast.rb
+ M Library/Homebrew/pathname+yeast.rb
+ M Library/Homebrew/unittest.rb
+ M Library/Homebrew/utils.rb
+ M README
+ M bin/brew
+ A Library/Formula/ddrescue.rb
+ A Library/Formula/dict.rb
+ A Library/Formula/lua.rb
+ A Library/Homebrew/beer_events.rb
+ A Library/Homebrew/hardware.rb
+ D Library/Homebrew/hw.model.c
+ D Library/Homebrew/hw.model.rb
diff --git a/Library/Homebrew/test/test_updater.rb b/Library/Homebrew/test/test_updater.rb
index 348658d25..b5247f684 100644
--- a/Library/Homebrew/test/test_updater.rb
+++ b/Library/Homebrew/test/test_updater.rb
@@ -11,15 +11,23 @@ require 'utils'
require 'cmd/update'
class RefreshBrewMock < RefreshBrew
- def in_prefix_expect(expect, returns = '')
- @expect ||= {}
- @expect[expect] = returns
+ def git_repo?
+ @git_repo
+ end
+ attr_writer :git_repo
+
+ def in_prefix_expect(cmd, output = '')
+ @outputs ||= Hash.new { |h,k| h[k] = [] }
+ @expected ||= []
+ @expected << cmd
+ @outputs[cmd] << output
end
def `(cmd)
- if Dir.pwd == HOMEBREW_PREFIX.to_s and @expect.has_key?(cmd)
- (@called ||= []) << cmd
- @expect[cmd]
+ if Dir.pwd == HOMEBREW_PREFIX.to_s and @expected.include?(cmd) and !@outputs[cmd].empty?
+ @called ||= []
+ @called << cmd
+ @outputs[cmd].shift
else
raise "#{inspect} Unexpectedly called backticks in pwd `#{HOMEBREW_PREFIX}' and command `#{cmd}'"
end
@@ -28,7 +36,7 @@ class RefreshBrewMock < RefreshBrew
alias safe_system `
def expectations_met?
- @expect.keys.sort == @called.sort
+ @expected == @called
end
def inspect
@@ -54,11 +62,30 @@ class UpdaterTests < Test::Unit::TestCase
@fixture_data
end
+ def test_init_homebrew
+ outside_prefix do
+ updater = RefreshBrewMock.new
+ updater.git_repo = false
+ updater.in_prefix_expect("git init")
+ updater.in_prefix_expect("git pull #{RefreshBrewMock::REPOSITORY_URL} master")
+ updater.in_prefix_expect("git rev-parse HEAD", "1234abcd")
+
+ assert_equal false, updater.update_from_masterbrew!
+ assert updater.expectations_met?
+ assert updater.updated_formulae.empty?
+ assert updater.added_formulae.empty?
+ end
+ end
+
def test_update_homebrew_without_any_changes
outside_prefix do
updater = RefreshBrewMock.new
- updater.in_prefix_expect(RefreshBrew::INIT_COMMAND)
- updater.in_prefix_expect(RefreshBrew::UPDATE_COMMAND, "Already up-to-date.\n")
+ updater.git_repo = true
+ updater.in_prefix_expect("git checkout -q master")
+ updater.in_prefix_expect("git rev-parse HEAD", "1234abcd")
+ updater.in_prefix_expect("git pull #{RefreshBrewMock::REPOSITORY_URL} master")
+ updater.in_prefix_expect("git rev-parse HEAD", "3456cdef")
+ updater.in_prefix_expect("git diff-tree -r --name-status -z 1234abcd 3456cdef", "")
assert_equal false, updater.update_from_masterbrew!
assert updater.expectations_met?
@@ -70,9 +97,14 @@ class UpdaterTests < Test::Unit::TestCase
def test_update_homebrew_without_formulae_changes
outside_prefix do
updater = RefreshBrewMock.new
- updater.in_prefix_expect(RefreshBrew::INIT_COMMAND)
- output = fixture('update_git_pull_output_without_formulae_changes')
- updater.in_prefix_expect(RefreshBrew::UPDATE_COMMAND, output)
+ updater.git_repo = true
+ diff_output = fixture('update_git_diff_output_without_formulae_changes')
+
+ updater.in_prefix_expect("git checkout -q master")
+ updater.in_prefix_expect("git rev-parse HEAD", "1234abcd")
+ updater.in_prefix_expect("git pull #{RefreshBrewMock::REPOSITORY_URL} master")
+ updater.in_prefix_expect("git rev-parse HEAD", "3456cdef")
+ updater.in_prefix_expect("git diff-tree -r --name-status -z 1234abcd 3456cdef", diff_output.gsub(/\s+/, "\0"))
assert_equal true, updater.update_from_masterbrew!
assert !updater.pending_formulae_changes?
@@ -84,9 +116,14 @@ class UpdaterTests < Test::Unit::TestCase
def test_update_homebrew_with_formulae_changes
outside_prefix do
updater = RefreshBrewMock.new
- updater.in_prefix_expect(RefreshBrew::INIT_COMMAND)
- output = fixture('update_git_pull_output_with_formulae_changes')
- updater.in_prefix_expect(RefreshBrew::UPDATE_COMMAND, output)
+ updater.git_repo = true
+ diff_output = fixture('update_git_diff_output_with_formulae_changes')
+
+ updater.in_prefix_expect("git checkout -q master")
+ updater.in_prefix_expect("git rev-parse HEAD", "1234abcd")
+ updater.in_prefix_expect("git pull #{RefreshBrewMock::REPOSITORY_URL} master")
+ updater.in_prefix_expect("git rev-parse HEAD", "3456cdef")
+ updater.in_prefix_expect("git diff-tree -r --name-status -z 1234abcd 3456cdef", diff_output.gsub(/\s+/, "\0"))
assert_equal true, updater.update_from_masterbrew!
assert updater.pending_formulae_changes?
@@ -94,12 +131,4 @@ class UpdaterTests < Test::Unit::TestCase
assert_equal %w{ antiword bash-completion ddrescue dict lua }, updater.added_formulae
end
end
-
- def test_updater_returns_current_revision
- outside_prefix do
- updater = RefreshBrewMock.new
- updater.in_prefix_expect(RefreshBrew::REVISION_COMMAND, 'the-revision-hash')
- assert_equal 'the-revision-hash', updater.current_revision
- end
- end
end