voxpupuli-test 2.1.2 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/voxpupuli/test/facts.rb +63 -0
- data/lib/voxpupuli/test/spec_helper.rb +0 -2
- data/rubocop.yml +3 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c7da6bd0c182ed7ca73d10787b1b25fe1efcda71f1a2fad94f9e978699194fc
|
4
|
+
data.tar.gz: dbe2534a132bdddb6cca76012c7f3d066fc285c28aba98c7516035e658818c74
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7ded37c0fdd619b12575b7d7b8374896b4788b3927bed7592105b2917c961585a55786344f708db4db1fc7b470dc84f9e9ca1e6b8c5bd2ef82b1f0943cabc17a
|
7
|
+
data.tar.gz: 34a67d9d9835868e4ac4c7c68da131def85703a05a273aef0d5ac516cb14291f87b24d498d0df68c723bb2edd621a2267aa5567a4dc608b0c17c92b2e2d22b7f
|
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
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.2.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-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -378,7 +378,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
378
378
|
- !ruby/object:Gem::Version
|
379
379
|
version: '0'
|
380
380
|
requirements: []
|
381
|
-
rubygems_version: 3.
|
381
|
+
rubygems_version: 3.1.4
|
382
382
|
signing_key:
|
383
383
|
specification_version: 4
|
384
384
|
summary: Helpers for testing Vox Pupuli modules
|