summaryrefslogtreecommitdiff
path: root/spec/unit/puppet/provider/vcsrepo/cvs_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/unit/puppet/provider/vcsrepo/cvs_spec.rb')
-rw-r--r--spec/unit/puppet/provider/vcsrepo/cvs_spec.rb86
1 files changed, 55 insertions, 31 deletions
diff --git a/spec/unit/puppet/provider/vcsrepo/cvs_spec.rb b/spec/unit/puppet/provider/vcsrepo/cvs_spec.rb
index aad54cc..2e18149 100644
--- a/spec/unit/puppet/provider/vcsrepo/cvs_spec.rb
+++ b/spec/unit/puppet/provider/vcsrepo/cvs_spec.rb
@@ -1,28 +1,54 @@
require 'spec_helper'
-describe_provider :vcsrepo, :cvs, :resource => {:path => '/tmp/vcsrepo'} do
+describe Puppet::Type.type(:vcsrepo).provider(:cvs_provider) do
+
+ let(:resource) { Puppet::Type.type(:vcsrepo).new({
+ :name => 'test',
+ :ensure => :present,
+ :provider => :cvs,
+ :revision => '2634',
+ :source => 'lp:do',
+ :path => '/tmp/test',
+ })}
+
+ let(:provider) { resource.provider }
+
+ before :each do
+ Puppet::Util.stubs(:which).with('cvs').returns('/usr/bin/cvs')
+ end
describe 'creating' do
- context "with a source", :resource => {:source => ':ext:source@example.com:/foo/bar'} do
- resource_with :revision do
- it "should execute 'cvs checkout' and 'cvs update -r'" do
- provider.expects(:cvs).with('-d', resource.value(:source), 'checkout', '-r', 'an-unimportant-value', '-d', 'vcsrepo', 'bar')
- expects_chdir(File.dirname(resource.value(:path)))
- #provider.expects(:cvs).with('update', '-r', resource.value(:revision), '.')
- provider.create
- end
+ context "with a source" do
+ it "should execute 'cvs checkout'" do
+ resource[:source] = ':ext:source@example.com:/foo/bar'
+ resource[:revision] = 'an-unimportant-value'
+ expects_chdir('/tmp')
+ Puppet::Util::Execution.expects(:execute).with([:cvs, '-d', resource.value(:source), 'checkout', '-r', 'an-unimportant-value', '-d', 'test', 'bar'], :custom_environment => {})
+ provider.create
end
- resource_without :revision do
- it "should just execute 'cvs checkout' without a revision" do
- provider.expects(:cvs).with('-d', resource.value(:source), 'checkout', '-d', File.basename(resource.value(:path)), File.basename(resource.value(:source)))
- provider.create
- end
+ it "should execute 'cvs checkout' as user 'muppet'" do
+ resource[:source] = ':ext:source@example.com:/foo/bar'
+ resource[:revision] = 'an-unimportant-value'
+ resource[:user] = 'muppet'
+ expects_chdir('/tmp')
+ Puppet::Util::Execution.expects(:execute).with([:cvs, '-d', resource.value(:source), 'checkout', '-r', 'an-unimportant-value', '-d', 'test', 'bar'], :uid => 'muppet', :custom_environment => {})
+ provider.create
+ end
+
+ it "should just execute 'cvs checkout' without a revision" do
+ resource[:source] = ':ext:source@example.com:/foo/bar'
+ resource.delete(:revision)
+ Puppet::Util::Execution.expects(:execute).with([:cvs, '-d', resource.value(:source), 'checkout', '-d', File.basename(resource.value(:path)), File.basename(resource.value(:source))], :custom_environment => {})
+ provider.create
end
- context "with a compression", :resource => {:compression => '3'} do
+ context "with a compression" do
it "should just execute 'cvs checkout' without a revision" do
- provider.expects(:cvs).with('-d', resource.value(:source), '-z', '3', 'checkout', '-d', File.basename(resource.value(:path)), File.basename(resource.value(:source)))
+ resource[:source] = ':ext:source@example.com:/foo/bar'
+ resource[:compression] = '3'
+ resource.delete(:revision)
+ Puppet::Util::Execution.expects(:execute).with([:cvs, '-d', resource.value(:source), '-z', '3', 'checkout', '-d', File.basename(resource.value(:path)), File.basename(resource.value(:source))], :custom_environment => {})
provider.create
end
end
@@ -30,7 +56,8 @@ describe_provider :vcsrepo, :cvs, :resource => {:path => '/tmp/vcsrepo'} do
context "when a source is not given" do
it "should execute 'cvs init'" do
- provider.expects(:cvs).with('-d', resource.value(:path), 'init')
+ resource.delete(:source)
+ Puppet::Util::Execution.expects(:execute).with([:cvs, '-d', resource.value(:path), 'init'], :custom_environment => {})
provider.create
end
end
@@ -38,24 +65,21 @@ describe_provider :vcsrepo, :cvs, :resource => {:path => '/tmp/vcsrepo'} do
describe 'destroying' do
it "it should remove the directory" do
- expects_rm_rf
provider.destroy
end
end
describe "checking existence" do
- resource_with :source do
- it "should check for the CVS directory" do
- File.expects(:directory?).with(File.join(resource.value(:path), 'CVS'))
- provider.exists?
- end
+ it "should check for the CVS directory with source" do
+ resource[:source] = ':ext:source@example.com:/foo/bar'
+ File.expects(:directory?).with(File.join(resource.value(:path), 'CVS'))
+ provider.exists?
end
- resource_without :source do
- it "should check for the CVSROOT directory" do
- File.expects(:directory?).with(File.join(resource.value(:path), 'CVSROOT'))
- provider.exists?
- end
+ it "should check for the CVSROOT directory without source" do
+ resource.delete(:source)
+ File.expects(:directory?).with(File.join(resource.value(:path), 'CVSROOT'))
+ provider.exists?
end
end
@@ -71,7 +95,7 @@ describe_provider :vcsrepo, :cvs, :resource => {:path => '/tmp/vcsrepo'} do
end
it "should read CVS/Tag" do
File.expects(:read).with(@tag_file).returns("T#{@tag}")
- provider.revision.should == @tag
+ expect(provider.revision).to eq(@tag)
end
end
@@ -80,7 +104,7 @@ describe_provider :vcsrepo, :cvs, :resource => {:path => '/tmp/vcsrepo'} do
File.expects(:exist?).with(@tag_file).returns(false)
end
it "assumes HEAD" do
- provider.revision.should == 'HEAD'
+ expect(provider.revision).to eq('HEAD')
end
end
end
@@ -92,7 +116,7 @@ describe_provider :vcsrepo, :cvs, :resource => {:path => '/tmp/vcsrepo'} do
it "should use 'cvs update -dr'" do
expects_chdir
- provider.expects(:cvs).with('update', '-dr', @tag, '.')
+ Puppet::Util::Execution.expects(:execute).with([:cvs, 'update', '-dr', @tag, '.'], :custom_environment => {})
provider.revision = @tag
end
end