voxpupuli-test 2.1.1 → 2.4.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 -11
- data/rubocop.yml +3 -0
- metadata +25 -19
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 361d2ad94e5056a8e275cb19c1e86ee840f43bb509824ba8e16cba329b19dd48
|
4
|
+
data.tar.gz: 303f4147709526d641ba0f7325a5567a2bd49c273b5c16c383360bcdfefe7dd2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ade2b704c7ed442bcac56036004dee1c1eefbe3e595a21889113d0bef71aa32f1800c21a34a2f3fdd7e6971520279f887ce4864c623a6264349e3a19069a826e
|
7
|
+
data.tar.gz: 3f4de0c79140863e4625cf98ef1fd7cc07d906c0a89e2deac355b81a3aadda4331474a47dd408694d59efd3c1c0f2982bd3aeb1cf4e605578bd07ec941c3ea71
|
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,17 +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
|
-
|
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
29
|
|
41
30
|
RSpec.configure do |config|
|
42
31
|
config.default_facter_version = suggest_facter_version
|
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.4.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
|
@@ -86,14 +86,20 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 2.0.1
|
90
|
+
- - "<"
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '3'
|
90
93
|
type: :runtime
|
91
94
|
prerelease: false
|
92
95
|
version_requirements: !ruby/object:Gem::Requirement
|
93
96
|
requirements:
|
94
97
|
- - ">="
|
95
98
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
99
|
+
version: 2.0.1
|
100
|
+
- - "<"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '3'
|
97
103
|
- !ruby/object:Gem::Dependency
|
98
104
|
name: rspec-puppet-utils
|
99
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,20 +114,6 @@ dependencies:
|
|
108
114
|
- - ">="
|
109
115
|
- !ruby/object:Gem::Version
|
110
116
|
version: 1.9.5
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: rspec-expectations
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - "<"
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: 3.10.0
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
requirements:
|
122
|
-
- - "<"
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: 3.10.0
|
125
117
|
- !ruby/object:Gem::Dependency
|
126
118
|
name: rubocop
|
127
119
|
requirement: !ruby/object:Gem::Requirement
|
@@ -346,6 +338,20 @@ dependencies:
|
|
346
338
|
- - ">="
|
347
339
|
- !ruby/object:Gem::Version
|
348
340
|
version: '0'
|
341
|
+
- !ruby/object:Gem::Dependency
|
342
|
+
name: puppet-lint-optional_default-check
|
343
|
+
requirement: !ruby/object:Gem::Requirement
|
344
|
+
requirements:
|
345
|
+
- - ">="
|
346
|
+
- !ruby/object:Gem::Version
|
347
|
+
version: '0'
|
348
|
+
type: :runtime
|
349
|
+
prerelease: false
|
350
|
+
version_requirements: !ruby/object:Gem::Requirement
|
351
|
+
requirements:
|
352
|
+
- - ">="
|
353
|
+
- !ruby/object:Gem::Version
|
354
|
+
version: '0'
|
349
355
|
- !ruby/object:Gem::Dependency
|
350
356
|
name: rspec
|
351
357
|
requirement: !ruby/object:Gem::Requirement
|
@@ -392,7 +398,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
392
398
|
- !ruby/object:Gem::Version
|
393
399
|
version: '0'
|
394
400
|
requirements: []
|
395
|
-
rubygems_version: 3.
|
401
|
+
rubygems_version: 3.2.22
|
396
402
|
signing_key:
|
397
403
|
specification_version: 4
|
398
404
|
summary: Helpers for testing Vox Pupuli modules
|