diff options
Diffstat (limited to 'code/environments/production/modules/apt/spec/classes/apt_backports_spec.rb')
-rw-r--r-- | code/environments/production/modules/apt/spec/classes/apt_backports_spec.rb | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/code/environments/production/modules/apt/spec/classes/apt_backports_spec.rb b/code/environments/production/modules/apt/spec/classes/apt_backports_spec.rb new file mode 100644 index 0000000..33022b9 --- /dev/null +++ b/code/environments/production/modules/apt/spec/classes/apt_backports_spec.rb @@ -0,0 +1,253 @@ +require 'spec_helper' + +describe 'apt::backports', type: :class do + let(:pre_condition) { "class{ '::apt': }" } + + describe 'debian/ubuntu tests' do + context 'with defaults on deb' do + let(:facts) do + { + os: { family: 'Debian', name: 'Debian', release: { major: '7', full: '7.0' } }, + lsbdistid: 'Debian', + osfamily: 'Debian', + lsbdistcodename: 'wheezy', + puppetversion: Puppet.version, + } + end + + it { + is_expected.to contain_apt__source('backports').with(location: 'http://deb.debian.org/debian', + key: 'A1BD8E9D78F7FE5C3E65D8AF8B48AD6246925553', + repos: 'main contrib non-free', + release: 'wheezy-backports', + pin: { 'priority' => 200, 'release' => 'wheezy-backports' }) + } + end + context 'with defaults on ubuntu' do + let(:facts) do + { + os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, + 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 'with everything set' do + let(:facts) do + { + os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, + 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 'when set things with hashes' do + let(:facts) do + { + os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, + 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 + { + os: { family: 'Debian', name: 'Linuxmint', release: { major: '17', full: '17' } }, + lsbdistid: 'linuxmint', + osfamily: 'Debian', + lsbdistcodename: 'qiana', + puppetversion: Puppet.version, + } + end + + context 'with all the needed things set' 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 'with missing location' do + let(:params) do + { + release: 'trusty-backports', + repos: 'main universe multiverse restricted', + key: '630239CC130E1A7FD81A27B140976EAF437D05B5', + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key}) + end + end + context 'with missing release' do + let(:params) do + { + location: 'http://archive.ubuntu.com/ubuntu', + repos: 'main universe multiverse restricted', + key: '630239CC130E1A7FD81A27B140976EAF437D05B5', + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key}) + end + end + context 'with missing repos' do + let(:params) do + { + location: 'http://archive.ubuntu.com/ubuntu', + release: 'trusty-backports', + key: '630239CC130E1A7FD81A27B140976EAF437D05B5', + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key}) + end + end + context 'with missing key' do + let(:params) do + { + location: 'http://archive.ubuntu.com/ubuntu', + release: 'trusty-backports', + repos: 'main universe multiverse restricted', + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{If not on Debian or Ubuntu, you must explicitly pass location, release, repos, and key}) + end + end + end + describe 'validation' do + let(:facts) do + { + os: { family: 'Debian', name: 'Ubuntu', release: { major: '14', full: '14.04' } }, + lsbdistid: 'Ubuntu', + osfamily: 'Debian', + lsbdistcodename: 'trusty', + lsbdistrelease: '14.04', + puppetversion: Puppet.version, + } + end + + context 'with invalid location' do + let(:params) do + { + location: true, + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{expects a}) + end + end + context 'with invalid release' do + let(:params) do + { + release: true, + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{expects a}) + end + end + context 'with invalid repos' do + let(:params) do + { + repos: true, + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{expects a}) + end + end + context 'with invalid key' do + let(:params) do + { + key: true, + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{expects a}) + end + end + context 'with invalid pin' do + let(:params) do + { + pin: true, + } + end + + it do + is_expected.to raise_error(Puppet::Error, %r{expects a}) + end + end + end +end |