Re: [Puppet Users] rspec-puppet testing with puppet $::settings

2013-05-02 Thread Simon Piette
Hi Wolf,


On Wed, May 1, 2013 at 11:13 AM, Wolf Noble w...@wolfspyre.com wrote:



 I suspect what's going on here, is the class you're testing doesn't have
 the ability to override the $::settings::vardir variable.
 I've found that if I make the relevant variable a parameter to the class
 in question, I can override it in the tests in question.


It does, but it doesn't make sense. It's for a puppet module (
https://github.com/spiette/puppet-puppet/blob/master/manifests/master/certificate.pp).
I want to change the exec {link-ca-crl: } for a file. I need the
$::settings as I would need a fact. I can add the parameter, but it would
be there for testing purpose only. I'll fill a bug at rspec-puppet.



 It may be possible to set a different class's parameter to a value from a
 test, but I've not found a way.


I don't like the idea of changing a manifest to get around a limitation of
the testing framework.

Thanks for your feedback,

Simon

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [Puppet Users] rspec-puppet testing with puppet $::settings

2013-05-01 Thread Wolf Noble
Hi Simon,

On Tue, Apr 30, 2013 at 12:08 PM, Simon Piette piette.si...@gmail.comwrote:

 Hi Wolfe,

 On Tue, Apr 30, 2013 at 12:05 PM, Wolf Noble wno...@datapipe.com wrote:

 Hi Simon,
 On Apr 29, 2013, at 7:45 PM, Simon Piette piette.si...@gmail.com
  wrote:

 What I've done elsewhere is to make a parameter for, in your case, vardir:


 (untested, but close)

 Class foo($vardir = $::settings::vardir){
 file { ${vardir}/files:
   ensure = directory
 }
 }


 Then in
 spec/classes/foo_main_spec.rb:
 require 'spec_helper'
 require 'puppetlabs_spec_helper/module_spec_helper'
 vartest = Puppet.settings[:vardir]
 describe 'foo', :type = :class do
   #...
   #Then you can assign vartest as a class parameter to your tests.
 end




 That's what I did for this module:

 https://github.com/spiette/puppet-selinux/blob/master/manifests/params.pp

 But under other circumstances, (a puppet module) I can't do this, I have
 to use the $::settings variable.

 Thanks,

 Simon



I suspect what's going on here, is the class you're testing doesn't have
the ability to override the $::settings::vardir variable.
I've found that if I make the relevant variable a parameter to the class in
question, I can override it in the tests in question.

It may be possible to set a different class's parameter to a value from a
test, but I've not found a way.

This has resulted in me making whatever variables I need to override
parameters to the class I'm testing. I'd be curious to hear how others have
accomplished this.

Would you mind showing us the module you're talking about where you were
having problems with this approach? Perhaps the list can offer some input
on other ways to accomplish your needs.

CAVEAT: The statement that I've not seen a better way doesn't mean there
isn't one.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [Puppet Users] rspec-puppet testing with puppet $::settings

2013-04-30 Thread Wolf Noble
Hi Simon,
On Apr 29, 2013, at 7:45 PM, Simon Piette piette.si...@gmail.com
 wrote:

 Hi all,
 snip
 Any solution for testing variables that depends on settings will be welcome.

 Thanks,

I sent this last night from another account, but it didn't seem to go through:




What I've done elsewhere is to make a parameter for, in your case, vardir:


(untested, but close)

Class foo($vardir = $::settings::vardir){
file { ${vardir}/files:
  ensure = directory
}
}


Then in
spec/classes/foo_main_spec.rb:
require 'spec_helper'
require 'puppetlabs_spec_helper/module_spec_helper'
vartest = Puppet.settings[:vardir]
describe 'foo', :type = :class do
  #...
  #Then you can assign vartest as a class parameter to your tests.
end





Hope that helps.

W



This message may contain confidential or privileged information. If you are not 
the intended recipient, please advise us immediately and delete this message. 
See http://www.datapipe.com/legal/email_disclaimer/ for further information on 
confidentiality and the risks of non-secure electronic communication. If you 
cannot access these links, please notify us by reply message and we will send 
the contents to you.

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [Puppet Users] rspec-puppet testing with puppet $::settings

2013-04-30 Thread Simon Piette
Hi Wolfe,

On Tue, Apr 30, 2013 at 12:05 PM, Wolf Noble wno...@datapipe.com wrote:

 Hi Simon,
 On Apr 29, 2013, at 7:45 PM, Simon Piette piette.si...@gmail.com
  wrote:

 What I've done elsewhere is to make a parameter for, in your case, vardir:


 (untested, but close)

 Class foo($vardir = $::settings::vardir){
 file { ${vardir}/files:
   ensure = directory
 }
 }


 Then in
 spec/classes/foo_main_spec.rb:
 require 'spec_helper'
 require 'puppetlabs_spec_helper/module_spec_helper'
 vartest = Puppet.settings[:vardir]
 describe 'foo', :type = :class do
   #...
   #Then you can assign vartest as a class parameter to your tests.
 end




That's what I did for this module:

https://github.com/spiette/puppet-selinux/blob/master/manifests/params.pp

But under other circumstances, (a puppet module) I can't do this, I have to
use the $::settings variable.

Thanks,

Simon

-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.




Re: [Puppet Users] rspec-puppet testing with puppet $::settings

2013-04-30 Thread Wolf Noble
Hi Simon,



On Apr 29, 2013, at 23:35, Simon Piette piette.si...@gmail.com wrote:

 Hi all,
 snip
 Any solution for testing variables that depends on settings will be welcome


What I've done elsewhere is to make a parameter for, in your case, vardir:


(untested, but close)

Class foo($vardir = $::settings::vardir){
file { ${vardir}/files:
  ensure = directory
}
}


Then in 
spec/classes/foo_main_spec.rb:
require 'spec_helper'
require 'puppetlabs_spec_helper/module_spec_helper'
vartest = Puppet.settings[:vardir]
describe 'foo', :type = :class do
  #...
  #Then you can assign vartest as a class parameter to your tests.
end

W


=MobileMail=
Please excuse brevity or spelling errors


-- 
You received this message because you are subscribed to the Google Groups 
Puppet Users group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.