Hello Remi, I've had partial success by making some changes on rspec-puppet, targeting a function similar to the params_lookup one on puppi module from example42. You can have a look at branches feature/scoped_resources <https://github.com/javiplx/rspec-puppet/tree/feature/scoped_resources> & feature/parent_module_name <https://github.com/javiplx/rspec-puppet/tree/feature/parent_module_name> from my fork (https://github.com/javiplx/rspec-puppet).
On Fri, Jan 30, 2015 at 1:23 PM, Remi Ferrand < [email protected]> wrote: > Hi list, > > I've written a custom puppet function that I'd like to test using *rspec* > . > It's source code is available here :: > https://github.com/riton/rspec-hiera-test-function/blob/master/lib/puppet/parser/functions/test_hiera.rb#L10 > . > > This function (is useless, I know :-)) only does a hiera lookup of > variable name 'variable'. > Thus, the following two puppet codes: > > # code 1 > $value = hiera('variable') > > # code 2 > $value = test_hiera() > > should be equivalent. > > So far, no problem. > Then comes rspec testing of my function 'test_hiera()'. > > I want to use hiera as described in > https://github.com/rodjek/rspec-puppet/tree/v2.0.0#hiera-integration. > This mean: > > - I want to provide a hierarchy > - I want hiera to use my custom configuration file as described in > https://github.com/rodjek/rspec-puppet/tree/v2.0.0#enabling-hiera-lookups > > I've already been using the method above for testing puppet code that > involves hiera lookups, and it worked as expected. > > What I don't want is to stub or mock hiera function. > I just want that the hiera() lookup actually uses my custom hierarchy > specified in my configuration file ( > https://github.com/riton/rspec-hiera-test-function/blob/master/spec/fixtures/hiera/hiera.yaml > ) > > As described in my sample repository README ( > https://github.com/riton/rspec-hiera-test-function/blob/master/README.md), > right now I wasn't able to make it work. > > It seems that hiera is still using it's default configuration file. > A strace of the following command: > > $ strace bundle exec rake spec SPEC_OPTS='--color --format documentation > --tag focus' > > reveals that /var/lib/hiera/common.yaml is searched for. > > My test environment is: > > > - CentOS 6 > - ruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux] > - Bundler version 1.7.12 > > > My bundle is: > > - bundler (1.7.12) > - diff-lcs (1.2.5) > - facter (1.7.6) > - hiera (1.3.4) > - json_pure (1.8.2) > - metaclass (0.0.4) > - mocha (1.1.0) > - puppet (3.6.2) > - puppet-lint (1.1.0) > - puppet-syntax (1.4.1) > - puppetlabs_spec_helper (0.8.2) > - rake (10.4.2) > - rgen (0.6.6) > - rspec (2.99.0) > - rspec-core (2.99.2) > - rspec-expectations (2.99.2) > - rspec-mocks (2.99.3) > - rspec-puppet (2.0.0 8459e14) > > > If anyone has already succeeded testing custom functions that internally > uses hiera lookup, I'll be glad to learn how. > > I've tested everything I can for now and I'm quite out of ideas. > > Thanks in advance > > Rémi > > -- > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/puppet-dev/59a73336-4f64-4c35-9a74-7288dc773dcd%40googlegroups.com > <https://groups.google.com/d/msgid/puppet-dev/59a73336-4f64-4c35-9a74-7288dc773dcd%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/puppet-dev/CAOAgqVxVwj%2BBgj8WKY9nuhEHOF5C6E8Rdu%2Bp87cg%2BZaRrHcxLQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
