diff options
author | Franz Pletz <fpletz@fnordicwalking.de> | 2014-12-19 12:25:21 +0100 |
---|---|---|
committer | Travis Fields <travis@puppetlabs.com> | 2015-03-05 10:59:31 -0800 |
commit | 56d815bcfc5f57d8dff974fd8bba192c6b141f89 (patch) | |
tree | d64a5cf7d5223e6bcba82248108ca32dd10ecadf /spec/functions/assert_private_spec.rb | |
parent | 706b9e8205f1ff205226ef53e7d9b58de5cb6e54 (diff) | |
download | puppet-stdlib-56d815bcfc5f57d8dff974fd8bba192c6b141f89.tar.gz puppet-stdlib-56d815bcfc5f57d8dff974fd8bba192c6b141f89.tar.bz2 |
Rename private() to assert_private()
As mentioned in #270, private is a reserved keyword in the future parser
which is to be released with Puppet 4. As it stands, this function is
not useable with the future parser so it needs to renamed.
This is a breaking change.
Diffstat (limited to 'spec/functions/assert_private_spec.rb')
-rwxr-xr-x | spec/functions/assert_private_spec.rb | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/spec/functions/assert_private_spec.rb b/spec/functions/assert_private_spec.rb new file mode 100755 index 0000000..a009d28 --- /dev/null +++ b/spec/functions/assert_private_spec.rb @@ -0,0 +1,55 @@ +#! /usr/bin/env ruby -S rspec +require 'spec_helper' + +describe Puppet::Parser::Functions.function(:assert_private) do + let(:scope) { PuppetlabsSpec::PuppetInternals.scope } + + subject do + function_name = Puppet::Parser::Functions.function(:assert_private) + scope.method(function_name) + end + + context "when called from inside module" do + it "should not fail" do + scope.expects(:lookupvar).with('module_name').returns('foo') + scope.expects(:lookupvar).with('caller_module_name').returns('foo') + expect { + subject.call [] + }.not_to raise_error + end + end + + context "with an explicit failure message" do + it "prints the failure message on error" do + scope.expects(:lookupvar).with('module_name').returns('foo') + scope.expects(:lookupvar).with('caller_module_name').returns('bar') + expect { + subject.call ['failure message!'] + }.to raise_error Puppet::ParseError, /failure message!/ + end + end + + context "when called from private class" do + it "should fail with a class error message" do + scope.expects(:lookupvar).with('module_name').returns('foo') + scope.expects(:lookupvar).with('caller_module_name').returns('bar') + scope.source.expects(:name).returns('foo::baz') + scope.source.expects(:type).returns('hostclass') + expect { + subject.call [] + }.to raise_error Puppet::ParseError, /Class foo::baz is private/ + end + end + + context "when called from private definition" do + it "should fail with a class error message" do + scope.expects(:lookupvar).with('module_name').returns('foo') + scope.expects(:lookupvar).with('caller_module_name').returns('bar') + scope.source.expects(:name).returns('foo::baz') + scope.source.expects(:type).returns('definition') + expect { + subject.call [] + }.to raise_error Puppet::ParseError, /Definition foo::baz is private/ + end + end +end |