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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 83cb43a95eb449c4d42e755efc3fa398c367aaaa8175ba9bef77359289a9728e
4
- data.tar.gz: c0b7251b7ed74102467599f028e962a155e6b013fe7b3ed0151cb00084f1ff35
3
+ metadata.gz: 361d2ad94e5056a8e275cb19c1e86ee840f43bb509824ba8e16cba329b19dd48
4
+ data.tar.gz: 303f4147709526d641ba0f7325a5567a2bd49c273b5c16c383360bcdfefe7dd2
5
5
  SHA512:
6
- metadata.gz: f17c04833283a22c68fb3ff28a5f18745600831c8f291301b40620843ce1f9b4875e124ac31be9feef99ce7d8efd9e197510c3c7065011bde708757dba116e3e
7
- data.tar.gz: 7e74116ae39a5fb92dc597b16d7e63087d831e7c010c8f8a7dec1603c8dcf049fd832bf04a41fff412956f0d11dc2d9521904996dddb04cbc60eafba046f0176
6
+ metadata.gz: ade2b704c7ed442bcac56036004dee1c1eefbe3e595a21889113d0bef71aa32f1800c21a34a2f3fdd7e6971520279f887ce4864c623a6264349e3a19069a826e
7
+ data.tar.gz: 3f4de0c79140863e4625cf98ef1fd7cc07d906c0a89e2deac355b81a3aadda4331474a47dd408694d59efd3c1c0f2982bd3aeb1cf4e605578bd07ec941c3ea71
@@ -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
@@ -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.1
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: 2020-11-02 00:00:00.000000000 Z
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: 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,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.0.6
401
+ rubygems_version: 3.2.22
396
402
  signing_key:
397
403
  specification_version: 4
398
404
  summary: Helpers for testing Vox Pupuli modules