def test_create_allocation(self, mock_spawn): # In this test we mock spawn_worker, so that the actual processing does # not happen, and the allocation stays in the "allocating" state. allocation = obj_utils.get_test_allocation(self.context, extra={'test': 'one'}) self._start_service() mock_spawn.assert_any_call(self.service, self.service._resume_allocations, mock.ANY) mock_spawn.reset_mock() res = self.service.create_allocation(self.context, allocation) self.assertEqual({'test': 'one'}, res['extra']) self.assertEqual('allocating', res['state']) self.assertIsNotNone(res['uuid']) self.assertEqual(self.service.conductor.id, res['conductor_affinity']) res = objects.Allocation.get_by_uuid(self.context, allocation['uuid']) self.assertEqual({'test': 'one'}, res['extra']) self.assertEqual('allocating', res['state']) self.assertIsNotNone(res['uuid']) self.assertEqual(self.service.conductor.id, res['conductor_affinity']) mock_spawn.assert_called_once_with(self.service, allocations.do_allocate, self.context, mock.ANY)
def test_create_allocation(self, mock_spawn): # In this test we mock spawn_worker, so that the actual processing does # not happen, and the allocation stays in the "allocating" state. allocation = obj_utils.get_test_allocation(self.context, extra={'test': 'one'}) self._start_service() mock_spawn.assert_any_call(self.service, self.service._resume_allocations, mock.ANY) mock_spawn.reset_mock() res = self.service.create_allocation(self.context, allocation) self.assertEqual({'test': 'one'}, res['extra']) self.assertEqual('allocating', res['state']) self.assertIsNotNone(res['uuid']) self.assertEqual(self.service.conductor.id, res['conductor_affinity']) res = objects.Allocation.get_by_uuid(self.context, allocation['uuid']) self.assertEqual({'test': 'one'}, res['extra']) self.assertEqual('allocating', res['state']) self.assertIsNotNone(res['uuid']) self.assertEqual(self.service.conductor.id, res['conductor_affinity']) mock_spawn.assert_called_once_with(self.service, allocations.do_allocate, self.context, mock.ANY)
def test_create_allocation_with_node_id(self, mock_backfill): node = obj_utils.create_test_node(self.context) allocation = obj_utils.get_test_allocation(self.context, node_id=node.id) self._start_service() res = self.service.create_allocation(self.context, allocation) mock_backfill.assert_called_once_with(self.context, allocation, node.id) self.assertEqual('allocating', res['state']) self.assertIsNotNone(res['uuid']) self.assertEqual(self.service.conductor.id, res['conductor_affinity']) # create_allocation purges node_id, and since we stub out # backfill_allocation, it does not get populated. self.assertIsNone(res['node_id']) res = objects.Allocation.get_by_uuid(self.context, allocation['uuid']) self.assertEqual('allocating', res['state']) self.assertIsNotNone(res['uuid']) self.assertEqual(self.service.conductor.id, res['conductor_affinity'])