Hi Brian,
I've found having my spec test print out a catalog is a good way to build out a
suite of tests
context 'when the do_stuff param has the value of hell_yeah' do
let (:facts) {{'osfamily' => 'RainbowOS }}
let (:params) {{'do_stuff' => 'hell_yeah'}}
It 'print a catalog for spec building' do
p subject.resources
end
end
context 'when the do_stuff param has the value of nope' do
let (:facts) {{'osfamily' => 'RainbowOS }}
let (:params) {{'do_stuff' => 'nope'}}
It 'print a catalog for spec building' do
p subject.resources
end
end
Then I do some simple formatting on the subsequently generated catalogs in
sublime text and review all the resources. With just a few tweaks it's pretty
easy to grab the resources you actually care about from the catalog as rspec
sees it.
HTH
-W
Sent from my iPad
> On Jun 4, 2014, at 1:30 PM, Brian Wilkins <[email protected]> wrote:
>
> I am trying to write unit tests of my puppet modules. In my
> profiles::logstash::install, I disambiguate the call to
> /etc/puppet/modules/logstash by using ::logstash in my class definition like
> so:
>
> class profiles::logstash::install() {
> $ensure = $profiles::logstash::enable ? {true => present, default => absent}
> $status = $profiles::logstash::start ? {true => enabled, default =>
> disabled}
>
> class { '::logstash':
> ensure => $ensure,
> status => $status,
> version => $profiles::logstash::version
> }
> }
>
> However, when I run my spec file:
>
> require 'spec_helper'
>
> describe "profiles::logstash" do
> it { should contain_class("::logstash") }
> it { should contain_class("profiles::logstash::install") }
> it { should contain_class("profiles::logstash::config") }
> end
>
> I get the errors:
>
> 1) profiles::logstash
> Failure/Error: it { should contain_class("::logstash") }
> Puppet::Error:
> Puppet::Parser::AST::Resource failed with error ArgumentError: Could
> not find declared class ::logstash at
> /etc/puppet/modules/profiles/spec/fixtures/modules/profiles/manifests/logstash/install.pp:10
> on node els4167.els.dev
> # ./spec/classes/logstash_spec.rb:4
>
> 2) profiles::logstash
> Failure/Error: it { should contain_class("profiles::logstash::install") }
> Puppet::Error:
> Puppet::Parser::AST::Resource failed with error ArgumentError: Could
> not find declared class ::logstash at
> /etc/puppet/modules/profiles/spec/fixtures/modules/profiles/manifests/logstash/install.pp:10
> on node els4167.els.dev
> # ./spec/classes/logstash_spec.rb:5
>
> 3) profiles::logstash
> Failure/Error: it { should contain_class("profiles::logstash::config") }
> Puppet::Error:
> Puppet::Parser::AST::Resource failed with error ArgumentError: Could
> not find declared class ::logstash at
> /etc/puppet/modules/profiles/spec/fixtures/modules/profiles/manifests/logstash/install.pp:10
> on node els4167.els.dev
> # ./spec/classes/logstash_spec.rb:6
>
> How do I get rspec to find my class /etc/puppet/modules/logstash and get it
> to reference ::logstash as a disambiguation?
> --
> 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 [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/a47b6fdb-519a-453c-92ec-40787c7d2470%40googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
--
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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/BAD12348-3208-4763-B20D-70FD1C721B8B%40wolfspyre.com.
For more options, visit https://groups.google.com/d/optout.