diff options
| -rw-r--r-- | lib/chef/formatters/base.rb | 7 | ||||
| -rw-r--r-- | lib/chef/provider/package/dpkg.rb | 1 | ||||
| -rw-r--r-- | spec/unit/formatters/base_spec.rb | 48 |
3 files changed, 56 insertions, 0 deletions
diff --git a/lib/chef/formatters/base.rb b/lib/chef/formatters/base.rb index 636ba9c83f..c901068aa0 100644 --- a/lib/chef/formatters/base.rb +++ b/lib/chef/formatters/base.rb @@ -93,6 +93,13 @@ class Chef def indent_by(amount) @output.indent += amount + if @output.indent < 0 + # This is left commented out for now. We need to uncomment it and fix at least one bug in + # the formatter, and then leave this line uncommented in the future. + #Chef::Log.warn "Internal Formatter Error -- Attempt to indent by negative number of spaces" + @output.indent = 0 + end + @output.indent end # Input: a Formatters::ErrorDescription object. diff --git a/lib/chef/provider/package/dpkg.rb b/lib/chef/provider/package/dpkg.rb index a1f1c797b1..4df43fb802 100644 --- a/lib/chef/provider/package/dpkg.rb +++ b/lib/chef/provider/package/dpkg.rb @@ -31,6 +31,7 @@ class Chef DPKG_VERSION = /^Version: (.+)$/ include Chef::Mixin::GetSourceFromPackage + include Chef::Mixin::ShellOut def define_resource_requirements super diff --git a/spec/unit/formatters/base_spec.rb b/spec/unit/formatters/base_spec.rb new file mode 100644 index 0000000000..6a843ea775 --- /dev/null +++ b/spec/unit/formatters/base_spec.rb @@ -0,0 +1,48 @@ +# +# Author:: Lamont Granquist (<lamont@getchef.com>) +# +# Copyright:: Copyright (c) 2012 Chef Software, Inc. +# License:: Apache License, Version 2.0 +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +require 'spec_helper' + +describe Chef::Formatters::Base do + let(:out) { double("out") } + let(:err) { double("err") } + let(:formatter) { Chef::Formatters::Base.new(out, err) } + + it "starts with an indentation of zero" do + expect(formatter.output.indent).to eql(0) + end + + it "increments it to two correctly" do + formatter.indent_by(2) + expect(formatter.output.indent).to eql(2) + end + + it "increments it and then decrements it corectly" do + formatter.indent_by(2) + formatter.indent_by(-2) + expect(formatter.output.indent).to eql(0) + end + + it "does not allow negative indentation" do + formatter.indent_by(-2) + expect(formatter.output.indent).to eql(0) + end +end + + |
