chef 11.10.2-x86-mingw32 → 11.10.4.ohai7.0-x86-mingw32

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.
@@ -31,20 +31,6 @@ class Chef
31
31
 
32
32
  include Chef::Mixin::ConvertToClassName
33
33
 
34
- # Default +cookbook_name+ implementation, always returns "none". This
35
- # should be overriden in including classes whenever a meaningful value
36
- # can be provided.
37
- def cookbook_name
38
- "none"
39
- end
40
-
41
- # Default +recipe_name+ implementation, always returns "none". This
42
- # should be overridden in including classes whenever a meaningful value
43
- # can be provided.
44
- def recipe_name
45
- "none"
46
- end
47
-
48
34
  def method_missing(method_symbol, *args, &block)
49
35
  # If we have a definition that matches, we want to use that instead. This should
50
36
  # let you do some really crazy over-riding of "native" types, if you really want
@@ -119,12 +105,13 @@ class Chef
119
105
 
120
106
  resource = resource_class.new(name, run_context)
121
107
  resource.source_line = created_at
122
- resource.cookbook_name = cookbook_name
123
- resource.recipe_name = recipe_name
124
108
  # If we have a resource like this one, we want to steal its state
125
109
  # This behavior is very counter-intuitive and should be removed.
126
110
  # See CHEF-3694, https://tickets.opscode.com/browse/CHEF-3694
111
+ # Moved to this location to resolve CHEF-5052, https://tickets.opscode.com/browse/CHEF-5052
127
112
  resource.load_prior_resource
113
+ resource.cookbook_name = cookbook_name
114
+ resource.recipe_name = recipe_name
128
115
  # Determine whether this resource is being created in the context of an enclosing Provider
129
116
  resource.enclosing_provider = self.is_a?(Chef::Provider) ? self : nil
130
117
 
data/lib/chef/provider.rb CHANGED
@@ -31,6 +31,9 @@ class Chef
31
31
  attr_accessor :current_resource
32
32
  attr_accessor :run_context
33
33
 
34
+ attr_reader :recipe_name
35
+ attr_reader :cookbook_name
36
+
34
37
  #--
35
38
  # TODO: this should be a reader, and the action should be passed in the
36
39
  # constructor; however, many/most subclasses override the constructor so
@@ -44,6 +47,9 @@ class Chef
44
47
  @current_resource = nil
45
48
  @run_context = run_context
46
49
  @converge_actions = nil
50
+
51
+ @recipe_name = nil
52
+ @cookbook_name = nil
47
53
  end
48
54
 
49
55
  def whyrun_mode?
data/lib/chef/version.rb CHANGED
@@ -17,7 +17,7 @@
17
17
 
18
18
  class Chef
19
19
  CHEF_ROOT = File.dirname(File.expand_path(File.dirname(__FILE__)))
20
- VERSION = '11.10.2'
20
+ VERSION = '11.10.4.ohai7.0'
21
21
  end
22
22
 
23
23
  # NOTE: the Chef::Version class is defined in version_class.rb
@@ -27,6 +27,7 @@ class Chef
27
27
  def initialize(name, run_context=nil)
28
28
  @resource_name = :zen_master
29
29
  super
30
+ allowed_actions << :win << :score
30
31
  end
31
32
 
32
33
  def peace(tf)
