From 2ebe0d7c069a62008b6b65bb118b06b590a2044b Mon Sep 17 00:00:00 2001 From: Noah Kantrowitz Date: Thu, 26 Apr 2018 17:10:29 -0700 Subject: Allow specifying `ignore_failure :quiet` to disable the error spew. Signed-off-by: Noah Kantrowitz --- spec/unit/formatters/base_spec.rb | 39 ++++++++++++++++++++++++++++++++++----- spec/unit/resource_spec.rb | 10 ++++++++++ 2 files changed, 44 insertions(+), 5 deletions(-) (limited to 'spec') diff --git a/spec/unit/formatters/base_spec.rb b/spec/unit/formatters/base_spec.rb index 30c7757e5a..cac1194fee 100644 --- a/spec/unit/formatters/base_spec.rb +++ b/spec/unit/formatters/base_spec.rb @@ -23,6 +23,14 @@ describe Chef::Formatters::Base do let(:out) { StringIO.new } let(:err) { StringIO.new } let(:formatter) { Chef::Formatters::Base.new(out, err) } + let(:exception) do + # An exception with a real backtrace. + begin + raise EOFError + rescue EOFError => exc + end + exc + end it "starts with an indentation of zero" do expect(formatter.output.indent).to eql(0) @@ -45,27 +53,48 @@ describe Chef::Formatters::Base do end it "humanizes EOFError exceptions for #registration_failed" do - formatter.registration_failed("foo.example.com", EOFError.new, double("Chef::Config")) + formatter.registration_failed("foo.example.com", exception, double("Chef::Config")) expect(out.string).to match(/Received an EOF on transport socket/) end it "humanizes EOFError exceptions for #node_load_failed" do - formatter.node_load_failed("foo.example.com", EOFError.new, double("Chef::Config")) + formatter.node_load_failed("foo.example.com", exception, double("Chef::Config")) expect(out.string).to match(/Received an EOF on transport socket/) end it "humanizes EOFError exceptions for #run_list_expand_failed" do - formatter.run_list_expand_failed(double("Chef::Node"), EOFError.new) + formatter.run_list_expand_failed(double("Chef::Node"), exception) expect(out.string).to match(/Received an EOF on transport socket/) end it "humanizes EOFError exceptions for #cookbook_resolution_failed" do - formatter.run_list_expand_failed(double("Expanded Run List"), EOFError.new) + formatter.run_list_expand_failed(double("Expanded Run List"), exception) expect(out.string).to match(/Received an EOF on transport socket/) end it "humanizes EOFError exceptions for #cookbook_sync_failed" do - formatter.cookbook_sync_failed("foo.example.com", EOFError.new) + formatter.cookbook_sync_failed("foo.example.com", exception) expect(out.string).to match(/Received an EOF on transport socket/) end + + it "outputs error information for failed resources with ignore_failure true" do + resource = Chef::Resource::RubyBlock.new('test') + resource.ignore_failure(true) + formatter.resource_failed(resource, :run, exception) + expect(out.string).to match(/Error executing action `run` on resource 'ruby_block\[test\]'/) + end + + it "does not output error information for failed resources with ignore_failure :quiet" do + resource = Chef::Resource::RubyBlock.new('test') + resource.ignore_failure(:quiet) + formatter.resource_failed(resource, :run, exception) + expect(out.string).to eq('') + end + + it "does not output error information for failed resources with ignore_failure 'quiet'" do + resource = Chef::Resource::RubyBlock.new('test') + resource.ignore_failure('quiet') + formatter.resource_failed(resource, :run, exception) + expect(out.string).to eq('') + end end diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb index fe853922a1..3309d668a2 100644 --- a/spec/unit/resource_spec.rb +++ b/spec/unit/resource_spec.rb @@ -555,6 +555,16 @@ end resource.ignore_failure(true) expect(resource.ignore_failure).to eq(true) end + + it "should allow you to set quiet ignore_failure as a symbol" do + resource.ignore_failure(:quiet) + expect(resource.ignore_failure).to eq(:quiet) + end + + it "should allow you to set quiet ignore_failure as a string" do + resource.ignore_failure('quiet') + expect(resource.ignore_failure).to eq('quiet') + end end describe "retries" do -- cgit v1.2.1 From 6b854d1975a5c990cf0c0466dabc469774bbe235 Mon Sep 17 00:00:00 2001 From: Noah Kantrowitz Date: Thu, 26 Apr 2018 17:52:43 -0700 Subject: Feed the Rubocop. Some day I will remember which is which on string styles. Signed-off-by: Noah Kantrowitz --- spec/unit/formatters/base_spec.rb | 12 ++++++------ spec/unit/resource_spec.rb | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'spec') diff --git a/spec/unit/formatters/base_spec.rb b/spec/unit/formatters/base_spec.rb index cac1194fee..19182554f9 100644 --- a/spec/unit/formatters/base_spec.rb +++ b/spec/unit/formatters/base_spec.rb @@ -78,23 +78,23 @@ describe Chef::Formatters::Base do end it "outputs error information for failed resources with ignore_failure true" do - resource = Chef::Resource::RubyBlock.new('test') + resource = Chef::Resource::RubyBlock.new("test") resource.ignore_failure(true) formatter.resource_failed(resource, :run, exception) expect(out.string).to match(/Error executing action `run` on resource 'ruby_block\[test\]'/) end it "does not output error information for failed resources with ignore_failure :quiet" do - resource = Chef::Resource::RubyBlock.new('test') + resource = Chef::Resource::RubyBlock.new("test") resource.ignore_failure(:quiet) formatter.resource_failed(resource, :run, exception) - expect(out.string).to eq('') + expect(out.string).to eq("") end it "does not output error information for failed resources with ignore_failure 'quiet'" do - resource = Chef::Resource::RubyBlock.new('test') - resource.ignore_failure('quiet') + resource = Chef::Resource::RubyBlock.new("test") + resource.ignore_failure("quiet") formatter.resource_failed(resource, :run, exception) - expect(out.string).to eq('') + expect(out.string).to eq("") end end diff --git a/spec/unit/resource_spec.rb b/spec/unit/resource_spec.rb index 3309d668a2..523f9f7365 100644 --- a/spec/unit/resource_spec.rb +++ b/spec/unit/resource_spec.rb @@ -562,8 +562,8 @@ end end it "should allow you to set quiet ignore_failure as a string" do - resource.ignore_failure('quiet') - expect(resource.ignore_failure).to eq('quiet') + resource.ignore_failure("quiet") + expect(resource.ignore_failure).to eq("quiet") end end -- cgit v1.2.1