voxpupuli-test 2.1.2 → 2.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 +4 -4
- data/lib/voxpupuli/test/facts.rb +63 -0
- data/lib/voxpupuli/test/rake.rb +9 -1
- data/lib/voxpupuli/test/spec_helper.rb +0 -31
- data/rubocop.yml +3 -0
- metadata +57 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 97d2c88e7e4c23e93a3ac2652eba0f05b6bd72b0f7d2f6fac2093f5b4baa1c44
|
4
|
+
data.tar.gz: d81e623cfb7628cf53955b617469548e695ae7d0480852ed47607f5d887465a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1068e62ab25491f8454d01b716015cd113ecd1aba558c04b0fa3fe2eb04805e88c89761c87ddb8e08c42badad112e686b5eb24cf6023abf63e6cb0028b4d20ae
|
7
|
+
data.tar.gz: ef76c1e71041e4ac40342a43072337f78713ed84a5dc38db127aee5a0b7f2044d3cb2d1373a45c68583f66702ff75ef36067ce48b5ddd208156642c97e30296d
|
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
|
data/lib/voxpupuli/test/rake.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'puppetlabs_spec_helper/rake_tasks'
|
2
|
+
require 'metadata_json_deps'
|
2
3
|
|
3
4
|
PuppetLint.configuration.log_format = '%{path}:%{line}:%{check}:%{KIND}:%{message}'
|
4
5
|
|
@@ -21,4 +22,11 @@ namespace :check do
|
|
21
22
|
end
|
22
23
|
end
|
23
24
|
end
|
24
|
-
Rake::Task[:
|
25
|
+
Rake::Task[:check].enhance ['check:trailing_whitespace']
|
26
|
+
|
27
|
+
|
28
|
+
desc 'Run metadata-json-deps'
|
29
|
+
task :metadata_deps do
|
30
|
+
files = FileList['metadata.json']
|
31
|
+
MetadataJsonDeps::run(files)
|
32
|
+
end
|
@@ -1,20 +1,3 @@
|
|
1
|
-
# getting the correct facter version is tricky. We use facterdb as a source to mock facts
|
2
|
-
# see https://github.com/camptocamp/facterdb
|
3
|
-
# people might provide a specific facter version. In that case we use it.
|
4
|
-
# Otherwise we need to match the correct facter version to the used puppet version.
|
5
|
-
# as of 2019-10-31, puppet 5 ships facter 3.11 and puppet 6 ships facter 3.14
|
6
|
-
# https://puppet.com/docs/puppet/5.5/about_agent.html
|
7
|
-
#
|
8
|
-
# The environment variable `PUPPET_VERSION` is available in our travis environment, but we cannot rely on it
|
9
|
-
# if somebody runs the tests locally. For that case we should fallback the the puppet gem version.
|
10
|
-
def suggest_facter_version
|
11
|
-
return ENV['FACTERDB_FACTS_VERSION'] if ENV['FACTERDB_FACTS_VERSION']
|
12
|
-
|
13
|
-
require 'bundler'
|
14
|
-
puppet_version = ENV['PUPPET_VERSION'] ? ENV['PUPPET_VERSION'] : Gem.loaded_specs['puppet'].version.to_s
|
15
|
-
Gem::Dependency.new('', puppet_version).match?('', '5') ? '3.11.0' : '3.14.0'
|
16
|
-
end
|
17
|
-
|
18
1
|
RSpec.configure do |config|
|
19
2
|
# puppetlabs_spec_helper defaults to mocha but emits a deprecation warning
|
20
3
|
# Vox Pupuli prefers rspec to avoid the deprecation warning unless explicitly
|
@@ -26,22 +9,8 @@ end
|
|
26
9
|
|
27
10
|
require 'voxpupuli/test/facts'
|
28
11
|
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
12
|
|
41
13
|
RSpec.configure do |config|
|
42
|
-
config.default_facter_version = suggest_facter_version
|
43
|
-
|
44
|
-
# Coverage generation
|
45
14
|
config.after(:suite) do
|
46
15
|
RSpec::Puppet::Coverage.report!
|
47
16
|
end
|
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.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:
|
11
|
+
date: 2021-08-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -44,14 +44,14 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 3.0.1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 3.0.1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: parallel_tests
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,28 +72,34 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 2.
|
75
|
+
version: 2.16.0
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 2.
|
82
|
+
version: 2.16.0
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rspec-puppet-facts
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
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,6 +114,20 @@ dependencies:
|
|
108
114
|
- - ">="
|
109
115
|
- !ruby/object:Gem::Version
|
110
116
|
version: 1.9.5
|
117
|
+
- !ruby/object:Gem::Dependency
|
118
|
+
name: metadata_json_deps
|
119
|
+
requirement: !ruby/object:Gem::Requirement
|
120
|
+
requirements:
|
121
|
+
- - ">="
|
122
|
+
- !ruby/object:Gem::Version
|
123
|
+
version: 0.3.0
|
124
|
+
type: :runtime
|
125
|
+
prerelease: false
|
126
|
+
version_requirements: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: 0.3.0
|
111
131
|
- !ruby/object:Gem::Dependency
|
112
132
|
name: rubocop
|
113
133
|
requirement: !ruby/object:Gem::Requirement
|
@@ -136,6 +156,20 @@ dependencies:
|
|
136
156
|
- - "~>"
|
137
157
|
- !ruby/object:Gem::Version
|
138
158
|
version: 1.16.0
|
159
|
+
- !ruby/object:Gem::Dependency
|
160
|
+
name: puppet-lint
|
161
|
+
requirement: !ruby/object:Gem::Requirement
|
162
|
+
requirements:
|
163
|
+
- - ">="
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: 2.5.0
|
166
|
+
type: :runtime
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
requirements:
|
170
|
+
- - ">="
|
171
|
+
- !ruby/object:Gem::Version
|
172
|
+
version: 2.5.0
|
139
173
|
- !ruby/object:Gem::Dependency
|
140
174
|
name: puppet-lint-absolute_classname-check
|
141
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -332,6 +366,20 @@ dependencies:
|
|
332
366
|
- - ">="
|
333
367
|
- !ruby/object:Gem::Version
|
334
368
|
version: '0'
|
369
|
+
- !ruby/object:Gem::Dependency
|
370
|
+
name: puppet-lint-optional_default-check
|
371
|
+
requirement: !ruby/object:Gem::Requirement
|
372
|
+
requirements:
|
373
|
+
- - ">="
|
374
|
+
- !ruby/object:Gem::Version
|
375
|
+
version: '0'
|
376
|
+
type: :runtime
|
377
|
+
prerelease: false
|
378
|
+
version_requirements: !ruby/object:Gem::Requirement
|
379
|
+
requirements:
|
380
|
+
- - ">="
|
381
|
+
- !ruby/object:Gem::Version
|
382
|
+
version: '0'
|
335
383
|
- !ruby/object:Gem::Dependency
|
336
384
|
name: rspec
|
337
385
|
requirement: !ruby/object:Gem::Requirement
|
@@ -378,7 +426,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
378
426
|
- !ruby/object:Gem::Version
|
379
427
|
version: '0'
|
380
428
|
requirements: []
|
381
|
-
rubygems_version: 3.
|
429
|
+
rubygems_version: 3.2.22
|
382
430
|
signing_key:
|
383
431
|
specification_version: 4
|
384
432
|
summary: Helpers for testing Vox Pupuli modules
|