Merge pull request #616 from DavidS/modules-3435-fix-stdlib-symlinks

(MODULES-3435) remove symlinks
This commit is contained in:
Helen 2016-07-01 12:41:08 +01:00 committed by GitHub
commit 9465eeaea7
5 changed files with 68 additions and 48 deletions

4
.gitignore vendored
View file

@ -2,10 +2,12 @@
pkg/ pkg/
Gemfile.lock Gemfile.lock
vendor/ vendor/
spec/fixtures/ spec/fixtures/manifests/site.pp
spec/fixtures/modules/*
.vagrant/ .vagrant/
.bundle/ .bundle/
coverage/ coverage/
log/ log/
.idea/ .idea/
*.iml *.iml
tmp/

View file

@ -1 +0,0 @@
../../../../lib/

View file

@ -1 +0,0 @@
../../../../manifests/

View file

@ -5,25 +5,34 @@ describe 'load_module_metadata' do
it { is_expected.to run.with_params().and_raise_error(Puppet::ParseError, /wrong number of arguments/i) } 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("one", "two", "three").and_raise_error(Puppet::ParseError, /wrong number of arguments/i) }
it "should json parse the file" do describe "when calling with valid arguments" do
allow(scope).to receive(:function_get_module_path).with(['science']).and_return('/path/to/module/') before :each do
allow(File).to receive(:exists?).with(/metadata.json/).and_return(true) if RSpec.configuration.puppet_future
allow(File).to receive(:read).with(/metadata.json/).and_return('{"name": "spencer-science"}') allow(File).to receive(:read).with(/\/stdlib\/metadata.json/, {:encoding=>"utf-8"}).and_return('{"name": "puppetlabs-stdlib"}')
else
allow(File).to receive(:read).with(/\/stdlib\/metadata.json/).and_return('{"name": "puppetlabs-stdlib"}')
end
end
it "should json parse the file" do
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"}')
result = subject.call(['science']) result = subject.call(['science'])
expect(result['name']).to eq('spencer-science') expect(result['name']).to eq('spencer-science')
end end
it "should fail by default if there is no metadata.json" do it "should fail by default if there is no metadata.json" do
allow(scope).to receive(:function_get_module_path).with(['science']).and_return('/path/to/module/') allow(scope).to receive(:function_get_module_path).with(['science']).and_return('/path/to/module/')
allow(File).to receive(:exists?).with(/metadata.json/).and_return(false) allow(File).to receive(:exists?).with('/path/to/module/metadata.json').and_return(false)
expect {subject.call(['science'])}.to raise_error(Puppet::ParseError) expect {subject.call(['science'])}.to raise_error(Puppet::ParseError)
end end
it "should return nil if user allows empty metadata.json" do it "should return nil if user allows empty metadata.json" do
allow(scope).to receive(:function_get_module_path).with(['science']).and_return('/path/to/module/') allow(scope).to receive(:function_get_module_path).with(['science']).and_return('/path/to/module/')
allow(File).to receive(:exists?).with(/metadata.json/).and_return(false) allow(File).to receive(:exists?).with('/path/to/module/metadata.json').and_return(false)
result = subject.call(['science', true]) result = subject.call(['science', true])
expect(result).to eq({}) expect(result).to eq({})
end
end end
end end

View file

@ -4,35 +4,46 @@ describe 'loadjson' do
it { is_expected.not_to eq(nil) } it { is_expected.not_to eq(nil) }
it { is_expected.to run.with_params().and_raise_error(ArgumentError, /wrong number of arguments/i) } it { is_expected.to run.with_params().and_raise_error(ArgumentError, /wrong number of arguments/i) }
context 'when a non-existing file is specified' do describe "when calling with valid arguments" do
let(:filename) { '/tmp/doesnotexist' } before :each do
before { if RSpec.configuration.puppet_future
File.expects(:exists?).with(filename).returns(false).once allow(File).to receive(:read).with(/\/stdlib\/metadata.json/, {:encoding=>"utf-8"}).and_return('{"name": "puppetlabs-stdlib"}')
PSON.expects(:load).never else
} allow(File).to receive(:read).with(/\/stdlib\/metadata.json/).and_return('{"name": "puppetlabs-stdlib"}')
it { is_expected.to run.with_params(filename, {'default' => 'value'}).and_return({'default' => 'value'}) } end
end end
context 'when an existing file is specified' do context 'when a non-existing file is specified' do
let(:filename) { '/tmp/doesexist' } let(:filename) { '/tmp/doesnotexist' }
let(:data) { { 'key' => 'value' } } before {
let(:json) { '{"key":"value"}' } allow(File).to receive(:exists?).with(filename).and_return(false).once
before { allow(PSON).to receive(:load).never
File.expects(:exists?).with(filename).returns(true).once }
File.expects(:read).with(filename).returns(json).once it { is_expected.to run.with_params(filename, {'default' => 'value'}).and_return({'default' => 'value'}) }
PSON.expects(:load).with(json).returns(data).once end
}
it { is_expected.to run.with_params(filename).and_return(data) }
end
context 'when the file could not be parsed' do context 'when an existing file is specified' do
let(:filename) { '/tmp/doesexist' } let(:filename) { '/tmp/doesexist' }
let(:json) { '{"key":"value"}' } let(:data) { { 'key' => 'value' } }
before { let(:json) { '{"key":"value"}' }
File.expects(:exists?).with(filename).returns(true).once before {
File.expects(:read).with(filename).returns(json).once allow(File).to receive(:exists?).with(filename).and_return(true).once
PSON.stubs(:load).with(json).once.raises StandardError, 'Something terrible have happened!' allow(File).to receive(:read).with(filename).and_return(json).once
} allow(File).to receive(:read).with(filename).and_return(json).once
it { is_expected.to run.with_params(filename, {'default' => 'value'}).and_return({'default' => 'value'}) } allow(PSON).to receive(:load).with(json).and_return(data).once
}
it { is_expected.to run.with_params(filename).and_return(data) }
end
context 'when the file could not be parsed' do
let(:filename) { '/tmp/doesexist' }
let(:json) { '{"key":"value"}' }
before {
allow(File).to receive(:exists?).with(filename).and_return(true).once
allow(File).to receive(:read).with(filename).and_return(json).once
allow(PSON).to receive(:load).with(json).once.and_raise StandardError, 'Something terrible have happened!'
}
it { is_expected.to run.with_params(filename, {'default' => 'value'}).and_return({'default' => 'value'}) }
end
end end
end end