@@ -0,0 +1,70 @@
1
+ #
2
+ # Author:: Daniel DeLeo (<dan@getchef.com>)
3
+ # Copyright:: Copyright (c) 2014 Chef Software, Inc.
4
+ # License:: Apache License, Version 2.0
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+
19
+ require 'spec_helper'
20
+ require 'chef/dsl/recipe'
21
+
22
+
23
+ RecipeDSLExampleClass = Struct.new(:cookbook_name, :recipe_name)
24
+ class RecipeDSLExampleClass
25
+ include Chef::DSL::Recipe
26
+ end
27
+
28
+ RecipeDSLBaseAPI = Struct.new(:cookbook_name, :recipe_name)
29
+ class RecipeDSLExampleSubclass < RecipeDSLBaseAPI
30
+ include Chef::DSL::Recipe
31
+ end
32
+
33
+ # TODO: most of DSL::Recipe's implementation is tested in Chef::Recipe's tests,
34
+ # move those to here.
35
+ describe Chef::DSL::Recipe do
36
+
37
+ let(:cookbook_name) { "example_cb" }
38
+ let(:recipe_name) { "example_recipe" }
39
+
40
+ shared_examples_for "A Recipe DSL Implementation" do
41
+
42
+ it "responds to cookbook_name" do
43
+ expect(recipe.cookbook_name).to eq(cookbook_name)
44
+ end
45
+
46
+ it "responds to recipe_name" do
47
+ expect(recipe.recipe_name).to eq(recipe_name)
48
+ end
49
+ end
50
+
51
+ context "when included in a class that defines the required interface directly" do
52
+
53
+ let(:recipe) { RecipeDSLExampleClass.new(cookbook_name, recipe_name) }
54
+
55
+ include_examples "A Recipe DSL Implementation"
56
+
57
+ end
58
+
59
+ # This is the situation that occurs when the Recipe DSL gets mixed in to a
60
+ # resource, for example.
61
+ context "when included in a class that defines the required interface in a superclass" do
62
+
63
+ let(:recipe) { RecipeDSLExampleSubclass.new(cookbook_name, recipe_name) }
64
+
65
+ include_examples "A Recipe DSL Implementation"
66
+
67
+ end
68
+
69
+ end
70
+
@@ -32,6 +32,10 @@ describe Chef::Formatters::ErrorInspectors::ResourceFailureInspector do
32
32
  "rspec-example"
33
33
  end
34
34
 
35
+ def recipe_name
36
+ "rspec-example-recipe"
37
+ end
38
+
35
39
  before do
36
40
  @description = Chef::Formatters::ErrorDescription.new("Error Converging Resource:")
37
41
  @stdout = StringIO.new
@@ -43,7 +47,6 @@ describe Chef::Formatters::ErrorInspectors::ResourceFailureInspector do
43
47
 
44
48
  describe "when explaining an error converging a resource" do
45
49
  before do
46
- source_line = caller(0)[0]
47
50
  @resource = package("non-existing-package") do
48
51
 
49
52
  only_if do
@@ -22,28 +22,38 @@
22
22
  require 'spec_helper'
23
23
 
24
24
  describe Chef::Recipe do
25
- before(:each) do
26
- @cookbook_repo = File.expand_path(File.join(File.dirname(__FILE__), "..", "data", "cookbooks"))
27
- cl = Chef::CookbookLoader.new(@cookbook_repo)
28
- cl.load_cookbooks
29
- @cookbook_collection = Chef::CookbookCollection.new(cl)
30
- @node = Chef::Node.new
31
- @node.normal[:tags] = Array.new
32
- @events = Chef::EventDispatch::Dispatcher.new
33
- @run_context = Chef::RunContext.new(@node, @cookbook_collection, @events)
34
- @recipe = Chef::Recipe.new("hjk", "test", @run_context)
35
-
36
- # Shell/ext.rb is on the run path, and it defines
37
- # Chef::Recipe#resources to call pp, which we don't want when
38
- # we're running tests.
39
- @recipe.stub(:pp)
25
+
26
+ let(:cookbook_repo) { File.expand_path(File.join(File.dirname(__FILE__), "..", "data", "cookbooks")) }
27
+
28
+ let(:cookbook_loader) do
29
+ loader = Chef::CookbookLoader.new(cookbook_repo)
30
+ loader.load_cookbooks
31
+ loader
32
+ end
33
+
34
+ let(:cookbook_collection) { Chef::CookbookCollection.new(cookbook_loader) }
35
+
36
+ let(:node) do
37
+ Chef::Node.new.tap {|n| n.normal[:tags] = [] }
38
+ end
39
+
40
+ let(:events) do
41
+ Chef::EventDispatch::Dispatcher.new
42
+ end
43
+
44
+ let(:run_context) do
45
+ Chef::RunContext.new(node, cookbook_collection, events)
46
+ end
47
+
48
+ let(:recipe) do
49
+ Chef::Recipe.new("hjk", "test", run_context)
40
50
  end
