47
47
'request_parameters': 'blah',
48
48
'ppa_assigner_url': 'foo',
50
'imgbuilder_url': 'foo',
50
51
'progress_trigger': 'progress-trigger',
54
57
'location': 'ppa-location',
57
63
with open(self.params, 'w') as f:
58
64
f.write(json.dumps(data))
162
168
data = json.loads(f.read())
163
169
self.assertEqual(state, data)
171
@mock.patch('lander_service_wrapper._post')
172
def testImageBuilderUnexpected(self, post):
173
'''Ensure unexpected errors still generate a response'''
175
post.side_effect = RuntimeError(err_msg)
177
args = self.base_args + ['--service', 'image_builder']
178
args = lander_service_wrapper._get_parser().parse_args(args)
179
rc = lander_service_wrapper.main(args)
180
self.assertEqual(1, rc)
182
with open(self.results) as f:
183
data = json.loads(f.read())
184
self.assertEqual('FAILED', data['result'])
185
self.assertEqual(err_msg, data['error'])
187
@mock.patch('lander_service_wrapper._post')
188
@mock.patch('ci_utils.amqp_utils.connection')
189
def testImageBuilderSucceeds(self, connection, post):
190
'''Ensure we generate the proper response if things succeed.'''
192
# mock the run-forever logic to ensure we return what we expect
193
state = {'state': 'DONE', 'foo': 'bar', 'exit': True}
196
def run_forever(channel, queue, callback):
198
m.body = json.dumps({'state': 'WAITING'})
200
m.body = json.dumps(state)
204
args = self.base_args + ['--service', 'image_builder']
205
args = lander_service_wrapper._get_parser().parse_args(args)
207
with mock.patch('ci_utils.amqp_utils._run_forever', new_callable=amqp):
208
rc = lander_service_wrapper.main(args)
209
self.assertEqual(0, rc)
211
with open(self.results) as f:
212
data = json.loads(f.read())
213
self.assertEqual(state, data)
165
215
@mock.patch('lander_service_wrapper._patch')
166
216
def testPPAFreeSucceeds(self, patch):
167
217
'''ensure we can free a PPA'''