I was able to mock everything by mocking the underlying method calls 
instead of confine itself.


example:

Mock existence of files: File.stubs(:exists?).returns(true)
Mock commands: 
Puppet::Util.stubs(:which).with("ipmitool").returns("/bin/ipmitool")
Mock fact:   let(:facts)do {:is_virtual => 'false'} end


On Monday, September 16, 2013 4:53:19 AM UTC-7, Andy Parker wrote:
>
> On Sun, Sep 15, 2013 at 6:50 PM, Corey Osman 
> <[email protected]<javascript:>
> > wrote:
>
>> Turns out I had a typo:
>>
>> Puppet::Type.type(:bmc).provide(:ipmitool) do
>> was
>> Puppet::Type.type(:bmc).provider(:ipmitool) do
>>
>>
> Glad that you figured it out! That one letter difference can really bite 
> you and is hard to track down.
>  
>
>> Seems to work.
>>
>> Now how do I mock things like:
>>
>> 1. command :ipmitool
>>
>
> Commands can be mocked by mocking the method on the provider (although it 
> is not great mocking parts of the class that is being tested :(.
>



 

>  
>
>> 2. confine :is_virtual => "false"
>> 3.   confine :true => File.exists?('/dev/ipmi0') || 
>> File.exists?('/dev/ipmi/0') || File.exists?('/dev/ipmidev/0')
>>
>>
> I'm not sure that you need to worry about mocking the confines since they 
> should only be used when the system is selecting the provider to use during 
> a run, I may be wrong however. Have you found the need to mock them?
>  
>
>> Corey
>> On Sunday, September 15, 2013 6:20:49 PM UTC-7, Corey Osman wrote:
>>>
>>> Hi,
>>>
>>> I am been trying really hard to test my custom type/provider.  Every 
>>> example seems to not fit my case though.  Most of the examples only cover 
>>> the providers or puppet code.  
>>>
>>> My case is a type and provider combined.  
>>>
>>>
>>> The puppet_labs_spec_helper has at least helped me out. I have been 
>>> following this doc: https://puppetlabs.com/blog/**
>>> the-next-generation-of-puppet-**module-testing<https://puppetlabs.com/blog/the-next-generation-of-puppet-module-testing>
>>>  But I still can't get the most basic test to run.  I am assuming this 
>>> is an environment issue as the puppet labs_apache module seems to test just 
>>> fine on my machine and I have tried to borrow and copy the layout as much 
>>> as possible.
>>>
>>>
>>> Could someone explicitly detail the steps required to test my code? 
>>>  Maybe even clone my repo and run: rake spec_prep && rake spec
>>>
>>> git clone 
>>> https://github.com/logicminds/**bmclib<https://github.com/logicminds/bmclib>
>>>
>>> Stuck at the following errors:
>>> error: 
>>> https://gist.github.**com/logicminds/6575668<https://gist.github.com/logicminds/6575668>(puppet
>>>  3.3.0)
>>> load error: 
>>> https://gist.github.com/**logicminds/6575704<https://gist.github.com/logicminds/6575704>
>>>  (puppet 3.2.4)
>>>
>>> thanks,
>>>
>>> Corey
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Puppet Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> Visit this group at http://groups.google.com/group/puppet-dev.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
>
> -- 
> Andrew Parker
> [email protected] <javascript:>
> Freenode: zaphod42
> Twitter: @aparker42
> Software Developer
>
> *Join us at PuppetConf 2014, September 23-24 in San Francisco*
>  

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-dev.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to