Fix tests to check for idempotency correctly.
[puppet-modules/puppetlabs-apt.git] / spec / acceptance / apt_spec.rb
1 require 'spec_helper_acceptance'
2
3 describe 'apt class' do
4
5   context 'reset' do
6     it 'fixes the sources.list' do
7       shell('cp /etc/apt/sources.list /tmp')
8     end
9   end
10
11   context 'all the things' do
12     it 'should work with no errors' do
13       pp = <<-EOS
14       if $::lsbdistcodename == 'lucid' {
15         $sources = undef
16       } else {
17         $sources = {
18           'puppetlabs' => {
19             'ensure'   => present,
20             'location' => 'http://apt.puppetlabs.com',
21             'repos'    => 'main',
22             'key'      => {
23               'id'     => '6F6B15509CF8E59E6E469F327F438280EF8D349F',
24               'server' => 'hkps.pool.sks-keyservers.net',
25             },
26           },
27         }
28       }
29       class { 'apt':
30         update => {
31           'frequency' => 'always',
32           'timeout'   => '400',
33           'tries'     => '3',
34         },
35         purge => {
36           'sources.list'   => true,
37           'sources.list.d' => true,
38           'preferences'    => true,
39           'preferences.d'  => true,
40         },
41         sources => $sources,
42       }
43       EOS
44
45       apply_manifest(pp, :catch_failures => true)
46       apply_manifest(pp, :catch_changes => true)
47     end
48     it 'should still work' do
49       shell('apt-get update')
50       shell('apt-get -y --force-yes upgrade')
51     end
52   end
53
54   context 'reset' do
55     it 'fixes the sources.list' do
56       shell('cp /tmp/sources.list /etc/apt')
57     end
58   end
59
60 end