This can happen because we're almost always converting
to environment instances from strings.

Shouldn't happen often, but it's easier to be more failure-tolerant.

Signed-off-by: Luke Kanies <[email protected]>
---
 lib/puppet/node/environment.rb |    1 +
 spec/unit/node/environment.rb  |    5 +++++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/lib/puppet/node/environment.rb b/lib/puppet/node/environment.rb
index c65f78b..3bffc62 100644
--- a/lib/puppet/node/environment.rb
+++ b/lib/puppet/node/environment.rb
@@ -27,6 +27,7 @@ class Puppet::Node::Environment
 
     # Return an existing environment instance, or create a new one.
     def self.new(name = nil)
+        return name if name.is_a?(self)
         name ||= Puppet.settings.value(:environment)
 
         raise ArgumentError, "Environment name must be specified" unless name
diff --git a/spec/unit/node/environment.rb b/spec/unit/node/environment.rb
index 9536373..b4f44d0 100755
--- a/spec/unit/node/environment.rb
+++ b/spec/unit/node/environment.rb
@@ -43,6 +43,11 @@ describe Puppet::Node::Environment do
         Puppet::Node::Environment.new(:one).to_s.should == "one"
     end
 
+    it "should just return any provided environment if an environment is 
provided as the name" do
+        one = Puppet::Node::Environment.new(:one)
+        Puppet::Node::Environment.new(one).should equal(one)
+    end
+
     describe "when managing known resource types" do
         before do
             @env = Puppet::Node::Environment.new("dev")
-- 
1.6.1

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to