41
51
 
42
52
  describe "method_missing" do
43
53
  describe "resources" do
44
54
  it "should load a two word (zen_master) resource" do
45
55
  lambda do
46
- @recipe.zen_master "monkey" do
56
+ recipe.zen_master "monkey" do
47
57
  peace true
48
58
  end
49
59
  end.should_not raise_error
@@ -51,7 +61,7 @@ describe Chef::Recipe do
51
61
 
52
62
  it "should load a one word (cat) resource" do
53
63
  lambda do
54
- @recipe.cat "loulou" do
64
+ recipe.cat "loulou" do
55
65
  pretty_kitty true
56
66
  end
57
67
  end.should_not raise_error
@@ -59,47 +69,47 @@ describe Chef::Recipe do
59
69
 
60
70
  it "should load a four word (one_two_three_four) resource" do
61
71
  lambda do
62
- @recipe.one_two_three_four "numbers" do
72
+ recipe.one_two_three_four "numbers" do
63
73
  i_can_count true
64
74
  end
65
75
  end.should_not raise_error
66
76
  end
67
77
 
68
78
  it "should throw an error if you access a resource that we can't find" do
69
- lambda { @recipe.not_home("not_home_resource") }.should raise_error(NameError)
79
+ lambda { recipe.not_home("not_home_resource") }.should raise_error(NameError)
70
80
  end
71
81
 
72
82
  it "should require a name argument" do
73
83
  lambda {
74
- @recipe.cat
84
+ recipe.cat
75
85
  }.should raise_error(ArgumentError, "You must supply a name when declaring a cat resource")
76
86
  end
77
87
 
78
88
  it "should allow regular errors (not NameErrors) to pass unchanged" do
79
89
  lambda {
80
- @recipe.cat("felix") { raise ArgumentError, "You Suck" }
90
+ recipe.cat("felix") { raise ArgumentError, "You Suck" }
81
91
  }.should raise_error(ArgumentError)
82
92
  end
83
93
 
84
94
  it "should add our zen_master to the collection" do
85
- @recipe.zen_master "monkey" do
95
+ recipe.zen_master "monkey" do
86
96
  peace true
87
97
  end
88
- @run_context.resource_collection.lookup("zen_master[monkey]").name.should eql("monkey")
98
+ run_context.resource_collection.lookup("zen_master[monkey]").name.should eql("monkey")
89
99
  end
90
100
 
91
101
  it "should add our zen masters to the collection in the order they appear" do
92
102
  %w{monkey dog cat}.each do |name|
93
- @recipe.zen_master name do
103
+ recipe.zen_master name do
94
104
  peace true
95
105
  end
96
106
  end
97
107
 
98
- @run_context.resource_collection.map{|r| r.name}.should eql(["monkey", "dog", "cat"])
108
+ run_context.resource_collection.map{|r| r.name}.should eql(["monkey", "dog", "cat"])
99
109
  end
100
110
 
101
111
  it "should return the new resource after creating it" do
102
- res = @recipe.zen_master "makoto" do
112
+ res = recipe.zen_master "makoto" do
103
113
  peace true
104
114
  end
105
115
  res.resource_name.should eql(:zen_master)
@@ -110,16 +120,16 @@ describe Chef::Recipe do
110
120
 
111
121
  it "locate resource for particular platform" do
112
122
  Object.const_set('ShaunTheSheep', Class.new(Chef::Resource){ provides :laughter, :on_platforms => ["television"] })
113
- @node.automatic[:platform] = "television"
114
- @node.automatic[:platform_version] = "123"
115
- res = @recipe.laughter "timmy"
123
+ node.automatic[:platform] = "television"
124
+ node.automatic[:platform_version] = "123"
125
+ res = recipe.laughter "timmy"
116
126
  res.name.should eql("timmy")
117
127
  res.kind_of?(ShaunTheSheep)
118
128
  end
119
129
 
120
130
  it "locate a resource for all platforms" do
