summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorAndre Arko <andre@arko.net>2015-01-24 12:49:56 -0800
committerAndre Arko <andre@arko.net>2015-01-25 23:30:30 -0800
commita1f1cc6bef69d96b6998f128a84a633595cffa15 (patch)
treebcca97c523023cb2a1599c709280414324bde156 /spec
parent4dc8cf6c778d7aed0c020f1564cf93827e3b0403 (diff)
downloadbundler-a1f1cc6bef69d96b6998f128a84a633595cffa15.tar.gz
Revert "svn source support"
We're pulling out svn source support into a plugin. While we work on that, you can use the 1.8.0.svn release, but subversion sources aren't an official part of Bundler itself. This reverts commit 049d281d0fdcc29297a21c6a66cd7efc38690675. This reverts commit 22fecdd07fdf02edb1a8824fb73dd7e015507644. This reverts commit 38f195e11f37ce5139af4ff3384eb2f26c2edb19. This reverts commit 500436a33de0b884525dbf82cfc69332fc96f8b9. This reverts commit 2c356be90a23921058cd14fd0e4a366da195021a.
Diffstat (limited to 'spec')
-rw-r--r--spec/bundler/source_list_spec.rb79
-rw-r--r--spec/cache/gems_spec.rb32
-rw-r--r--spec/cache/svn_spec.rb82
-rw-r--r--spec/commands/binstubs_spec.rb15
-rw-r--r--spec/commands/clean_spec.rb36
-rw-r--r--spec/commands/exec_spec.rb46
-rw-r--r--spec/commands/show_spec.rb16
-rw-r--r--spec/install/deploy_spec.rb12
-rw-r--r--spec/install/gemfile/svn_spec.rb582
-rw-r--r--spec/lock/lockfile_spec.rb28
-rw-r--r--spec/lock/svn_spec.rb35
-rw-r--r--spec/support/builders.rb67
-rw-r--r--spec/update/svn_spec.rb100
13 files changed, 0 insertions, 1130 deletions
diff --git a/spec/bundler/source_list_spec.rb b/spec/bundler/source_list_spec.rb
index 7c422d3dae..f5a8575ae8 100644
--- a/spec/bundler/source_list_spec.rb
+++ b/spec/bundler/source_list_spec.rb
@@ -62,29 +62,6 @@ describe Bundler::SourceList do
end
end
- describe "#add_svn_source" do
- before do
- @duplicate = source_list.add_svn_source('uri' => 'svn://host/path')
- @new_source = source_list.add_svn_source('uri' => 'svn://host/path')
- end
-
- it "returns the new svn source" do
- expect(@new_source).to be_instance_of(Bundler::Source::SVN)
- end
-
- it "passes the provided options to the new source" do
- expect(@new_source.options).to eq('uri' => 'svn://host/path')
- end
-
- it "adds the source to the beginning of svn_sources" do
- expect(source_list.svn_sources.first).to equal(@new_source)
- end
-
- it "removes existing duplicates" do
- expect(source_list.svn_sources).not_to include equal(@duplicate)
- end
- end
-
describe "#add_rubygems_source" do
before do
@duplicate = source_list.add_rubygems_source('remotes' => ['https://rubygems.org/'])
@@ -140,23 +117,7 @@ describe Bundler::SourceList do
expect(source_list.all_sources).to include rubygems_aggregate
end
- it "returns path sources before git sources before svn sources before rubygems sources before the aggregate" do
- source_list.add_git_source('uri' => 'git://host/path.git')
- source_list.add_rubygems_source('remotes' => ['https://rubygems.org'])
- source_list.add_path_source('path' => '/path/to/gem')
- source_list.add_svn_source('uri' => 'svn://host/path')
-
- expect(source_list.all_sources).to eq [
- Bundler::Source::Path.new('path' => '/path/to/gem'),
- Bundler::Source::Git.new('uri' => 'git://host/path.git'),
- Bundler::Source::SVN.new('uri' => 'svn://host/path'),
- Bundler::Source::Rubygems.new('remotes' => ['https://rubygems.org']),
- rubygems_aggregate,
- ]
- end
-
it "returns sources of the same type in the reverse order that they were added" do
- source_list.add_svn_source('uri' => 'svn://second-svn.org/path')
source_list.add_git_source('uri' => 'git://third-git.org/path.git')
source_list.add_rubygems_source('remotes' => ['https://fifth-rubygems.org'])
source_list.add_path_source('path' => '/third/path/to/gem')
@@ -168,7 +129,6 @@ describe Bundler::SourceList do
source_list.add_path_source('path' => '/first/path/to/gem')
source_list.add_rubygems_source('remotes' => ['https://first-rubygems.org'])
source_list.add_git_source('uri' => 'git://first-git.org/path.git')
- source_list.add_svn_source('uri' => 'svn://first-svn.org/path')
expect(source_list.all_sources).to eq [
Bundler::Source::Path.new('path' => '/first/path/to/gem'),
@@ -177,8 +137,6 @@ describe Bundler::SourceList do
Bundler::Source::Git.new('uri' => 'git://first-git.org/path.git'),
Bundler::Source::Git.new('uri' => 'git://second-git.org/path.git'),
Bundler::Source::Git.new('uri' => 'git://third-git.org/path.git'),
- Bundler::Source::SVN.new('uri' => 'svn://first-svn.org/path'),
- Bundler::Source::SVN.new('uri' => 'svn://second-svn.org/path'),
Bundler::Source::Rubygems.new('remotes' => ['https://first-rubygems.org']),
Bundler::Source::Rubygems.new('remotes' => ['https://second-rubygems.org']),
Bundler::Source::Rubygems.new('remotes' => ['https://third-rubygems.org']),
@@ -246,35 +204,6 @@ describe Bundler::SourceList do
end
end
- describe "#svn_sources" do
- it "returns an empty array when no svn sources have been added" do
- source_list.add_rubygems_remote('https://rubygems.org')
- source_list.add_path_source('path' => '/path/to/gem')
-
- expect(source_list.svn_sources).to be_empty
- end
-
- it "returns svn sources in the reverse order that they were added" do
- source_list.add_svn_source('uri' => 'svn://third-svn.org/path')
- source_list.add_rubygems_remote('https://fifth-rubygems.org')
- source_list.add_path_source('path' => '/third/path/to/gem')
- source_list.add_rubygems_remote('https://fourth-rubygems.org')
- source_list.add_path_source('path' => '/second/path/to/gem')
- source_list.add_rubygems_remote('https://third-rubygems.org')
- source_list.add_svn_source('uri' => 'svn://second-svn.org/path')
- source_list.add_rubygems_remote('https://second-rubygems.org')
- source_list.add_path_source('path' => '/first/path/to/gem')
- source_list.add_rubygems_remote('https://first-rubygems.org')
- source_list.add_svn_source('uri' => 'svn://first-svn.org/path')
-
- expect(source_list.svn_sources).to eq [
- Bundler::Source::SVN.new('uri' => 'svn://first-svn.org/path'),
- Bundler::Source::SVN.new('uri' => 'svn://second-svn.org/path'),
- Bundler::Source::SVN.new('uri' => 'svn://third-svn.org/path'),
- ]
- end
- end
-
describe "#rubygems_sources" do
it "includes the aggregate rubygems source when rubygems sources have been added" do
source_list.add_git_source('uri' => 'git://host/path.git')
@@ -336,7 +265,6 @@ describe Bundler::SourceList do
describe "#lock_sources" do
it "combines the rubygems sources into a single instance, removing duplicate remotes from the end" do
- source_list.add_svn_source('uri' => 'svn://second-svn.org/path')
source_list.add_git_source('uri' => 'git://third-git.org/path.git')
source_list.add_rubygems_source('remotes' => ['https://duplicate-rubygems.org'])
source_list.add_path_source('path' => '/third/path/to/gem')
@@ -348,7 +276,6 @@ describe Bundler::SourceList do
source_list.add_path_source('path' => '/first/path/to/gem')
source_list.add_rubygems_source('remotes' => ['https://duplicate-rubygems.org'])
source_list.add_git_source('uri' => 'git://first-git.org/path.git')
- source_list.add_svn_source('uri' => 'svn://first-svn.org/path')
expect(source_list.lock_sources).to eq [
Bundler::Source::Git.new('uri' => 'git://first-git.org/path.git'),
@@ -357,8 +284,6 @@ describe Bundler::SourceList do
Bundler::Source::Path.new('path' => '/first/path/to/gem'),
Bundler::Source::Path.new('path' => '/second/path/to/gem'),
Bundler::Source::Path.new('path' => '/third/path/to/gem'),
- Bundler::Source::SVN.new('uri' => 'svn://first-svn.org/path'),
- Bundler::Source::SVN.new('uri' => 'svn://second-svn.org/path'),
Bundler::Source::Rubygems.new('remotes' => [
'https://duplicate-rubygems.org',
'https://first-rubygems.org',
@@ -397,13 +322,11 @@ describe Bundler::SourceList do
describe "#cached!" do
let(:rubygems_source) { source_list.add_rubygems_remote('https://rubygems.org') }
let(:git_source) { source_list.add_git_source('uri' => 'git://host/path.git') }
- let(:svn_source) { source_list.add_svn_source('uri' => 'svn://host/path') }
let(:path_source) { source_list.add_path_source('path' => '/path/to/gem') }
it "calls #cached! on all the sources" do
expect(rubygems_source).to receive(:cached!)
expect(git_source).to receive(:cached!)
- expect(svn_source).to receive(:cached!)
expect(path_source).to receive(:cached!)
source_list.cached!
end
@@ -412,13 +335,11 @@ describe Bundler::SourceList do
describe "#remote!" do
let(:rubygems_source) { source_list.add_rubygems_remote('https://rubygems.org') }
let(:git_source) { source_list.add_git_source('uri' => 'git://host/path.git') }
- let(:svn_source) { source_list.add_git_source('uri' => 'svn://host/path') }
let(:path_source) { source_list.add_path_source('path' => '/path/to/gem') }
it "calls #remote! on all the sources" do
expect(rubygems_source).to receive(:remote!)
expect(git_source).to receive(:remote!)
- expect(svn_source).to receive(:remote!)
expect(path_source).to receive(:remote!)
source_list.remote!
end
diff --git a/spec/cache/gems_spec.rb b/spec/cache/gems_spec.rb
index 9386164c6f..b70f62743a 100644
--- a/spec/cache/gems_spec.rb
+++ b/spec/cache/gems_spec.rb
@@ -151,38 +151,6 @@ describe "bundle cache" do
end
end
- describe "when there are also svn sources" do
- before do
- build_svn "foo"
- system_gems "rack-1.0.0"
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- svn "file://#{lib_path("foo-1.0")}" do
- gem 'foo'
- end
- gem 'rack'
- G
- end
-
- it "still works" do
- bundle :cache
-
- system_gems []
- bundle "install --local"
-
- should_be_installed("rack 1.0.0", "foo 1.0")
- end
-
- it "should not explode if the lockfile is not present" do
- FileUtils.rm(bundled_app("Gemfile.lock"))
-
- bundle :cache
-
- expect(bundled_app("Gemfile.lock")).to exist
- end
- end
-
describe "when previously cached" do
before :each do
build_repo2
diff --git a/spec/cache/svn_spec.rb b/spec/cache/svn_spec.rb
deleted file mode 100644
index e798e0e9a2..0000000000
--- a/spec/cache/svn_spec.rb
+++ /dev/null
@@ -1,82 +0,0 @@
-require "spec_helper"
-
-%w(cache package).each do |cmd|
- describe "bundle #{cmd} with svn" do
- it "copies repository to vendor cache and uses it" do
- svn = build_svn "foo"
- ref = svn.ref_for("HEAD")
-
- install_gemfile <<-G
- gem "foo", :svn => 'file://#{lib_path("foo-1.0")}'
- G
-
- bundle "#{cmd} --all"
- expect(bundled_app("vendor/cache/foo-1.0-#{ref}")).to exist
- expect(bundled_app("vendor/cache/foo-1.0-#{ref}/.svn")).to exist
-
- FileUtils.rm_rf lib_path("foo-1.0")
- should_be_installed "foo 1.0"
- end
-
- it "copies repository to vendor cache and uses it even when installed with bundle --path" do
- svn = build_svn "foo"
- ref = svn.ref_for("HEAD")
-
- install_gemfile <<-G
- gem "foo", :svn => 'file://#{lib_path("foo-1.0")}'
- G
-
- bundle "install --path vendor/bundle"
- bundle "#{cmd} --all"
-
- expect(bundled_app("vendor/cache/foo-1.0-#{ref}")).to exist
- expect(bundled_app("vendor/cache/foo-1.0-#{ref}/.svn")).to exist
-
- FileUtils.rm_rf lib_path("foo-1.0")
- should_be_installed "foo 1.0"
- end
-
- it "runs twice without exploding" do
- build_svn "foo"
-
- install_gemfile <<-G
- gem "foo", :svn => 'file://#{lib_path("foo-1.0")}'
- G
-
- bundle "#{cmd} --all"
- bundle "#{cmd} --all"
-
- expect(err).to eq("")
- FileUtils.rm_rf lib_path("foo-1.0")
- should_be_installed "foo 1.0"
- end
-
- it "tracks updates" do
- svn = build_svn "foo"
- old_ref = svn.ref_for("HEAD")
-
- install_gemfile <<-G
- gem "foo", :svn => 'file://#{lib_path("foo-1.0")}'
- G
-
- bundle "#{cmd} --all"
-
- update_svn "foo" do |s|
- s.write "lib/foo.rb", "puts :CACHE"
- end
-
- ref = svn.ref_for("HEAD")
- expect(ref).not_to eq(old_ref)
-
- bundle "update"
- bundle "#{cmd} --all"
-
- expect(bundled_app("vendor/cache/foo-1.0-#{ref}")).to exist
-
- FileUtils.rm_rf lib_path("foo-1.0")
- run "require 'foo'"
- expect(out).to eq("CACHE")
- end
-
- end
-end
diff --git a/spec/commands/binstubs_spec.rb b/spec/commands/binstubs_spec.rb
index 947b0beea3..284913a354 100644
--- a/spec/commands/binstubs_spec.rb
+++ b/spec/commands/binstubs_spec.rb
@@ -61,21 +61,6 @@ describe "bundle binstubs <gem>" do
expect(out).to eq("Sorry, Bundler can only be run via Rubygems.")
end
- it "installs binstubs from svn gems" do
- FileUtils.mkdir_p(lib_path("foo/bin"))
- FileUtils.touch(lib_path("foo/bin/foo"))
- build_svn "foo", "1.0", :path => lib_path("foo") do |s|
- s.executables = %w(foo)
- end
- install_gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('foo')}"
- G
-
- bundle "binstubs foo"
-
- expect(bundled_app("bin/foo")).to exist
- end
-
it "installs binstubs from git gems" do
FileUtils.mkdir_p(lib_path("foo/bin"))
FileUtils.touch(lib_path("foo/bin/foo"))
diff --git a/spec/commands/clean_spec.rb b/spec/commands/clean_spec.rb
index a9f65745d4..529c245912 100644
--- a/spec/commands/clean_spec.rb
+++ b/spec/commands/clean_spec.rb
@@ -145,42 +145,6 @@ describe "bundle clean" do
expect(vendored_gems("cache/bundler/git/foo-1.0-#{digest}")).to exist
end
- it "removes unused svn gems" do
- build_svn "foo", :path => lib_path("foo")
- svn_path = lib_path('foo')
- revision = 1
-
- gemfile <<-G
- source "file://#{gem_repo1}"
-
- gem "rack", "1.0.0"
- svn "file://#{svn_path}", :ref => "#{revision}" do
- gem "foo"
- end
- G
-
- bundle "install --path vendor/bundle"
-
- gemfile <<-G
- source "file://#{gem_repo1}"
-
- gem "rack", "1.0.0"
- G
- bundle "install"
-
- bundle :clean
-
- expect(out).to eq("Removing foo (#{revision})")
-
- expect(vendored_gems("gems/rack-1.0.0")).to exist
- expect(vendored_gems("bundler/gems/foo-#{revision}")).not_to exist
- expect(vendored_gems("cache/bundler/svn/foo-#{revision}")).not_to exist
-
- expect(vendored_gems("specifications/rack-1.0.0.gemspec")).to exist
-
- expect(vendored_gems("bin/rackup")).to exist
- end
-
it "removes unused git gems" do
build_git "foo", :path => lib_path("foo")
git_path = lib_path('foo')
diff --git a/spec/commands/exec_spec.rb b/spec/commands/exec_spec.rb
index d6e1349441..835b0795f0 100644
--- a/spec/commands/exec_spec.rb
+++ b/spec/commands/exec_spec.rb
@@ -307,52 +307,6 @@ describe "bundle exec" do
end
end
- describe "from gems bundled via :svn" do
- before(:each) do
- build_svn "fizz_svn" do |s|
- s.executables = "fizz_svn"
- end
-
- install_gemfile <<-G
- gem "fizz_svn", :svn => "file://#{lib_path('fizz_svn-1.0')}"
- G
- end
-
- it "works when unlocked" do
- bundle "exec fizz_svn"
- expect(out).to eq("1.0")
- end
-
- it "works when locked" do
- should_be_locked
- bundle "exec fizz_svn"
- expect(out).to eq("1.0")
- end
- end
-
- describe "from gems bundled via :svn with no gemspec" do
- before(:each) do
- build_svn "fizz_no_gemspec", :gemspec => false do |s|
- s.executables = "fizz_no_gemspec"
- end
-
- install_gemfile <<-G
- gem "fizz_no_gemspec", "1.0", :svn => "file://#{lib_path('fizz_no_gemspec-1.0')}"
- G
- end
-
- it "works when unlocked" do
- bundle "exec fizz_no_gemspec"
- expect(out).to eq("1.0")
- end
-
- it "works when locked" do
- should_be_locked
- bundle "exec fizz_no_gemspec"
- expect(out).to eq("1.0")
- end
- end
-
it "performs an automatic bundle install" do
gemfile <<-G
source "file://#{gem_repo1}"
diff --git a/spec/commands/show_spec.rb b/spec/commands/show_spec.rb
index 3959e53f92..18105541c7 100644
--- a/spec/commands/show_spec.rb
+++ b/spec/commands/show_spec.rb
@@ -111,22 +111,6 @@ describe "bundle show" do
end
end
- context "with a svn repo in the Gemfile" do
- before :each do
- @svn = build_svn "foo", "1.0"
- end
-
- it "prints out svn info" do
- install_gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}"
- G
- should_be_installed "foo 1.0"
-
- bundle :show
- expect(out).to include("foo (1.0 1")
- end
- end
-
context "in a fresh gem in a blank git repo" do
before :each do
build_git "foo", :path => lib_path("foo")
diff --git a/spec/install/deploy_spec.rb b/spec/install/deploy_spec.rb
index 5f5420ee98..26d8abe295 100644
--- a/spec/install/deploy_spec.rb
+++ b/spec/install/deploy_spec.rb
@@ -46,18 +46,6 @@ describe "install with --deployment or --frozen" do
expect(exitstatus).to eq(0) if exitstatus
end
- it "works if you exclude a group with a svn gem" do
- build_svn "foo"
- gemfile <<-G
- group :test do
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}"
- end
- G
- bundle :install
- bundle "install --deployment --without test"
- expect(exitstatus).to eq(0) if exitstatus
- end
-
it "works when you bundle exec bundle" do
bundle :install
bundle "install --deployment"
diff --git a/spec/install/gemfile/svn_spec.rb b/spec/install/gemfile/svn_spec.rb
deleted file mode 100644
index bfd3a378b4..0000000000
--- a/spec/install/gemfile/svn_spec.rb
+++ /dev/null
@@ -1,582 +0,0 @@
-require "spec_helper"
-
-describe "bundle install with svn sources" do
- describe "when floating on master" do
- before :each do
- build_svn "foo" do |s|
- s.executables = "foobar"
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- svn "file://#{lib_path('foo-1.0')}" do
- gem 'foo'
- end
- G
- end
-
- it "sets up svn gem executables on the path" do
- pending_jruby_shebang_fix
- bundle "exec foobar"
- expect(out).to eq("1.0")
- end
-
- it "complains if pinned specs don't exist in the svn repo" do
- build_svn "foo"
-
- install_gemfile <<-G
- gem "foo", "1.1", :svn => "file://#{lib_path('foo-1.0')}"
- G
-
- expect(out).to include("Source contains 'foo' at: 1.0")
- end
-
- it "still works after moving the application directory" do
- bundle "install --path vendor/bundle"
- FileUtils.mv bundled_app, tmp('bundled_app.bck')
-
- Dir.chdir tmp('bundled_app.bck')
- should_be_installed "foo 1.0"
- end
-
- it "can still install after moving the application directory" do
- bundle "install --path vendor/bundle"
- FileUtils.mv bundled_app, tmp('bundled_app.bck')
-
- update_svn "foo", "1.1", :path => lib_path("foo-1.0")
-
- Dir.chdir tmp('bundled_app.bck')
- gemfile tmp('bundled_app.bck/Gemfile'), <<-G
- source "file://#{gem_repo1}"
- svn "file://#{lib_path('foo-1.0')}" do
- gem 'foo'
- end
-
- gem "rack", "1.0"
- G
-
- bundle "update foo"
-
- should_be_installed "foo 1.1", "rack 1.0"
- end
-
- end
-
- describe "with an empty svn block" do
- before do
- build_svn "foo"
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack"
-
- svn "file://#{lib_path("foo-1.0")}" do
- # this page left intentionally blank
- end
- G
- end
-
- it "does not explode" do
- bundle "install"
- should_be_installed "rack 1.0"
- end
- end
-
- describe "when specifying a revision" do
- before(:each) do
- build_svn "foo"
- @revision = 1
- update_svn "foo" do |s|
- s.write "lib/foo.rb", "puts :CACHE"
- end
- end
-
- it "works" do
- install_gemfile <<-G
- svn "file://#{lib_path('foo-1.0')}", :ref => "#{@revision}" do
- gem "foo"
- end
- G
-
- run <<-RUBY
- require 'foo'
- RUBY
-
- expect(out).not_to eq("CACHE")
- end
- end
-
- describe "when specifying local override" do
- it "uses the local repository instead of checking a new one out" do
- # We don't generate it because we actually don't need it
- # build_svn "rack", "0.8"
-
- build_svn "rack", "0.8", :path => lib_path('local-rack') do |s|
- s.write "lib/rack.rb", "puts :LOCAL"
- end
-
- gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :svn => "file://#{lib_path('rack-0.8')}"
- G
-
- bundle %|config local.rack #{File.join(lib_path('local-rack'), '.checkout')}|
- bundle :install
- expect(out).to match(/at #{File.join(lib_path('local-rack'), '.checkout')}/)
-
- run "require 'rack'"
- expect(out).to eq("LOCAL")
- end
-
- it "chooses the local repository on runtime" do
- build_svn "rack", "0.8"
-
- FileUtils.cp_r("#{lib_path('rack-0.8')}/.", lib_path('local-rack'))
-
- update_svn "rack", "0.8", :path => lib_path('local-rack') do |s|
- s.write "lib/rack.rb", "puts :LOCAL"
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :svn => "file://#{lib_path('rack-0.8')}"
- G
-
- bundle %|config local.rack #{File.join(lib_path('local-rack'), '.checkout')}|
- run "require 'rack'"
- expect(out).to eq("LOCAL")
- end
-
- it "updates specs on runtime" do
- system_gems "nokogiri-1.4.2"
-
- build_svn "rack", "0.8"
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :svn => "file://#{lib_path('rack-0.8')}"
- G
-
- lockfile0 = File.read(bundled_app("Gemfile.lock"))
-
- FileUtils.cp_r("#{lib_path('rack-0.8')}/.", lib_path('local-rack'))
- update_svn "rack", "0.8", :path => lib_path('local-rack') do |s|
- s.add_dependency "nokogiri", "1.4.2"
- end
-
- bundle %|config local.rack #{File.join(lib_path('local-rack'), '.checkout')}|
- run "require 'rack'"
-
- lockfile1 = File.read(bundled_app("Gemfile.lock"))
- expect(lockfile1).not_to eq(lockfile0)
- end
-
- it "updates ref on install" do
- build_svn "rack", "0.8"
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :svn => "file://#{lib_path('rack-0.8')}"
- G
-
- lockfile0 = File.read(bundled_app("Gemfile.lock"))
-
- FileUtils.cp_r("#{lib_path('rack-0.8')}/.", lib_path('local-rack'))
- update_svn "rack", "0.8", :path => lib_path('local-rack')
-
- bundle %|config local.rack #{File.join(lib_path('local-rack'), '.checkout')}|
- bundle :install
-
- lockfile1 = File.read(bundled_app("Gemfile.lock"))
- expect(lockfile1).not_to eq(lockfile0)
- end
-
- it "explodes if given path does not exist on install" do
- build_svn "rack", "0.8"
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :svn => "file://#{lib_path('rack-0.8')}"
- G
-
- bundle %|config local.rack #{File.join(lib_path('local-rack'), '.checkout')}|
- bundle :install
- expect(out).to match(/Cannot use local override for rack-0.8 because #{Regexp.escape(File.join(lib_path('local-rack'), '.checkout').to_s)} does not exist/)
- end
- end
-
- describe "specified inline" do
- it "installs from svn even if a newer gem is available elsewhere" do
- build_svn "rack", "0.8"
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :svn => "file://#{lib_path('rack-0.8')}"
- G
-
- should_be_installed "rack 0.8"
- end
-
- it "installs dependencies from svn even if a newer gem is available elsewhere" do
- system_gems "rack-1.0.0"
-
- build_lib "rack", "1.0", :path => lib_path('nested/bar') do |s|
- s.write "lib/rack.rb", "puts 'WIN OVERRIDE'"
- end
-
- build_svn "foo", :path => lib_path('nested') do |s|
- s.add_dependency "rack", "= 1.0"
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "foo", :svn => "file://#{lib_path('nested')}"
- G
-
- run "require 'rack'"
- expect(out).to eq('WIN OVERRIDE')
- end
-
- it "correctly unlocks when changing to a svn source" do
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", "0.9.1"
- G
-
- build_svn "rack", :path => lib_path("rack")
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", "1.0.0", :svn => "file://#{lib_path('rack')}"
- G
-
- should_be_installed "rack 1.0.0"
- end
-
- it "correctly unlocks when changing to a svn source without versions" do
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack"
- G
-
- build_svn "rack", "1.2", :path => lib_path("rack")
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :svn => "file://#{lib_path('rack')}"
- G
-
- should_be_installed "rack 1.2"
- end
- end
-
- describe "block syntax" do
- it "pulls all gems from a svn block" do
- build_lib "omg", :path => lib_path('hi2u/omg')
- build_lib "hi2u", :path => lib_path('hi2u')
-
- install_gemfile <<-G
- path "#{lib_path('hi2u')}" do
- gem "omg"
- gem "hi2u"
- end
- G
-
- should_be_installed "omg 1.0", "hi2u 1.0"
- end
- end
-
- it "uses a ref if specified" do
- build_svn "foo"
- @revision = 1
- update_svn "foo" do |s|
- s.write "lib/foo.rb", "puts :CACHE"
- end
-
- install_gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}", :ref => "#{@revision}"
- G
-
- run <<-RUBY
- require 'foo'
- RUBY
-
- expect(out).not_to eq("CACHE")
- end
-
- it "correctly handles cases with invalid gemspecs" do
- build_svn "foo" do |s|
- s.summary = nil
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}"
- gem "rails", "2.3.2"
- G
-
- should_be_installed "foo 1.0"
- should_be_installed "rails 2.3.2"
- end
-
- it "runs the gemspec in the context of its parent directory" do
- build_lib "bar", :path => lib_path("foo/bar"), :gemspec => false do |s|
- s.write lib_path("foo/bar/lib/version.rb"), %{BAR_VERSION = '1.0'}
- s.write "bar.gemspec", <<-G
- $:.unshift Dir.pwd # For 1.9
- require 'lib/version'
- Gem::Specification.new do |s|
- s.name = 'bar'
- s.version = BAR_VERSION
- s.summary = 'Bar'
- s.files = Dir["lib/**/*.rb"]
- end
- G
- end
-
- build_svn "foo", :path => lib_path("foo") do |s|
- s.write "bin/foo", ""
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "bar", :svn => "file://#{lib_path("foo")}"
- gem "rails", "2.3.2"
- G
-
- should_be_installed "bar 1.0"
- should_be_installed "rails 2.3.2"
- end
-
- it "installs from svn even if a rubygems gem is present" do
- build_gem "foo", "1.0", :path => lib_path('fake_foo'), :to_system => true do |s|
- s.write "lib/foo.rb", "raise 'FAIL'"
- end
-
- build_svn "foo", "1.0"
-
- install_gemfile <<-G
- gem "foo", "1.0", :svn => "file://#{lib_path('foo-1.0')}"
- G
-
- should_be_installed "foo 1.0"
- end
-
- it "fakes the gem out if there is no gemspec" do
- build_svn "foo", :gemspec => false
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "foo", "1.0", :svn => "file://#{lib_path('foo-1.0')}"
- gem "rails", "2.3.2"
- G
-
- should_be_installed("foo 1.0")
- should_be_installed("rails 2.3.2")
- end
-
- it "catches svn errors and spits out useful output" do
- gemfile <<-G
- gem "foo", "1.0", :svn => "omgomg"
- G
-
- bundle :install, :expect_err => true
-
- expect(out).to include("SVN error:")
- expect(err).to include("omgomg")
- end
-
- it "doesn't blow up if bundle install is run twice in a row" do
- build_svn "foo"
-
- gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}"
- G
-
- bundle "install"
- bundle "install"
- expect(exitstatus).to eq(0) if exitstatus
- end
-
- it "does not duplicate svn gem sources" do
- build_lib "foo", :path => lib_path('nested/foo')
- build_lib "bar", :path => lib_path('nested/bar')
-
- build_svn "foo", :path => lib_path('nested')
- build_svn "bar", :path => lib_path('nested')
-
- gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('nested')}"
- gem "bar", :svn => "file://#{lib_path('nested')}"
- G
-
- bundle "install"
- expect(File.read(bundled_app("Gemfile.lock")).scan('SVN').size).to eq(1)
- end
-
- describe "bundle install after the remote has been updated" do
- it "installs" do
- build_svn "valim"
-
- install_gemfile <<-G
- gem "valim", :svn => "file://#{lib_path("valim-1.0")}"
- G
-
- old_revision = "1"
- update_svn "valim" do |s|
- s.write "lib/valim.rb", "puts #{old_revision}"
- end
- new_revision = "2"
-
- lockfile = File.read(bundled_app("Gemfile.lock"))
- File.open(bundled_app("Gemfile.lock"), "w") do |file|
- file.puts lockfile.gsub(/revision: #{old_revision}/, "revision: #{new_revision}")
- end
-
- bundle "install"
-
- run <<-R
- require "valim"
- R
-
- expect(out).to eq(old_revision)
- end
- end
-
- describe "bundle install --deployment with svn sources" do
- it "works" do
- build_svn "valim", :path => lib_path('valim')
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "valim", "= 1.0", :svn => "file://#{lib_path('valim')}"
- G
-
- simulate_new_machine
-
- bundle "install --deployment"
- expect(exitstatus).to eq(0) if exitstatus
- end
- end
-
- describe "gem install hooks" do
- it "runs pre-install hooks" do
- build_svn "foo"
- gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}"
- G
-
- File.open(lib_path("install_hooks.rb"), "w") do |h|
- h.write <<-H
- require 'rubygems'
- Gem.pre_install_hooks << lambda do |inst|
- STDERR.puts "Ran pre-install hook: \#{inst.spec.full_name}"
- end
- H
- end
-
- bundle :install, :expect_err => true,
- :requires => [lib_path('install_hooks.rb')]
- expect(err).to eq("Ran pre-install hook: foo-1.0")
- end
-
- it "runs post-install hooks" do
- build_svn "foo"
- gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}"
- G
-
- File.open(lib_path("install_hooks.rb"), "w") do |h|
- h.write <<-H
- require 'rubygems'
- Gem.post_install_hooks << lambda do |inst|
- STDERR.puts "Ran post-install hook: \#{inst.spec.full_name}"
- end
- H
- end
-
- bundle :install, :expect_err => true,
- :requires => [lib_path('install_hooks.rb')]
- expect(err).to eq("Ran post-install hook: foo-1.0")
- end
-
- it "complains if the install hook fails" do
- build_svn "foo"
- gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}"
- G
-
- File.open(lib_path("install_hooks.rb"), "w") do |h|
- h.write <<-H
- require 'rubygems'
- Gem.pre_install_hooks << lambda do |inst|
- false
- end
- H
- end
-
- bundle :install, :expect_err => true,
- :requires => [lib_path('install_hooks.rb')]
- expect(out).to include("failed for foo-1.0")
- end
- end
-
- context "with an extension" do
- it "installs the extension" do
- build_svn "foo" do |s|
- s.add_dependency "rake"
- s.extensions << "Rakefile"
- s.write "Rakefile", <<-RUBY
- task :default do
- path = File.expand_path("../lib", __FILE__)
- FileUtils.mkdir_p(path)
- File.open("\#{path}/foo.rb", "w") do |f|
- f.puts "FOO = 'YES'"
- end
- end
- RUBY
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "foo", :svn => "file://#{lib_path('foo-1.0')}"
- G
-
- run <<-R
- require 'foo'
- puts FOO
- R
- expect(out).to eq("YES")
- end
- end
-
- describe "without svn installed" do
- it "prints a better error message" do
- build_svn "foo"
-
- install_gemfile <<-G
- svn "file://#{lib_path('foo-1.0')}" do
- gem 'foo'
- end
- G
-
- bundle "update", :env => {"PATH" => ""}
- expect(out).to include("You need to install svn to be able to use gems from svn repositories. For help installing svn, please refer to SVNook's tutorial at http://svnbook.red-bean.com/en/1.7/svn.intro.install.html")
- end
-
- it "installs a packaged svn gem successfully" do
- build_svn "foo"
-
- install_gemfile <<-G
- svn "file://#{lib_path('foo-1.0')}" do
- gem 'foo'
- end
- G
- bundle "package --all"
- simulate_new_machine
-
- bundle "install", :env => {"PATH" => ""}
- expect(out).to_not include("You need to install svn to be able to use gems from svn repositories.")
- expect(exitstatus).to be_zero if exitstatus
- end
- end
-end
diff --git a/spec/lock/lockfile_spec.rb b/spec/lock/lockfile_spec.rb
index 4546754e85..364b97181a 100644
--- a/spec/lock/lockfile_spec.rb
+++ b/spec/lock/lockfile_spec.rb
@@ -209,34 +209,6 @@ describe "the lockfile format" do
G
end
- it "serializes global svn sources" do
- build_svn "foo"
-
- install_gemfile <<-G
- svn "file://#{lib_path('foo-1.0')}" do
- gem "foo"
- end
- G
-
- lockfile_should_be <<-G
- SVN
- remote: file://#{lib_path('foo-1.0')}
- revision: 1
- ref: HEAD
- specs:
- foo (1.0)
-
- GEM
- specs:
-
- PLATFORMS
- #{generic(Gem::Platform.local)}
-
- DEPENDENCIES
- foo!
- G
- end
-
it "generates a lockfile with a ref for a single pinned source, git gem with a branch requirement" do
git = build_git "foo"
update_git "foo", :branch => "omg"
diff --git a/spec/lock/svn_spec.rb b/spec/lock/svn_spec.rb
deleted file mode 100644
index 8c2db1eb2c..0000000000
--- a/spec/lock/svn_spec.rb
+++ /dev/null
@@ -1,35 +0,0 @@
-require "spec_helper"
-
-describe "bundle lock with svn gems" do
- before :each do
- build_svn "foo"
-
- install_gemfile <<-G
- gem 'foo', :svn => "file://#{lib_path('foo-1.0')}"
- G
- end
-
- it "doesn't break right after running lock" do
- should_be_installed "foo 1.0.0"
- end
-
- it "locks a svn source to the current ref" do
- update_svn "foo" do |s|
- s.write "lib/foo.rb", "puts :CACHE"
- end
- bundle :install
-
- run <<-RUBY
- require 'foo'
- RUBY
-
- expect(out).not_to eq("CACHE")
- end
-
- it "provides correct #full_gem_path" do
- run <<-RUBY
- puts Bundler.rubygems.find_name('foo').first.full_gem_path
- RUBY
- expect(out).to eq(bundle("show foo"))
- end
-end
diff --git a/spec/support/builders.rb b/spec/support/builders.rb
index a8f1afe3c5..896228d161 100644
--- a/spec/support/builders.rb
+++ b/spec/support/builders.rb
@@ -347,17 +347,6 @@ module Spec
GitReader.new lib_path(spec.full_name)
end
- def build_svn(name, *args, &block)
- opts = args.last.is_a?(Hash) ? args.last : {}
- spec = build_with(SVNBuilder, name, args, &block)
- SVNReader.new(opts[:path] || lib_path(spec.full_name))
- end
-
- def update_svn(name, *args, &block)
- spec = build_with(SVNUpdater, name, args, &block)
- SVNReader.new lib_path(spec.full_name)
- end
-
private
def build_with(builder, name, args, &blk)
@@ -610,62 +599,6 @@ module Spec
end
- class SVNBuilder < LibBuilder
- def _build(options)
- path = options[:path] || _default_path
- checkout_path = File.join(path, '.checkout')
- super(options.merge(:path => path))
- Dir.chdir(path) do
- `mkdir .repo_data && find . -maxdepth 1 ! \\( -name ".repo_data" -or -name "." \\) -exec mv {} \\.repo_data/ \\;`
- `svnadmin create .repo`
- `svn import .repo_data file://#{File.join(path, '.repo')} -m 'OMG INITIAL COMMIT'`
- `mv .repo/* .`
- end
-
- `mkdir #{checkout_path}`
- Dir.chdir(checkout_path) do
- `svn checkout file://#{path} .`
- end
- end
- end
-
- class SVNUpdater < LibBuilder
- def _build(options)
- path = options[:path] || _default_path
- checkout_path = File.join(path, '.checkout')
-
- Dir.chdir(checkout_path) do
- current_ref = `svn info --revision HEAD file://#{checkout_path} | grep \"Revision\" | awk '{print $2}'`.strip
- _default_files.keys.each do |prev_ref_path|
- _default_files[prev_ref_path] << "\n#{Builders.constantize(name)}_PREV_REF = '#{current_ref}'"
- end
- super(options.merge(:path => checkout_path, :gemspec => false))
- `svn add --force *`
- `svn commit -m "BUMP"`
- end
- end
- end
-
- class SVNReader
- attr_reader :path
-
- def initialize(path)
- @path = path
- end
-
- def ref_for(ref, len = nil)
- ref = svn("info --revision #{ref} file://#{path} | grep \"Revision\" | awk '{print $2}'").strip
- ref = ref[0..len] if len
- ref
- end
-
- private
-
- def svn(cmd)
- Dir.chdir(@path) { `svn #{cmd}`.strip }
- end
- end
-
class GemBuilder < LibBuilder
def _build(opts)
diff --git a/spec/update/svn_spec.rb b/spec/update/svn_spec.rb
deleted file mode 100644
index 056d798088..0000000000
--- a/spec/update/svn_spec.rb
+++ /dev/null
@@ -1,100 +0,0 @@
-require "spec_helper"
-
-describe "bundle update" do
- describe "svn sources" do
- it "updates correctly when you have like craziness" do
- build_lib "activesupport", "3.0", :path => lib_path("rails/activesupport")
- build_svn "rails", "3.0", :path => lib_path("rails") do |s|
- s.add_dependency "activesupport", "= 3.0"
- end
-
- install_gemfile <<-G
- gem "rails", :svn => "file://#{lib_path('rails')}"
- G
-
- bundle "update rails"
- expect(out).to include("Using activesupport 3.0 from file://#{lib_path('rails')} (at HEAD)")
- should_be_installed "rails 3.0", "activesupport 3.0"
- end
-
- it "floats on master when updating all gems that are pinned to the source even if you have child dependencies" do
- build_svn "foo", :path => lib_path('foo')
- build_gem "bar", :to_system => true do |s|
- s.add_dependency "foo"
- end
-
- install_gemfile <<-G
- gem "foo", :svn => "file://#{lib_path('foo')}"
- gem "bar"
- G
-
- update_svn "foo", :path => lib_path('foo') do |s|
- s.write "lib/foo.rb", "FOO = '1.1'"
- end
-
- bundle "update foo"
-
- should_be_installed "foo 1.1"
- end
-
- it "notices when you change the repo url in the Gemfile" do
- build_svn "foo", :path => lib_path("foo_one")
- build_svn "foo", :path => lib_path("foo_two")
-
- install_gemfile <<-G
- gem "foo", "1.0", :svn => "file://#{lib_path('foo_one')}"
- G
-
- FileUtils.rm_rf lib_path("foo_one")
-
- install_gemfile <<-G
- gem "foo", "1.0", :svn => "file://#{lib_path('foo_two')}"
- G
-
- expect(err).to be_empty
- expect(out).to include("Fetching file://#{lib_path}/foo_two")
- expect(out).to include("Bundle complete!")
- end
-
- it "should not explode on invalid revision on update of gem by name" do
- build_svn "rack", "0.8"
-
- build_svn "rack", "0.8", :path => lib_path('local-rack') do |s|
- s.write "lib/rack.rb", "puts :LOCAL"
- end
-
- install_gemfile <<-G
- source "file://#{gem_repo1}"
- gem "rack", :svn => "file://#{lib_path('rack-0.8')}", :branch => "master"
- G
-
- bundle %|config local.rack #{File.join(lib_path('local-rack'), '.checkout')}|
- bundle "update rack"
- expect(out).to include("Bundle updated!")
- end
-
- it "shows the previous version of the gem" do
- build_svn "rails", "3.0", :path => lib_path("rails")
-
- install_gemfile <<-G
- gem "rails", :svn => "file://#{lib_path('rails')}"
- G
-
- lockfile <<-G
- SVN
- remote: file://#{lib_path("rails")}
- specs:
- rails (2.3.2)
-
- PLATFORMS
- #{generic(Gem::Platform.local)}
-
- DEPENDENCIES
- rails!
- G
-
- bundle "update"
- expect(out).to include("Using rails 3.0 (was 2.3.2) from file://#{lib_path('rails')} (at HEAD)")
- end
- end
-end