def test_policy_update2_no_change(self, mock_find, mock_load): x_obj = mock.Mock() mock_find.return_value = x_obj x_policy = mock.Mock() x_policy.name = 'OLD_NAME' x_policy.to_dict.return_value = {'foo': 'bar'} mock_load.return_value = x_policy body = { 'name': 'OLD_NAME', } p_req = orpo.PolicyUpdateRequestBody(**body) request = { 'identity': 'FAKE', 'policy': p_req } req = orpo.PolicyUpdateRequest(**request) ex = self.assertRaises(rpc.ExpectedException, self.eng.policy_update2, self.ctx, req.obj_to_primitive()) self.assertEqual(exc.BadRequest, ex.exc_info[0]) self.assertEqual( 'The request is malformed: No property needs an update.', six.text_type(ex.exc_info[1])) mock_find.assert_called_once_with(self.ctx, 'FAKE') mock_load.assert_called_once_with(self.ctx, db_policy=x_obj) self.assertEqual(0, x_policy.store.call_count) self.assertEqual('OLD_NAME', x_policy.name)
def test_policy_update(self): data = {'name': 'foo'} body = policies.PolicyUpdateRequestBody(**data) request = {'identity': 'pid', 'policy': body} sot = policies.PolicyUpdateRequest(**request) self.assertEqual('pid', sot.identity) self.assertIsInstance(sot.policy, policies.PolicyUpdateRequestBody)
def test_policy_data_to_primitive(self): data = {'name': 'foo'} sot = policies.PolicyUpdateRequestBody(**data) res = sot.obj_to_primitive() self.assertIn('name', res['senlin_object.changes']) self.assertEqual(u'foo', res['senlin_object.data']['name']) self.assertEqual('PolicyUpdateRequestBody', res['senlin_object.name']) self.assertEqual('senlin', res['senlin_object.namespace']) self.assertEqual('1.0', res['senlin_object.version'])
def test_policy_update_not_found(self, mock_find): mock_find.side_effect = exc.ResourceNotFound(type='policy', id='Fake') p_req = orpo.PolicyUpdateRequestBody(name='NEW_NAME') request = {'identity': 'Fake', 'policy': p_req} req = orpo.PolicyUpdateRequest(**request) ex = self.assertRaises(rpc.ExpectedException, self.svc.policy_update, self.ctx, req.obj_to_primitive()) self.assertEqual(exc.ResourceNotFound, ex.exc_info[0])
def test_request_to_primitive(self): data = {'name': 'foo'} name = policies.PolicyUpdateRequestBody(**data) request = {'identity': 'pid', 'name': name} sot = policies.PolicyUpdateRequest(**request) res = sot.obj_to_primitive() self.assertIn('identity', res['senlin_object.changes']) self.assertEqual(u'pid', res['senlin_object.data']['identity']) self.assertEqual('PolicyUpdateRequest', res['senlin_object.name']) self.assertEqual('senlin', res['senlin_object.namespace']) self.assertEqual('1.0', res['senlin_object.version'])
def test_policy_update(self, mock_find, mock_load): x_obj = mock.Mock() mock_find.return_value = x_obj x_policy = mock.Mock() x_policy.name = 'OLD_NAME' x_policy.to_dict.return_value = {'foo': 'bar'} mock_load.return_value = x_policy p_req = orpo.PolicyUpdateRequestBody(name='NEW_NAME') request = {'identity': 'FAKE', 'policy': p_req} req = orpo.PolicyUpdateRequest(**request) result = self.svc.policy_update(self.ctx, req.obj_to_primitive()) self.assertEqual({'foo': 'bar'}, result) mock_find.assert_called_once_with(self.ctx, 'FAKE') mock_load.assert_called_once_with(self.ctx, db_policy=x_obj)
def test_policy_update_body(self): data = {'name': 'foo'} sot = policies.PolicyUpdateRequestBody(**data) self.assertEqual('foo', sot.name)