voxpupuli-test 1.0.0 → 1.5.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/lib/voxpupuli/test/facts.rb +34 -0
- data/lib/voxpupuli/test/rake.rb +2 -0
- data/lib/voxpupuli/test/spec_helper.rb +10 -0
- metadata +45 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a801b51dc95463b84662a0e9ac1aaef27f4bb17ed6c174d0c1ea7eec26949716
|
4
|
+
data.tar.gz: 0c945dade95af255fa05468cbe35c1034f08a2d866bbc59bb4ed93a3c8a10eef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e3595de63e7a3106b7a1f528b1bc88dc98026b73713c3e0de9d42728cc2fa17fb005aa0ba4d97d2fd0ac2b0064ec6f237e5a67ac998bcf19436430aeec2bf335
|
7
|
+
data.tar.gz: a82b72aacafe50a821e0c3d48b07276b75b2c5d1baa81677f0bb2af45d026cb5bbf398292242024a8622541ff7c8c19c866aa41fa5435c58d6fdf78cbf22291f
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# Override facts
|
2
|
+
#
|
3
|
+
# This doesn't use deep_merge because that's highly unpredictable. It can merge
|
4
|
+
# nested hashes in place, modifying the original. It's also unable to override
|
5
|
+
# true to false.
|
6
|
+
#
|
7
|
+
# A deep copy is obtained by using Marshal so it can be modified in place. Then
|
8
|
+
# it recursively overrides values. If the result is a hash, it's recursed into.
|
9
|
+
#
|
10
|
+
# A typical example:
|
11
|
+
#
|
12
|
+
# let(:facts) do
|
13
|
+
# override_facts(super(), os: {'selinux' => {'enabled' => false}})
|
14
|
+
# end
|
15
|
+
def override_facts(base_facts, **overrides)
|
16
|
+
facts = Marshal.load(Marshal.dump(base_facts))
|
17
|
+
apply_overrides!(facts, overrides, false)
|
18
|
+
facts
|
19
|
+
end
|
20
|
+
|
21
|
+
# A private helper to override_facts
|
22
|
+
def apply_overrides!(facts, overrides, enforce_strings)
|
23
|
+
overrides.each do |key, value|
|
24
|
+
# Nested facts are strings
|
25
|
+
key = key.to_s if enforce_strings
|
26
|
+
|
27
|
+
if value.is_a?(Hash)
|
28
|
+
facts[key] = {} unless facts.key?(key)
|
29
|
+
apply_overrides!(facts[key], value, true)
|
30
|
+
else
|
31
|
+
facts[key] = value
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/voxpupuli/test/rake.rb
CHANGED
@@ -24,10 +24,20 @@ RSpec.configure do |config|
|
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
|
+
require 'voxpupuli/test/facts'
|
27
28
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
28
29
|
require 'rspec-puppet-facts'
|
29
30
|
include RspecPuppetFacts
|
30
31
|
|
32
|
+
# Generating facts is slow - this memoizes the facts between multiple classes.
|
33
|
+
# Marshalling is used to get unique instances which helps when tests overrides
|
34
|
+
# facts.
|
35
|
+
FACTS_CACHE = {}
|
36
|
+
def on_supported_os(opts = {})
|
37
|
+
result = FACTS_CACHE[opts.to_s] ||= super(opts)
|
38
|
+
Marshal.load(Marshal.dump(result))
|
39
|
+
end
|
40
|
+
|
31
41
|
RSpec.configure do |config|
|
32
42
|
config.default_facter_version = suggest_facter_version
|
33
43
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voxpupuli-test
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vox Pupuli
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-06-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: facterdb
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 1.4.0
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 1.4.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: metadata-json-lint
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -262,6 +276,34 @@ dependencies:
|
|
262
276
|
- - ">="
|
263
277
|
- !ruby/object:Gem::Version
|
264
278
|
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: puppet-lint-resource_reference_syntax
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :runtime
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ">="
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: rspec
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
265
307
|
description: A package that depends on all the gems Vox Pupuli modules need and methods
|
266
308
|
to simplify spec helpers
|
267
309
|
email:
|
@@ -271,6 +313,7 @@ extensions: []
|
|
271
313
|
extra_rdoc_files: []
|
272
314
|
files:
|
273
315
|
- lib/voxpupuli/test.rb
|
316
|
+
- lib/voxpupuli/test/facts.rb
|
274
317
|
- lib/voxpupuli/test/rake.rb
|
275
318
|
- lib/voxpupuli/test/spec_helper.rb
|
276
319
|
homepage: http://github.com/voxpupuli/voxpupuli-test
|