diff options
author | Luke Kanies <luke@madstop.com> | 2008-03-24 17:10:00 -0500 |
---|---|---|
committer | Luke Kanies <luke@madstop.com> | 2008-03-24 17:10:00 -0500 |
commit | 6a535195a908ce80ce41a403d642b3afa871534f (patch) | |
tree | e99f2844f76b38ca74808340bb53b3d169ebbaea /test | |
parent | 528bbf1caefdd6963353df9242b81409f4dacbe5 (diff) | |
download | puppet-6a535195a908ce80ce41a403d642b3afa871534f.tar.gz puppet-6a535195a908ce80ce41a403d642b3afa871534f.tar.xz puppet-6a535195a908ce80ce41a403d642b3afa871534f.zip |
Fixing #571 -- provider suitability is now checked at resource
evaluation time, rather than resource instantiation time. This
means that you don't catch your "errors" as early, but it also
means you should be able to realistically configure a whole host
in one run.
Diffstat (limited to 'test')
-rwxr-xr-x | test/ral/manager/provider.rb | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/test/ral/manager/provider.rb b/test/ral/manager/provider.rb index bb7a21485..89aa49b9e 100755 --- a/test/ral/manager/provider.rb +++ b/test/ral/manager/provider.rb @@ -73,11 +73,6 @@ class TestTypeProviders < Test::Unit::TestCase confine :exists => "/no/such/file" end - inst = provider.new(:name => "bar") - assert_raise(Puppet::Error, "Did not fail on unsuitable provider instance") do - resource = @type.create :name => "bar", :provider => inst - end - # And make sure the provider must be a valid provider type for this resource pkgprov = Puppet::Type.type(:package).create(:name => "yayness").provider assert(provider, "did not get package provider") @@ -87,5 +82,26 @@ class TestTypeProviders < Test::Unit::TestCase end end + + # #571 -- so we can cause a provider to become suitable within + # a run. + def test_unsuitable_providers_should_not_fail_at_initialization + Puppet::Type.type(:user).provider(:useradd).stubs(:suitable?).returns false + + assert_nothing_raised("Unsuitable providers failed at initialization") do + Puppet::Type.type(:user).create :name => "luke", :ensure => :present, :provider => :useradd + end + end + + # #571 -- so we can cause a provider to become suitable within + # a run. + def test_unsuitable_providers_should_fail_at_evaluation + Puppet::Type.type(:user).provider(:useradd).stubs(:suitable?).returns false + + user = Puppet::Type.type(:user).create :name => "luke", :ensure => :present, :provider => :useradd + assert_raise(Puppet::Error, "Unsuitable provider did not fail at evaluation") do + user.evaluate + end + end end |