diff options
-rwxr-xr-x | lib/puppet/type/file/content.rb | 2 | ||||
-rwxr-xr-x | spec/unit/type/file/content.rb | 15 |
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" |