[Pkg-puppet-devel] [SCM] Puppet packaging for Debian branch, master, updated. debian/0.24.6-1-356-g5718585
James Turnbull
james at lovedthanlost.net
Fri Jan 23 14:21:01 UTC 2009
The following commit has been merged in the master branch:
commit 3b807633e3ac5378858c4f88ec6208d959fba742
Author: Paul Nasrat <pnasrat at googlemail.com>
Date: Tue Sep 23 11:51:51 2008 +0100
Add tests for FileServer::Mount list for #1544
diff --git a/spec/unit/network/handler/fileserver.rb b/spec/unit/network/handler/fileserver.rb
new file mode 100644
index 0000000..9cde963
--- /dev/null
+++ b/spec/unit/network/handler/fileserver.rb
@@ -0,0 +1,133 @@
+#!/usr/bin/env ruby
+
+require File.dirname(__FILE__) + '/../../../spec_helper'
+
+require 'puppet/network/handler/fileserver'
+
+
+describe Puppet::Network::Handler do
+ require 'tmpdir'
+
+ def create_file(filename)
+ File.open(filename, "w") { |f| f.puts filename}
+ end
+
+ def create_nested_file()
+ dirname = File.join(@basedir, "nested_dir")
+ Dir.mkdir(dirname)
+ file = File.join(dirname, "nested_dir_file")
+ create_file(file)
+ end
+
+ before do
+ @basedir = File.join("/tmp", "test_network_handler")
+ Dir.mkdir(@basedir)
+ @file = File.join(@basedir, "aFile")
+ @link = File.join(@basedir, "aLink")
+ create_file(@file)
+ @mount = Puppet::Network::Handler::FileServer::Mount.new("some_path", @basedir)
+ end
+
+ it "should list a single directory" do
+ @mount.list("/", false, false).should == [["/", "directory"]]
+ end
+
+ it "should list a file within a directory when given the file path" do
+ @mount.list("/aFile", false, "false").should == [["/", "file"]]
+ end
+
+ it "should return nil for a non-existent path" do
+ @mount.list("/no_such_file", false, false).should be(nil)
+ end
+
+ it "should list a symbolic link as a file when given the link path" do
+ File.symlink(@file, @link)
+ @mount.list("/aLink", false, false).should == [["/", "file"]]
+ end
+
+ it "should return nil for a dangling symbolic link when given the link path" do
+ File.symlink("/some/where", @link)
+ @mount.list("/aLink", false, false).should be(nil)
+ end
+
+ it "should list directory contents of a flat directory structure when asked to recurse" do
+ list = @mount.list("/", true, false)
+ list.should include(["/aFile", "file"])
+ list.should include(["/", "directory"])
+ list.should have(2).items
+ end
+
+ it "should list the contents of a nested directory" do
+ create_nested_file()
+ list = @mount.list("/", true, false)
+ list.sort.should == [ ["/aFile", "file"], ["/", "directory"] ,
+ ["/nested_dir", "directory"], ["/nested_dir/nested_dir_file", "file"]].sort
+ end
+
+ it "should list the contents of a directory ignoring files that match" do
+ create_nested_file()
+ list = @mount.list("/", true, "*File")
+ list.sort.should == [ ["/", "directory"] ,
+ ["/nested_dir", "directory"], ["/nested_dir/nested_dir_file", "file"]].sort
+ end
+
+ it "should list the contents of a directory ignoring directories that match" do
+ create_nested_file()
+ list = @mount.list("/", true, "*nested_dir")
+ list.sort.should == [ ["/aFile", "file"], ["/", "directory"] ].sort
+ end
+
+ it "should list the contents of a directory ignoring all ignore patterns that match" do
+ create_nested_file()
+ list = @mount.list("/", true, ["*File" , "*nested_dir"])
+ list.should == [ ["/", "directory"] ]
+ end
+
+ it "should list the directory when recursing to a depth of zero" do
+ create_nested_file()
+ list = @mount.list("/", 0, false)
+ list.should == [["/", "directory"]]
+ end
+
+ it "should list the base directory and files and nested directory to a depth of one" do
+ create_nested_file()
+ list = @mount.list("/", 1, false)
+ list.sort.should == [ ["/aFile", "file"], ["/nested_dir", "directory"], ["/", "directory"] ].sort
+ end
+
+ it "should list the base directory and files and nested directory to a depth of two" do
+ create_nested_file()
+ list = @mount.list("/", 2, false)
+ list.sort.should == [ ["/aFile", "file"], ["/", "directory"] ,
+ ["/nested_dir", "directory"], ["/nested_dir/nested_dir_file", "file"]].sort
+ end
+
+ it "should list the base directory and files and nested directory to a depth greater than the directory structure" do
+ create_nested_file()
+ list = @mount.list("/", 42, false)
+ list.sort.should == [ ["/aFile", "file"], ["/", "directory"] ,
+ ["/nested_dir", "directory"], ["/nested_dir/nested_dir_file", "file"]].sort
+ end
+
+ it "should list a valid symbolic link as a file when recursing base dir" do
+ File.symlink(@file, @link)
+ list = @mount.list("/", true, false)
+ list.sort.should == [ ["/", "directory"], ["/aFile", "file"], ["/aLink", "file"] ].sort
+ end
+
+ it "should not error when a dangling symlink is present" do
+ File.symlink("/some/where", @link)
+ lambda { @mount.list("/", true, false) }.should_not raise_error
+ end
+
+ it "should return the directory contents of valid entries when a dangling symlink is present" do
+ File.symlink("/some/where", @link)
+ list = @mount.list("/", true, false)
+ list.sort.should == [ ["/aFile", "file"], ["/", "directory"] ].sort
+ end
+
+ after do
+ FileUtils.rm_rf(@basedir)
+ end
+
+end
\ No newline at end of file
--
Puppet packaging for Debian
More information about the Pkg-puppet-devel
mailing list