Revision ca4d59e3 snf-cyclades-app/synnefo/logic/tests.py

b/snf-cyclades-app/synnefo/logic/tests.py
193 193
        self.assertEqual(db_vm.operstate, vm.operstate)
194 194
        self.assertEqual(db_vm.backendtime, vm.backendtime)
195 195

  
196
    def test_resize_msg(self, client):
197
        vm = mfactory.VirtualMachineFactory()
198
        # Test empty beparams
199
        for status in ["success", "error"]:
200
            msg = self.create_msg(operation='OP_INSTANCE_SET_PARAMS',
201
                                  instance=vm.backend_vm_id,
202
                                  beparams={},
203
                                  status=status)
204
            client.reset_mock()
205
            update_db(client, msg)
206
            self.assertTrue(client.basic_ack.called)
207
            db_vm = VirtualMachine.objects.get(id=vm.id)
208
            self.assertEqual(db_vm.operstate, vm.operstate)
209
        # Test intermediate states
210
        for status in ["queued", "waiting", "running"]:
211
            msg = self.create_msg(operation='OP_INSTANCE_SET_PARAMS',
212
                                  instance=vm.backend_vm_id,
213
                                  beparams={"vcpus": 4, "minmem": 2048,
214
                                            "maxmem": 2048},
215
                                  status=status)
216
            client.reset_mock()
217
            update_db(client, msg)
218
            self.assertTrue(client.basic_ack.called)
219
            db_vm = VirtualMachine.objects.get(id=vm.id)
220
            self.assertEqual(db_vm.operstate, "RESIZE")
221
        # Test operstate after error
222
        msg = self.create_msg(operation='OP_INSTANCE_SET_PARAMS',
223
                              instance=vm.backend_vm_id,
224
                              beparams={"vcpus": 4},
225
                              status="error")
226
        client.reset_mock()
227
        update_db(client, msg)
228
        self.assertTrue(client.basic_ack.called)
229
        db_vm = VirtualMachine.objects.get(id=vm.id)
230
        self.assertEqual(db_vm.operstate, "STOPPED")
231
        # Test success
232
        f1 = mfactory.FlavorFactory(cpu=4, ram=1024, disk_template="drbd",
233
                                    disk=1024)
234
        vm.flavor = f1
235
        vm.save()
236
        f2 = mfactory.FlavorFactory(cpu=8, ram=2048, disk_template="drbd",
237
                                    disk=1024)
238
        msg = self.create_msg(operation='OP_INSTANCE_SET_PARAMS',
239
                              instance=vm.backend_vm_id,
240
                              beparams={"vcpus": 8, "minmem": 2048,
241
                                        "maxmem": 2048},
242
                              status="success")
243
        client.reset_mock()
244
        update_db(client, msg)
245
        self.assertTrue(client.basic_ack.called)
246
        db_vm = VirtualMachine.objects.get(id=vm.id)
247
        self.assertEqual(db_vm.operstate, "STOPPED")
248
        self.assertEqual(db_vm.flavor, f2)
249
        msg = self.create_msg(operation='OP_INSTANCE_SET_PARAMS',
250
                              instance=vm.backend_vm_id,
251
                              beparams={"vcpus": 100, "minmem": 2048,
252
                                        "maxmem": 2048},
253
                              status="success")
254
        client.reset_mock()
255
        update_db(client, msg)
256
        self.assertTrue(client.basic_reject.called)
257

  
196 258

  
197 259
@patch('synnefo.lib.amqp.AMQPClient')
198 260
class UpdateNetTest(TestCase):

Also available in: Unified diff