121
131
  Object.const_set("YourMom", Class.new(Chef::Resource){ provides :love_and_caring })
122
- res = @recipe.love_and_caring "mommy"
132
+ res = recipe.love_and_caring "mommy"
123
133
  res.name.should eql("mommy")
124
134
  res.kind_of?(YourMom)
125
135
  end
@@ -129,7 +139,7 @@ describe Chef::Recipe do
129
139
 
130
140
  describe "creating resources via build_resource" do
131
141
  let(:zm_resource) do
132
- @recipe.build_resource(:zen_master, "klopp") do
142
+ recipe.build_resource(:zen_master, "klopp") do
133
143
  something "bvb"
134
144
  end
135
145
  end
@@ -146,14 +156,14 @@ describe Chef::Recipe do
146
156
 
147
157
  it "does not add the resource to the resource collection" do
148
158
  zm_resource # force let binding evaluation
149
- expect { @run_context.resource_collection.resources(:zen_master => "klopp") }.to raise_error(Chef::Exceptions::ResourceNotFound)
159
+ expect { run_context.resource_collection.resources(:zen_master => "klopp") }.to raise_error(Chef::Exceptions::ResourceNotFound)
150
160
  end
151
161
 
152
162
  end
153
163
 
154
164
  describe "creating resources via declare_resource" do
155
165
  let(:zm_resource) do
156
- @recipe.declare_resource(:zen_master, "klopp") do
166
+ recipe.declare_resource(:zen_master, "klopp") do
157
167
  something "bvb"
158
168
  end
159
169
  end
@@ -170,7 +180,7 @@ describe Chef::Recipe do
170
180
 
171
181
  it "adds the resource to the resource collection" do
172
182
  zm_resource # force let binding evaluation
173
- @run_context.resource_collection.resources(:zen_master => "klopp").should == zm_resource
183
+ run_context.resource_collection.resources(:zen_master => "klopp").should == zm_resource
174
184
  end
175
185
 
176
186
  end
@@ -179,13 +189,13 @@ describe Chef::Recipe do
179
189
 
180
190
  it "gives a sane error message when using method_missing" do
181
191
  lambda do
