[Pkg-puppet-devel] [facter] 175/352: (FACT-237) Use specific error classes for deep_merge and deep_freeze
Stig Sandbeck Mathisen
ssm at debian.org
Sun Apr 6 22:21:43 UTC 2014
This is an automated email from the git hooks/post-receive script.
ssm pushed a commit to branch master
in repository facter.
commit 1921fa3acf22e5849277f83e0e4cbbdb30f73cd3
Author: Adrien Thebo <git at somethingsinistral.net>
Date: Fri Jan 17 09:41:21 2014 -0800
(FACT-237) Use specific error classes for deep_merge and deep_freeze
---
lib/facter/util/values.rb | 8 ++++++--
spec/unit/util/values_spec.rb | 9 +++++++--
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/lib/facter/util/values.rb b/lib/facter/util/values.rb
index f1e667c..a7048d5 100644
--- a/lib/facter/util/values.rb
+++ b/lib/facter/util/values.rb
@@ -4,6 +4,8 @@ module Facter
module Values
module_function
+ class DeepFreezeError < StandardError; end
+
# Duplicate and deeply freeze a given data structure
#
# @param value [Object] The structure to freeze
@@ -25,10 +27,12 @@ module Facter
hash
end.freeze
else
- raise ArgumentError, "Cannot deep freeze #{value}:#{value.class}"
+ raise DeepFreezeError, "Cannot deep freeze #{value}:#{value.class}"
end
end
+ class DeepMergeError < StandardError; end
+
# Perform a deep merge of two nested data structures.
#
# @param left [Object]
@@ -60,7 +64,7 @@ module Facter
msg << " at root"
msg << path.map { |part| "[#{part.inspect}]" }.join
end
- raise ArgumentError, msg
+ raise DeepMergeError, msg
end
ret
diff --git a/spec/unit/util/values_spec.rb b/spec/unit/util/values_spec.rb
index f3bb7f9..557eb19 100644
--- a/spec/unit/util/values_spec.rb
+++ b/spec/unit/util/values_spec.rb
@@ -41,6 +41,11 @@ describe Facter::Util::Values do
expect(output).to be_frozen
end
+ it "raises an error when given a structure that cannot be deeply frozen" do
+ expect {
+ described_class.deep_freeze(Set.new)
+ }.to raise_error(Facter::Util::Values::DeepFreezeError, /Cannot deep freeze.*Set/)
+ end
end
describe 'deep_merge' do
@@ -105,7 +110,7 @@ describe Facter::Util::Values do
expect {
described_class.deep_merge(first, second)
- }.to raise_error(ArgumentError, /Cannot merge .*at .*foo.*bar.*baz.*quux/)
+ }.to raise_error(Facter::Util::Values::DeepMergeError, /Cannot merge .*at .*foo.*bar.*baz.*quux/)
end
end
@@ -118,7 +123,7 @@ describe Facter::Util::Values do
it "raises an error when merging #{left}:#{left.class} and #{right}:#{right.class}" do
expect {
described_class.deep_merge(left, right)
- }.to raise_error(ArgumentError, /Cannot merge #{left.inspect}:#{left.class} and #{right.inspect}:#{right.class}/)
+ }.to raise_error(Facter::Util::Values::DeepMergeError, /Cannot merge #{left.inspect}:#{left.class} and #{right.inspect}:#{right.class}/)
end
end
end
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-puppet/facter.git
More information about the Pkg-puppet-devel
mailing list