diff options
| author | Luke Kanies <luke@madstop.com> | 2009-08-18 16:00:21 -0700 |
|---|---|---|
| committer | Luke Kanies <luke@madstop.com> | 2009-08-18 16:00:21 -0700 |
| commit | e408d6c7d562f126df97cd57e04fd7802bc53390 (patch) | |
| tree | 238498ac559a381e879eb02035f6fa2e465b0b57 /spec/unit/module.rb | |
| parent | 796ba5c4ccec117bbc4dec69c670337e70b48634 (diff) | |
| download | puppet-e408d6c7d562f126df97cd57e04fd7802bc53390.tar.gz puppet-e408d6c7d562f126df97cd57e04fd7802bc53390.tar.xz puppet-e408d6c7d562f126df97cd57e04fd7802bc53390.zip | |
Refactoring the Module/Environment co-interface
This simplifies who owns what code in these two classes,
and the result should be much cleaner and simpler.
Signed-off-by: Luke Kanies <luke@madstop.com>
Diffstat (limited to 'spec/unit/module.rb')
| -rwxr-xr-x | spec/unit/module.rb | 91 |
1 files changed, 4 insertions, 87 deletions
diff --git a/spec/unit/module.rb b/spec/unit/module.rb index 29883dc26..4fa6ec5af 100755 --- a/spec/unit/module.rb +++ b/spec/unit/module.rb @@ -43,6 +43,10 @@ describe Puppet::Module do mod.to_s.should == "Module foo(/a)" end + it "should fail if its name is not alphanumeric" do + lambda { Puppet::Module.new(".something") }.should raise_error(Puppet::Module::InvalidName) + end + it "should require a name at initialization" do lambda { Puppet::Module.new }.should raise_error(ArgumentError) end @@ -178,93 +182,6 @@ describe Puppet::Module do end end -describe Puppet::Module, "when yielding each module in a list of directories" do - before do - FileTest.stubs(:directory?).returns true - end - - it "should search for modules in each directory in the list" do - Dir.expects(:entries).with("/one").returns [] - Dir.expects(:entries).with("/two").returns [] - - Puppet::Module.each_module("/one", "/two") - end - - it "should accept the list of directories as an array" do - Dir.expects(:entries).with("/one").returns [] - Dir.expects(:entries).with("/two").returns [] - - Puppet::Module.each_module(%w{/one /two}) - end - - it "should accept the list of directories joined by #{File::PATH_SEPARATOR}" do - Dir.expects(:entries).with("/one").returns [] - Dir.expects(:entries).with("/two").returns [] - - list = %w{/one /two}.join(File::PATH_SEPARATOR) - - Puppet::Module.each_module(list) - end - - it "should not create modules for '.' or '..' in the provided directory list" do - Dir.expects(:entries).with("/one").returns(%w{. ..}) - - result = [] - Puppet::Module.each_module("/one") do |mod| - result << mod - end - - result.should be_empty - end - - it "should not create modules for non-directories in the provided directory list" do - Dir.expects(:entries).with("/one").returns(%w{notdir}) - - FileTest.expects(:directory?).with("/one/notdir").returns false - - result = [] - Puppet::Module.each_module("/one") do |mod| - result << mod - end - - result.should be_empty - end - - it "should yield each found module" do - Dir.expects(:entries).with("/one").returns(%w{f1 f2}) - - one = mock 'one' - two = mock 'two' - - Puppet::Module.expects(:new).with("f1").returns one - Puppet::Module.expects(:new).with("f2").returns two - - result = [] - Puppet::Module.each_module("/one") do |mod| - result << mod - end - - result.should == [one, two] - end - - it "should not yield a module with the same name as a previously yielded module" do - Dir.expects(:entries).with("/one").returns(%w{f1}) - Dir.expects(:entries).with("/two").returns(%w{f1}) - - one = mock 'one' - - Puppet::Module.expects(:new).with("f1").returns one - Puppet::Module.expects(:new).with("f1").never - - result = [] - Puppet::Module.each_module("/one", "/two") do |mod| - result << mod - end - - result.should == [one] - end -end - describe Puppet::Module, " when building its search path" do it "should use the current environment's search path if no environment is specified" do env = mock 'env' |
