diff options
-rw-r--r-- | lib/puppet/type.rb | 16 | ||||
-rwxr-xr-x | spec/unit/type/user_spec.rb | 5 |
2 files changed, 14 insertions, 7 deletions
diff --git a/lib/puppet/type.rb b/lib/puppet/type.rb index ccb2b492a..f9aacece8 100644 --- a/lib/puppet/type.rb +++ b/lib/puppet/type.rb @@ -410,13 +410,15 @@ class Type property = self.newattr(name) - begin - # make sure the parameter doesn't have any errors - property.value = value - rescue => detail - error = Puppet::Error.new("Parameter #{name} failed: #{detail}") - error.set_backtrace(detail.backtrace) - raise error + if property + begin + # make sure the parameter doesn't have any errors + property.value = value + rescue => detail + error = Puppet::Error.new("Parameter #{name} failed: #{detail}") + error.set_backtrace(detail.backtrace) + raise error + end end nil diff --git a/spec/unit/type/user_spec.rb b/spec/unit/type/user_spec.rb index abe18933f..4c6eb1150 100755 --- a/spec/unit/type/user_spec.rb +++ b/spec/unit/type/user_spec.rb @@ -262,6 +262,11 @@ describe user do end describe "when user has roles" do + before do + # To test this feature, we have to support it. + user.new(:name => "foo").provider.class.stubs(:feature?).returns(true) + end + it "should autorequire roles" do testuser = Puppet::Type.type(:user).new(:name => "testuser") testuser[:roles] = "testrole" |