X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Fspec%2Ffunctions%2Fload_module_metadata_spec.rb;h=a97b6b4acb3f16bc579ee9d5c9445734fa687315;hb=30caaa85aed7015ca0d77216bff175eebd917eb7;hp=9496fcb4dad6fbc5a651d4ccd428ded588f85a0c;hpb=6963202b4b62c2816655ac9532521b018fdf83bd;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/spec/functions/load_module_metadata_spec.rb b/3rdparty/modules/stdlib/spec/functions/load_module_metadata_spec.rb old mode 100755 new mode 100644 index 9496fcb4d..a97b6b4ac --- a/3rdparty/modules/stdlib/spec/functions/load_module_metadata_spec.rb +++ b/3rdparty/modules/stdlib/spec/functions/load_module_metadata_spec.rb @@ -2,60 +2,48 @@ require 'spec_helper' describe 'load_module_metadata' do it { is_expected.not_to eq(nil) } - it { is_expected.to run.with_params().and_raise_error(Puppet::ParseError, /wrong number of arguments/i) } - it { is_expected.to run.with_params("one", "two", "three").and_raise_error(Puppet::ParseError, /wrong number of arguments/i) } + it { is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{wrong number of arguments}i) } + it { is_expected.to run.with_params('one', 'two', 'three').and_raise_error(Puppet::ParseError, %r{wrong number of arguments}i) } - describe "when calling with valid arguments" do + describe 'when calling with valid arguments' do before :each do - allow(File).to receive(:read).with(/\/(stdlib|test)\/metadata.json/, {:encoding=>"utf-8"}).and_return('{"name": "puppetlabs-stdlib"}') - allow(File).to receive(:read).with(/\/(stdlib|test)\/metadata.json/).and_return('{"name": "puppetlabs-stdlib"}') + allow(File).to receive(:read).with(%r{\/(stdlib|test)\/metadata.json}, :encoding => 'utf-8').and_return('{"name": "puppetlabs-stdlib"}') + allow(File).to receive(:read).with(%r{\/(stdlib|test)\/metadata.json}).and_return('{"name": "puppetlabs-stdlib"}') + # Additional modules used by litmus which are identified while running these dues to being in fixtures + allow(File).to receive(:read).with(%r{\/(provision|puppet_agent|facts)\/metadata.json}, :encoding => 'utf-8') end - context "when calling with valid utf8 and double byte character arguments" do + context 'when calling with valid utf8 and double byte character arguments' do before :each do - allow(File).to receive(:read).with(/\/(stdlib|test)\/metadata.json/, {:encoding=>"utf-8"}).and_return('{"ĭďèʼnţĩƒіểя": "ċơņťęאּť ỡƒ ţħíš - + allow(File).to receive(:read).with(%r{\/(stdlib|test)\/metadata.json}, :encoding => 'utf-8').and_return('{"ĭďèʼnţĩƒіểя": "ċơņťęאּť ỡƒ ţħíš - この文字"}') - allow(File).to receive(:read).with(/\/(stdlib|test)\/metadata.json/).and_return('{"ĭďèʼnţĩƒіểя": "ċơņťęאּť ỡƒ ţħíš - + allow(File).to receive(:read).with(%r{\/(stdlib|test)\/metadata.json}).and_return('{"ĭďèʼnţĩƒіểя": "ċơņťęאּť ỡƒ ţħíš - この文字"}') end - it "should json parse the file" do - if Puppet::Util::Platform.windows? - allow(scope).to receive(:function_get_module_path).with(['science']).and_return('C:/path/to/module/') - allow(File).to receive(:exists?).with('C:/path/to/module/metadata.json').and_return(true) - allow(File).to receive(:read).with('C:/path/to/module/metadata.json').and_return('{"name": "spencer-science"}') - else - allow(scope).to receive(:function_get_module_path).with(['science']).and_return('/path/to/module/') - allow(File).to receive(:exists?).with('/path/to/module/metadata.json').and_return(true) - allow(File).to receive(:read).with('/path/to/module/metadata.json').and_return('{"name": "spencer-science"}') - end + let(:prefix) { 'C:' if Puppet::Util::Platform.windows? } - result = subject.call(['science']) - expect(result['name']).to eq('spencer-science') - end + it 'jsons parse the file' do + allow(scope).to receive(:function_get_module_path).with(['science']).and_return("#{prefix}/path/to/module/") + allow(File).to receive(:exists?).with("#{prefix}/path/to/module/metadata.json").and_return(true) + allow(File).to receive(:read).with("#{prefix}/path/to/module/metadata.json").and_return('{"name": "spencer-science"}') - it "should fail by default if there is no metadata.json" do - if Puppet::Util::Platform.windows? - allow(scope).to receive(:function_get_module_path).with(['science']).and_return('C:/path/to/module/') - allow(File).to receive(:exists?).with('C:/path/to/module/metadata.json').and_return(false) - else - allow(scope).to receive(:function_get_module_path).with(['science']).and_return('/path/to/module/') - allow(File).to receive(:exists?).with('/path/to/module/metadata.json').and_return(false) + result = subject.execute('science') + expect(result['name']).to eq('spencer-science') end - expect {subject.call(['science'])}.to raise_error(Puppet::ParseError) - end - it "should return nil if user allows empty metadata.json" do - if Puppet::Util::Platform.windows? - allow(scope).to receive(:function_get_module_path).with(['science']).and_return('C:/path/to/module/') - allow(File).to receive(:exists?).with('C:/path/to/module/metadata.json').and_return(false) - else - allow(scope).to receive(:function_get_module_path).with(['science']).and_return('/path/to/module/') - allow(File).to receive(:exists?).with('/path/to/module/metadata.json').and_return(false) + it 'fails by default if there is no metadata.json' do + allow(scope).to receive(:function_get_module_path).with(['science']).and_return("#{prefix}/path/to/module/") + allow(File).to receive(:exists?).with("#{prefix}/path/to/module/metadata.json").and_return(false) + expect { subject.call(['science']) }.to raise_error(Puppet::ParseError) + end + + it 'returns nil if user allows empty metadata.json' do + allow(scope).to receive(:function_get_module_path).with(['science']).and_return("#{prefix}/path/to/module/") + allow(File).to receive(:exists?).with("#{prefix}/path/to/module/metadata.json").and_return(false) + result = subject.execute('science', true) + expect(result).to eq({}) end - result = subject.call(['science', true]) - expect(result).to eq({}) - end end end end