182
- @recipe.no_such_resource("foo")
192
+ recipe.no_such_resource("foo")
183
193
  end.should raise_error(NoMethodError, %q[No resource or method named `no_such_resource' for `Chef::Recipe "test"'])
184
194
  end
185
195
 
186
196
  it "gives a sane error message when using method_missing 'bare'" do
187
197
  lambda do
188
- @recipe.instance_eval do
198
+ recipe.instance_eval do
189
199
  # Giving an argument will change this from NameError to NoMethodError
190
200
  no_such_resource
191
201
  end
@@ -193,11 +203,11 @@ describe Chef::Recipe do
193
203
  end
194
204
 
195
205
  it "gives a sane error message when using build_resource" do
196
- expect { @recipe.build_resource(:no_such_resource, "foo") }.to raise_error(Chef::Exceptions::NoSuchResourceType)
206
+ expect { recipe.build_resource(:no_such_resource, "foo") }.to raise_error(Chef::Exceptions::NoSuchResourceType)
197
207
  end
198
208
 
199
209
  it "gives a sane error message when using declare_resource" do
200
- expect { @recipe.declare_resource(:no_such_resource, "bar") }.to raise_error(Chef::Exceptions::NoSuchResourceType)
210
+ expect { recipe.declare_resource(:no_such_resource, "bar") }.to raise_error(Chef::Exceptions::NoSuchResourceType)
201
211
  end
202
212
 
203
213
  end
@@ -206,7 +216,7 @@ describe Chef::Recipe do
206
216
 
207
217
  it "does not obfuscate the error source" do
208
218
  lambda do
209
- @recipe.zen_master("klopp") do
219
+ recipe.zen_master("klopp") do
210
220
  this_method_doesnt_exist
211
221
  end
212
222
  end.should raise_error(NoMethodError, "undefined method `this_method_doesnt_exist' for Chef::Resource::ZenMaster")
@@ -215,6 +225,53 @@ describe Chef::Recipe do
215
225
 
216
226
  end
217
227
 
228
+ describe "resource cloning" do
229
+
230
+ let(:second_recipe) do
231
+ Chef::Recipe.new("second_cb", "second_recipe", run_context)
232
+ end
233
+
234
+ let(:original_resource) do
235
+ recipe.zen_master("klopp") do
236
+ something "bvb09"
237
+ action :score
238
+ end
239
+ end
240
+
241
+ let(:duplicated_resource) do
242
+ original_resource
243
+ second_recipe.zen_master("klopp") do
244
+ # attrs should be cloned
245
+ end
246
+ end
247
+
248
+ it "copies attributes from the first resource" do
249
+ duplicated_resource.something.should == "bvb09"
250
+ end
251
+
252
+ it "does not copy the action from the first resource" do
253
+ original_resource.action.should == [:score]
254
+ duplicated_resource.action.should == :nothing
255
+ end
256
+
257
+ it "does not copy the source location of the first resource" do
258
+ # sanity check source location:
259
+ original_resource.source_line.should include(__FILE__)
260
+ duplicated_resource.source_line.should include(__FILE__)
261
+ # actual test:
262
+ original_resource.source_line.should_not == duplicated_resource.source_line
263
+ end
264
+
265
+ it "sets the cookbook name on the cloned resource to that resource's cookbook" do
266
+ duplicated_resource.cookbook_name.should == "second_cb"
267
+ end
268
+
269
+ it "sets the recipe name on the cloned resource to that resoure's recipe" do
270
+ duplicated_resource.recipe_name.should == "second_recipe"
271
+ end
272
+
273
+ end
274
+
218
275
  describe "resource definitions" do
219
276
  it "should execute defined resources" do
220
277
  crow_define = Chef::ResourceDefinition.new
@@ -224,12 +281,12 @@ describe Chef::Recipe do
224
281
  something params[:something]
225
282
  end
226
283
  end
227
- @run_context.definitions[:crow] = crow_define
228
- @recipe.crow "mine" do
284
+ run_context.definitions[:crow] = crow_define
285
+ recipe.crow "mine" do
229
286
  peace true
230
287
  end
231
- @run_context.resource_collection.resources(:zen_master => "lao tzu").name.should eql("lao tzu")
232
- @run_context.resource_collection.resources(:zen_master => "lao tzu").something.should eql(true)
288
+ run_context.resource_collection.resources(:zen_master => "lao tzu").name.should eql("lao tzu")
289
+ run_context.resource_collection.resources(:zen_master => "lao tzu").something.should eql(true)
233
290
  end
234
291
 
235
292
  it "should set the node on defined resources" do
@@ -240,12 +297,12 @@ describe Chef::Recipe do
240
297
  something params[:something]
241
298
  end
242
299
  end
243
- @run_context.definitions[:crow] = crow_define
244
- @node.normal[:foo] = false
245
- @recipe.crow "mine" do
300
+ run_context.definitions[:crow] = crow_define
301
+ node.normal[:foo] = false
302
+ recipe.crow "mine" do
246
303
  something node[:foo]
247
304
  end
248
- @recipe.resources(:zen_master => "lao tzu").something.should eql(false)
305
+ recipe.resources(:zen_master => "lao tzu").something.should eql(false)
249
306
  end
250
307
  end
251
308
 
@@ -258,15 +315,15 @@ describe Chef::Recipe do
258
315
  peace = true
259
316
  end
260
317
  CODE
261
- lambda { @recipe.instance_eval(code) }.should_not raise_error
262
- @recipe.resources(:zen_master => "gnome").name.should eql("gnome")
318
+ lambda { recipe.instance_eval(code) }.should_not raise_error
319
+ recipe.resources(:zen_master => "gnome").name.should eql("gnome")
263
320
  end
264
321
  end
265
322
 
266
323
  describe "from_file" do
267
324
  it "should load a resource from a ruby file" do
268
- @recipe.from_file(File.join(CHEF_SPEC_DATA, "recipes", "test.rb"))
269
- res = @recipe.resources(:file => "/etc/nsswitch.conf")
325
+ recipe.from_file(File.join(CHEF_SPEC_DATA, "recipes", "test.rb"))
326
+ res = recipe.resources(:file => "/etc/nsswitch.conf")
270
327
  res.name.should eql("/etc/nsswitch.conf")
271
328
  res.action.should eql([:create])
272
329
  res.owner.should eql("root")
@@ -275,88 +332,88 @@ describe Chef::Recipe do
275
332
  end
276
333
 
277
334
  it "should raise an exception if the file cannot be found or read" do
278
- lambda { @recipe.from_file("/tmp/monkeydiving") }.should raise_error(IOError)
335
+ lambda { recipe.from_file("/tmp/monkeydiving") }.should raise_error(IOError)
279
336
  end
280
337
  end
281
338
 
282
339
  describe "include_recipe" do
283
340
  it "should evaluate another recipe with include_recipe" do
284
- @node.should_receive(:loaded_recipe).with(:openldap, "gigantor")
285
- @run_context.include_recipe "openldap::gigantor"
286
- res = @run_context.resource_collection.resources(:cat => "blanket")
341
+ node.should_receive(:loaded_recipe).with(:openldap, "gigantor")
342
+ run_context.include_recipe "openldap::gigantor"
343
+ res = run_context.resource_collection.resources(:cat => "blanket")
287
344
  res.name.should eql("blanket")
288
345
  res.pretty_kitty.should eql(false)
289
346
  end
290
347
 
291
348
  it "should load the default recipe for a cookbook if include_recipe is called without a ::" do
292
- @node.should_receive(:loaded_recipe).with(:openldap, "default")
293
- @run_context.include_recipe "openldap"
294
- res = @run_context.resource_collection.resources(:cat => "blanket")
349
+ node.should_receive(:loaded_recipe).with(:openldap, "default")
350
+ run_context.include_recipe "openldap"
351
+ res = run_context.resource_collection.resources(:cat => "blanket")
295
352
  res.name.should eql("blanket")
296
353
  res.pretty_kitty.should eql(true)
297
354
  end
298
355
 
299
356
  it "should store that it has seen a recipe in the run_context" do
300
- @node.should_receive(:loaded_recipe).with(:openldap, "default")
301
- @run_context.include_recipe "openldap"
302
- @run_context.loaded_recipe?("openldap").should be_true
357
+ node.should_receive(:loaded_recipe).with(:openldap, "default")
358
+ run_context.include_recipe "openldap"
359
+ run_context.loaded_recipe?("openldap").should be_true
303
360
  end
304
361
 
305
362
  it "should not include the same recipe twice" do
306
- @node.should_receive(:loaded_recipe).with(:openldap, "default").exactly(:once)
307
- @cookbook_collection[:openldap].should_receive(:load_recipe).with("default", @run_context)
308
- @recipe.include_recipe "openldap"
309
- @cookbook_collection[:openldap].should_not_receive(:load_recipe).with("default", @run_context)
310
- @recipe.include_recipe "openldap"
363
+ node.should_receive(:loaded_recipe).with(:openldap, "default").exactly(:once)
364
+ cookbook_collection[:openldap].should_receive(:load_recipe).with("default", run_context)
365
+ recipe.include_recipe "openldap"
366
+ cookbook_collection[:openldap].should_not_receive(:load_recipe).with("default", run_context)
367
+ recipe.include_recipe "openldap"
311
368
  end
312
369
  end
313
370
 
314
371
  describe "tags" do
315
372
  it "should set tags via tag" do
316
- @recipe.tag "foo"
317
- @node[:tags].should include("foo")
373
+ recipe.tag "foo"
374
+ node[:tags].should include("foo")
318
375
  end
319
376
 
320
377
  it "should set multiple tags via tag" do
321
- @recipe.tag "foo", "bar"
322
- @node[:tags].should include("foo")
323
- @node[:tags].should include("bar")
378
+ recipe.tag "foo", "bar"
379
+ node[:tags].should include("foo")
380
+ node[:tags].should include("bar")
324
381
  end
325
382
 
326
383
  it "should not set the same tag twice via tag" do
327
- @recipe.tag "foo"
328
- @recipe.tag "foo"
329
- @node[:tags].should eql([ "foo" ])
384
+ recipe.tag "foo"
385
+ recipe.tag "foo"
386
+ node[:tags].should eql([ "foo" ])
330
387
  end
331
388
 
332
389
  it "should return the current list of tags from tag with no arguments" do
333
- @recipe.tag "foo"
334
- @recipe.tag.should eql([ "foo" ])
390
+ recipe.tag "foo"
391
+ recipe.tag.should eql([ "foo" ])
335
392
  end
336
393
 
337
394
  it "should return true from tagged? if node is tagged" do
338
- @recipe.tag "foo"
339
- @recipe.tagged?("foo").should be(true)
395
+ recipe.tag "foo"
396
+ recipe.tagged?("foo").should be(true)
340
397
  end
341
398
 
342
399
  it "should return false from tagged? if node is not tagged" do
343
- @recipe.tagged?("foo").should be(false)
400
+ recipe.tagged?("foo").should be(false)
344
401
  end
345
402
 
346
403
  it "should return false from tagged? if node is not tagged" do
347
- @recipe.tagged?("foo").should be(false)
404
+ recipe.tagged?("foo").should be(false)
348
405
  end
349
406
 
350
407
  it "should remove a tag from the tag list via untag" do
351
- @recipe.tag "foo"
352
- @recipe.untag "foo"
353
- @node[:tags].should eql([])
408
+ recipe.tag "foo"
409
+ recipe.untag "foo"
410
+ node[:tags].should eql([])
354
411
  end
355
412
 
356
413
  it "should remove multiple tags from the tag list via untag" do
357
- @recipe.tag "foo", "bar"
358
- @recipe.untag "bar", "foo"
359
- @node[:tags].should eql([])
414
+ recipe.tag "foo", "bar"
415
+ recipe.untag "bar", "foo"
416
+ node[:tags].should eql([])
360
417
  end
361
418
  end
362
419
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef
3
3
  version: !ruby/object:Gem::Version
4
- version: 11.10.2
5
- prerelease:
4
+ version: 11.10.4.ohai7.0
5
+ prerelease: 8
6
6
  platform: x86-mingw32
7
7
  authors:
8
8
  - Adam Jacob
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-18 00:00:00.000000000 Z
12
+ date: 2014-02-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mixlib-config
@@ -96,17 +96,17 @@ dependencies:
96
96
  requirement: !ruby/object:Gem::Requirement
97
97
  none: false
98
98
  requirements:
99
- - - ~>
99
+ - - '='
100
100
  - !ruby/object:Gem::Version
101
- version: '6.0'
101
+ version: 7.0.0.rc.0
102
102
  type: :runtime
103
103
  prerelease: false
104
104
  version_requirements: !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
- - - ~>
107
+ - - '='
108
108
  - !ruby/object:Gem::Version
109
- version: '6.0'
109
+ version: 7.0.0.rc.0
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: rest-client
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -1742,6 +1742,7 @@ files:
1742
1742
  - spec/unit/digester_spec.rb
1743
1743
  - spec/unit/dsl/data_query_spec.rb
1744
1744
  - spec/unit/dsl/platform_introspection_spec.rb
1745
+ - spec/unit/dsl/recipe_spec.rb
1745
1746
  - spec/unit/dsl/regsitry_helper_spec.rb
1746
1747
  - spec/unit/encrypted_data_bag_item_spec.rb
1747
1748
  - spec/unit/environment_spec.rb
@@ -2064,9 +2065,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
2064
2065
  required_rubygems_version: !ruby/object:Gem::Requirement
2065
2066
  none: false
2066
2067
  requirements:
2067
- - - ! '>='
2068
+ - - ! '>'
2068
2069
  - !ruby/object:Gem::Version
2069
- version: '0'
2070
+ version: 1.3.1
2070
2071
  requirements: []
2071
2072
  rubyforge_project:
2072
2073
  rubygems_version: 1.8.23