diff options
author | Patrick Carlisle <patrick@puppetlabs.com> | 2012-08-09 14:52:08 -0700 |
---|---|---|
committer | Patrick Carlisle <patrick@puppetlabs.com> | 2012-08-09 14:52:08 -0700 |
commit | cdd45298337df80aad757e81eb7457317219c1b7 (patch) | |
tree | 4132ab281a3064b892c4a59ffc99a2a2645a1bbd /spec/unit/puppet/parser/functions/get_module_path_spec.rb | |
parent | c101da0b83210fe4c1603f3d7a014f72c988f5ac (diff) | |
parent | 424b56da616041e365cb471dafc05a3d7ade4e45 (diff) | |
download | puppet-stdlib-cdd45298337df80aad757e81eb7457317219c1b7.tar.gz puppet-stdlib-cdd45298337df80aad757e81eb7457317219c1b7.tar.bz2 |
Merge branch '2.3.x' into 2.4.x
* 2.3.x:
Make sure functions are loaded for each test
Use rvalue functions correctly
(Maint) Don't mock with mocha
(Maint) Fix up the get_module_path parser function
(Maint) use PuppetlabsSpec::PuppetSeams.parser_scope (2.3.x)
(Maint) Rename PuppetlabsSpec::Puppet{Seams,Internals}
(Maint) use PuppetlabsSpec::PuppetSeams.parser_scope
(Maint) Fix interpreter lines
Update CHANGELOG, Modulefile for 2.3.3
fix regression in #11017 properly
Fix spec tests using the new spec_helper
Update CHANGELOG for 2.3.2 release
Make file_line default to ensure => present
Memoize file_line spec instance variables
Fix spec tests using the new spec_helper
Revert "Merge remote-tracking branch 'eshamow/tickets/bug/13595_restrict_initialize_everything_for_tests' into 2.2.x"
(#13595) initialize_everything_for_tests couples modules Puppet ver
Diffstat (limited to 'spec/unit/puppet/parser/functions/get_module_path_spec.rb')
-rw-r--r-- | spec/unit/puppet/parser/functions/get_module_path_spec.rb | 54 |
1 files changed, 29 insertions, 25 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 index d8340f4..e761706 100644 --- a/spec/unit/puppet/parser/functions/get_module_path_spec.rb +++ b/spec/unit/puppet/parser/functions/get_module_path_spec.rb @@ -1,42 +1,46 @@ -#!/usr/bin/env rspec -require 'puppet' -require 'fileutils' +#! /usr/bin/env ruby -S rspec require 'spec_helper' + describe Puppet::Parser::Functions.function(:get_module_path) do - include PuppetSpec::Files + Internals = PuppetlabsSpec::PuppetInternals + class StubModule + attr_reader :path + def initialize(path) + @path = path + end + end - def get_scope(environment = 'production') - scope = Puppet::Parser::Scope.new - scope.compiler = Puppet::Parser::Compiler.new(Puppet::Node.new("floppy", :environment => environment)) - scope + def scope(environment = "production") + Internals.scope(:compiler => Internals.compiler(:node => Internals.node(:environment => environment))) 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/) + expect { scope.function_get_module_path([]) }.should raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) + expect { 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/) + expect { 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) } + let(:modulepath) { "/tmp/does_not_exist" } + let(:path_of_module_foo) { StubModule.new("/tmp/does_not_exist/foo") } + + before(:each) { Puppet[:modulepath] = modulepath } + 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 + Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo) + scope.function_get_module_path(['foo']).should == path_of_module_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 + Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo) + scope.function_get_module_path(['foo']).should == path_of_module_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 + it 'should respect the environment' do + pending("Disabled on Puppet 2.6.x") if Puppet.version =~ /^2\.6\b/ + Puppet.settings[:environment] = 'danstestenv' + Puppet::Module.expects(:find).with('foo', 'danstestenv').returns(path_of_module_foo) + scope('danstestenv').function_get_module_path(['foo']).should == path_of_module_foo.path end end end |