summaryrefslogtreecommitdiffstats
path: root/spec/unit/node
diff options
context:
space:
mode:
authorLuke Kanies <luke@puppetlabs.com>2011-07-07 00:03:51 -0700
committerLuke Kanies <luke@puppetlabs.com>2011-07-15 11:16:09 -0700
commit7e5ca648112a2703ba827f96f36fe2a5f7d1c751 (patch)
tree55c21248f39f17a72f0042f6f71689d9ba8a6c40 /spec/unit/node
parentf4acb025f3a125d4c3c359fb6896ac20b36e06ab (diff)
Making Fact json handling more resilient
We were failing if any values were nil, and values were often nil, at least in testing. We now only include non-nil values, and we handle nil values just fine. Signed-off-by: Luke Kanies <luke@puppetlabs.com> Reviewed-by: Nick Lewis <nick@puppetlabs.com>
Diffstat (limited to 'spec/unit/node')
-rwxr-xr-xspec/unit/node/facts_spec.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/spec/unit/node/facts_spec.rb b/spec/unit/node/facts_spec.rb
index efaa76e12..6d2b0a7ac 100755
--- a/spec/unit/node/facts_spec.rb
+++ b/spec/unit/node/facts_spec.rb
@@ -128,6 +128,20 @@ describe Puppet::Node::Facts, "when indirecting" do
result['timestamp'].should == facts.timestamp.to_s
result['expiration'].should == facts.expiration.to_s
end
+
+ it "should not include nil values" do
+ facts = Puppet::Node::Facts.new("foo", {'a' => 1, 'b' => 2, 'c' => 3})
+ pson = PSON.parse(facts.to_pson)
+ pson.should_not be_include("expiration")
+ end
+
+ it "should be able to handle nil values" do
+ pson = %Q({"name": "foo", "values": {"a": "1", "b": "2", "c": "3"}})
+ format = Puppet::Network::FormatHandler.format('pson')
+ facts = format.intern(Puppet::Node::Facts,pson)
+ facts.name.should == 'foo'
+ facts.expiration.should be_nil
+ end
end
end
end