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 +4 -4
- data/lib/voxpupuli/test/facts.rb +63 -0
- data/lib/voxpupuli/test/spec_helper.rb +0 -2
- data/rubocop.yml +4 -1
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f6d599131b16f42240c3870dc33689158046b44c3754f53f3092c83dab42a4e
|
4
|
+
data.tar.gz: 33ff88f7e97048900ca71a4b7de6a62c84f3bfb21eb3bd0b3349399674d02abc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0932b5282740e2c5c4e1a2467cfdcdf54c099e1d25a49db127db44cde7f2109d35aa7f6398833be848bcad28fe3c0c60d86a7ad560acc5a03a1e6aecf3e9d1d
|
7
|
+
data.tar.gz: 94ad5f26334c72f1e681fa08396b133d2172312983e7a696f450f3cf74d4d1113cfc7ab939cff24c0e4ad95dc5bb8f9d630b6f2119d8872178d3f5fe49536e65
|
data/lib/voxpupuli/test/facts.rb
CHANGED
@@ -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:
|
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.
|
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:
|
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.
|
395
|
+
rubygems_version: 3.1.6
|
382
396
|
signing_key:
|
383
397
|
specification_version: 4
|
384
398
|
summary: Helpers for testing Vox Pupuli modules
|