~coreygoldberg/uci-engine/subunit-results

« back to all changes in this revision

Viewing changes to test_runner/tstrun/tests/test_testbed.py

  • Committer: Corey Goldberg
  • Date: 2014-07-27 23:42:02 UTC
  • mfrom: (665.1.49 uci-engine)
  • Revision ID: corey.goldberg@canonical.com-20140727234202-6quopjioqeco95fs
merged trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
123
123
                                out=subprocess.PIPE, err=subprocess.PIPE)
124
124
        self.assertEqual(0, proc.returncode)
125
125
        self.assertEqual('ubuntu\n', out)
 
126
 
 
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')
 
131
        self.nb_calls = 0
 
132
 
 
133
        class Proc(object):
 
134
            returncode = 0
 
135
 
 
136
        def failing_update():
 
137
            self.nb_calls += 1
 
138
            if self.nb_calls > 1:
 
139
                return Proc(), 'stdout success', 'stderr success'
 
140
            else:
 
141
                # Fake a failed apt-get update
 
142
                proc = Proc()
 
143
                proc.returncode = 1
 
144
                return proc, 'stdout error', 'stderr error'
 
145
 
 
146
        tb.apt_get_update = failing_update
 
147
        tb.safe_apt_get_update()
 
148
        self.assertEqual(2, self.nb_calls)
 
149
 
 
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')
 
154
 
 
155
        def failing_update():
 
156
            class Proc(object):
 
157
                pass
 
158
 
 
159
            proc = Proc()
 
160
            proc.returncode = 1
 
161
            return proc, 'stdout', 'stderr'
 
162
 
 
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))