123
123
out=subprocess.PIPE, err=subprocess.PIPE)
124
124
self.assertEqual(0, proc.returncode)
125
125
self.assertEqual('ubuntu\n', out)
127
def test_apt_get_update_retries(self):
128
tb = testbed.TestBed(self.conf)
129
self.conf.set('vm.image', self.get_image_id())
130
self.conf.set('vm.apt_get.update.timeouts', '0.1, 0.1')
136
def failing_update():
138
if self.nb_calls > 1:
139
return Proc(), 'stdout success', 'stderr success'
141
# Fake a failed apt-get update
144
return proc, 'stdout error', 'stderr error'
146
tb.apt_get_update = failing_update
147
tb.safe_apt_get_update()
148
self.assertEqual(2, self.nb_calls)
150
def test_apt_get_update_fails(self):
151
tb = testbed.TestBed(self.conf)
152
self.conf.set('vm.image', self.get_image_id())
153
self.conf.set('vm.apt_get.update.timeouts', '0.1, 0.1, 0.1')
155
def failing_update():
161
return proc, 'stdout', 'stderr'
163
tb.apt_get_update = failing_update
164
with self.assertRaises(testbed.TestBedException) as cm:
165
tb.safe_apt_get_update()
166
self.assertEqual('apt-get update never succeeded',
167
unicode(cm.exception))