rspec-puppet 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/rspec-puppet/example.rb +1 -0
- data/lib/rspec-puppet/example/class_example_group.rb +11 -13
- data/lib/rspec-puppet/example/define_example_group.rb +10 -13
- data/lib/rspec-puppet/matchers/create_generic.rb +3 -7
- data/lib/rspec-puppet/matchers/create_resource.rb +1 -1
- data/rspec-puppet.gemspec +1 -1
- data/spec/classes/sysctl_common_spec.rb +7 -0
- data/spec/fixtures/sysctl/manifests/init.pp +22 -1
- metadata +5 -12
data/lib/rspec-puppet/example.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module RSpec::Puppet
|
2
2
|
module ClassExampleGroup
|
3
3
|
include RSpec::Puppet::Matchers
|
4
|
+
include RSpec::Puppet::Support
|
4
5
|
|
5
6
|
def subject
|
6
7
|
@catalogue ||= catalogue
|
@@ -20,27 +21,24 @@ module RSpec::Puppet
|
|
20
21
|
import_str = ""
|
21
22
|
end
|
22
23
|
|
24
|
+
if self.respond_to? :pre_condition
|
25
|
+
pre_cond = pre_condition
|
26
|
+
else
|
27
|
+
pre_cond = ''
|
28
|
+
end
|
29
|
+
|
23
30
|
if !self.respond_to?(:params) || params == {}
|
24
31
|
Puppet[:code] = import_str + "include #{klass_name}"
|
25
32
|
else
|
26
|
-
Puppet[:code] = import_str + 'class' + " { " + klass_name + ": " + params.keys.map { |r| "#{r.to_s} =>
|
27
|
-
}.join(',
|
33
|
+
Puppet[:code] = import_str + 'class' + " { \"" + klass_name + "\": " + params.keys.map { |r| "#{r.to_s} => #{params[r].inspect}"
|
34
|
+
}.join(',' ) + " }"
|
28
35
|
end
|
36
|
+
Puppet[:code] = pre_cond + "\n" + Puppet[:code]
|
29
37
|
|
30
38
|
nodename = self.respond_to?(:node) ? node : Puppet[:certname]
|
31
39
|
facts_val = self.respond_to?(:facts) ? facts : {}
|
32
40
|
|
33
|
-
|
34
|
-
|
35
|
-
node_obj.merge(facts_val)
|
36
|
-
|
37
|
-
# trying to be compatible with 2.7 as well as 2.6
|
38
|
-
if Puppet::Resource::Catalog.respond_to? :find
|
39
|
-
Puppet::Resource::Catalog.find(node_obj.name, :use_node => node_obj)
|
40
|
-
else
|
41
|
-
require 'puppet/face'
|
42
|
-
Puppet::Face[:catalog, :current].find(node_obj.name, :use_node => node_obj)
|
43
|
-
end
|
41
|
+
build_catalog(nodename, facts_val)
|
44
42
|
end
|
45
43
|
end
|
46
44
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
module RSpec::Puppet
|
2
2
|
module DefineExampleGroup
|
3
3
|
include RSpec::Puppet::Matchers
|
4
|
+
include RSpec::Puppet::Support
|
4
5
|
|
5
6
|
def subject
|
6
7
|
@catalogue ||= catalogue
|
@@ -22,13 +23,19 @@ module RSpec::Puppet
|
|
22
23
|
|
23
24
|
if self.respond_to? :params
|
24
25
|
param_str = params.keys.map { |r|
|
25
|
-
"#{r.to_s} =>
|
26
|
+
"#{r.to_s} => #{params[r].inspect}"
|
26
27
|
}.join(', ')
|
27
28
|
else
|
28
29
|
param_str = ""
|
29
30
|
end
|
30
31
|
|
31
|
-
|
32
|
+
if self.respond_to? :pre_condition
|
33
|
+
pre_cond = pre_condition
|
34
|
+
else
|
35
|
+
pre_cond = ""
|
36
|
+
end
|
37
|
+
|
38
|
+
Puppet[:code] = pre_cond + "\n" + import_str + define_name + " { \"" + title + "\": " + param_str + " }"
|
32
39
|
|
33
40
|
nodename = self.respond_to?(:node) ? node : Puppet[:certname]
|
34
41
|
facts_val = {
|
@@ -37,17 +44,7 @@ module RSpec::Puppet
|
|
37
44
|
}
|
38
45
|
facts_val.merge!(facts) if self.respond_to?(:facts)
|
39
46
|
|
40
|
-
|
41
|
-
|
42
|
-
node_obj.merge(facts_val)
|
43
|
-
|
44
|
-
# trying to be compatible with 2.7 as well as 2.6
|
45
|
-
if Puppet::Resource::Catalog.respond_to? :find
|
46
|
-
Puppet::Resource::Catalog.find(node_obj.name, :use_node => node_obj)
|
47
|
-
else
|
48
|
-
require 'puppet/face'
|
49
|
-
Puppet::Face[:catalog, :current].find(node_obj.name, :use_node => node)
|
50
|
-
end
|
47
|
+
build_catalog(nodename, facts_val)
|
51
48
|
end
|
52
49
|
end
|
53
50
|
end
|
@@ -21,18 +21,14 @@ module RSpec::Puppet
|
|
21
21
|
|
22
22
|
def matches?(catalogue)
|
23
23
|
ret = true
|
24
|
-
|
25
|
-
r.type == @referenced_type
|
26
|
-
}.select { |r|
|
27
|
-
r.title == @title if r.respond_to? :title
|
28
|
-
}
|
24
|
+
resource = catalogue.resource(@referenced_type, @title)
|
29
25
|
|
30
|
-
|
26
|
+
if resource.nil?
|
31
27
|
ret = false
|
32
28
|
else
|
33
29
|
if @expected_params
|
34
30
|
@expected_params.each do |name, value|
|
35
|
-
unless
|
31
|
+
unless resource.send(:parameters)[name.to_sym].to_s == value.to_s
|
36
32
|
ret = false
|
37
33
|
(@errors ||= []) << "#{name.to_s} set to `#{value.inspect}`"
|
38
34
|
end
|
data/rspec-puppet.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'rspec-puppet'
|
3
|
-
s.version = '0.0.
|
3
|
+
s.version = '0.0.4'
|
4
4
|
s.homepage = 'https://github.com/rodjek/rspec-puppet/'
|
5
5
|
s.summary = 'RSpec tests for your Puppet manifests'
|
6
6
|
s.description = 'RSpec tests for your Puppet manifests'
|
@@ -5,3 +5,10 @@ describe 'sysctl::common' do
|
|
5
5
|
.with_command('/sbin/sysctl -p /etc/sysctl.conf').with_returns([0, 2]) }
|
6
6
|
it { should_not create_augeas('foo') }
|
7
7
|
end
|
8
|
+
|
9
|
+
describe 'sysctl::common' do
|
10
|
+
let(:params) { { :test_param => "yes" } }
|
11
|
+
|
12
|
+
it { should create_class("sysctl::common")\
|
13
|
+
.with_test_param("yes") }
|
14
|
+
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
class sysctl::common {
|
1
|
+
class sysctl::common ($test_param = 'yes') {
|
2
2
|
exec { 'sysctl/reload':
|
3
3
|
command => '/sbin/sysctl -p /etc/sysctl.conf',
|
4
4
|
refreshonly => true,
|
@@ -16,3 +16,24 @@ define sysctl($value) {
|
|
16
16
|
notify => Exec['sysctl/reload'],
|
17
17
|
}
|
18
18
|
}
|
19
|
+
|
20
|
+
class boolean($bool) {
|
21
|
+
$real_bool = $bool ? {
|
22
|
+
true => false,
|
23
|
+
false => true,
|
24
|
+
}
|
25
|
+
|
26
|
+
if ($real_bool) {
|
27
|
+
notify {"bool testing":
|
28
|
+
message => "This will print when \$bool is false."
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
define sysctl::before($value) {
|
34
|
+
Class['sysctl::common'] -> Sysctl::Before[$name]
|
35
|
+
|
36
|
+
notify {"message-${name}":
|
37
|
+
message => "This should print if the class is here first."
|
38
|
+
}
|
39
|
+
}
|
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
4
|
+
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
8
|
+
- 4
|
9
|
+
version: 0.0.4
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- Tim Sharpe
|
@@ -15,18 +14,16 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date: 2011-07
|
17
|
+
date: 2011-08-07 00:00:00 -07:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
22
21
|
name: rspec
|
23
22
|
prerelease: false
|
24
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
24
|
requirements:
|
27
25
|
- - ">="
|
28
26
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
27
|
segments:
|
31
28
|
- 0
|
32
29
|
version: "0"
|
@@ -67,27 +64,23 @@ rdoc_options: []
|
|
67
64
|
require_paths:
|
68
65
|
- lib
|
69
66
|
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
-
none: false
|
71
67
|
requirements:
|
72
68
|
- - ">="
|
73
69
|
- !ruby/object:Gem::Version
|
74
|
-
hash: 3
|
75
70
|
segments:
|
76
71
|
- 0
|
77
72
|
version: "0"
|
78
73
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
74
|
requirements:
|
81
75
|
- - ">="
|
82
76
|
- !ruby/object:Gem::Version
|
83
|
-
hash: 3
|
84
77
|
segments:
|
85
78
|
- 0
|
86
79
|
version: "0"
|
87
80
|
requirements: []
|
88
81
|
|
89
82
|
rubyforge_project:
|
90
|
-
rubygems_version: 1.3.
|
83
|
+
rubygems_version: 1.3.6
|
91
84
|
signing_key:
|
92
85
|
specification_version: 3
|
93
86
|
summary: RSpec tests for your Puppet manifests
|