inspec 0.21.2 → 0.21.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: eb1998905015712a10ce6ed1acad4b930082e181
4
- data.tar.gz: 360a2c3f273d67180ce48bd1d595dc21409bb20f
3
+ metadata.gz: e6b6f3f9425e2fdd338472f8b5ce2f8a8b9d7f68
4
+ data.tar.gz: 0fbf58b53e5cd374f8078f3e159655d61bda41e7
5
5
  SHA512:
6
- metadata.gz: 50f86b7266afda06dc4109bf641129b3213d505f6ee198c807a657d38e32b5a909e044d55c0f1858c0b5332fe963d2df07153b387c0a06ed5b7e012346cd00c4
7
- data.tar.gz: 891130c79cb1f3c38412c9dfabe3d646a07e23d4d1821c38067e1c3b1f568c9fcabe9945d297437ca223051566f547765c1d25b62900d19a3dc029ca09307509
6
+ metadata.gz: 9107c45334fb70cba6cfba959270e698d09482029fda4a596e63f9067e9bccfb58e82e9e4e4555fd77b682eccc08c0d4a35721ff0d220bae97bc58c829b08e16
7
+ data.tar.gz: 18313760dd162fc7ec7e4876d17e00bb06972f16064e7a3ecc457cbcb01fd2ce70713c3cc707baf201dbd0569a562439748c2de9d54307b47f21619b303489a3
@@ -1,7 +1,19 @@
1
1
  # Change Log
2
2
 
