diff options
author | Noah Kantrowitz <noah@coderanger.net> | 2018-06-14 19:38:31 -0700 |
---|---|---|
committer | Noah Kantrowitz <noah@coderanger.net> | 2018-06-14 19:39:59 -0700 |
commit | 67530a948eba39ea809ed2e869cec2436f389c89 (patch) | |
tree | 2a569faa3e14e845f156112fd981b72ab9407ca2 | |
parent | 631d79e736ee5ab7001dbbbfcc1a3ffc8f96b052 (diff) | |
download | chef-67530a948eba39ea809ed2e869cec2436f389c89.tar.gz |
Allow targeting via the deprecation ID, either as a number or in the CHEF-n form we show in various places.
This is because users might not actually know the deprecation key, so this is probably more approachable.
Signed-off-by: Noah Kantrowitz <noah@coderanger.net>
-rw-r--r-- | lib/chef/deprecated.rb | 2 | ||||
-rw-r--r-- | spec/unit/chef_class_spec.rb | 27 |
2 files changed, 28 insertions, 1 deletions
diff --git a/lib/chef/deprecated.rb b/lib/chef/deprecated.rb index b490556ddc..944cecf61b 100644 --- a/lib/chef/deprecated.rb +++ b/lib/chef/deprecated.rb @@ -68,7 +68,7 @@ class Chef # Just in case someone uses a symbol in the config by mistake. silence_spec = silence_spec.to_s # Check for a silence by deprecation name, or by location. - self.class.deprecation_key == silence_spec || location.include?(silence_spec) + self.class.deprecation_key == silence_spec || self.class.deprecation_id.to_s == silence_spec || "chef-#{self.class.deprecation_id}" == silence_spec.downcase || location.include?(silence_spec) end # check if this warning has been silenced by inline comment. return true if location =~ /^(.*?):(\d+):in/ && begin diff --git a/spec/unit/chef_class_spec.rb b/spec/unit/chef_class_spec.rb index b6d28e7215..f9ea00090e 100644 --- a/spec/unit/chef_class_spec.rb +++ b/spec/unit/chef_class_spec.rb @@ -134,6 +134,33 @@ describe "Chef class" do Chef.deprecated(:generic, "This is my handle.") end + it "allows silencing specific IDs" do + Chef::Config[:silence_deprecation_warnings] = [0] + expect(Chef::Log).to receive(:warn).with(/I'm a little teapot/).once + expect(Chef::Log).to receive(:warn).with(/This is my handle/).once + Chef.deprecated(:generic, "I'm a little teapot.") + Chef.deprecated(:internal_api, "Short and stout.") + Chef.deprecated(:generic, "This is my handle.") + end + + it "allows silencing specific IDs using the CHEF- syntax" do + Chef::Config[:silence_deprecation_warnings] = ["CHEF-0"] + expect(Chef::Log).to receive(:warn).with(/I'm a little teapot/).once + expect(Chef::Log).to receive(:warn).with(/This is my handle/).once + Chef.deprecated(:generic, "I'm a little teapot.") + Chef.deprecated(:internal_api, "Short and stout.") + Chef.deprecated(:generic, "This is my handle.") + end + + it "allows silencing specific IDs using the chef- syntax" do + Chef::Config[:silence_deprecation_warnings] = ["chef-0"] + expect(Chef::Log).to receive(:warn).with(/I'm a little teapot/).once + expect(Chef::Log).to receive(:warn).with(/This is my handle/).once + Chef.deprecated(:generic, "I'm a little teapot.") + Chef.deprecated(:internal_api, "Short and stout.") + Chef.deprecated(:generic, "This is my handle.") + end + it "allows silencing specific lines" do Chef::Config[:silence_deprecation_warnings] = ["chef_class_spec.rb:#{__LINE__ + 4}"] expect(Chef::Log).to receive(:warn).with(/I'm a little teapot/).once |