Exemple #1
0
    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)
Exemple #2
0
    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)
Exemple #3
0
    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'])
Exemple #4
0
    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])
Exemple #5
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'])
Exemple #6
0
    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)
Exemple #7
0
 def test_policy_update_body(self):
     data = {'name': 'foo'}
     sot = policies.PolicyUpdateRequestBody(**data)
     self.assertEqual('foo', sot.name)