RSpec test to verify variable/parameter declaration

1,547 views
Skip to first unread message

Shantanu

unread,
Apr 23, 2012, 11:51:58 AM4/23/12
to Puppet Users, t...@github.com

I have a module in which parameterized classes inherit regular (non-
parameterized) 'params' class. I am writing RSpec tests for this
module and would like to make sure that required variables have been
declared in the params class. Also, is it possible to write RSpec test
to make sure that these variables/parameters are accepted by the
required parameterized classes? Any pointers will be really helpful.

--
Thanks,
Shantanu Pavgi

Craig Dunn

unread,
Apr 23, 2012, 1:06:31 PM4/23/12
to puppet...@googlegroups.com

Funnily enough I was asking a similar thing on IRC the other day but
didn't get much luck. We're implementing Hiera across modules that
require significant amounts of variables. We have a lot of environments
(>20) and we often get problems where someone introduces a new variable,
adds it to a template and tests it in dev but dont add a default, or add
it to each environment, therefore catalog compilation fails in non-dev
environments.

Ideally I'd like to be able to catch this with rspec-puppet but can't
see an easy way to say "class bar should have variable foo and it
shouldn't be undefined", or something when sourcing variables from other
classes or hiera.

Craig

--
Craig Dunn | http://www.craigdunn.org
Yahoo/Skype: craigrdunn | Twitter: @crayfishX

Tim Sharpe

unread,
Apr 23, 2012, 6:49:47 PM4/23/12
to puppet...@googlegroups.com
So, rspec-puppet can't and won't ever work this way.  What it's testing is the resulting catalogue of Puppet resources that your host executes (the behaviour of Puppet).  Instead of testing that a variable is defined, you should be testing the resource(s) that those variables control/adjust.

For example, if your variable changes the templated contents of a file resource, then you should be testing the contents of that file resource.
--
You received this message because you are subscribed to the Google Groups "Puppet Users" group.
To post to this group, send email to puppet...@googlegroups.com.
To unsubscribe from this group, send email to puppet-users...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en.

Shantanu

unread,
Apr 24, 2012, 4:49:46 PM4/24/12
to Puppet Users, Tim Sharpe

On Apr 23, 5:49 pm, Tim Sharpe <t...@sharpe.id.au> wrote:
> So, rspec-puppet can't and won't ever work this way.  What it's testing is the resulting catalogue of Puppet resources that your host executes (the behaviour of Puppet).  Instead of testing that a variable is defined, you should be testing the resource(s) that those variables control/adjust.
>
> For example, if your variable changes the templated contents of a file resource, then you should be testing the contents of that file resource.
>

Thanks for the details Tim. That's helpful.

--
Shantanu

Markus Falb

unread,
Jun 4, 2012, 4:12:56 AM6/4/12
to puppet...@googlegroups.com
On 24.4.2012 00:49, Tim Sharpe wrote:
> So, rspec-puppet can't and won't ever work this way. What it's testing is the resulting catalogue of Puppet resources that your host executes (the behaviour of Puppet). Instead of testing that a variable is defined, you should be testing the resource(s) that those variables control/adjust.
>
> For example, if your variable changes the templated contents of a file resource, then you should be testing the contents of that file resource.

What's with virtual resources that are realized on another host?
Is there any way to test that?
--
Kind Regards, Markus Falb

signature.asc
Reply all
Reply to author
Forward
0 new messages