Add specs to demonstrate that the instances method is currently broken because it does not take the actual mountstate into account.
As a result running "puppet resource mount" on the commandline will report every mount that appears in /etc/(v)fstab as unmounted. Signed-off-by: Stefan Schulte <[email protected]> --- Local-branch: ticket/2.7.x/7300 spec/unit/provider/mount/parsed_spec.rb | 41 +++++++++++++++++++++++++++++++ 1 files changed, 41 insertions(+), 0 deletions(-) diff --git a/spec/unit/provider/mount/parsed_spec.rb b/spec/unit/provider/mount/parsed_spec.rb index 0293e07..2e1e1e9 100755 --- a/spec/unit/provider/mount/parsed_spec.rb +++ b/spec/unit/provider/mount/parsed_spec.rb @@ -193,6 +193,47 @@ FSTAB my_fixtures('*.fstab').each do |fstab| platform = File.basename(fstab, '.fstab') + + describe "when calling instances on #{platform}" do + before :each do + if Facter[:operatingsystem] == "Solaris" then + platform == 'solaris' or + pending "We need to stub the operatingsystem fact at load time, but can't" + else + platform != 'solaris' or + pending "We need to stub the operatingsystem fact at load time, but can't" + end + + # Stub the mount output to our fixture. + begin + mount = my_fixture(platform + '.mount') + @provider.stubs(:mountcmd).returns File.read(mount) + rescue + pending "is #{platform}.mount missing at this point?" + end + + # Note: we have to stub default_target before creating resources + # because it is used by Puppet::Type::Mount.new to populate the + # :target property. + @provider.stubs(:default_target).returns fstab + @retrieve = @provider.instances.collect { |prov| {:name => prov.get(:name), :ensure => prov.get(:ensure)}} + end + + # Following mountpoint are present in all fstabs/mountoutputs + it "should include unmounted resources" do + @retrieve.should include(:name => '/', :ensure => :mounted) + end + + it "should include mounted resources" do + @retrieve.should include(:name => '/boot', :ensure => :unmounted) + end + + it "should include ghost resources" do + @retrieve.should include(:name => '/ghost', :ensure => :ghost) + end + + end + describe "when prefetching on #{platform}" do before :each do if Facter[:operatingsystem] == "Solaris" then -- 1.7.5.rc3 -- 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.
