Hi Simon, On Tue, Apr 30, 2013 at 12:08 PM, Simon Piette <piette.si...@gmail.com>wrote:
> 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.