minitest-chef-handler 0.6.7 → 0.6.8

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.
data/.gitignore CHANGED
@@ -17,3 +17,6 @@ test/version_tmp
17
17
  tmp
18
18
  .vagrant
19
19
  examples/simple-solo/chef.log
20
+ gemfile_chef_10.lock
21
+ gemfile_chef_11.lock
22
+ examples/simple-solo/cache
data/History.txt CHANGED
@@ -1,3 +1,9 @@
1
+ === 0.6.8 / 03-03-2013
2
+
3
+ * 1 bug fix:
4
+
5
+ * Really really support auto-discovery of test paths under chef version 11.
6
+
1
7
  === 0.6.7 / 02-07-2013
2
8
 
3
9
  * 1 bug fix:
data/README.md CHANGED
@@ -154,6 +154,24 @@ and be treated like any other error in the Chef execution.
154
154
 
155
155
  The instructions above have described how to use it in a Chef solo installation. If you want to distribute the handler to your Chef server check either the chef_handler cookbooks in the examples or [minitest-handler-cookbook](https://github.com/btm/minitest-handler-cookbook).
156
156
 
157
+ ## Development
158
+
159
+ Minitest-chef-handler should work with versions 10.x and versions 11.x of Chef.
160
+
161
+ There are just two commands that you need to know to hack on this library.
162
+
163
+ 1. Load both versions of Chef dependencies:
164
+
165
+ ```
166
+ $ script/bootstrap
167
+ ```
168
+
169
+ 2. Run unit and integration tests agains both versions of Chef:
170
+
171
+ ```
172
+ $ script/test
173
+ ```
174
+
157
175
  ## Copyright
158
176
 
159
177
  Copyright (c) 2012 David Calavera. See LICENSE for details.
data/Rakefile CHANGED
@@ -2,16 +2,7 @@
2
2
  require "bundler/gem_tasks"
3
3
  require "rake/testtask"
4
4
 
5
- desc 'Verify that nothing is broken against the simple solo example'
6
- task :test do
7
- Dir.chdir('./examples/simple-solo') do
8
- sh 'ruby -I../../lib -S chef-solo -c solo.rb -j dna.json'
9
- end
10
- end
11
-
12
5
  Rake::TestTask.new do |t|
13
6
  t.name = 'spec'
14
7
  t.pattern = 'spec/**/*_spec.rb'
15
8
  end
16
-
17
- task :default => [:spec, :test]
@@ -1,7 +1,10 @@
1
1
  require 'minitest-chef-handler'
2
2
 
3
3
  path = File.expand_path('{test/test_*,spec/*_spec}.rb', File.dirname(__FILE__))
4
+ cache = File.expand_path('cache', File.dirname(__FILE__))
4
5
 
5
6
  report_handlers << MiniTest::Chef::Handler.new(:path => path)
6
7
  cookbook_path File.expand_path('cookbooks', File.dirname(__FILE__))
7
8
  log_location 'chef.log'
9
+ cache_options({ :path => cache, :skip_expires => true })
10
+ file_cache_path cache
data/gemfile_chef_10 ADDED
@@ -0,0 +1,3 @@
1
+ source 'http://rubygems.org'
2
+ gemspec
3
+ gem 'chef', '~> 10.8'
data/gemfile_chef_11 ADDED
@@ -0,0 +1,4 @@
1
+ source 'http://rubygems.org'
2
+ gemspec
3
+ gem 'chef', '~> 11'
4
+
@@ -28,20 +28,20 @@ module MiniTest
28
28
 
29
29
  MiniTest::Unit.output = ::Chef::Log
30
30
 
31
- if @options[:ci_reports]
31
+ runner = if @options[:ci_reports]
32
32
  ENV['CI_REPORTS'] = @options[:ci_reports]
33
- runner = CIRunner.new(run_status)
33
+ CIRunner.new(run_status)
34
34
  else
35
- runner = Runner.new(run_status)
35
+ Runner.new(run_status)
36
36
  end
37
37
 
38
- if custom_runner?
38
+ result = if custom_runner?
39
39
  runner._run(miniunit_options)
40
40
  else
41
41
  runner.run(miniunit_options)
42
42
  end
43
43
 
44
- if runner.failures.nonzero? || runner.errors.nonzero?
44
+ if result.nonzero?
45
45
  ::Chef::Client.when_run_completes_successfully do |run_status|
46
46
  error_msg = "MiniTest failed with #{runner.failures} failure(s) and #{runner.errors} error(s).\n"
47
47
  error_msg << runner.report.sort.join("\n")
@@ -60,7 +60,8 @@ module MiniTest
60
60
  if recipes = run_status.node.run_state[:seen_recipes]
61
61
  recipes.keys
62
62
  else
63
- run_status.node.run_list.select(&:recipe?).map(&:name)
63
+ # chef 11 - see http://docs.opscode.com/breaking_changes_chef_11.html#node-run-state-replaced
64
+ run_status.run_context.loaded_recipes
64
65
  end
65
66
  end
66
67
 
@@ -11,7 +11,7 @@ Gem::Specification.new do |gem|
11
11
  gem.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
12
12
  gem.name = "minitest-chef-handler"
13
13
  gem.require_paths = ["lib"]
14
- gem.version = '0.6.7'
14
+ gem.version = '0.6.8'
15
15
 
16
16
  gem.add_dependency('minitest')
17
17
  gem.add_dependency('chef')
data/script/bootstrap ADDED
@@ -0,0 +1,11 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ puts "-> Configuring Bundler with Chef 10 dependency."
4
+ ENV['BUNDLE_GEMFILE'] = File.expand_path('../../gemfile_chef_10', __FILE__)
5
+
6
+ system "bundle", "install"
7
+
8
+ puts "-> Configuring Bundler with Chef 11 dependency."
9
+ ENV['BUNDLE_GEMFILE'] = File.expand_path('../../gemfile_chef_11', __FILE__)
10
+
11
+ system "bundle", "install"
data/script/test ADDED
@@ -0,0 +1,28 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ ROOT = File.expand_path('../..', __FILE__)
4
+
5
+ def test_all
6
+ Bundler.setup(:default)
7
+
8
+ system "bundle exec rake spec"
9
+
10
+ Dir.chdir('examples/simple-solo') do
11
+ system "bundle exec ruby -I#{File.expand_path('lib', ROOT)} -S chef-solo -c solo.rb -j dna.json"
12
+ end
13
+ end
14
+
15
+ puts '-> Testing with Chef 10'
16
+
17
+ ENV['BUNDLE_GEMFILE'] = File.expand_path('gemfile_chef_10', ROOT)
18
+
19
+ require "rubygems"
20
+ require "bundler/setup"
21
+
22
+ test_all
23
+
24
+ puts '-> Testing with Chef 11'
25
+
26
+ ENV['BUNDLE_GEMFILE'] = File.expand_path('gemfile_chef_11', ROOT)
27
+
28
+ test_all
@@ -22,7 +22,8 @@ describe MiniTest::Chef::Lookup do
22
22
 
23
23
  describe "#used_recipe_names" do
24
24
  before do
25
- stubs(:run_status => stub(:node => stub(:run_state => {})))
25
+ stubs(:run_status => stub(:node => stub(:run_state => {}),
26
+ :run_context => {}))
26
27
  end
27
28
 
28
29
  it "uses seen_recipes if run_state is not empty" do
@@ -31,8 +32,9 @@ describe MiniTest::Chef::Lookup do
31
32
  end
32
33
 
33
34
  it "uses run_list if run_state is empty" do
34
- run_status.node.stubs(:run_list => %w(recipe[foo] recipe[bar] role[someone]).map { |i| Chef::RunList::RunListItem.new(i) })
35
- used_recipe_names.must_equal ["foo", "bar"]
35
+ expected = %w(recipe[foo] recipe[bar] role[someone]).map { |i| Chef::RunList::RunListItem.new(i) }
36
+ run_status.run_context.stubs(:loaded_recipes => expected)
37
+ used_recipe_names.must_equal expected
36
38
  end
37
39
  end
38
40
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest-chef-handler
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.7
4
+ version: 0.6.8
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-02-08 00:00:00.000000000 Z
12
+ date: 2013-03-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: minitest
@@ -100,7 +100,6 @@ extensions: []
100
100
  extra_rdoc_files: []
101
101
  files:
102
102
  - .gitignore
103
- - Gemfile
104
103
  - History.txt
105
104
  - LICENSE
106
105
  - README.md
@@ -127,6 +126,8 @@ files:
127
126
  - examples/spec_examples/metadata.rb
128
127
  - examples/spec_examples/recipes/default.rb
129
128
  - examples/spec_examples/templates/default/foo.erb
129
+ - gemfile_chef_10
130
+ - gemfile_chef_11
130
131
  - lib/minitest-chef-handler.rb
131
132
  - lib/minitest-chef-handler/assertions.rb
132
133
  - lib/minitest-chef-handler/ci_runner.rb
@@ -139,6 +140,8 @@ files:
139
140
  - lib/minitest-chef-handler/spec.rb
140
141
  - lib/minitest-chef-handler/unit.rb
141
142
  - minitest-chef-handler.gemspec
143
+ - script/bootstrap
144
+ - script/test
142
145
  - spec/minitest-chef-handler/assertions_spec.rb
143
146
  - spec/minitest-chef-handler/infections_spec.rb
144
147
  - spec/minitest-chef-handler/lookup_spec.rb
@@ -157,18 +160,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
157
160
  - - ! '>='
158
161
  - !ruby/object:Gem::Version
159
162
  version: '0'
160
- segments:
161
- - 0
162
- hash: -558242354881873270
163
163
  required_rubygems_version: !ruby/object:Gem::Requirement
164
164
  none: false
165
165
  requirements:
166
166
  - - ! '>='
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
- segments:
170
- - 0
171
- hash: -558242354881873270
172
169
  requirements: []
173
170
  rubyforge_project:
174
171
  rubygems_version: 1.8.23
data/Gemfile DELETED
@@ -1,4 +0,0 @@
1
- source 'http://rubygems.org'
2
-
3
- # Specify your gem's dependencies in minitest-chef-handler.gemspec
4
- gemspec