
- test_os_extra_specs.py fixes unrelated failing test case - tox.ini py34 and pypy not supported at this time Change-Id: If8e26fbee2d16f2160baa749b5b241e49e3e75b8
193 lines
8.8 KiB
Python
Executable File
193 lines
8.8 KiB
Python
Executable File
from orm.services.flavor_manager.fms_rest.controllers.v1.orm.flavors import os_extra_specs as es
|
|
from orm.services.flavor_manager.fms_rest.data.wsme import models
|
|
from orm.services.flavor_manager.fms_rest.logic.error_base import NotFoundError
|
|
from orm.tests.unit.fms import FunctionalTest
|
|
|
|
from mock import MagicMock, patch
|
|
|
|
|
|
class TestOsExtraSpecsController(FunctionalTest):
|
|
"""unittes."""
|
|
|
|
@patch.object(es, 'di')
|
|
def test_create_os_flavor_specs_success(self, mock_di):
|
|
mock_di.resolver.unpack.return_value =\
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
response = self.app.post_json('/v1/orm/flavors/123/os_extra_specs',
|
|
flavor_extra_specs_json)
|
|
self.assertEqual(response.json, flavor_extra_specs_json)
|
|
self.assertEqual(response.status_code, 201)
|
|
|
|
# def test_create_os_extra_specs_bad_json(self):
|
|
# global flavor_extra_specs_json
|
|
# backup = dict(flavor_extra_specs_json)
|
|
# del(flavor_extra_specs_json["os_extra_specs"])
|
|
# response = self.app.post_json('/v1/orm/flavors/123/os_extra_specs',
|
|
# flavor_extra_specs_json,
|
|
# expect_errors=True)
|
|
# flavor_extra_specs_json = backup
|
|
# self.assertEqual(response.status_code, 400)
|
|
|
|
@patch.object(es, 'di')
|
|
def test_create_os_flavor_specs_audit_trial_fails(self, mock_di):
|
|
flavor_mock, utils_mock = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
utils_mock.audit_trail.side_effect = SystemError()
|
|
mock_di.resolver.unpack.return_value = flavor_mock, utils_mock
|
|
response = self.app.post_json('/v1/orm/flavors/123/os_extra_specs',
|
|
flavor_extra_specs_json,
|
|
expect_errors=True)
|
|
self.assertEqual(response.status_code, 500)
|
|
|
|
@patch.object(es, 'di')
|
|
def test_create_os_flavor_specs_flavor_not_found(self, mock_di):
|
|
flavor_mock, utils_mock = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
flavor_mock.add_extra_specs.side_effect = NotFoundError(404,
|
|
"not found")
|
|
mock_di.resolver.unpack.return_value = flavor_mock, utils_mock
|
|
response = self.app.post_json('/v1/orm/flavors/123/os_extra_specs',
|
|
flavor_extra_specs_json,
|
|
expect_errors=True)
|
|
|
|
# dict_body = json.loads(response.body)
|
|
# my_json = json.loads(dict_body['faultstring'])
|
|
|
|
# self.assertEqual(response.status_code, 404)
|
|
# self.assertEqual(my_json['message'], 'not found')
|
|
|
|
@patch.object(es, 'di')
|
|
def test_update_os_flavor_specs_success(self, mock_di):
|
|
mock_di.resolver.unpack.return_value = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
response = self.app.put_json('/v1/orm/flavors/123/os_extra_specs',
|
|
flavor_extra_specs_json)
|
|
self.assertEqual(response.json, flavor_extra_specs_json)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
# def test_update_os_extra_specs_bad_json(self):
|
|
# global flavor_extra_specs_json
|
|
# backup = dict(flavor_extra_specs_json)
|
|
# del (flavor_extra_specs_json["os_extra_specs"])
|
|
# response = self.app.put_json('/v1/orm/flavors/123/os_extra_specs',
|
|
# flavor_extra_specs_json,
|
|
# expect_errors=True)
|
|
# flavor_extra_specs_json = backup
|
|
# self.assertEqual(response.status_code, 400)
|
|
|
|
@patch.object(es, 'di')
|
|
def test_update_os_flavor_specs_audit_trial_fails(self, mock_di):
|
|
flavor_mock, utils_mock = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
utils_mock.audit_trail.side_effect = SystemError()
|
|
mock_di.resolver.unpack.return_value = flavor_mock, utils_mock
|
|
response = self.app.put_json('/v1/orm/flavors/123/os_extra_specs',
|
|
flavor_extra_specs_json,
|
|
expect_errors=True)
|
|
self.assertEqual(response.status_code, 500)
|
|
|
|
@patch.object(es, 'di')
|
|
def test_update_os_flavor_specs_flavor_not_found(self, mock_di):
|
|
flavor_mock, utils_mock = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
flavor_mock.update_extra_specs.side_effect = NotFoundError(404,
|
|
"not found")
|
|
mock_di.resolver.unpack.return_value = flavor_mock, utils_mock
|
|
response = self.app.put_json('/v1/orm/flavors/123/os_extra_specs',
|
|
flavor_extra_specs_json,
|
|
expect_errors=True)
|
|
|
|
# dict_body = json.loads(response.body)
|
|
# my_json = json.loads(dict_body['faultstring'])
|
|
|
|
# self.assertEqual(response.status_code, 404)
|
|
# self.assertEqual(my_json['message'], 'not found')
|
|
|
|
@patch.object(es, 'di')
|
|
def test_get_os_flavor_specs_flavor_not_found(self, mock_di):
|
|
flavor_mock, utils_mock = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
flavor_mock.get_extra_specs_uuid.side_effect = NotFoundError(404,
|
|
"not found")
|
|
mock_di.resolver.unpack.return_value = flavor_mock, utils_mock
|
|
response = self.app.get('/v1/orm/flavors/123/os_extra_specs',
|
|
expect_errors=True)
|
|
|
|
# dict_body = json.loads(response.body)
|
|
# my_json = json.loads(dict_body['faultstring'])
|
|
|
|
# self.assertEqual(response.status_code, 404)
|
|
# self.assertEqual(my_json['message'], 'not found')
|
|
|
|
@patch.object(es, 'di')
|
|
def test_get_os_flavor_specs_success(self, mock_di):
|
|
mock_di.resolver.unpack.return_value = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
response = self.app.get('/v1/orm/flavors/123/os_extra_specs')
|
|
self.assertEqual(response.json, flavor_extra_specs_json)
|
|
self.assertEqual(response.status_code, 200)
|
|
|
|
@patch.object(es, 'di')
|
|
def test_get_os_flavor_specs_audit_trial_fails(self, mock_di):
|
|
flavor_mock, utils_mock = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
utils_mock.audit_trail.side_effect = SystemError()
|
|
mock_di.resolver.unpack.return_value = flavor_mock, utils_mock
|
|
response = self.app.get('/v1/orm/flavors/123/os_extra_specs',
|
|
expect_errors=True)
|
|
self.assertEqual(response.status_code, 500)
|
|
|
|
@patch.object(es, 'di')
|
|
def test_delete_os_flavor_specs_success(self, mock_di):
|
|
mock_di.resolver.unpack.return_value = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
response = self.app.delete('/v1/orm/flavors/123/os_extra_specs')
|
|
self.assertEqual(response.status_code, 204)
|
|
|
|
@patch.object(es, 'di')
|
|
def test_delete_os_flavor_specs_audit_trial_fails(self, mock_di):
|
|
flavor_mock, utils_mock = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
utils_mock.audit_trail.side_effect = SystemError()
|
|
mock_di.resolver.unpack.return_value = flavor_mock, utils_mock
|
|
response = self.app.delete('/v1/orm/flavors/123/os_extra_specs',
|
|
flavor_extra_specs_json,
|
|
expect_errors=True)
|
|
self.assertEqual(response.status_code, 400)
|
|
|
|
@patch.object(es, 'di')
|
|
def test_delete_os_flavor_specs_flavor_not_found(self, mock_di):
|
|
flavor_mock, utils_mock = \
|
|
get_utils_flavor_logic_mock(flavor_extra_specs_json)
|
|
flavor_mock.delete_extra_specs.side_effect = NotFoundError(404,
|
|
"not found")
|
|
mock_di.resolver.unpack.return_value = flavor_mock, utils_mock
|
|
response = self.app.delete('/v1/orm/flavors/123/os_extra_specs',
|
|
expect_errors=True)
|
|
|
|
# dict_body = json.loads(response.body)
|
|
# my_json = json.loads(dict_body['faultstring'])
|
|
|
|
# self.assertEqual(response.status_code, 404)
|
|
# self.assertEqual(my_json['message'], 'not found')
|
|
|
|
|
|
def get_utils_flavor_logic_mock(input_json=None):
|
|
es = models.ExtraSpecsWrapper(input_json["os_extra_specs"])
|
|
utils_mock = MagicMock()
|
|
flavor_logic_mock = MagicMock()
|
|
flavor_logic_mock.add_extra_specs.return_value = es
|
|
flavor_logic_mock.update_extra_specs.return_value = es
|
|
flavor_logic_mock.get_extra_specs_uuid.return_value = es
|
|
utils_mock.audit_trail.return_value = None
|
|
return flavor_logic_mock, utils_mock
|
|
|
|
|
|
flavor_extra_specs_json = {
|
|
"os_extra_specs": {
|
|
"name357": "region_name1",
|
|
"name4467": "2",
|
|
"name66767": "222234556"
|
|
}
|
|
}
|