summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xlib/puppet/type/file/content.rb2
-rwxr-xr-xspec/unit/type/file/content.rb15
2 files changed, 16 insertions, 1 deletions
diff --git a/lib/puppet/type/file/content.rb b/lib/puppet/type/file/content.rb
index a5fe9920a..f48e601fb 100755
--- a/lib/puppet/type/file/content.rb
+++ b/lib/puppet/type/file/content.rb
@@ -105,7 +105,7 @@ module Puppet
return nil if stat.ftype == "directory"
begin
- return "{#{checksum_type}}" + send(checksum_type.to_s + "_file", resource[:path])
+ return "{#{checksum_type}}" + send(checksum_type.to_s + "_file", resource[:path]).to_s
rescue => detail
raise Puppet::Error, "Could not read %s: %s" % [@resource.title, detail]
end
diff --git a/spec/unit/type/file/content.rb b/spec/unit/type/file/content.rb
index fd225fa17..0529cd33f 100755
--- a/spec/unit/type/file/content.rb
+++ b/spec/unit/type/file/content.rb
@@ -119,6 +119,21 @@ describe content do
@content.retrieve.should be_nil
end
+ it "should always return the checksum as a string" do
+ @content = content.new(:resource => @resource)
+ @content.stubs(:checksum_type).returns "mtime"
+
+ stat = mock 'stat', :ftype => "file"
+ @resource.expects(:stat).returns stat
+
+ @resource.expects(:[]).with(:path).returns "/my/file"
+
+ time = Time.now
+ @content.expects(:mtime_file).with("/my/file").returns time
+
+ @content.retrieve.should == "{mtime}%s" % time
+ end
+
it "should return the checksum of the file if it exists and is a normal file" do
@content = content.new(:resource => @resource)
@content.stubs(:checksum_type).returns "md5"