Hi all, is there a way to pass the Puppets undef [1] value as parameter? I got a module with a package_provider parameter, allowing the user two things: 1. specify a specific package provider to use; 2. pass "undef" to let Puppet decide which provider to use instead of the module.
Something like:
> class example(
> $package_provider = $example::params::package_provider,
> ) inherits example::params {
>
> [...]
>
> package { 'foobar'
> ensure => 'present',
> provider => $package_provider,
> }
> }
Now I want to test if passing undef works:
> context 'with parameter(s): package_provider => undef' do
> let(:params) {{
> :package_provider => [WAY-TO-PASS-UNDEF-HERE],
> }}
>
> it 'contains a package with parameter(s): provider => unset' do
> should contain_package('blueprint').with({
> 'provider' => [WAY-TO-CHECK-FOR-UNDEF-HERE,
> })
> end
> end
But my test doesn't work. What I tried so far is:
1) undef (results in RSpec/Ruby parsing error)
> context 'with parameter(s): foo => undef' do
> let(:params) {{
> :foo => undef,
> }}
>
> [...]
> end
2) :undef (results in Puppet error: "Syntax error at':'; expected '}'" )
> context 'with parameter(s): foo => undef' do
> let(:params) {{
> :foo => :undef,
> }}
>
> [...]
> end
3) nil (does not result in an Puppet or Ruby error, but the
.with_foo(nil) or .without_foo matchers do not seem to work as the
string "nil" was passed tho puppet
> context 'with parameter(s): foo => undef' do
> let(:params) {{
> :foo => nil,
> }}
>
> [...]
> end
Any hints? Thanks in advance :-)
[1]
<http://docs.puppetlabs.com/puppet/latest/reference/lang_datatypes.html#undef>
--
Andreas <http://blog.andreas-haerter.com>
signature.asc
Description: OpenPGP digital signature
