[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, upstream, updated. 2.6.5rc1-120-g2247c80
Paul Berry
paul at puppetlabs.com
Mon Feb 7 06:40:26 UTC 2011
The following commit has been merged in the upstream branch:
commit 002f9f1905b089ebca628a6b743c0659e30ff9bc
Author: Paul Berry <paul at puppetlabs.com>
Date: Wed Jan 12 15:18:21 2011 -0800
(#5838) Improve the quality of file bucket specs.
Paired-with: Jesse Wolfe <jesse at puppetlabs.com>
diff --git a/spec/unit/file_bucket/dipper_spec.rb b/spec/unit/file_bucket/dipper_spec.rb
index 3e9e8b1..db40c62 100755
--- a/spec/unit/file_bucket/dipper_spec.rb
+++ b/spec/unit/file_bucket/dipper_spec.rb
@@ -5,6 +5,8 @@ require File.dirname(__FILE__) + '/../../spec_helper'
require 'pathname'
require 'puppet/file_bucket/dipper'
+require 'puppet/indirector/file_bucket_file/rest'
+
describe Puppet::FileBucket::Dipper do
include PuppetSpec::Files
@@ -34,14 +36,17 @@ describe Puppet::FileBucket::Dipper do
end
it "should backup files to a local bucket" do
- @dipper = Puppet::FileBucket::Dipper.new(:Path => "/my/bucket")
+ Puppet[:bucketdir] = "/non/existent/directory"
+ file_bucket = tmpdir("bucket")
+
+ @dipper = Puppet::FileBucket::Dipper.new(:Path => file_bucket)
file = make_tmp_file('my contents')
- checksum = Digest::MD5.hexdigest('my contents')
+ checksum = "2975f560750e71c478b8e3b39a956adb"
+ Digest::MD5.hexdigest('my contents').should == checksum
- Puppet::FileBucket::File.expects(:head).returns false
- Puppet::FileBucket::File.any_instance.expects(:save)
@dipper.backup(file).should == checksum
+ File.exists?("#{file_bucket}/2/9/7/5/f/5/6/0/2975f560750e71c478b8e3b39a956adb/contents").should == true
end
it "should not backup a file that is already in the bucket" do
@@ -60,11 +65,13 @@ describe Puppet::FileBucket::Dipper do
checksum = Digest::MD5.hexdigest('my contents')
- Puppet::FileBucket::File.expects(:find).with{|x,opts|
- x == "md5/#{checksum}"
- }.returns(Puppet::FileBucket::File.new('my contents'))
+ request = nil
+
+ Puppet::FileBucketFile::File.any_instance.expects(:find).with{ |r| request = r }.once.returns(Puppet::FileBucket::File.new('my contents'))
@dipper.getfile(checksum).should == 'my contents'
+
+ request.key.should == "md5/#{checksum}"
end
it "should backup files to a remote server" do
@@ -75,10 +82,18 @@ describe Puppet::FileBucket::Dipper do
real_path = Pathname.new(file).realpath
- Puppet::FileBucket::File.expects(:head).with("https://puppetmaster:31337/production/file_bucket_file/md5/#{checksum}").returns false
- Puppet::FileBucket::File.any_instance.expects(:save).with("https://puppetmaster:31337/production/file_bucket_file/md5/#{checksum}")
+ request1 = nil
+ request2 = nil
+
+ Puppet::FileBucketFile::Rest.any_instance.expects(:head).with { |r| request1 = r }.once.returns(nil)
+ Puppet::FileBucketFile::Rest.any_instance.expects(:save).with { |r| request2 = r }.once
@dipper.backup(file).should == checksum
+ [request1, request2].each do |r|
+ r.server.should == 'puppetmaster'
+ r.port.should == 31337
+ r.key.should == "md5/#{checksum}"
+ end
end
it "should retrieve files from a remote server" do
@@ -86,10 +101,14 @@ describe Puppet::FileBucket::Dipper do
checksum = Digest::MD5.hexdigest('my contents')
- Puppet::FileBucket::File.expects(:find).with{|x,opts|
- x == "https://puppetmaster:31337/production/file_bucket_file/md5/#{checksum}"
- }.returns(Puppet::FileBucket::File.new('my contents'))
+ request = nil
+
+ Puppet::FileBucketFile::Rest.any_instance.expects(:find).with { |r| request = r }.returns(Puppet::FileBucket::File.new('my contents'))
@dipper.getfile(checksum).should == "my contents"
+
+ request.server.should == 'puppetmaster'
+ request.port.should == 31337
+ request.key.should == "md5/#{checksum}"
end
end
diff --git a/spec/unit/indirector/file_bucket_file/file_spec.rb b/spec/unit/indirector/file_bucket_file/file_spec.rb
index 6057fd2..cb614f3 100755
--- a/spec/unit/indirector/file_bucket_file/file_spec.rb
+++ b/spec/unit/indirector/file_bucket_file/file_spec.rb
@@ -68,39 +68,50 @@ HERE
end
- describe "when retrieving files" do
- before :each do
- Puppet.settings.stubs(:use)
- @store = Puppet::FileBucketFile::File.new
+ [true, false].each do |override_bucket_path|
+ describe "when retrieving files and bucket path #{if override_bucket_path then 'is' else 'is not' end} overridden" do
+ before :each do
+ Puppet.settings.stubs(:use)
+ @store = Puppet::FileBucketFile::File.new
- @digest = "70924d6fa4b2d745185fa4660703a5c0"
+ @digest = "70924d6fa4b2d745185fa4660703a5c0"
- @bucket_dir = tmpdir("bucket")
+ @bucket_dir = tmpdir("bucket")
- Puppet.stubs(:[]).with(:bucketdir).returns(@bucket_dir)
+ if override_bucket_path
+ Puppet[:bucketdir] = "/bogus/path" # should not be used
+ else
+ Puppet[:bucketdir] = @bucket_dir
+ end
- @dir = "#{@bucket_dir}/7/0/9/2/4/d/6/f/70924d6fa4b2d745185fa4660703a5c0"
- @contents_path = "#{@dir}/contents"
+ @dir = "#{@bucket_dir}/7/0/9/2/4/d/6/f/70924d6fa4b2d745185fa4660703a5c0"
+ @contents_path = "#{@dir}/contents"
- @request = Puppet::Indirector::Request.new(:indirection_name, :find, "md5/#{@digest}")
- end
+ request_options = {}
+ if override_bucket_path
+ request_options[:bucket_path] = @bucket_dir
+ end
- def make_bucketed_file
- FileUtils.mkdir_p(@dir)
- File.open(@contents_path, 'w') { |f| f.write @contents }
- end
+ @request = Puppet::Indirector::Request.new(:indirection_name, :find, "md5/#{@digest}", request_options)
+ end
+
+ def make_bucketed_file
+ FileUtils.mkdir_p(@dir)
+ File.open(@contents_path, 'w') { |f| f.write @contents }
+ end
- it "should return an instance of Puppet::FileBucket::File created with the content if the file exists" do
- @contents = "my content"
- make_bucketed_file
+ it "should return an instance of Puppet::FileBucket::File created with the content if the file exists" do
+ @contents = "my content"
+ make_bucketed_file
- bucketfile = @store.find(@request)
- bucketfile.should be_a(Puppet::FileBucket::File)
- bucketfile.contents.should == @contents
- end
+ bucketfile = @store.find(@request)
+ bucketfile.should be_a(Puppet::FileBucket::File)
+ bucketfile.contents.should == @contents
+ end
- it "should return nil if no file is found" do
- @store.find(@request).should be_nil
+ it "should return nil if no file is found" do
+ @store.find(@request).should be_nil
+ end
end
end
--
Puppet packaging for Debian
More information about the Pkg-puppet-devel
mailing list