X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Fspec%2Ffunctions%2Fget_module_path_spec.rb;h=dd31c67831c0d49e3a9901fb69e974f273818090;hb=a526f7e1c2d30c1cd7e075a23808d9003ac38089;hp=38ce64597e1177dcb588c83f336fa23ec4cc7086;hpb=ad88f67c13ae0f1a08936dad643f1e3509ab5f40;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/spec/functions/get_module_path_spec.rb b/3rdparty/modules/stdlib/spec/functions/get_module_path_spec.rb old mode 100755 new mode 100644 index 38ce64597..dd31c6783 --- a/3rdparty/modules/stdlib/spec/functions/get_module_path_spec.rb +++ b/3rdparty/modules/stdlib/spec/functions/get_module_path_spec.rb @@ -1,8 +1,13 @@ -#! /usr/bin/env ruby -S rspec require 'spec_helper' -describe Puppet::Parser::Functions.function(:get_module_path) do - Internals = PuppetlabsSpec::PuppetInternals +describe 'get_module_path' do + it { is_expected.not_to eq(nil) } + it { is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Wrong number of arguments, expects one}) } + it { is_expected.to run.with_params('one', 'two').and_raise_error(Puppet::ParseError, %r{Wrong number of arguments, expects one}) } + it { is_expected.to run.with_params('one', 'two', 'three').and_raise_error(Puppet::ParseError, %r{Wrong number of arguments, expects one}) } + it { is_expected.to run.with_params('one').and_raise_error(Puppet::ParseError, %r{Could not find module}) } + + # class Stubmodule class StubModule attr_reader :path def initialize(path) @@ -10,37 +15,43 @@ describe Puppet::Parser::Functions.function(:get_module_path) do end end - def scope(environment = "production") - Internals.scope(:compiler => Internals.compiler(:node => Internals.node(:environment => environment))) - end - - it 'should only allow one argument' do - expect { scope.function_get_module_path([]) }.to raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) - expect { scope.function_get_module_path(['1','2','3']) }.to raise_error(Puppet::ParseError, /Wrong number of arguments, expects one/) - end - it 'should raise an exception when the module cannot be found' do - expect { scope.function_get_module_path(['foo']) }.to raise_error(Puppet::ParseError, /Could not find module/) - end describe 'when locating a module' do - let(:modulepath) { "/tmp/does_not_exist" } - let(:path_of_module_foo) { StubModule.new("/tmp/does_not_exist/foo") } - - before(:each) { Puppet[:modulepath] = modulepath } + let(:modulepath) { '/tmp/does_not_exist' } + let(:path_of_module_foo) { StubModule.new('/tmp/does_not_exist/foo') } - it 'should be able to find module paths from the modulepath setting' do - Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo) - expect(scope.function_get_module_path(['foo'])).to eq(path_of_module_foo.path) + before(:each) do + Puppet[:modulepath] = modulepath end - it 'should be able to find module paths when the modulepath is a list' do - Puppet[:modulepath] = modulepath + ":/tmp" - Puppet::Module.expects(:find).with('foo', 'production').returns(path_of_module_foo) - expect(scope.function_get_module_path(['foo'])).to eq(path_of_module_foo.path) + + context 'when in the default environment' do + before(:each) do + allow(Puppet::Module).to receive(:find).with('foo', 'rp_env').and_return(path_of_module_foo) + end + it 'runs against foo' do + is_expected.to run.with_params('foo').and_return(path_of_module_foo.path) + end + + it 'when the modulepath is a list' do + Puppet[:modulepath] = modulepath + 'tmp/something_else' + + is_expected.to run.with_params('foo').and_return(path_of_module_foo.path) + end end - it 'should respect the environment' do - skip("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) - expect(scope('danstestenv').function_get_module_path(['foo'])).to eq(path_of_module_foo.path) + + context 'when in a non-default default environment' do + let(:environment) { 'test' } + + before(:each) do + allow(Puppet::Module).to receive(:find).with('foo', 'test').and_return(path_of_module_foo) + end + it 'runs against foo' do + is_expected.to run.with_params('foo').and_return(path_of_module_foo.path) + end + + it 'when the modulepath is a list' do + Puppet[:modulepath] = modulepath + 'tmp/something_else' + is_expected.to run.with_params('foo').and_return(path_of_module_foo.path) + end end end end