3
- ## [0.21.2](https://github.com/chef/inspec/tree/0.21.2) (2016-05-11)
4
- [Full Changelog](https://github.com/chef/inspec/compare/v0.21.1...0.21.2)
3
+ ## [0.21.3](https://github.com/chef/inspec/tree/0.21.3) (2016-05-12)
4
+ [Full Changelog](https://github.com/chef/inspec/compare/v0.21.2...0.21.3)
5
+
6
+ **Fixed bugs:**
7
+
8
+ - Return empty array instead of nil for port methods [\#739](https://github.com/chef/inspec/pull/739) ([alexpop](https://github.com/alexpop))
9
+
10
+ **Merged pull requests:**
11
+
12
+ - deprecate array matcher [\#737](https://github.com/chef/inspec/pull/737) ([chris-rock](https://github.com/chris-rock))
13
+ - Escape os\_env command on Windows to handle env variables containing parentheses. [\#735](https://github.com/chef/inspec/pull/735) ([tpcwang](https://github.com/tpcwang))
14
+
15
+ ## [v0.21.2](https://github.com/chef/inspec/tree/v0.21.2) (2016-05-11)
16
+ [Full Changelog](https://github.com/chef/inspec/compare/v0.21.1...v0.21.2)
5
17
 
6
18
  **Implemented enhancements:**
7
19
 
@@ -10,7 +10,6 @@ Inspec uses matchers to help compare resource values to expectations. The follow
10
10
  * `eq`
11
11
  * `include`
12
12
  * `match`
13
- * Array matchers: `contain_match`, `all_match`, `none_match`, `contain_duplicates`
14
13
 
15
14
 
16
15
  be
@@ -136,66 +135,3 @@ Check if a string matches a regular expression.
136
135
  describe sshd_config do
137
136
  its('Ciphers') { should_not match /cbc/ }
138
137
  end
139
-
140
-
141
- Array Matchers
142
- =====================================================
143
-
144
- The following matchers are designed to work with arrays:
145
-
146
-
147
- contain_match
148
- -----------------------------------------------------
149
-
150
- Check if an array contains at least one item that matches the regex:
151
-
152
- .. code-block:: ruby
153
-
154
- describe ['lemon', 'ginger', 'grapes'] do
155
- it { should contain_match /^gin/}
156
- end
157
- describe port(25) do
158
- its('addresses') it { should_not contain_match /0\.0\.0\.0/}
159
- end
160
-
161
-
162
- all_match
163
- -----------------------------------------------------
164
-
165
- Check if all items of an array match the regex:
166
-
167
- .. code-block:: ruby
168
-
169
- describe ['grapefruit', 'grapes'] do
170
- it { should all_match /^grape.+/}
171
- end
172
-
173
-
174
- none_match
175
- -----------------------------------------------------
176
-
177
- Check if all items of an array match the regex:
178
-
179
- .. code-block:: ruby
180
-
181
- describe ['ginger', 'grapefruit'] do
182
- it { should none_match /^sugar$/}
183
- end
184
- describe port(25) do
185
- its('addresses') it { should none_match /^0\.0\.0\.0$/ }
186
- end
187
-
188
-
189
- contain_duplicates
190
- -----------------------------------------------------
191
-
192
- Check if an array contains duplicate items:
193
-
194
- .. code-block:: ruby
195
-
196
- describe [80, 443, 80] do
197
- it { should contain_duplicates }
198
- end
199
- describe ['ginger', 'grapefruit'] do
200
- it { should_not contain_duplicates }
201
- end
@@ -3,5 +3,5 @@
3
3
  # author: Christoph Hartmann
4
4
 
5
5
  module Inspec
6
- VERSION = '0.21.2'.freeze
6
+ VERSION = '0.21.3'.freeze
7
7
  end
@@ -70,34 +70,26 @@ end
70
70
  # matcher to check /etc/passwd, /etc/shadow and /etc/group
71
71
  RSpec::Matchers.define :contain_legacy_plus do
72
72
  match do |file|
73
+ warn '[DEPRECATION] `contain_legacy_plus` is deprecated and will be removed for InSpec 1.0. Please use `describe file(\'/etc/passwd\') do its(\'content\') { should_not match /^\+:/ } end`'
73
74
  file.content =~ /^\+:/
74
75
  end
75
76
  end
76
77
 
77
- # verifies that all entries match the regex
78
- RSpec::Matchers.define :all_match do |regex|
79
- match do |arr|
80
- Array(arr).all? { |element| element.to_s.match(regex) }
81
- end
82
- end
83
-
84
- # verifies that all entries don't match a regex
85
- RSpec::Matchers.define :none_match do |regex|
86
- match do |arr|
87
- Array(arr).all? { |element| !element.to_s.match(regex) }
88
- end
89
- end
90
-
91
78
  # verifies that no entry in an array contains a value
92
79
  RSpec::Matchers.define :contain_match do |regex|
93
80
  match do |arr|
94
- Array(arr).one? { |element| element.to_s.match(regex) }
81
+ warn '[DEPRECATION] `contain_match` is deprecated and will be removed for InSpec 1.0. See https://github.com/chef/inspec/issues/738 for more details'
82
+ arr.inject { |result, i|
83
+ result = i.match(regex)
84
+ result || i.match(/$/)
85
+ }
95
86
  end
96
87
  end
97
88
 
98
89
  RSpec::Matchers.define :contain_duplicates do
99
90
  match do |arr|
100
- dup = Array(arr).select { |element| arr.count(element) > 1 }
91
+ warn '[DEPRECATION] `contain_duplicates` is deprecated and will be removed for InSpec 1.0. See https://github.com/chef/inspec/issues/738 for more details'
92
+ dup = arr.select { |element| arr.count(element) > 1 }
101
93
  !dup.uniq.empty?
102
94
  end
103
95
  end
@@ -51,7 +51,7 @@ module Inspec::Resources
51
51
 
52
52
  def value_for(env)
53
53
  command = if inspec.os.windows?
54
- "$Env:#{env}"
54
+ "${Env:#{env}}"
55
55
  else
56
56
  'env'
57
57
  end
@@ -59,22 +59,22 @@ module Inspec::Resources
59
59
 
60
60
  def protocols
61
61
  res = info.map { |x| x[:protocol] }.uniq.compact
62
- res.size > 0 ? res : nil
62
+ res.size > 0 ? res : []
63
63
  end
64
64
 
65
65
  def processes
66
66
  res = info.map { |x| x[:process] }.uniq.compact
67
- res.size > 0 ? res : nil
67
+ res.size > 0 ? res : []
68
68
  end
69
69
 
70
70
  def addresses
71
71
  res = info.map { |x| x[:address] }.uniq.compact
72
- res.size > 0 ? res : nil
72
+ res.size > 0 ? res : []
73
73
  end
74
74
 
75
75
  def pids
76
76
  res = info.map { |x| x[:pid] }.uniq.compact
77
- res.size > 0 ? res : nil
77
+ res.size > 0 ? res : []
78
78
  end
79
79
 
80
80
  def to_s
@@ -142,7 +142,7 @@ class MockLoader
142
142
  'secedit /export /cfg win_secpol.cfg' => cmd.call('success'),
143
143
  'Remove-Item win_secpol.cfg' => cmd.call('success'),
144
144
  'env' => cmd.call('env'),
145
- '$Env:PATH' => cmd.call('$env-PATH'),
145
+ '${Env:PATH}' => cmd.call('$env-PATH'),
146
146
  # registry key test (winrm 1.6.0, 1.6.1)
147
147
  '2790db1e88204a073ed7fd3493f5445e5ce531afd0d2724a0e36c17110c535e6' => cmd.call('reg_schedule'),
148
148
  '25a1a38fafc289a646d30f7aa966ce0901c267798f47abf2f9440e27d31a5b7d' => cmd.call('reg_schedule'),
@@ -36,7 +36,7 @@ describe 'Inspec::Resources::Port' do
36
36
  resource = MockLoader.new(:windows).load_resource('port', 135)
37
37
  _(resource.listening?).must_equal true
38
38
  _(resource.protocols).must_equal ['tcp']
39
- _(resource.processes).must_equal nil
39
+ _(resource.processes).must_equal []
40
40
  _(resource.addresses).must_equal ["::", "192.168.10.157"]
41
41
  end
42
42
 
@@ -60,10 +60,10 @@ describe 'Inspec::Resources::Port' do
60
60
  it 'verify running on undefined' do
61
61
  resource = MockLoader.new(:undefined).load_resource('port', 22)
62
62
  _(resource.listening?).must_equal false
63
- _(resource.protocols).must_equal nil
64
- _(resource.pids).must_equal nil
65
- _(resource.processes).must_equal nil
66
- _(resource.addresses).must_equal nil
63
+ _(resource.protocols).must_equal []
64
+ _(resource.pids).must_equal []
65
+ _(resource.processes).must_equal []
66
+ _(resource.addresses).must_equal []
67
67
  end
68
68
 
69
69
  it 'verify port and interface on Ubuntu 14.04' do
@@ -78,7 +78,7 @@ describe 'Inspec::Resources::Port' do
78
78
  it 'verify not listening port on interface on Ubuntu 14.04' do
79
79
  resource = MockLoader.new(:ubuntu1404).load_resource('port', '127.0.0.1', 22)
80
80
  _(resource.listening?).must_equal false
81
- _(resource.addresses).must_equal nil
81
+ _(resource.addresses).must_equal []
82
82
  end
83
83
 
84
84
  it 'verify port on Solaris 10' do
@@ -103,7 +103,7 @@ describe 'Inspec::Resources::Port' do
103
103
  it 'verify not listening port on hpux' do
104
104
  resource = MockLoader.new(:hpux).load_resource('port', 23)
105
105
  _(resource.listening?).must_equal false
106
- _(resource.protocols).must_equal nil
107
- _(resource.addresses).must_equal nil
106
+ _(resource.protocols).must_equal []
107
+ _(resource.addresses).must_equal []
108
108
  end
109
109
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.2
4
+ version: 0.21.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
@@ -411,7 +411,6 @@ files:
411
411
  - test/integration/default/json_spec.rb
412
412
  - test/integration/default/kernel_module_spec.rb
413
413
  - test/integration/default/kernel_parameter_spec.rb
414
- - test/integration/default/matcher.rb
415
414
  - test/integration/default/mount_spec.rb
416
415
  - test/integration/default/os_spec.rb
417
416
  - test/integration/default/package_spec.rb
@@ -687,7 +686,6 @@ test_files:
687
686
  - test/integration/default/json_spec.rb
688
687
  - test/integration/default/kernel_module_spec.rb
689
688
  - test/integration/default/kernel_parameter_spec.rb
690
- - test/integration/default/matcher.rb
691
689
  - test/integration/default/mount_spec.rb
692
690
  - test/integration/default/os_spec.rb
693
691
  - test/integration/default/package_spec.rb
@@ -1,51 +0,0 @@
1
- # encoding: utf-8
2
-
3
- # 'all_match' matcher tests
4
- describe ['ananas', 'apples', 'oranges', 'air', 'alot'] do
5
- it { should all_match /[a]./}
6
- end
7
- describe ['ananas', 'apples', 'oranges', 'melons', 'air'] do
8
- it { should_not all_match /[a]./}
9
- end
10
- describe [true, true, true] do
11
- it { should all_match /^true$/}
12
- end
13
-
14
-
15
- # 'none_match' matcher tests
16
- describe ['kiwi', 'avocado', 'grapefruit'] do
17
- it { should none_match /xyz/}
18
- end
19
- describe ['kiwi', 'avocado', 'grapefruit'] do
20
- it { should_not none_match /^avo/}
21
- end
22
- describe 999 do
23
- it { should none_match /^666/}
24
- end
25
-
26
-
27
- # 'contain_match' matcher tests
28
- describe ['lemon', 'ginger', 'grapes'] do
29
- it { should contain_match /^gin/}
30
- end
31
- describe ['lemon', 'ginger', 'gra(pes'] do
32
- it { should contain_match 'gra\(pe' }
33
- end
34
- describe ['lemon', 'ginger', 'grapes'] do
35
- it { should_not contain_match /^chocolate/}
36
- end
37
- describe 'kiwi' do
38
- it { should contain_match /^kiw/}
39
- end
40
-
41
-
42
- # 'contain_duplicates' matcher tests
43
- describe ['onion', 'carrot', 'onion'] do
44
- it { should contain_duplicates }
45
- end
46
- describe ['onion', 'carrot', 'brocoli'] do
47
- it { should_not contain_duplicates }
48
- end
49
- describe [80, 443] do
50
- it { should_not contain_duplicates }
51
- end