diff options
author | Carl Lerche <carllerche@mac.com> | 2009-08-29 00:05:27 -0500 |
---|---|---|
committer | Carl Lerche <carllerche@mac.com> | 2009-08-29 00:05:27 -0500 |
commit | 0f2a43b1bd9ae56441423791ba402647e4e77aae (patch) | |
tree | ef74d2649a0189b8ea8d06ddcc72942d9b11f0f2 /spec | |
parent | 03fb3e58b830ea14546a8631cc4a9951441d3920 (diff) | |
download | bundler-0f2a43b1bd9ae56441423791ba402647e4e77aae.tar.gz |
Adding basic git fetching support
Diffstat (limited to 'spec')
-rw-r--r-- | spec/bundler/git_spec.rb | 36 | ||||
-rw-r--r-- | spec/support/helpers.rb | 13 |
2 files changed, 49 insertions, 0 deletions
diff --git a/spec/bundler/git_spec.rb b/spec/bundler/git_spec.rb new file mode 100644 index 0000000000..14b6ba1fb4 --- /dev/null +++ b/spec/bundler/git_spec.rb @@ -0,0 +1,36 @@ +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +describe "Getting gems from git" do + + before(:each) do + path = build_git_repo :very_simple, :with => fixture_dir.join("very-simple") + install_manifest <<-Gemfile + clear_sources + source "file://#{gem_repo1}" + gem "very-simple", "1.0", :git => "#{path}" + Gemfile + end + + it "does not download the gem" do + tmp_gem_path.should_not include_cached_gem("very-simple-1.0") + tmp_gem_path.should_not include_installed_gem("very-simple-1.0") + end + + it "clones the git repository" do + tmp_gem_path("dirs", "dirs", "very-simple").should be_directory + end + + it "has very-simple in the load path" do + out = run_in_context "require 'very-simple' ; puts VerySimpleForTests" + out.should == "VerySimpleForTests" + end + + it "removes the directory during cleanup" do + install_manifest <<-Gemfile + clear_sources + source "file://#{gem_repo1}" + Gemfile + + tmp_gem_path("dirs", "very-simple").should_not be_directory + end +end
\ No newline at end of file diff --git a/spec/support/helpers.rb b/spec/support/helpers.rb index 86ffb13cec..469b1beb7a 100644 --- a/spec/support/helpers.rb +++ b/spec/support/helpers.rb @@ -43,6 +43,19 @@ module Spec m end + def build_git_repo(name, options = {}) + with = options[:with] or raise "Omg, need to specify :with" + path = tmp_path.join("git", name.to_s) + path.parent.mkdir_p + with.cp_r(path) + Dir.chdir(path) do + `git init` + `git add *` + `git commit -m "OMG GITZ"` + end + path + end + def reset! tmp_path.rmtree if tmp_path.exist? tmp_path.mkdir |