rspec-puppet 2.6.1 → 2.6.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -0
- data/README.md +26 -18
- data/lib/rspec-puppet/setup.rb +20 -3
- data/lib/rspec-puppet/support.rb +8 -5
- data/lib/rspec-puppet.rb +4 -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: fedfa152ac9857ea6c8546a70342cf148c3f89e9
|
4
|
+
data.tar.gz: ed8fbef4a778aae5e62f2726333013b6a7ebdcf9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ab88d6b0992c638114272cdfd820a0be3a50e5cfa118ec07b5f39f52a5d4c4b657b9bf9c40a83d1a7cb805bf7d5241e95c1e5dfe3e12910709b5144824ad97f9
|
7
|
+
data.tar.gz: a5a51096595b4074a91626363e01158f14724e9907e2569a5a801e1acfde5d21de9a1be06d6c664d80dbfb1ec87fba0193f0a541f7e49e91fec880dc4c4a390a
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,29 @@
|
|
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.6.2]
|
6
|
+
|
7
|
+
### Changed
|
8
|
+
|
9
|
+
* Puppet 5.0.x added to the CI test matrices.
|
10
|
+
* The automatic setup code now checks for the presence of `metadata.json` in
|
11
|
+
the working directory. If not present, it assumes that rspec-puppet is
|
12
|
+
running from inside a control repo instead of a module and skips creating
|
13
|
+
the `spec/fixtures` directory structure and link.
|
14
|
+
|
15
|
+
### Added
|
16
|
+
|
17
|
+
* A new configuration option has been added
|
18
|
+
(`RSpec.configuration.setup_fixtures`) that controls whether rspec-puppet
|
19
|
+
will manage the `spec/fixtures` link.
|
20
|
+
|
21
|
+
### Fixed
|
22
|
+
|
23
|
+
* A race condition when running rspec-puppet under parallel\_tests causing
|
24
|
+
errors when creating the `spec/fixtures` link.
|
25
|
+
* The contents of the `networking` fact hash is no longer cleared when merging
|
26
|
+
in the facts derived from the node name.
|
27
|
+
|
5
28
|
## [2.6.1]
|
6
29
|
|
7
30
|
### Fixed
|
data/README.md
CHANGED
@@ -61,36 +61,36 @@ The path to the directory containing your basic manifests like `site.pp`.
|
|
61
61
|
|
62
62
|
#### module\_path
|
63
63
|
Type | Default | Puppet Version(s)
|
64
|
-
------ | -------- |
|
65
|
-
String | Required | 2.x, 3.x, 4.x
|
64
|
+
------ | -------- | ------------------
|
65
|
+
String | Required | 2.x, 3.x, 4.x, 5.x
|
66
66
|
|
67
67
|
The path to the directory containing your Puppet modules.
|
68
68
|
|
69
69
|
#### default\_facts
|
70
70
|
Type | Default | Puppet Version(s)
|
71
|
-
---- | ------- |
|
72
|
-
Hash | `{}` | 2.x, 3.x, 4.x
|
71
|
+
---- | ------- | ------------------
|
72
|
+
Hash | `{}` | 2.x, 3.x, 4.x, 5.x
|
73
73
|
|
74
74
|
A hash of default facts that should be used for all the tests.
|
75
75
|
|
76
76
|
#### hiera\_config
|
77
77
|
Type | Default | Puppet Version(s)
|
78
78
|
------ | ------------- | -----------------
|
79
|
-
String | `"/dev/null"` | 3.x, 4.x
|
79
|
+
String | `"/dev/null"` | 3.x, 4.x, 5.x
|
80
80
|
|
81
81
|
The path to your `hiera.yaml` file (if used).
|
82
82
|
|
83
83
|
#### default\_node\_params
|
84
84
|
Type | Default | Puppet Version(s)
|
85
85
|
---- | ------- | -----------------
|
86
|
-
Hash | `{}` | 4.x
|
86
|
+
Hash | `{}` | 4.x, 5.x
|
87
87
|
|
88
88
|
A hash of default node parameters that should be used for all the tests.
|
89
89
|
|
90
90
|
#### default\_trusted\_facts
|
91
91
|
Type | Default | Puppet Version(s)
|
92
92
|
---- | ------- | -----------------
|
93
|
-
Hash | `{}` | 4.x
|
93
|
+
Hash | `{}` | 4.x, 5.x
|
94
94
|
|
95
95
|
A hash of default trusted facts that should be used for all the tests
|
96
96
|
(available in the manifests as the `$trusted` hash). In order to use this, the
|
@@ -99,22 +99,22 @@ A hash of default trusted facts that should be used for all the tests
|
|
99
99
|
#### trusted\_node\_data
|
100
100
|
Type | Default | Puppet Version(s)
|
101
101
|
------- | ------- | -----------------
|
102
|
-
Boolean | `false` | 3.x, 4.x
|
102
|
+
Boolean | `false` | 3.x, 4.x, 5.x
|
103
103
|
|
104
104
|
Configures rspec-puppet to use the `$trusted` hash when compiling the
|
105
105
|
catalogues.
|
106
106
|
|
107
107
|
#### confdir
|
108
108
|
Type | Default | Puppet Version(s)
|
109
|
-
------ | --------------- |
|
110
|
-
String | `"/etc/puppet"` | 2.x, 3.x, 4.x
|
109
|
+
------ | --------------- | ------------------
|
110
|
+
String | `"/etc/puppet"` | 2.x, 3.x, 4.x, 5.x
|
111
111
|
|
112
112
|
The path to the main Puppet configuration directory.
|
113
113
|
|
114
114
|
#### config
|
115
115
|
Type | Default | Puppet Version(s)
|
116
|
-
------ | ---------------------- |
|
117
|
-
String | Puppet's default value | 2.x, 3.x, 4.x
|
116
|
+
------ | ---------------------- | ------------------
|
117
|
+
String | Puppet's default value | 2.x, 3.x, 4.x, 5.x
|
118
118
|
|
119
119
|
The path to `puppet.conf`.
|
120
120
|
|
@@ -136,7 +136,7 @@ stored outside of modules.
|
|
136
136
|
#### environmentpath
|
137
137
|
Type | Default | Puppet Version(s)
|
138
138
|
------ | ------------------------------------- | -----------------
|
139
|
-
String | `"/etc/puppetlabs/code/environments"` | 4.x
|
139
|
+
String | `"/etc/puppetlabs/code/environments"` | 4.x, 5.x
|
140
140
|
|
141
141
|
The search path for environment directories.
|
142
142
|
|
@@ -150,7 +150,7 @@ This switches between the 3.x (`current`) and 4.x (`future`) parsers.
|
|
150
150
|
#### ordering
|
151
151
|
Type | Default | Puppet Version(s)
|
152
152
|
------ | -------------- | -----------------
|
153
|
-
String | `"title-hash"` | 3.x, 4.x
|
153
|
+
String | `"title-hash"` | 3.x, 4.x, 5.x
|
154
154
|
|
155
155
|
How unrelated resources should be ordered when applying a catalogue.
|
156
156
|
* `manifest` - Use the order in which the resources are declared in the
|
@@ -162,7 +162,7 @@ How unrelated resources should be ordered when applying a catalogue.
|
|
162
162
|
#### strict\_variables
|
163
163
|
Type | Default | Puppet Version(s)
|
164
164
|
------- | ------- | -----------------
|
165
|
-
Boolean | `false` | 3.x, 4.x
|
165
|
+
Boolean | `false` | 3.x, 4.x, 5.x
|
166
166
|
|
167
167
|
Makes Puppet raise an error when it tries to reference a variable that hasn't
|
168
168
|
been defined (not including variables that have been explicitly set to
|
@@ -171,21 +171,29 @@ been defined (not including variables that have been explicitly set to
|
|
171
171
|
#### stringify\_facts
|
172
172
|
Type | Default | Puppet Version(s)
|
173
173
|
------- | ------- | -----------------
|
174
|
-
Boolean | `true` | 3.x, 4.x
|
174
|
+
Boolean | `true` | 3.x, 4.x, 5.x
|
175
175
|
|
176
176
|
Makes rspec-puppet coerce all the fact values into strings (matching the
|
177
177
|
behaviour of older versions of Puppet).
|
178
178
|
|
179
179
|
#### enable\_pathname\_stubbing
|
180
180
|
Type | Default | Puppet Version(s)
|
181
|
-
------- | ------- |
|
182
|
-
Boolean |`false` | 2.x, 3.x, 4.x
|
181
|
+
------- | ------- | ------------------
|
182
|
+
Boolean |`false` | 2.x, 3.x, 4.x, 5.x
|
183
183
|
|
184
184
|
Configures rspec-puppet to stub out `Pathname#absolute?` with it's own
|
185
185
|
implementation. This should only be enabled if you're running into an issue
|
186
186
|
running cross-platform tests where you have Ruby code (types, providers,
|
187
187
|
functions, etc) that use `Pathname#absolute?`.
|
188
188
|
|
189
|
+
#### setup\_fixtures
|
190
|
+
Type | Default | Puppet Version(s)
|
191
|
+
------- | ------- | ------------------
|
192
|
+
Boolean | `true` | 2.x, 3.x, 4.x, 5.x
|
193
|
+
|
194
|
+
Configures rspec-puppet to automatically create a link from the root of your
|
195
|
+
module to `spec/fixtures/<module name>` at the beginning of the test run.
|
196
|
+
|
189
197
|
## Naming conventions
|
190
198
|
|
191
199
|
For clarity and consistency, I recommend that you use the following directory
|
data/lib/rspec-puppet/setup.rb
CHANGED
@@ -20,10 +20,15 @@ module RSpec::Puppet
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def self.safe_setup_directories(module_name=nil, verbose=true)
|
23
|
+
if control_repo?
|
24
|
+
$stderr.puts "Unable to setup rspec-puppet automatically in a control repo" if verbose
|
25
|
+
return false
|
26
|
+
end
|
27
|
+
|
23
28
|
if module_name.nil?
|
24
29
|
module_name = get_module_name
|
25
30
|
if module_name.nil?
|
26
|
-
$stderr.puts "Unable to determine module name. Aborting"
|
31
|
+
$stderr.puts "Unable to determine module name. Aborting" if verbose
|
27
32
|
return false
|
28
33
|
end
|
29
34
|
end
|
@@ -58,6 +63,10 @@ module RSpec::Puppet
|
|
58
63
|
end
|
59
64
|
end
|
60
65
|
protected
|
66
|
+
def self.control_repo?
|
67
|
+
!File.exist?('metadata.json')
|
68
|
+
end
|
69
|
+
|
61
70
|
def self.get_module_name
|
62
71
|
module_name = nil
|
63
72
|
Dir["manifests/*.pp"].entries.each do |manifest|
|
@@ -97,7 +106,11 @@ module RSpec::Puppet
|
|
97
106
|
$stderr.puts "!! #{dir} already exists and is not a directory"
|
98
107
|
end
|
99
108
|
else
|
100
|
-
|
109
|
+
begin
|
110
|
+
FileUtils.mkdir dir
|
111
|
+
rescue Errno::EEXIST => e
|
112
|
+
raise e unless File.directory? dir
|
113
|
+
end
|
101
114
|
puts " + #{dir}/" if verbose
|
102
115
|
end
|
103
116
|
end
|
@@ -145,7 +158,11 @@ module RSpec::Puppet
|
|
145
158
|
abort
|
146
159
|
end
|
147
160
|
else
|
148
|
-
|
161
|
+
begin
|
162
|
+
FileUtils.ln_s(File.expand_path(source), target)
|
163
|
+
rescue Errno::EEXIST => e
|
164
|
+
raise e unless File.symlink?(target) && File.readlink(target) == File.expand_path(source)
|
165
|
+
end
|
149
166
|
end
|
150
167
|
puts " + #{target}" if verbose
|
151
168
|
end
|
data/lib/rspec-puppet/support.rb
CHANGED
@@ -214,11 +214,12 @@ module RSpec::Puppet
|
|
214
214
|
'fqdn' => node,
|
215
215
|
'domain' => node.split('.', 2).last,
|
216
216
|
'clientcert' => node,
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
217
|
+
}
|
218
|
+
|
219
|
+
networking_facts = {
|
220
|
+
'hostname' => node_facts['hostname'],
|
221
|
+
'fqdn' => node_facts['fqdn'],
|
222
|
+
'domain' => node_facts['domain'],
|
222
223
|
}
|
223
224
|
|
224
225
|
result_facts = if RSpec.configuration.default_facts.any?
|
@@ -231,6 +232,8 @@ module RSpec::Puppet
|
|
231
232
|
result_facts.merge!(munge_facts(facts)) if self.respond_to?(:facts)
|
232
233
|
result_facts.merge!(munge_facts(node_facts))
|
233
234
|
|
235
|
+
(result_facts['networking'] ||= {}).merge!(networking_facts)
|
236
|
+
|
234
237
|
# Facter currently supports lower case facts. Bug FACT-777 has been submitted to support case sensitive
|
235
238
|
# facts.
|
236
239
|
downcase_facts = Hash[result_facts.map { |k, v| [k.downcase, v] }]
|
data/lib/rspec-puppet.rb
CHANGED
@@ -38,9 +38,12 @@ RSpec.configure do |c|
|
|
38
38
|
c.add_setting :stringify_facts, :default => true
|
39
39
|
c.add_setting :strict_variables, :default => false
|
40
40
|
c.add_setting :adapter
|
41
|
+
c.add_setting :setup_fixtures, :default => true
|
41
42
|
|
42
43
|
c.before(:all) do
|
43
|
-
RSpec
|
44
|
+
if RSpec.configuration.setup_fixtures?
|
45
|
+
RSpec::Puppet::Setup.safe_setup_directories(nil, false)
|
46
|
+
end
|
44
47
|
end
|
45
48
|
|
46
49
|
if defined?(Puppet::Test::TestHelper)
|
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.6.
|
4
|
+
version: 2.6.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Sharpe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|