e651d7d25c
Instead of adding every newer release of Ubuntu, let's assume that the package name that is used today will be used in the future, until the next change is necessary.
272 lines
7.8 KiB
Ruby
272 lines
7.8 KiB
Ruby
#!/usr/bin/env rspec
|
|
require 'spec_helper'
|
|
|
|
describe 'apt::backports', :type => :class do
|
|
let (:pre_condition) { "class{ '::apt': }" }
|
|
describe 'debian/ubuntu tests' do
|
|
context 'defaults on deb' do
|
|
let(:facts) do
|
|
{
|
|
:lsbdistid => 'Debian',
|
|
:osfamily => 'Debian',
|
|
:lsbdistcodename => 'wheezy',
|
|
:puppetversion => Puppet.version,
|
|
}
|
|
end
|
|
it { is_expected.to contain_apt__source('backports').with({
|
|
:location => 'http://httpredir.debian.org/debian',
|
|
:key => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
|
|
:repos => 'main contrib non-free',
|
|
:release => 'wheezy-backports',
|
|
:pin => { 'priority' => 200, 'release' => 'wheezy-backports' },
|
|
})
|
|
}
|
|
end
|
|
context 'defaults on squeeze' do
|
|
let(:facts) do
|
|
{
|
|
:lsbdistid => 'Debian',
|
|
:osfamily => 'Debian',
|
|
:lsbdistcodename => 'squeeze',
|
|
:puppetversion => Puppet.version,
|
|
}
|
|
end
|
|
it { is_expected.to contain_apt__source('backports').with({
|
|
:location => 'http://httpredir.debian.org/debian-backports',
|
|
:key => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
|
|
:repos => 'main contrib non-free',
|
|
:release => 'squeeze-backports',
|
|
:pin => { 'priority' => 200, 'release' => 'squeeze-backports' },
|
|
})
|
|
}
|
|
end
|
|
context 'defaults on ubuntu' do
|
|
let(:facts) do
|
|
{
|
|
:lsbdistid => 'Ubuntu',
|
|
:osfamily => 'Debian',
|
|
:lsbdistcodename => 'trusty',
|
|
:lsbdistrelease => '14.04',
|
|
:puppetversion => Puppet.version,
|
|
}
|
|
end
|
|
it { is_expected.to contain_apt__source('backports').with({
|
|
:location => 'http://archive.ubuntu.com/ubuntu',
|
|
:key => '630239CC130E1A7FD81A27B140976EAF437D05B5',
|
|
:repos => 'main universe multiverse restricted',
|
|
:release => 'trusty-backports',
|
|
:pin => { 'priority' => 200, 'release' => 'trusty-backports' },
|
|
})
|
|
}
|
|
end
|
|
context 'set everything' do
|
|
let(:facts) do
|
|
{
|
|
:lsbdistid => 'Ubuntu',
|
|
:osfamily => 'Debian',
|
|
:lsbdistcodename => 'trusty',
|
|
:lsbdistrelease => '14.04',
|
|
:puppetversion => Puppet.version,
|
|
}
|
|
end
|
|
let(:params) do
|
|
{
|
|
:location => 'http://archive.ubuntu.com/ubuntu-test',
|
|
:release => 'vivid',
|
|
:repos => 'main',
|
|
:key => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
|
|
:pin => '90',
|
|
}
|
|
end
|
|
it { is_expected.to contain_apt__source('backports').with({
|
|
:location => 'http://archive.ubuntu.com/ubuntu-test',
|
|
:key => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
|
|
:repos => 'main',
|
|
:release => 'vivid',
|
|
:pin => { 'priority' => 90, 'release' => 'vivid' },
|
|
})
|
|
}
|
|
end
|
|
context 'set things with hashes' do
|
|
let(:facts) do
|
|
{
|
|
:lsbdistid => 'Ubuntu',
|
|
:osfamily => 'Debian',
|
|
:lsbdistcodename => 'trusty',
|
|
:lsbdistrelease => '14.04',
|
|
:puppetversion => Puppet.version,
|
|
}
|
|
end
|
|
let(:params) do
|
|
{
|
|
:key => {
|
|
'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553',
|
|
},
|
|
:pin => {
|
|
'priority' => '90',
|
|
},
|
|
}
|
|
end
|
|
it { is_expected.to contain_apt__source('backports').with({
|
|
:key => { 'id' => 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553' },
|
|
:pin => { 'priority' => '90' },
|
|
})
|
|
}
|
|
end
|
|
end
|
|
describe 'mint tests' do
|
|
let(:facts) do
|
|
{
|
|
:lsbdistid => 'linuxmint',
|
|
:osfamily => 'Debian',
|
|
:lsbdistcodename => 'qiana',
|
|
:puppetversion => Puppet.version,
|
|
}
|
|
end
|
|
context 'sets all the needed things' do
|
|
let(:params) do
|
|
{
|
|
:location => 'http://archive.ubuntu.com/ubuntu',
|
|
:release => 'trusty-backports',
|
|
:repos => 'main universe multiverse restricted',
|
|
:key => '630239CC130E1A7FD81A27B140976EAF437D05B5',
|
|
}
|
|
end
|
|
it { is_expected.to contain_apt__source('backports').with({
|
|
:location => 'http://archive.ubuntu.com/ubuntu',
|
|
:key => '630239CC130E1A7FD81A27B140976EAF437D05B5',
|
|
:repos => 'main universe multiverse restricted',
|
|
:release => 'trusty-backports',
|
|
:pin => { 'priority' => 200, 'release' => 'trusty-backports' },
|
|
})
|
|
}
|
|
end
|
|
context 'missing location' do
|
|
let(:params) do
|
|
{
|
|
:release => 'trusty-backports',
|
|
:repos => 'main universe multiverse restricted',
|
|
:key => '630239CC130E1A7FD81A27B140976EAF437D05B5',
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key/)
|
|
end
|
|
end
|
|
context 'missing release' do
|
|
let(:params) do
|
|
{
|
|
:location => 'http://archive.ubuntu.com/ubuntu',
|
|
:repos => 'main universe multiverse restricted',
|
|
:key => '630239CC130E1A7FD81A27B140976EAF437D05B5',
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key/)
|
|
end
|
|
end
|
|
context 'missing repos' do
|
|
let(:params) do
|
|
{
|
|
:location => 'http://archive.ubuntu.com/ubuntu',
|
|
:release => 'trusty-backports',
|
|
:key => '630239CC130E1A7FD81A27B140976EAF437D05B5',
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key/)
|
|
end
|
|
end
|
|
context 'missing key' do
|
|
let(:params) do
|
|
{
|
|
:location => 'http://archive.ubuntu.com/ubuntu',
|
|
:release => 'trusty-backports',
|
|
:repos => 'main universe multiverse restricted',
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key/)
|
|
end
|
|
end
|
|
end
|
|
describe 'validation' do
|
|
let(:facts) do
|
|
{
|
|
:lsbdistid => 'Ubuntu',
|
|
:osfamily => 'Debian',
|
|
:lsbdistcodename => 'trusty',
|
|
:lsbdistrelease => '14.04',
|
|
:puppetversion => Puppet.version,
|
|
}
|
|
end
|
|
context 'invalid location' do
|
|
let(:params) do
|
|
{
|
|
:location => true
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /is not a string/)
|
|
end
|
|
end
|
|
context 'invalid release' do
|
|
let(:params) do
|
|
{
|
|
:release => true
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /is not a string/)
|
|
end
|
|
end
|
|
context 'invalid repos' do
|
|
let(:params) do
|
|
{
|
|
:repos => true
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /is not a string/)
|
|
end
|
|
end
|
|
context 'invalid key' do
|
|
let(:params) do
|
|
{
|
|
:key => true
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /is not a string/)
|
|
end
|
|
end
|
|
context 'invalid pin' do
|
|
let(:params) do
|
|
{
|
|
:pin => true
|
|
}
|
|
end
|
|
it do
|
|
expect {
|
|
subject.call
|
|
}.to raise_error(Puppet::Error, /pin must be either a string, number or hash/)
|
|
end
|
|
end
|
|
end
|
|
end
|