chefspec 6.2.0 → 7.0.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/.travis.yml +17 -23
- data/CHANGELOG.md +10 -0
- data/Gemfile +9 -0
- data/README.md +1 -1
- data/chefspec.gemspec +2 -2
- data/examples/custom_resource/libraries/matchers.rb +5 -0
- data/examples/custom_resource/recipes/default.rb +1 -0
- data/examples/custom_resource/resources/custom_resource.rb +9 -0
- data/examples/custom_resource/spec/default_spec.rb +18 -0
- data/examples/multiple_actions/recipes/reversed.rb +9 -0
- data/examples/multiple_actions/recipes/sequential.rb +5 -3
- data/examples/multiple_actions/spec/reversed_spec.rb +17 -0
- data/examples/multiple_actions/spec/sequential_spec.rb +3 -2
- data/features/custom_resource.feature +7 -0
- data/features/multiple_actions.feature +1 -0
- data/lib/chefspec/extensions/chef/lwrp_base.rb +21 -35
- data/lib/chefspec/matchers/resource_matcher.rb +20 -27
- data/lib/chefspec/server_methods.rb +4 -1
- data/lib/chefspec/solo_runner.rb +8 -8
- data/lib/chefspec/version.rb +1 -1
- metadata +16 -19
- data/examples/easy_install_package/recipes/install.rb +0 -13
- data/examples/easy_install_package/recipes/purge.rb +0 -13
- data/examples/easy_install_package/recipes/remove.rb +0 -13
- data/examples/easy_install_package/recipes/upgrade.rb +0 -13
- data/examples/easy_install_package/spec/install_spec.rb +0 -23
- data/examples/easy_install_package/spec/purge_spec.rb +0 -19
- data/examples/easy_install_package/spec/remove_spec.rb +0 -19
- data/examples/easy_install_package/spec/upgrade_spec.rb +0 -19
- data/features/easy_install_package.feature +0 -13
- data/gemfiles/chefspec.gemfile +0 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c5200ce7871519ab0cc3ec4991be81a879de497e
|
4
|
+
data.tar.gz: 06e54036feed75509905d6d0fa216fca5ad21e70
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c01f41111509834f0edfd555ccb1f6cd5b46286834884309ac1045b792404fe7110ad15669e9307f7b85f620eee3cdaf1e5a87c884ab4c41c06d5198b19223bc
|
7
|
+
data.tar.gz: 90a5eba4f6aaa993733d2880f9fa591fc8504dad190ab855821be27d1d98712644bc2057e16d683e352f49144a1f6f2664d93db4da820349e0d6182801068e86
|
data/.travis.yml
CHANGED
@@ -4,9 +4,9 @@ sudo: false
|
|
4
4
|
|
5
5
|
before_install:
|
6
6
|
- gem install bundler
|
7
|
-
|
8
|
-
|
9
|
-
-
|
7
|
+
- bundle --version
|
8
|
+
- gem update --system
|
9
|
+
- gem --version
|
10
10
|
|
11
11
|
branches:
|
12
12
|
only:
|
@@ -14,25 +14,19 @@ branches:
|
|
14
14
|
|
15
15
|
bundler_args: --jobs 7 --retry 3
|
16
16
|
|
17
|
-
gemfile: gemfiles/chefspec.gemfile
|
18
|
-
|
19
|
-
env:
|
20
|
-
- CHEF_VERSION=master
|
21
|
-
- CHEF_VERSION=12.18.31
|
22
|
-
- CHEF_VERSION=12.17.44
|
23
|
-
- CHEF_VERSION=12.16.42
|
24
|
-
- CHEF_VERSION=12.15.19
|
25
|
-
- CHEF_VERSION=12.14.89
|
26
|
-
- CHEF_VERSION=12.13.37
|
27
|
-
- CHEF_VERSION=12.12.15
|
28
|
-
- CHEF_VERSION=12.11.18
|
29
|
-
- CHEF_VERSION=12.10.24
|
30
|
-
- CHEF_VERSION=12.9.41
|
31
|
-
- CHEF_VERSION=12.8.1
|
32
|
-
- CHEF_VERSION=12.7.2
|
33
|
-
- CHEF_VERSION=12.6.0
|
34
|
-
|
35
17
|
matrix:
|
36
|
-
|
37
|
-
allow_failures:
|
18
|
+
include:
|
38
19
|
- env: CHEF_VERSION=master
|
20
|
+
rvm: 2.4.1
|
21
|
+
- env: CHEF_VERSION=13.0.118
|
22
|
+
rvm: 2.4.1
|
23
|
+
- env: CHEF_VERSION=12.18.31
|
24
|
+
rvm: 2.3.1
|
25
|
+
- env: CHEF_VERSION=12.17.44
|
26
|
+
rvm: 2.3.1
|
27
|
+
- env: CHEF_VERSION=12.16.42
|
28
|
+
rvm: 2.3.1
|
29
|
+
- env: CHEF_VERSION=12.15.19
|
30
|
+
rvm: 2.3.1
|
31
|
+
- env: CHEF_VERSION=12.14.89
|
32
|
+
rvm: 2.3.1
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,15 @@
|
|
1
1
|
# CHANGELOG for ChefSpec
|
2
2
|
|
3
|
+
## 7.0.0 (April, 18, 2017)
|
4
|
+
|
5
|
+
- Increased the chef gem dependency from 12.6+ to 12.14+. Since ChefSpec is consumed within ChefDK this actually has a minor impact on end users who generally consume Chefspec via ChefDK, which will bundle both compatible chef and chefspec releases.
|
6
|
+
- Fixed incompatibilities with Chef 13.
|
7
|
+
- Loosened the Fauxhai dependency to allow for the upcoming Fauxhai 5.0 release.
|
8
|
+
- Removed easy_install_package testing and examples as easy_install_package was removed in Chef 13\. The actual matcher is still present for users with existing specs against Chef 12 cookbooks.
|
9
|
+
- Added additional testing and an example for LWRPs with use_inline_resources defined.
|
10
|
+
- Added testing against Chef 13 and Ruby 2.4.
|
11
|
+
- Removed code that supported Chef < 12.5.
|
12
|
+
|
3
13
|
## 6.2.0 (March 27, 2017)
|
4
14
|
|
5
15
|
- Correctly handle the block form of search() when using stubs
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -19,7 +19,7 @@ ChefSpec runs your cookbook(s) locally with Chef Solo without actually convergin
|
|
19
19
|
|
20
20
|
## Important Notes
|
21
21
|
|
22
|
-
- **ChefSpec requires Ruby 2.2 or later and Chef 12.
|
22
|
+
- **ChefSpec requires Ruby 2.2 or later and Chef 12.14.89 or later!**
|
23
23
|
- **This documentation corresponds to the master branch, which may be unreleased. Please check the README of the latest git tag or the gem's source for your version's documentation!**
|
24
24
|
- **Each resource matcher is self-documented using [Yard](http://rubydoc.info/github/sethvargo/chefspec) and has a corresponding aruba test from the [examples directory](https://github.com/sethvargo/chefspec/tree/master/examples).**
|
25
25
|
- **ChefSpec aims to maintain compatibility with the two most recent minor versions of Chef.** If you are running an older version of Chef it may work, or you will need to run an older version of ChefSpec.
|
data/chefspec.gemspec
CHANGED
@@ -25,8 +25,8 @@ Gem::Specification.new do |s|
|
|
25
25
|
|
26
26
|
s.required_ruby_version = '>= 2.2'
|
27
27
|
|
28
|
-
s.add_dependency 'chef', '>= 12.
|
29
|
-
s.add_dependency 'fauxhai', '>=
|
28
|
+
s.add_dependency 'chef', '>= 12.14.89'
|
29
|
+
s.add_dependency 'fauxhai', '>= 4', '< 6'
|
30
30
|
s.add_dependency 'rspec', '~> 3.0'
|
31
31
|
|
32
32
|
# Development Dependencies
|
@@ -0,0 +1 @@
|
|
1
|
+
custom_resource 'resource'
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'chefspec'
|
2
|
+
|
3
|
+
describe 'custom_resource::default' do
|
4
|
+
let(:chef_run) do
|
5
|
+
ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '16.04', step_into: ['custom_resource'])
|
6
|
+
.converge(described_recipe)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'uses the LWRP' do
|
10
|
+
expect(chef_run).to run_custom_resource('resource')
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'steps into the LWRP' do
|
14
|
+
expect(chef_run).to install_package('package')
|
15
|
+
expect(chef_run).to start_service('service')
|
16
|
+
expect(chef_run).to create_template('template')
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'chefspec'
|
2
|
+
|
3
|
+
describe 'multiple_actions::reversed' do
|
4
|
+
let(:chef_run) do
|
5
|
+
ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '16.04', log_level: :fatal)
|
6
|
+
.converge(described_recipe)
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'executes both actions' do
|
10
|
+
expect(chef_run).to stop_service('foo').with(stop_command: 'bar')
|
11
|
+
expect(chef_run).to start_service('foo').with(start_command: 'baz')
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'does not match other actions' do
|
15
|
+
expect(chef_run).to_not disable_service('foo')
|
16
|
+
end
|
17
|
+
end
|
@@ -7,10 +7,11 @@ describe 'multiple_actions::sequential' do
|
|
7
7
|
end
|
8
8
|
|
9
9
|
it 'executes both actions' do
|
10
|
-
expect(chef_run).to
|
10
|
+
expect(chef_run).to stop_service('foo').with(stop_command: 'bar')
|
11
|
+
expect(chef_run).to start_service('foo').with(start_command: 'baz')
|
11
12
|
end
|
12
13
|
|
13
14
|
it 'does not match other actions' do
|
14
|
-
expect(chef_run).to_not disable_service('
|
15
|
+
expect(chef_run).to_not disable_service('foo')
|
15
16
|
end
|
16
17
|
end
|
@@ -1,45 +1,31 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
1
|
+
# XXX: This monkeypatch is somewhat terrible and dumps all of the
|
2
|
+
# resources in the sub-resource collection into the main resource
|
3
|
+
# collection. Chefspec needs to be taught how to deal with
|
4
|
+
# sub-resource collections.
|
5
|
+
|
6
|
+
if defined?(Chef::Provider::InlineResources)
|
7
|
+
class Chef
|
8
|
+
class Provider
|
9
|
+
module InlineResources # ~> 12.5
|
10
|
+
def initialize(resource, run_context)
|
11
|
+
super
|
12
|
+
@run_context = run_context
|
13
|
+
@resource_collection = run_context.resource_collection
|
14
|
+
end
|
15
|
+
|
7
16
|
module ClassMethods
|
8
|
-
#
|
9
|
-
# For LWRPs that call +use_inline_resources+, do not create another
|
10
|
-
# +resource_collection+ so that everything is added to the parent
|
11
|
-
# +resource_collection+.
|
12
|
-
#
|
13
|
-
# @param [String] name
|
14
|
-
#
|
15
|
-
# @override Chef::Provider::LWRPBase::InlineResources::ClassMethods#action
|
16
|
-
#
|
17
17
|
def action(name, &block)
|
18
18
|
define_method("action_#{name}", &block)
|
19
19
|
end
|
20
20
|
end
|
21
21
|
end
|
22
22
|
end
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
# +resource_collection+.
|
30
|
-
#
|
31
|
-
# @param [String] name
|
32
|
-
#
|
33
|
-
def initialize(resource, run_context)
|
34
|
-
super
|
35
|
-
@run_context = run_context
|
36
|
-
@resource_collection = run_context.resource_collection
|
37
|
-
end
|
38
|
-
|
39
|
-
module ClassMethods
|
40
|
-
def action(name, &block)
|
41
|
-
define_method("action_#{name}", &block)
|
42
|
-
end
|
23
|
+
end
|
24
|
+
else # >= 13.0
|
25
|
+
class Chef
|
26
|
+
class Provider
|
27
|
+
def self.action(name, &block)
|
28
|
+
define_method("action_#{name}", &block)
|
43
29
|
end
|
44
30
|
end
|
45
31
|
end
|
@@ -39,7 +39,7 @@ module ChefSpec::Matchers
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def description
|
42
|
-
%Q{#{@
|
42
|
+
%Q{#{@expected_actioe} #{@resource_name} "#{@expected_identity}"}
|
43
43
|
end
|
44
44
|
|
45
45
|
def matches?(runner)
|
@@ -47,42 +47,35 @@ module ChefSpec::Matchers
|
|
47
47
|
|
48
48
|
if resource
|
49
49
|
ChefSpec::Coverage.cover!(resource)
|
50
|
-
|
51
|
-
else
|
52
|
-
false
|
50
|
+
unmatched_parameters.empty? && correct_phase?
|
53
51
|
end
|
54
52
|
end
|
55
53
|
|
56
54
|
def failure_message
|
57
55
|
if resource
|
58
|
-
if
|
59
|
-
if
|
60
|
-
|
61
|
-
%Q{expected "#{resource.to_s}" to be run at compile time}
|
62
|
-
else
|
63
|
-
%Q{expected "#{resource.to_s}" to be run at converge time}
|
64
|
-
end
|
56
|
+
if unmatched_parameters.empty?
|
57
|
+
if @compile_time
|
58
|
+
%Q{expected "#{resource.to_s}" to be run at compile time}
|
65
59
|
else
|
66
|
-
|
67
|
-
"\n\n" \
|
68
|
-
" " + unmatched_parameters.collect { |parameter, h|
|
69
|
-
msg = "#{parameter} #{h[:expected].inspect}, was #{h[:actual].inspect}"
|
70
|
-
diff = ::RSpec::Matchers::ExpectedsForMultipleDiffs.from(h[:expected]) \
|
71
|
-
.message_with_diff(message, ::RSpec::Expectations::differ, h[:actual])
|
72
|
-
msg += diff if diff
|
73
|
-
msg
|
74
|
-
}.join("\n ")
|
60
|
+
%Q{expected "#{resource.to_s}" to be run at converge time}
|
75
61
|
end
|
76
62
|
else
|
77
|
-
%Q{expected "#{resource.to_s}"
|
78
|
-
|
63
|
+
message = %Q{expected "#{resource.to_s}" to have parameters:} \
|
64
|
+
"\n\n" \
|
65
|
+
" " + unmatched_parameters.collect { |parameter, h|
|
66
|
+
msg = "#{parameter} #{h[:expected].inspect}, was #{h[:actual].inspect}"
|
67
|
+
diff = ::RSpec::Matchers::ExpectedsForMultipleDiffs.from(h[:expected]) \
|
68
|
+
.message_with_diff(message, ::RSpec::Expectations::differ, h[:actual])
|
69
|
+
msg += diff if diff
|
70
|
+
msg
|
71
|
+
}.join("\n ")
|
79
72
|
end
|
80
73
|
else
|
81
74
|
%Q{expected "#{@resource_name}[#{@expected_identity}]"} \
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
75
|
+
" with action :#{@expected_action} to be in Chef run." \
|
76
|
+
" Other #{@resource_name} resources:" \
|
77
|
+
"\n\n" \
|
78
|
+
" " + similar_resources.map(&:to_s).join("\n ") + "\n "
|
86
79
|
end
|
87
80
|
end
|
88
81
|
|
@@ -165,7 +158,7 @@ module ChefSpec::Matchers
|
|
165
158
|
# @return [Chef::Resource, nil]
|
166
159
|
#
|
167
160
|
def resource
|
168
|
-
@_resource ||= @runner.find_resource(@resource_name, @expected_identity)
|
161
|
+
@_resource ||= @runner.find_resource(@resource_name, @expected_identity, @expected_action)
|
169
162
|
end
|
170
163
|
|
171
164
|
#
|
@@ -64,8 +64,11 @@ module ChefSpec
|
|
64
64
|
data = get('#{key}', name)
|
65
65
|
json = JSON.parse(data)
|
66
66
|
|
67
|
-
|
67
|
+
case
|
68
|
+
when #{klass}.respond_to?(:json_create)
|
68
69
|
#{klass}.json_create(json)
|
70
|
+
when #{klass}.respond_to?(:from_hash)
|
71
|
+
#{klass}.from_hash(json)
|
69
72
|
else
|
70
73
|
#{klass}.new(json)
|
71
74
|
end
|
data/lib/chefspec/solo_runner.rb
CHANGED
@@ -156,7 +156,9 @@ module ChefSpec
|
|
156
156
|
end
|
157
157
|
|
158
158
|
#
|
159
|
-
# Find the resource with the declared type and resource name.
|
159
|
+
# Find the resource with the declared type and resource name, and optionally match a performed action.
|
160
|
+
#
|
161
|
+
# If multiples match it returns the last (which more or less matches the chef last-inserter-wins semantics)
|
160
162
|
#
|
161
163
|
# @example Find a template at `/etc/foo`
|
162
164
|
# chef_run.find_resource(:template, '/etc/foo') #=> #<Chef::Resource::Template>
|
@@ -167,17 +169,15 @@ module ChefSpec
|
|
167
169
|
# or `directory`.
|
168
170
|
# @param [String, Regexp] name
|
169
171
|
# The value of the name attribute or identity attribute for the resource.
|
172
|
+
# @param [Symbol] action
|
173
|
+
# (optional) match only resources that performed the action.
|
170
174
|
#
|
171
175
|
# @return [Chef::Resource, nil]
|
172
176
|
# The matching resource, or nil if one is not found
|
173
177
|
#
|
174
|
-
def find_resource(type, name)
|
175
|
-
|
176
|
-
|
177
|
-
rescue Chef::Exceptions::ResourceNotFound; end
|
178
|
-
|
179
|
-
resource_collection.all_resources.find do |resource|
|
180
|
-
resource_name(resource) == type && (name === resource.identity || name === resource.name)
|
178
|
+
def find_resource(type, name, action = nil)
|
179
|
+
resource_collection.all_resources.reverse_each.find do |resource|
|
180
|
+
resource.declared_type == type.to_sym && (name === resource.identity || name === resource.name) && (action.nil? || resource.performed_action?(action))
|
181
181
|
end
|
182
182
|
end
|
183
183
|
|
data/lib/chefspec/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: chefspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Crump
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-04-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -17,34 +17,34 @@ dependencies:
|
|
17
17
|
requirements:
|
18
18
|
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version:
|
20
|
+
version: 12.14.89
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version:
|
27
|
+
version: 12.14.89
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: fauxhai
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version: '
|
34
|
+
version: '4'
|
35
35
|
- - "<"
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
37
|
+
version: '6'
|
38
38
|
type: :runtime
|
39
39
|
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
41
|
requirements:
|
42
42
|
- - ">="
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: '
|
44
|
+
version: '4'
|
45
45
|
- - "<"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '6'
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rspec
|
50
50
|
requirement: !ruby/object:Gem::Requirement
|
@@ -209,6 +209,10 @@ files:
|
|
209
209
|
- examples/custom_matcher/resources/thing.rb
|
210
210
|
- examples/custom_matcher/spec/install_spec.rb
|
211
211
|
- examples/custom_matcher/spec/remove_spec.rb
|
212
|
+
- examples/custom_resource/libraries/matchers.rb
|
213
|
+
- examples/custom_resource/recipes/default.rb
|
214
|
+
- examples/custom_resource/resources/custom_resource.rb
|
215
|
+
- examples/custom_resource/spec/default_spec.rb
|
212
216
|
- examples/deploy/recipes/deploy.rb
|
213
217
|
- examples/deploy/recipes/force_deploy.rb
|
214
218
|
- examples/deploy/recipes/rollback.rb
|
@@ -239,14 +243,6 @@ files:
|
|
239
243
|
- examples/dsc_resource/spec/run_spec.rb
|
240
244
|
- examples/dsc_script/recipes/run.rb
|
241
245
|
- examples/dsc_script/spec/run_spec.rb
|
242
|
-
- examples/easy_install_package/recipes/install.rb
|
243
|
-
- examples/easy_install_package/recipes/purge.rb
|
244
|
-
- examples/easy_install_package/recipes/remove.rb
|
245
|
-
- examples/easy_install_package/recipes/upgrade.rb
|
246
|
-
- examples/easy_install_package/spec/install_spec.rb
|
247
|
-
- examples/easy_install_package/spec/purge_spec.rb
|
248
|
-
- examples/easy_install_package/spec/remove_spec.rb
|
249
|
-
- examples/easy_install_package/spec/upgrade_spec.rb
|
250
246
|
- examples/env/recipes/create.rb
|
251
247
|
- examples/env/recipes/delete.rb
|
252
248
|
- examples/env/recipes/modify.rb
|
@@ -390,8 +386,10 @@ files:
|
|
390
386
|
- examples/msu_package/spec/install_spec.rb
|
391
387
|
- examples/msu_package/spec/remove_spec.rb
|
392
388
|
- examples/multiple_actions/recipes/default.rb
|
389
|
+
- examples/multiple_actions/recipes/reversed.rb
|
393
390
|
- examples/multiple_actions/recipes/sequential.rb
|
394
391
|
- examples/multiple_actions/spec/default_spec.rb
|
392
|
+
- examples/multiple_actions/spec/reversed_spec.rb
|
395
393
|
- examples/multiple_actions/spec/sequential_spec.rb
|
396
394
|
- examples/multiple_run_action/recipes/default.rb
|
397
395
|
- examples/multiple_run_action/spec/default_spec.rb
|
@@ -711,6 +709,7 @@ files:
|
|
711
709
|
- features/cookbook_file.feature
|
712
710
|
- features/cron.feature
|
713
711
|
- features/custom_matcher.feature
|
712
|
+
- features/custom_resource.feature
|
714
713
|
- features/deploy.feature
|
715
714
|
- features/directory.feature
|
716
715
|
- features/dnf_package.feature
|
@@ -718,7 +717,6 @@ files:
|
|
718
717
|
- features/dpkg_package.feature
|
719
718
|
- features/dsc_resource.feature
|
720
719
|
- features/dsc_script.feature
|
721
|
-
- features/easy_install_package.feature
|
722
720
|
- features/env.feature
|
723
721
|
- features/erl_call.feature
|
724
722
|
- features/execute.feature
|
@@ -792,7 +790,6 @@ files:
|
|
792
790
|
- features/yum_package.feature
|
793
791
|
- features/yum_repository.feature
|
794
792
|
- features/zypper_package.feature
|
795
|
-
- gemfiles/chefspec.gemfile
|
796
793
|
- lib/chefspec.rb
|
797
794
|
- lib/chefspec/api.rb
|
798
795
|
- lib/chefspec/api/apt_package.rb
|
@@ -994,6 +991,7 @@ test_files:
|
|
994
991
|
- features/cookbook_file.feature
|
995
992
|
- features/cron.feature
|
996
993
|
- features/custom_matcher.feature
|
994
|
+
- features/custom_resource.feature
|
997
995
|
- features/deploy.feature
|
998
996
|
- features/directory.feature
|
999
997
|
- features/dnf_package.feature
|
@@ -1001,7 +999,6 @@ test_files:
|
|
1001
999
|
- features/dpkg_package.feature
|
1002
1000
|
- features/dsc_resource.feature
|
1003
1001
|
- features/dsc_script.feature
|
1004
|
-
- features/easy_install_package.feature
|
1005
1002
|
- features/env.feature
|
1006
1003
|
- features/erl_call.feature
|
1007
1004
|
- features/execute.feature
|
@@ -1,13 +0,0 @@
|
|
1
|
-
easy_install_package 'default_action'
|
2
|
-
|
3
|
-
easy_install_package 'explicit_action' do
|
4
|
-
action :install
|
5
|
-
end
|
6
|
-
|
7
|
-
easy_install_package 'with_attributes' do
|
8
|
-
version '1.0.0'
|
9
|
-
end
|
10
|
-
|
11
|
-
easy_install_package 'specifying the identity attribute' do
|
12
|
-
package_name 'identity_attribute'
|
13
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
easy_install_package 'explicit_action' do
|
2
|
-
action :purge
|
3
|
-
end
|
4
|
-
|
5
|
-
easy_install_package 'with_attributes' do
|
6
|
-
version '1.0.0'
|
7
|
-
action :purge
|
8
|
-
end
|
9
|
-
|
10
|
-
easy_install_package 'specifying the identity attribute' do
|
11
|
-
package_name 'identity_attribute'
|
12
|
-
action :purge
|
13
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
easy_install_package 'explicit_action' do
|
2
|
-
action :remove
|
3
|
-
end
|
4
|
-
|
5
|
-
easy_install_package 'with_attributes' do
|
6
|
-
version '1.0.0'
|
7
|
-
action :remove
|
8
|
-
end
|
9
|
-
|
10
|
-
easy_install_package 'specifying the identity attribute' do
|
11
|
-
package_name 'identity_attribute'
|
12
|
-
action :remove
|
13
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
easy_install_package 'explicit_action' do
|
2
|
-
action :upgrade
|
3
|
-
end
|
4
|
-
|
5
|
-
easy_install_package 'with_attributes' do
|
6
|
-
version '1.0.0'
|
7
|
-
action :upgrade
|
8
|
-
end
|
9
|
-
|
10
|
-
easy_install_package 'specifying the identity attribute' do
|
11
|
-
package_name 'identity_attribute'
|
12
|
-
action :upgrade
|
13
|
-
end
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'chefspec'
|
2
|
-
|
3
|
-
describe 'easy_install_package::install' do
|
4
|
-
let(:chef_run) { ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '16.04').converge(described_recipe) }
|
5
|
-
|
6
|
-
it 'installs a easy_install_package with the default action' do
|
7
|
-
expect(chef_run).to install_easy_install_package('default_action')
|
8
|
-
expect(chef_run).to_not install_easy_install_package('not_default_action')
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'installs a easy_install_package with an explicit action' do
|
12
|
-
expect(chef_run).to install_easy_install_package('explicit_action')
|
13
|
-
end
|
14
|
-
|
15
|
-
it 'installs a easy_install_package with attributes' do
|
16
|
-
expect(chef_run).to install_easy_install_package('with_attributes').with(version: '1.0.0')
|
17
|
-
expect(chef_run).to_not install_easy_install_package('with_attributes').with(version: '1.2.3')
|
18
|
-
end
|
19
|
-
|
20
|
-
it 'installs a easy_install_package when specifying the identity attribute' do
|
21
|
-
expect(chef_run).to install_easy_install_package('identity_attribute')
|
22
|
-
end
|
23
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'chefspec'
|
2
|
-
|
3
|
-
describe 'easy_install_package::purge' do
|
4
|
-
let(:chef_run) { ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '16.04').converge(described_recipe) }
|
5
|
-
|
6
|
-
it 'purges a easy_install_package with an explicit action' do
|
7
|
-
expect(chef_run).to purge_easy_install_package('explicit_action')
|
8
|
-
expect(chef_run).to_not purge_easy_install_package('not_explicit_action')
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'purges a easy_install_package with attributes' do
|
12
|
-
expect(chef_run).to purge_easy_install_package('with_attributes').with(version: '1.0.0')
|
13
|
-
expect(chef_run).to_not purge_easy_install_package('with_attributes').with(version: '1.2.3')
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'purges a easy_install_package when specifying the identity attribute' do
|
17
|
-
expect(chef_run).to purge_easy_install_package('identity_attribute')
|
18
|
-
end
|
19
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'chefspec'
|
2
|
-
|
3
|
-
describe 'easy_install_package::remove' do
|
4
|
-
let(:chef_run) { ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '16.04').converge(described_recipe) }
|
5
|
-
|
6
|
-
it 'removes a easy_install_package with an explicit action' do
|
7
|
-
expect(chef_run).to remove_easy_install_package('explicit_action')
|
8
|
-
expect(chef_run).to_not remove_easy_install_package('not_explicit_action')
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'removes a easy_install_package with attributes' do
|
12
|
-
expect(chef_run).to remove_easy_install_package('with_attributes').with(version: '1.0.0')
|
13
|
-
expect(chef_run).to_not remove_easy_install_package('with_attributes').with(version: '1.2.3')
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'removes a easy_install_package when specifying the identity attribute' do
|
17
|
-
expect(chef_run).to remove_easy_install_package('identity_attribute')
|
18
|
-
end
|
19
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'chefspec'
|
2
|
-
|
3
|
-
describe 'easy_install_package::upgrade' do
|
4
|
-
let(:chef_run) { ChefSpec::ServerRunner.new(platform: 'ubuntu', version: '16.04').converge(described_recipe) }
|
5
|
-
|
6
|
-
it 'upgrades a easy_install_package with an explicit action' do
|
7
|
-
expect(chef_run).to upgrade_easy_install_package('explicit_action')
|
8
|
-
expect(chef_run).to_not upgrade_easy_install_package('not_explicit_action')
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'upgrades a easy_install_package with attributes' do
|
12
|
-
expect(chef_run).to upgrade_easy_install_package('with_attributes').with(version: '1.0.0')
|
13
|
-
expect(chef_run).to_not upgrade_easy_install_package('with_attributes').with(version: '1.2.3')
|
14
|
-
end
|
15
|
-
|
16
|
-
it 'upgrades a easy_install_package when specifying the identity attribute' do
|
17
|
-
expect(chef_run).to upgrade_easy_install_package('identity_attribute')
|
18
|
-
end
|
19
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
Feature: The easy_install_package matcher
|
2
|
-
Background:
|
3
|
-
* I am using the "easy_install_package" cookbook
|
4
|
-
|
5
|
-
Scenario Outline: Running specs
|
6
|
-
* I successfully run `rspec spec/<Matcher>_spec.rb`
|
7
|
-
* the output should contain "0 failures"
|
8
|
-
Examples:
|
9
|
-
| Matcher |
|
10
|
-
| install |
|
11
|
-
| purge |
|
12
|
-
| remove |
|
13
|
-
| upgrade |
|