rspec-puppet 2.6.15 → 2.7.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/rspec-puppet.rb +2 -0
- data/lib/rspec-puppet/adapters.rb +8 -1
- data/lib/rspec-puppet/consts.rb +26 -0
- data/lib/rspec-puppet/matchers/compile.rb +0 -2
- data/lib/rspec-puppet/matchers/create_generic.rb +0 -2
- data/lib/rspec-puppet/matchers/parameter_matcher.rb +12 -2
- data/lib/rspec-puppet/monkey_patches.rb +38 -13
- data/lib/rspec-puppet/support.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fe98cc153715d0f4a7ea74302e22db11b27f256b
|
4
|
+
data.tar.gz: 0ff2d613a201b5b50779674bc126904555203c66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24db31229795fcfd326243a0b2fc20a17c78b6ee772f28092f9afd917534a3dd307d688c3934ef590c857027944c6fc9432baea652c7c4ecfbd40e563eb89dd1
|
7
|
+
data.tar.gz: 50fa9b5882460e10e4148c4b78372b3f366178738fe5fa92dfee522e8b4811a5378156623e0f6d13e030c912f9a5560d6f4051e0cd7aa7a249c59600a55fe20f
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
All notable changes to this project will be documented in this file. This
|
3
3
|
project adheres to [Semantic Versioning](http://semver.org/).
|
4
4
|
|
5
|
+
## [2.7.0]
|
6
|
+
|
7
|
+
### Changed
|
8
|
+
* Official Puppet 6 support added.
|
9
|
+
* When testing resource parameter values, the values received from Puppet are
|
10
|
+
now reencoded before testing to ensure that the line endings (if present)
|
11
|
+
match the platform being tested.
|
12
|
+
* `vendormoduledir` and `basemodulepath` settings (introduced in Puppet 6) are
|
13
|
+
now configurable in rspec-puppet.
|
14
|
+
|
5
15
|
## [2.6.15]
|
6
16
|
|
7
17
|
### Fixed
|
data/lib/rspec-puppet.rb
CHANGED
@@ -52,6 +52,8 @@ RSpec.configure do |c|
|
|
52
52
|
c.add_setting :derive_node_facts_from_nodename, :default => true
|
53
53
|
c.add_setting :adapter
|
54
54
|
c.add_setting :platform, :default => Puppet::Util::Platform.actual_platform
|
55
|
+
c.add_setting :vendormoduledir, :default => Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
|
56
|
+
c.add_setting :basemodulepath, :default => Puppet::Util::Platform.actually_windows? ? 'c:/nul/' : '/dev/null'
|
55
57
|
|
56
58
|
c.instance_eval do
|
57
59
|
def trusted_server_facts
|
@@ -192,7 +192,14 @@ module RSpec::Puppet
|
|
192
192
|
end
|
193
193
|
end
|
194
194
|
|
195
|
-
class Adapter6X < Adapter40
|
195
|
+
class Adapter6X < Adapter40
|
196
|
+
def settings_map
|
197
|
+
super.concat([
|
198
|
+
[:basemodulepath, :basemodulepath],
|
199
|
+
[:vendormoduledir, :vendormoduledir],
|
200
|
+
])
|
201
|
+
end
|
202
|
+
end
|
196
203
|
|
197
204
|
class Adapter30 < Base
|
198
205
|
def settings_map
|
data/lib/rspec-puppet/consts.rb
CHANGED
@@ -12,10 +12,25 @@ module RSpec::Puppet::Consts
|
|
12
12
|
}
|
13
13
|
}
|
14
14
|
|
15
|
+
FEATURES = {
|
16
|
+
:posix => {
|
17
|
+
:posix => true,
|
18
|
+
:microsoft_windows => false,
|
19
|
+
},
|
20
|
+
:windows => {
|
21
|
+
:posix => false,
|
22
|
+
:microsoft_windows => true,
|
23
|
+
},
|
24
|
+
}
|
25
|
+
|
15
26
|
def self.stub_consts_for(platform)
|
16
27
|
STUBBED_CONSTS[platform].each do |const_name, const_value|
|
17
28
|
stub_const_wrapper(const_name, const_value)
|
18
29
|
end
|
30
|
+
Puppet::Util::Platform.pretend_to_be(platform)
|
31
|
+
FEATURES[platform].each do |feature_name, feature_value|
|
32
|
+
Puppet.features.add(feature_name) { feature_value }
|
33
|
+
end
|
19
34
|
end
|
20
35
|
|
21
36
|
def self.stub_const_wrapper(const, value)
|
@@ -28,4 +43,15 @@ module RSpec::Puppet::Consts
|
|
28
43
|
def self.restore_consts
|
29
44
|
stub_consts_for(RSpec.configuration.platform)
|
30
45
|
end
|
46
|
+
|
47
|
+
def self.without_stubs
|
48
|
+
if Puppet::Util::Platform.pretending?
|
49
|
+
pretend_platform = Puppet::Util::Platform.pretend_platform
|
50
|
+
restore_consts
|
51
|
+
end
|
52
|
+
|
53
|
+
yield
|
54
|
+
ensure
|
55
|
+
stub_consts_for(pretend_platform) if pretend_platform
|
56
|
+
end
|
31
57
|
end
|
@@ -138,7 +138,6 @@ module RSpec::Puppet
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def cycles_found?
|
141
|
-
Puppet::Type.suppress_provider
|
142
141
|
cat = @catalogue.to_ral.relationship_graph
|
143
142
|
cat.write_graph(:resources)
|
144
143
|
if cat.respond_to? :find_cycles_in_graph
|
@@ -146,7 +145,6 @@ module RSpec::Puppet
|
|
146
145
|
else
|
147
146
|
find_cycles_legacy(cat)
|
148
147
|
end
|
149
|
-
Puppet::Type.unsuppress_provider
|
150
148
|
|
151
149
|
!@cycles.empty?
|
152
150
|
end
|
@@ -294,7 +294,6 @@ module RSpec::Puppet
|
|
294
294
|
end
|
295
295
|
end
|
296
296
|
|
297
|
-
Puppet::Type.suppress_provider
|
298
297
|
# Add autorequires if any
|
299
298
|
if type == :require and resource.resource_type.respond_to? :eachautorequire
|
300
299
|
resource.resource_type.eachautorequire do |t, b|
|
@@ -307,7 +306,6 @@ module RSpec::Puppet
|
|
307
306
|
end
|
308
307
|
end
|
309
308
|
end
|
310
|
-
Puppet::Type.unsuppress_provider
|
311
309
|
|
312
310
|
results.flatten
|
313
311
|
end
|
@@ -78,7 +78,7 @@ module RSpec::Puppet
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def check_regexp(expected, actual)
|
81
|
-
!!(actual.to_s.match expected) == @should_match
|
81
|
+
!!(munge_line_endings(actual.to_s).match expected) == @should_match
|
82
82
|
end
|
83
83
|
|
84
84
|
# Ensure that two hashes have the same number of keys, and that for each
|
@@ -119,7 +119,17 @@ module RSpec::Puppet
|
|
119
119
|
end
|
120
120
|
|
121
121
|
def check_string(expected, actual)
|
122
|
-
(expected.to_s == actual.to_s) == @should_match
|
122
|
+
(expected.to_s == munge_line_endings(actual.to_s)) == @should_match
|
123
|
+
end
|
124
|
+
|
125
|
+
def munge_line_endings(value)
|
126
|
+
return value unless value.respond_to?(:encode)
|
127
|
+
|
128
|
+
if Puppet::Util::Platform.windows?
|
129
|
+
value.encode(:crlf_newline => true)
|
130
|
+
else
|
131
|
+
value.encode(:universal_newline => true)
|
132
|
+
end
|
123
133
|
end
|
124
134
|
end
|
125
135
|
end
|
@@ -98,18 +98,6 @@ module Puppet
|
|
98
98
|
old_set_default.bind(self).call(attr)
|
99
99
|
end
|
100
100
|
end
|
101
|
-
|
102
|
-
def self.suppress_provider?
|
103
|
-
@suppress_provider ||= false
|
104
|
-
end
|
105
|
-
|
106
|
-
def self.suppress_provider
|
107
|
-
@suppress_provider = true
|
108
|
-
end
|
109
|
-
|
110
|
-
def self.unsuppress_provider
|
111
|
-
@suppress_provider = false
|
112
|
-
end
|
113
101
|
end
|
114
102
|
|
115
103
|
module Parser::Files
|
@@ -159,6 +147,22 @@ module Puppet
|
|
159
147
|
module_function :get_env
|
160
148
|
end
|
161
149
|
|
150
|
+
if respond_to?(:path_to_uri)
|
151
|
+
alias :old_path_to_uri :path_to_uri
|
152
|
+
module_function :old_path_to_uri
|
153
|
+
|
154
|
+
def path_to_uri(*args)
|
155
|
+
if RSpec::Puppet.rspec_puppet_example?
|
156
|
+
RSpec::Puppet::Consts.without_stubs do
|
157
|
+
old_path_to_uri(*args)
|
158
|
+
end
|
159
|
+
else
|
160
|
+
old_path_to_uri(*args)
|
161
|
+
end
|
162
|
+
end
|
163
|
+
module_function :path_to_uri
|
164
|
+
end
|
165
|
+
|
162
166
|
# Allow rspec-puppet to pretend to be different platforms.
|
163
167
|
module Platform
|
164
168
|
alias :old_windows? :windows?
|
@@ -166,7 +170,7 @@ module Puppet
|
|
166
170
|
|
167
171
|
def windows?
|
168
172
|
if RSpec::Puppet.rspec_puppet_example?
|
169
|
-
|
173
|
+
!pretending? ? (actual_platform == :windows) : pretend_windows?
|
170
174
|
else
|
171
175
|
old_windows?
|
172
176
|
end
|
@@ -201,6 +205,27 @@ module Puppet
|
|
201
205
|
@pretend_platform ||= nil
|
202
206
|
end
|
203
207
|
module_function :pretend_platform
|
208
|
+
|
209
|
+
def pretending?
|
210
|
+
!pretend_platform.nil?
|
211
|
+
end
|
212
|
+
module_function :pretending?
|
213
|
+
end
|
214
|
+
|
215
|
+
class Autoload
|
216
|
+
if singleton_class.respond_to?(:load_file)
|
217
|
+
singleton_class.send(:alias_method, :old_load_file, :load_file)
|
218
|
+
|
219
|
+
def self.load_file(*args)
|
220
|
+
if RSpec::Puppet.rspec_puppet_example?
|
221
|
+
RSpec::Puppet::Consts.without_stubs do
|
222
|
+
old_load_file(*args)
|
223
|
+
end
|
224
|
+
else
|
225
|
+
old_load_file(*args)
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
204
229
|
end
|
205
230
|
end
|
206
231
|
|
data/lib/rspec-puppet/support.rb
CHANGED
@@ -408,7 +408,7 @@ module RSpec::Puppet
|
|
408
408
|
end
|
409
409
|
|
410
410
|
def stub_facts!(facts)
|
411
|
-
Puppet.settings[:autosign] = false
|
411
|
+
Puppet.settings[:autosign] = false if Puppet.settings.include? :autosign
|
412
412
|
Facter.clear
|
413
413
|
facts.each { |k, v| Facter.add(k, :weight => 999) { setcode { v } } }
|
414
414
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rspec-puppet
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Sharpe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-10-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|