1 | require 'spec_helper'
|
---|
2 |
|
---|
3 | describe 'private' do
|
---|
4 | it 'should issue a warning' do
|
---|
5 | scope.expects(:warning).with("private() DEPRECATED: This function will cease to function on Puppet 4; please use assert_private() before upgrading to puppet 4 for backwards-compatibility, or migrate to the new parser's typing system.")
|
---|
6 | begin
|
---|
7 | subject.call []
|
---|
8 | rescue
|
---|
9 | # ignore this
|
---|
10 | end
|
---|
11 | end
|
---|
12 |
|
---|
13 | context "when called from inside module" do
|
---|
14 | it "should not fail" do
|
---|
15 | scope.expects(:lookupvar).with('module_name').returns('foo')
|
---|
16 | scope.expects(:lookupvar).with('caller_module_name').returns('foo')
|
---|
17 | expect {
|
---|
18 | subject.call []
|
---|
19 | }.not_to raise_error
|
---|
20 | end
|
---|
21 | end
|
---|
22 |
|
---|
23 | context "with an explicit failure message" do
|
---|
24 | it "prints the failure message on error" do
|
---|
25 | scope.expects(:lookupvar).with('module_name').returns('foo')
|
---|
26 | scope.expects(:lookupvar).with('caller_module_name').returns('bar')
|
---|
27 | expect {
|
---|
28 | subject.call ['failure message!']
|
---|
29 | }.to raise_error Puppet::ParseError, /failure message!/
|
---|
30 | end
|
---|
31 | end
|
---|
32 |
|
---|
33 | context "when called from private class" do
|
---|
34 | it "should fail with a class error message" do
|
---|
35 | scope.expects(:lookupvar).with('module_name').returns('foo')
|
---|
36 | scope.expects(:lookupvar).with('caller_module_name').returns('bar')
|
---|
37 | scope.source.expects(:name).returns('foo::baz')
|
---|
38 | scope.source.expects(:type).returns('hostclass')
|
---|
39 | expect {
|
---|
40 | subject.call []
|
---|
41 | }.to raise_error Puppet::ParseError, /Class foo::baz is private/
|
---|
42 | end
|
---|
43 | end
|
---|
44 |
|
---|
45 | context "when called from private definition" do
|
---|
46 | it "should fail with a class error message" do
|
---|
47 | scope.expects(:lookupvar).with('module_name').returns('foo')
|
---|
48 | scope.expects(:lookupvar).with('caller_module_name').returns('bar')
|
---|
49 | scope.source.expects(:name).returns('foo::baz')
|
---|
50 | scope.source.expects(:type).returns('definition')
|
---|
51 | expect {
|
---|
52 | subject.call []
|
---|
53 | }.to raise_error Puppet::ParseError, /Definition foo::baz is private/
|
---|
54 | end
|
---|
55 | end
|
---|
56 | end
|
---|