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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a86664e6ab29c0ed0e0c97359927db04a1102cef29cf7ee94a36cff439011bf5
4
- data.tar.gz: e9569469d908418a498eba7d4071ae60987fdc418c612eef55e494438b9dbeb4
3
+ metadata.gz: a801b51dc95463b84662a0e9ac1aaef27f4bb17ed6c174d0c1ea7eec26949716
4
+ data.tar.gz: 0c945dade95af255fa05468cbe35c1034f08a2d866bbc59bb4ed93a3c8a10eef
5
5
  SHA512:
6
- metadata.gz: 56946553e59caae931faae3250077c06ba9a1be2a9e4b371bf64c3d00b69113dbc18a68235c01adf62a8b76e17e06dacc8cd06d5ed83b8a9167939fb9c7de83f
7
- data.tar.gz: 5fcd3b6f54b04d9ceb2bbebcffabb332fa0c22fae4d81c7fc955730a8f6b6ee648278c68f1909200fda70e5f45129b09b4804bd7e5aa9c844a6f1425415283cf
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
@@ -5,6 +5,8 @@ PuppetLint.configuration.log_format = '%{path}:%{line}:%{check}:%{KIND}:%{messag
5
5
  desc 'Run tests'
6
6
  task test: [:release_checks]
7
7
 
8
+ task default: [:release_checks]
9
+
8
10
  namespace :check do
9
11
  desc 'Check for trailing whitespace'
10
12
  task :trailing_whitespace do
@@ -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.0.0
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-04-03 00:00:00.000000000 Z
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