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.
