chefspec 4.2.0.beta.1 → 4.2.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 +4 -3
- data/CHANGELOG.md +4 -1
- data/README.md +6 -0
- data/gemfiles/chef-11.14.0.gemfile +1 -1
- data/gemfiles/chef-11.16.0.gemfile +1 -1
- data/gemfiles/chef-12.0.0.gemfile +5 -0
- data/lib/chefspec/cacher.rb +4 -1
- data/lib/chefspec/deprecations.rb +5 -5
- data/lib/chefspec/extensions/chef/client.rb +7 -0
- data/lib/chefspec/renderer.rb +3 -1
- data/lib/chefspec/server_runner.rb +8 -1
- data/lib/chefspec/solo_runner.rb +3 -7
- data/lib/chefspec/version.rb +1 -1
- data/spec/unit/deprecations_spec.rb +3 -3
- data/spec/unit/solo_runner_spec.rb +5 -0
- metadata +5 -9
- data/examples/inherits/recipes/default.rb +0 -5
- data/examples/inherits/spec/default_spec.rb +0 -21
- data/features/inherits.feature +0 -8
- data/gemfiles/chef-12.0.0.rc.gemfile +0 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 75d0edf1b239bc0e3f2925b5369b05446c94e5af
|
4
|
+
data.tar.gz: 05c29cdc3052844db10148b184b9b8476c88c016
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fddcc55b0216f17d1d39eb0c8d5515a2efd09eb8f9db6e7ffc4affcc2c4c2f4c140d8e3a4abca91404b96040e8a3d5596dac00e5314fe617f7fd3c7df58fbe9d
|
7
|
+
data.tar.gz: 49e6647e765e13381955b457ac19df13f000f974344030648356afc589ee1c646676a40033bf667df0f1f274b4a62cb9e9eda38b48eadaf437628e962435be7e
|
data/.travis.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
sudo: false
|
2
|
+
|
1
3
|
rvm:
|
2
|
-
- 1.9.3
|
3
4
|
- 2.0.0
|
4
5
|
- 2.1
|
5
6
|
|
@@ -16,12 +17,12 @@ notifications:
|
|
16
17
|
template:
|
17
18
|
- "%{message} (%{author}): %{build_url}"
|
18
19
|
|
19
|
-
bundler_args: --jobs 7
|
20
|
+
bundler_args: --jobs 7 --retry 3
|
20
21
|
|
21
22
|
gemfile:
|
22
23
|
- gemfiles/chef-11.14.0.gemfile
|
23
24
|
- gemfiles/chef-11.16.0.gemfile
|
24
|
-
- gemfiles/chef-12.0.0.
|
25
|
+
- gemfiles/chef-12.0.0.gemfile
|
25
26
|
- gemfiles/chef-master.gemfile
|
26
27
|
|
27
28
|
matrix:
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
CHANGELOG for ChefSpec
|
2
2
|
======================
|
3
3
|
|
4
|
-
## 4.2.0
|
4
|
+
## 4.2.0 (December 25, 2014)
|
5
5
|
Bugfixes:
|
6
6
|
- Updated README grep examples
|
7
7
|
- Fix various typographical errors
|
@@ -10,6 +10,9 @@ Bugfixes:
|
|
10
10
|
Improvements:
|
11
11
|
- Add support for Chef 12
|
12
12
|
- Added support for environments in Chef Solo
|
13
|
+
- Fix location definition for caching
|
14
|
+
- Allow passing `Chef::Config[:file_cache_path]` from outside
|
15
|
+
- Update support for Chef 12
|
13
16
|
|
14
17
|
## 4.1.1 (October 13, 2014)
|
15
18
|
Bugfixes:
|
data/README.md
CHANGED
@@ -110,6 +110,12 @@ ChefSpec::SoloRunner.new(platform: 'centos', version: '5.10')
|
|
110
110
|
# Specify a different cookbook_path
|
111
111
|
ChefSpec::SoloRunner.new(cookbook_path: '/var/my/other/path', role_path: '/var/my/roles')
|
112
112
|
|
113
|
+
# By default ChefSpec sets a new temporary directory for file caching in every run.
|
114
|
+
# This can be overridden by passing the `file_cache_path` option.
|
115
|
+
# Note: Resources containing `Chef::Config[:file_cache_path]` in their name or
|
116
|
+
# attributes, will fail unless this option is specified.
|
117
|
+
ChefSpec::SoloRunner.new(file_cache_path: '/var/chef/cache')
|
118
|
+
|
113
119
|
# Add debug log output
|
114
120
|
ChefSpec::SoloRunner.new(log_level: :debug).converge(described_recipe)
|
115
121
|
```
|
data/lib/chefspec/cacher.rb
CHANGED
@@ -34,7 +34,10 @@ module ChefSpec
|
|
34
34
|
FINALIZER = lambda { |id| @@cache.delete(id) }
|
35
35
|
|
36
36
|
def cached(name, &block)
|
37
|
-
location
|
37
|
+
location = ancestors.first.metadata[:location]
|
38
|
+
unless ancestors.first.metadata[:description].nil? || location.nil?
|
39
|
+
location += ancestors.first.metadata[:description]
|
40
|
+
end
|
38
41
|
location ||= ancestors.first.metadata[:parent_example_group][:location]
|
39
42
|
|
40
43
|
define_method(name) do
|
@@ -16,12 +16,12 @@ end
|
|
16
16
|
|
17
17
|
module ChefSpec
|
18
18
|
class Runner
|
19
|
-
# @deprecated {ChefSpec.define_runner_method} is deprecated. Please
|
20
|
-
# use {ChefSpec.
|
19
|
+
# @deprecated {ChefSpec::Runner.define_runner_method} is deprecated. Please
|
20
|
+
# use {ChefSpec.define_matcher} instead.
|
21
21
|
def self.define_runner_method(resource_name)
|
22
|
-
deprecated "`ChefSpec::Runner.define_runner_method' is deprecated.
|
23
|
-
"It is being used in the #{resource_name} resource matcher." \
|
24
|
-
"Please use `ChefSpec.define_matcher' instead."
|
22
|
+
deprecated "`ChefSpec::Runner.define_runner_method' is deprecated." \
|
23
|
+
" It is being used in the #{resource_name} resource matcher." \
|
24
|
+
" Please use `ChefSpec.define_matcher' instead."
|
25
25
|
|
26
26
|
ChefSpec.define_matcher(resource_name)
|
27
27
|
end
|
@@ -1,3 +1,10 @@
|
|
1
|
+
# Force loading Chef Config to fix a bad dependency tree. See
|
2
|
+
# https://github.com/opscode/chef/issues/2703 for more information.
|
3
|
+
require 'chef/config'
|
4
|
+
|
5
|
+
# Providers has to be included before client... probably a weird
|
6
|
+
# include missing in Chef-land, but we can make sure we get it right anyway.
|
7
|
+
require 'chef/providers'
|
1
8
|
require 'chef/client'
|
2
9
|
|
3
10
|
# @private
|
data/lib/chefspec/renderer.rb
CHANGED
@@ -119,7 +119,9 @@ module ChefSpec
|
|
119
119
|
#
|
120
120
|
# @return [Array<Chef::Cookbook>]
|
121
121
|
def cookbook_collection(node)
|
122
|
-
if
|
122
|
+
if chef_run.respond_to?(:run_context)
|
123
|
+
chef_run.run_context.cookbook_collection # Chef 11.8+
|
124
|
+
elsif node.respond_to?(:run_context)
|
123
125
|
node.run_context.cookbook_collection # Chef 11+
|
124
126
|
else
|
125
127
|
node.cookbook_collection # Chef 10
|
@@ -56,7 +56,14 @@ module ChefSpec
|
|
56
56
|
# @see (SoloRunner#converge)
|
57
57
|
def converge(*recipe_names)
|
58
58
|
upload_cookbooks!
|
59
|
-
|
59
|
+
|
60
|
+
super do
|
61
|
+
yield if block_given?
|
62
|
+
|
63
|
+
# Save the node back to the server for searching purposes
|
64
|
+
client.register
|
65
|
+
node.save
|
66
|
+
end
|
60
67
|
end
|
61
68
|
|
62
69
|
private
|
data/lib/chefspec/solo_runner.rb
CHANGED
@@ -56,6 +56,8 @@ module ChefSpec
|
|
56
56
|
# Path of a json file that will be passed to fauxhai as :path option
|
57
57
|
# @option options [Array<String>] :step_into
|
58
58
|
# The list of LWRPs to evaluate
|
59
|
+
# @option options String] :file_cache_path
|
60
|
+
# File caching path, if absent ChefSpec will use a temporary directory generated on the fly
|
59
61
|
#
|
60
62
|
# @yield [node] Configuration block for Chef::Node
|
61
63
|
#
|
@@ -71,7 +73,7 @@ module ChefSpec
|
|
71
73
|
Chef::Config[:client_key] = nil
|
72
74
|
Chef::Config[:client_name] = nil
|
73
75
|
Chef::Config[:node_name] = nil
|
74
|
-
Chef::Config[:file_cache_path] = file_cache_path
|
76
|
+
Chef::Config[:file_cache_path] = @options[:file_cache_path] || file_cache_path
|
75
77
|
Chef::Config[:cookbook_path] = Array(@options[:cookbook_path])
|
76
78
|
Chef::Config[:no_lazy_load] = true
|
77
79
|
Chef::Config[:role_path] = Array(@options[:role_path])
|
@@ -109,12 +111,6 @@ module ChefSpec
|
|
109
111
|
# Expand the run_list
|
110
112
|
expand_run_list!
|
111
113
|
|
112
|
-
# Save the node back to the server for searching purposes
|
113
|
-
unless Chef::Config[:solo]
|
114
|
-
client.register
|
115
|
-
node.save
|
116
|
-
end
|
117
|
-
|
118
114
|
# Setup the run_context
|
119
115
|
@run_context = client.setup_run_context
|
120
116
|
|
data/lib/chefspec/version.rb
CHANGED
@@ -15,9 +15,9 @@ describe ChefSpec::Runner do
|
|
15
15
|
|
16
16
|
it 'prints a deprecation' do
|
17
17
|
expect(ChefSpec::Runner).to receive(:deprecated)
|
18
|
-
.with("`ChefSpec::Runner.define_runner_method' is deprecated.
|
19
|
-
"It is being used in the my_custom_resource resource matcher." \
|
20
|
-
"Please use `ChefSpec.define_matcher' instead.")
|
18
|
+
.with("`ChefSpec::Runner.define_runner_method' is deprecated."\
|
19
|
+
" It is being used in the my_custom_resource resource matcher." \
|
20
|
+
" Please use `ChefSpec.define_matcher' instead.")
|
21
21
|
ChefSpec::Runner.define_runner_method(:my_custom_resource)
|
22
22
|
end
|
23
23
|
|
@@ -60,6 +60,11 @@ describe ChefSpec::SoloRunner do
|
|
60
60
|
expect(Chef::Config.cookbook_path).to eq(['/tmp/bacon'])
|
61
61
|
end
|
62
62
|
|
63
|
+
it 'sets the file cache path' do
|
64
|
+
described_class.new( file_cache_path: '/tmp/pantoa')
|
65
|
+
expect(Chef::Config.file_cache_path).to eq('/tmp/pantoa')
|
66
|
+
end
|
67
|
+
|
63
68
|
it 'sets the Chef::Config' do
|
64
69
|
expect(Chef::Config.cache_type).to eq('Memory')
|
65
70
|
expect(Chef::Config.force_logger).to be_truthy
|
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.2.0
|
4
|
+
version: 4.2.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: 2014-
|
12
|
+
date: 2014-12-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: chef
|
@@ -285,8 +285,6 @@ files:
|
|
285
285
|
- examples/include_recipe/recipes/not.rb
|
286
286
|
- examples/include_recipe/recipes/other.rb
|
287
287
|
- examples/include_recipe/spec/default_spec.rb
|
288
|
-
- examples/inherits/recipes/default.rb
|
289
|
-
- examples/inherits/spec/default_spec.rb
|
290
288
|
- examples/ips_package/recipes/install.rb
|
291
289
|
- examples/ips_package/recipes/remove.rb
|
292
290
|
- examples/ips_package/recipes/upgrade.rb
|
@@ -560,7 +558,6 @@ files:
|
|
560
558
|
- features/http_request.feature
|
561
559
|
- features/ifconfig.feature
|
562
560
|
- features/include_recipe.feature
|
563
|
-
- features/inherits.feature
|
564
561
|
- features/ips_package.feature
|
565
562
|
- features/link.feature
|
566
563
|
- features/log.feature
|
@@ -606,7 +603,7 @@ files:
|
|
606
603
|
- features/yum_package.feature
|
607
604
|
- gemfiles/chef-11.14.0.gemfile
|
608
605
|
- gemfiles/chef-11.16.0.gemfile
|
609
|
-
- gemfiles/chef-12.0.0.
|
606
|
+
- gemfiles/chef-12.0.0.gemfile
|
610
607
|
- gemfiles/chef-master.gemfile
|
611
608
|
- lib/chefspec.rb
|
612
609
|
- lib/chefspec/api.rb
|
@@ -756,9 +753,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
756
753
|
version: '1.9'
|
757
754
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
758
755
|
requirements:
|
759
|
-
- - "
|
756
|
+
- - ">="
|
760
757
|
- !ruby/object:Gem::Version
|
761
|
-
version:
|
758
|
+
version: '0'
|
762
759
|
requirements: []
|
763
760
|
rubyforge_project:
|
764
761
|
rubygems_version: 2.2.2
|
@@ -794,7 +791,6 @@ test_files:
|
|
794
791
|
- features/http_request.feature
|
795
792
|
- features/ifconfig.feature
|
796
793
|
- features/include_recipe.feature
|
797
|
-
- features/inherits.feature
|
798
794
|
- features/ips_package.feature
|
799
795
|
- features/link.feature
|
800
796
|
- features/log.feature
|
@@ -1,21 +0,0 @@
|
|
1
|
-
require 'chefspec'
|
2
|
-
|
3
|
-
describe 'inherits::default' do
|
4
|
-
let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }
|
5
|
-
|
6
|
-
it 'allows use of the `inherits` attribute even on non-Windows' do
|
7
|
-
expect {
|
8
|
-
chef_run
|
9
|
-
}.to_not raise_error
|
10
|
-
end
|
11
|
-
|
12
|
-
it 'matches on the default inherits attribute' do
|
13
|
-
expect(chef_run).to create_directory('/tmp/inherit')
|
14
|
-
expect(chef_run).to_not create_directory('/tmp/not_inherit')
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'matches on the inherits attribute' do
|
18
|
-
expect(chef_run).to create_directory('/tmp/no_inherit').with(inherits: false)
|
19
|
-
expect(chef_run).to_not create_directory('/tmp/no_inherit').with(inherits: true)
|
20
|
-
end
|
21
|
-
end
|
data/features/inherits.feature
DELETED