diff options
author | Ken Barber <ken@bob.sh> | 2011-11-14 13:51:42 -0800 |
---|---|---|
committer | Ken Barber <ken@bob.sh> | 2011-11-14 13:51:42 -0800 |
commit | aa9948bfb32c4d88a04f24586224b628b5be0c8d (patch) | |
tree | c4e3c3655fc798749447935e0cf9cfe4df4a5df2 /spec/unit/puppet/parser | |
parent | 86e86089fb41cb6fb2d6b7e358ed2afe0506fbeb (diff) | |
parent | 05c67671fd442c4fc2f20293075495bb97879855 (diff) | |
download | puppet-stdlib-aa9948bfb32c4d88a04f24586224b628b5be0c8d.tar.gz puppet-stdlib-aa9948bfb32c4d88a04f24586224b628b5be0c8d.tar.bz2 |
Merge pull request #25 from bodepd/feature/master/10802_get_module_path
(#10802) add new function get_module_path
Diffstat (limited to 'spec/unit/puppet/parser')
-rw-r--r-- | spec/unit/puppet/parser/functions/get_module_path_spec.rb | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/unit/puppet/parser/functions/get_module_path_spec.rb b/spec/unit/puppet/parser/functions/get_module_path_spec.rb new file mode 100644 index 0000000..d8340f4 --- /dev/null +++ b/spec/unit/puppet/parser/functions/get_module_path_spec.rb @@ -0,0 +1,42 @@ +#!/usr/bin/env rspec +require 'puppet' +require 'fileutils' +require 'spec_helper' +describe Puppet::Parser::Functions.function(:get_module_path) do + include PuppetSpec::Files + + def get_scope(environment = 'production') + scope = Puppet::Parser::Scope.new + scope.compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("floppy", :environment => environment)) + scope + end + it 'should only allow one argument' do + expect { get_scope.function_get_module_path([]) }.should raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) + expect { get_scope.function_get_module_path(['1','2','3']) }.should raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) + end + it 'should raise an exception when the module cannot be found' do + expect { get_scope.function_get_module_path(['foo']) }.should raise_error(Puppet::ParseError, /Could not find module/) + end + describe 'when locating a module' do + let(:modulepath) { tmpdir('modulepath') } + let(:foo_path) { File.join(modulepath, 'foo') } + before(:each) { FileUtils.mkdir(foo_path) } + it 'should be able to find module paths from the modulepath setting' do + Puppet[:modulepath] = modulepath + get_scope.function_get_module_path(['foo']).should == foo_path + end + it 'should be able to find module paths when the modulepath is a list' do + Puppet[:modulepath] = modulepath + ":/tmp" + get_scope.function_get_module_path(['foo']).should == foo_path + end + it 'should be able to find module paths from the environment' do + conf_file = tmpfile('conffile') + File.open(conf_file, 'w') do |fh| + fh.write("[dansenvironment]\nmodulepath = #{modulepath}") + end + Puppet[:config] = conf_file + Puppet.parse_config + get_scope('dansenvironment').function_get_module_path(['foo']).should ==foo_path + end + end +end |