On Tue, Dec 1, 2009 at 10:05 AM, Ian Ward Comfort
<[email protected]> wrote:
> On 1 Dec 2009, at 9:10 AM, Nigel Kersten wrote:
>> Signed-off-by: Nigel Kersten <[email protected]>
>> ---
>> lib/puppet/provider/package/pkgdmg.rb |    6 ++----
>> spec/unit/provider/package/pkgdmg.rb  |   28 ++++++++++++++++++++++++
>> ++--
>> 2 files changed, 28 insertions(+), 6 deletions(-)
>>
>> diff --git a/lib/puppet/provider/package/pkgdmg.rb b/lib/puppet/
>> provider/package/pkgdmg.rb
>> index 8a916d5..210c3b7 100644
>> --- a/lib/puppet/provider/package/pkgdmg.rb
>> +++ b/lib/puppet/provider/package/pkgdmg.rb
>> @@ -79,8 +79,7 @@
>> Puppet::Type.type(:package).provide :pkgdmg, :parent =>
>> Puppet::Provider::Packag
>>                 curl "-o", cached_source, "-C", "-", "-k", "-s", "--
>> url", source
>>                 Puppet.debug "Success: curl transfered [#{name}]"
>>             rescue Puppet::ExecutionFailure
>> -                Puppet.debug "curl did not transfer [#{name}].
>> Falling back to slower open-uri transfer methods."
>> -                cached_source = source
>> +                raise Puppet::Error.new("Unable to download
>> #{source} disk image to #{cached_source}")
>>             end
>>         end
>>
>> @@ -109,8 +108,7 @@
>> Puppet::Type.type(:package).provide :pkgdmg, :parent =>
>> Puppet::Provider::Packag
>>                 end
>>             end
>>         ensure
>> -            # JJM Remove the file if open-uri didn't already do so.
>> -            File.unlink(cached_source) if File.exist?(cached_source)
>> +            File.unlink(cached_source) if cached_source != source
>> and File.exist?(cached_source)
>>         end
>>     end
>>
>> diff --git a/spec/unit/provider/package/pkgdmg.rb b/spec/unit/
>> provider/package/pkgdmg.rb
>> index d437574..57c0214 100755
>> --- a/spec/unit/provider/package/pkgdmg.rb
>> +++ b/spec/unit/provider/package/pkgdmg.rb
>> @@ -45,6 +45,11 @@ describe provider do
>>             @provider.stubs(:[]).with(:hdiutil).returns ""
>>             lambda { @provider.install }.should
>> raise_error(Puppet::Error)
>>         end
>> +
>> +        it "a non-existent source URI is specified" do
>> +           �[email protected](:[]).with(:source).returns 
>> "gopher://yourmom/foo.dmg
>> "
>
> I'm as whimsical as the next guy, but might it be preferable to use a
> URL whose invalidity is RFC-mandated?  E.g.
>
>        gopher://domain.invalid/foo.dmg

Yes. I'll change that and rebase when submitting if approved.




>
>> +            lambda { @provider.install }.should
>> raise_error(Puppet::Error)
>> +        end
>>     end
>>
>>     # These tests shouldn't be this messy. The pkgdmg provider needs
>> work...
>> @@ -54,6 +59,7 @@ describe provider do
>>             fh.stubs(:path).yields "/tmp/foo"
>>             @resource.stubs(:[]).with(:source).returns "foo.dmg"
>>             File.stubs(:open).yields fh
>> +            Dir.stubs(:entries).returns ["foo.pkg"]
>>         end
>>
>>         it "should call hdiutil to mount and eject the disk image" do
>> @@ -62,12 +68,30 @@ describe provider do
>>             @provider.class.expects(:hdiutil).with("mount", "-
>> plist", "-nobrowse", "-readonly", "-noidme", "-mountrandom", "/tmp",
>> nil).returns @fakehdiutilplist
>>             @provider.install
>>         end
>> -
>> +
>>         it "should call installpkg if a pkg/mpkg is found on the
>> dmg" do
>> -            Dir.stubs(:entries).returns ["foo.pkg"]
>>             @provider.class.stubs(:hdiutil).returns @fakehdiutilplist
>>
>> @provider.class.expects(:installpkg).with("#...@fakemountpoint}/
>> foo.pkg", @resource[:name], "foo.dmg").returns ""
>>             @provider.install
>>         end
>> +
>> +        it "should not delete the dmg if the source is local" do
>> +           �[email protected](:source).returns "/local/filesystem/
>> foo.dmg"
>> +           �[email protected](:hdiutil).returns @fakehdiutilplist
>> +           �[email protected](:installpkg)
>> +            File.stubs(:exist?).returns true
>> +            File.expects(:unlink).never
>> +           �[email protected]
>> +        end
>> +
>> +        it "should delete the cached dmg if the source is remote" do
>> +           �[email protected](:[]).with(:source).returns 
>> "http://blah/foo.dmg
>> "
>> +           �[email protected](:hdiutil).returns @fakehdiutilplist
>> +           �[email protected](:curl)
>> +           �[email protected](:installpkg)
>> +            File.stubs(:exist?).returns true
>> +            File.expects(:unlink).with("/tmp/
>> #...@resource[:name]}").once
>> +           �[email protected]
>> +        end
>>     end
>> end
>> --
>> 1.6.5.2
>>
>> --
>>
>> You received this message because you are subscribed to the Google
>> Groups "Puppet Developers" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected]
>> .
>> For more options, visit this group at 
>> http://groups.google.com/group/puppet-dev?hl=en
>> .
>
> --
> Ian Ward Comfort <[email protected]>
> Systems Team Lead, Student Computing, Stanford University
>
> --
>
> You received this message because you are subscribed to the Google Groups 
> "Puppet Developers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/puppet-dev?hl=en.
>
>
>



-- 
nigel

--

You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.


Reply via email to