summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/puppet/type.rb16
-rwxr-xr-xspec/unit/type/user_spec.rb5
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"