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.

Reply via email to