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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f51041bfbc4a413f50f904b36e0e68e92143dcf36e9a983937dd65d0f709869
4
- data.tar.gz: aa0f3fc47a960a5ec0934b9241fdf376ddc6e884bf6a3da8fc6315f27d1c1ec6
3
+ metadata.gz: 97d2c88e7e4c23e93a3ac2652eba0f05b6bd72b0f7d2f6fac2093f5b4baa1c44
4
+ data.tar.gz: d81e623cfb7628cf53955b617469548e695ae7d0480852ed47607f5d887465a4
5
5
  SHA512:
6
- metadata.gz: d786d510b6a96cf663d374f310860eb230d0ad4d71f6b6a890164a08cc964d0f2ce5499fa021b52fa162ff8c63aeeb162da26e9fe5ea4df005e349f37cce5682
7
- data.tar.gz: 670524ea7f695442cba226beb453224dec3fca7826adf8b211e906bfa76716d4db2a1174bfc99eb00d62430f5ce77df1d1f4c94d137145d34d700222741acd86
6
+ metadata.gz: 1068e62ab25491f8454d01b716015cd113ecd1aba558c04b0fa3fe2eb04805e88c89761c87ddb8e08c42badad112e686b5eb24cf6023abf63e6cb0028b4d20ae
7
+ data.tar.gz: ef76c1e71041e4ac40342a43072337f78713ed84a5dc38db127aee5a0b7f2044d3cb2d1373a45c68583f66702ff75ef36067ce48b5ddd208156642c97e30296d
@@ -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
@@ -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[:release_checks].enhance ['check:trailing_whitespace']
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
@@ -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
 
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.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: 2020-11-10 00:00:00.000000000 Z
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: '0'
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: '0'
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.14.0
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.14.0
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: 1.9.5
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: 1.9.5
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.0.6
429
+ rubygems_version: 3.2.22
382
430
  signing_key:
383
431
  specification_version: 4
384
432
  summary: Helpers for testing Vox Pupuli modules