voxpupuli-test 2.1.0 → 2.3.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: d745fbc5827db89bff008ceea7f415ee870656b2f3375e2b5d39d6cb8603fe45
4
- data.tar.gz: 9f6a7acc3bbcbef5325784bdd49ec228d2f3ce5f5cb4395ace8b448ef03298e6
3
+ metadata.gz: 0f6d599131b16f42240c3870dc33689158046b44c3754f53f3092c83dab42a4e
4
+ data.tar.gz: 33ff88f7e97048900ca71a4b7de6a62c84f3bfb21eb3bd0b3349399674d02abc
5
5
  SHA512:
6
- metadata.gz: '088ca28eb46d3ed311a445416d921ad8963a0011c45592032330ad0111bdd51349cc9e0d64b2b8614fb529b37057e1dea16d8d899cc3a5242ed7290663f08fad'
7
- data.tar.gz: c836147f89558f2780ebe754ce64f97db24dbd287ae198161cdac31ffec93ed359d377ee85bb0cbd239d0a849573b5b002959fae11f36bd015e4092cb599d216
6
+ metadata.gz: a0932b5282740e2c5c4e1a2467cfdcdf54c099e1d25a49db127db44cde7f2109d35aa7f6398833be848bcad28fe3c0c60d86a7ad560acc5a03a1e6aecf3e9d1d
7
+ data.tar.gz: 94ad5f26334c72f1e681fa08396b133d2172312983e7a696f450f3cf74d4d1113cfc7ab939cff24c0e4ad95dc5bb8f9d630b6f2119d8872178d3f5fe49536e65
@@ -1,3 +1,6 @@
1
+ require 'rspec-puppet-facts'
2
+ include RspecPuppetFacts
3
+
1
4
  # Override facts
2
5
  #
3
6
  # This doesn't use deep_merge because that's highly unpredictable. It can merge
@@ -32,3 +35,63 @@ def apply_overrides!(facts, overrides, enforce_strings)
32
35
  end
33
36
  end
34
37
  end
38
+
39
+ # Add mocked facts based on the metadata present in the module
40
+ #
41
+ # This means that for some module there are hardcoded mocks, such as stdlib.
42
+ # When stdlib is present in metadata.json, facts like service_provider are
43
+ # mocked and return the correct value according to the OS facts.
44
+ def add_mocked_facts!
45
+ add_facts_for_metadata(RspecPuppetFacts.metadata)
46
+ end
47
+
48
+ def add_facts_for_metadata(metadata)
49
+ return unless metadata && metadata['dependencies']
50
+
51
+ metadata['dependencies'].each do |dependency|
52
+ case normalize_module_name(dependency['name'])
53
+ when 'camptocamp/systemd'
54
+ add_custom_fact :systemd, ->(os, facts) { facts[:service_provider] == 'systemd' }
55
+ when 'puppetlabs/stdlib'
56
+ add_stdlib_facts
57
+ end
58
+ end
59
+ end
60
+
61
+ def normalize_module_name(name)
62
+ return unless name
63
+ name.sub('-', '/')
64
+ end
65
+
66
+ def add_stdlib_facts
67
+ add_custom_fact :puppet_environmentpath, '/etc/puppetlabs/code/environments'
68
+ add_custom_fact :puppet_vardir, '/opt/puppetlabs/puppet/cache'
69
+ add_custom_fact :root_home, '/root'
70
+
71
+ # Rough conversion of grepping in the puppet source:
72
+ # grep defaultfor lib/puppet/provider/service/*.rb
73
+ add_custom_fact :service_provider, ->(os, facts) do
74
+ case facts[:osfamily].downcase
75
+ when 'archlinux'
76
+ 'systemd'
77
+ when 'darwin'
78
+ 'launchd'
79
+ when 'debian'
80
+ 'systemd'
81
+ when 'freebsd'
82
+ 'freebsd'
83
+ when 'gentoo'
84
+ 'openrc'
85
+ when 'openbsd'
86
+ 'openbsd'
87
+ when 'redhat'
88
+ facts[:operatingsystemrelease].to_i >= 7 ? 'systemd' : 'redhat'
89
+ when 'suse'
90
+ facts[:operatingsystemmajrelease].to_i >= 12 ? 'systemd' : 'redhat'
91
+ when 'windows'
92
+ 'windows'
93
+ else
94
+ 'init'
95
+ end
96
+ end
97
+ end
@@ -26,8 +26,6 @@ end
26
26
 
27
27
  require 'voxpupuli/test/facts'
28
28
  require 'puppetlabs_spec_helper/module_spec_helper'
29
- require 'rspec-puppet-facts'
30
- include RspecPuppetFacts
31
29
 
32
30
  # Generating facts is slow - this memoizes the facts between multiple classes.
33
31
  # Marshalling is used to get unique instances which helps when tests overrides
data/rubocop.yml CHANGED
@@ -161,6 +161,9 @@ Style/BracesAroundHashParameters:
161
161
  Style/CaseEquality:
162
162
  Enabled: True
163
163
 
164
+ Style/TrailingCommaInArguments:
165
+ Enabled: False
166
+
164
167
  Layout/CaseIndentation:
165
168
  Enabled: True
166
169
 
@@ -333,7 +336,7 @@ Style/TrailingCommaInArguments:
333
336
  Enabled: True
334
337
 
335
338
  Style/TrailingCommaInLiteral:
336
- Enabled: True
339
+ Enabled: False
337
340
 
338
341
  Style/GlobalVars:
339
342
  Enabled: True
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: 2.1.0
4
+ version: 2.3.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-08-18 00:00:00.000000000 Z
11
+ date: 2021-07-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -332,6 +332,20 @@ dependencies:
332
332
  - - ">="
333
333
  - !ruby/object:Gem::Version
334
334
  version: '0'
335
+ - !ruby/object:Gem::Dependency
336
+ name: puppet-lint-optional_default-check
337
+ requirement: !ruby/object:Gem::Requirement
338
+ requirements:
339
+ - - ">="
340
+ - !ruby/object:Gem::Version
341
+ version: '0'
342
+ type: :runtime
343
+ prerelease: false
344
+ version_requirements: !ruby/object:Gem::Requirement
345
+ requirements:
346
+ - - ">="
347
+ - !ruby/object:Gem::Version
348
+ version: '0'
335
349
  - !ruby/object:Gem::Dependency
336
350
  name: rspec
337
351
  requirement: !ruby/object:Gem::Requirement
@@ -378,7 +392,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
378
392
  - !ruby/object:Gem::Version
379
393
  version: '0'
380
394
  requirements: []
381
- rubygems_version: 3.0.6
395
+ rubygems_version: 3.1.6
382
396
  signing_key:
383
397
  specification_version: 4
384
398
  summary: Helpers for testing Vox Pupuli modules