
Ranger errors are split out unecessarily in the code base and need to be refactored for python 3.6 best practice Change-Id: I06b1e2679ff2f0d7cadf7eab4ab0a7cc61e138ca
150 lines
4.5 KiB
Python
Executable File
150 lines
4.5 KiB
Python
Executable File
import requests
|
|
|
|
from orm.common.orm_common.injector import injector
|
|
from orm.common.orm_common.utils.error_base import ErrorStatus
|
|
from orm.services.flavor_manager.fms_rest.controllers.v1.orm.flavors import regions
|
|
from orm.services.flavor_manager.fms_rest.data.wsme import models
|
|
from orm.tests.unit.fms import FunctionalTest
|
|
from orm.tests.unit.fms import test_utils
|
|
|
|
from mock import MagicMock, patch
|
|
|
|
utils_mock = None
|
|
region_logic_mock = None
|
|
|
|
return_error = 0
|
|
|
|
|
|
class TestRegionController(FunctionalTest):
|
|
def setUp(self):
|
|
FunctionalTest.setUp(self)
|
|
|
|
injector.override_injected_dependency(('flavor_logic', get_region_logic_mock()))
|
|
injector.override_injected_dependency(('utils', get_utils_mock()))
|
|
|
|
def tearDown(self):
|
|
FunctionalTest.tearDown(self)
|
|
|
|
def test_add_regions(self):
|
|
# given
|
|
requests.post = MagicMock(return_value=ResponseMock(200, "added"))
|
|
|
|
global return_error
|
|
return_error = 0
|
|
|
|
# when
|
|
response = self.app.post_json('/v1/orm/flavors/flavor_id/regions', REGION_JSON)
|
|
|
|
# assert
|
|
assert utils_mock.audit_trail.called
|
|
assert region_logic_mock.add_regions.called
|
|
|
|
def test_add_regions_fail(self):
|
|
# given
|
|
global return_error
|
|
return_error = 1
|
|
injector.override_injected_dependency(('flavor_logic', get_region_logic_mock()))
|
|
requests.post = MagicMock()
|
|
|
|
# when
|
|
response = self.app.post_json('/v1/orm/flavors/{flavor_id}/regions/', REGION_JSON, expect_errors=True)
|
|
|
|
# assert
|
|
self.assertEqual(response.status_int, 500)
|
|
|
|
@patch.object(regions, 'err_utils')
|
|
def test_add_regions_bad_request(self, mock_err_utils):
|
|
# given
|
|
global return_error
|
|
return_error = 2
|
|
injector.override_injected_dependency(('flavor_logic', get_region_logic_mock()))
|
|
requests.post = MagicMock()
|
|
mock_err_utils.get_error = test_utils.get_error
|
|
|
|
# when
|
|
response = self.app.post_json('/v1/orm/flavors/{flavor_id}/regions/', REGION_JSON, expect_errors=True)
|
|
|
|
# assert
|
|
self.assertEqual(response.status_int, 404)
|
|
|
|
def test_delete_region(self):
|
|
# given
|
|
global return_error
|
|
return_error = 0
|
|
injector.override_injected_dependency(('flavor_logic', get_region_logic_mock()))
|
|
requests.delete = MagicMock(return_value=ResponseMock(204))
|
|
|
|
# when
|
|
self.app.delete('/v1/orm/flavors/flavor_id/regions/region_id/False')
|
|
|
|
# assert
|
|
assert region_logic_mock.delete_region.called
|
|
|
|
def test_delete_region_fail(self):
|
|
# given
|
|
global return_error
|
|
return_error = 1
|
|
injector.override_injected_dependency(('flavor_logic', get_region_logic_mock()))
|
|
requests.delete = MagicMock()
|
|
|
|
# when
|
|
response = self.app.delete('/v1/orm/flavors/flavor_id/regions/{region_id}/False', expect_errors=True)
|
|
|
|
# assert
|
|
self.assertEqual(response.status_int, 500)
|
|
|
|
def test_delete_region_bad_request(self):
|
|
# given
|
|
global return_error
|
|
return_error = 2
|
|
injector.override_injected_dependency(('flavor_logic', get_region_logic_mock()))
|
|
requests.delete = MagicMock()
|
|
|
|
# when
|
|
response = self.app.delete('/v1/orm/flavors/flavor_id/regions/{region_id}/False', expect_errors=True)
|
|
|
|
# assert
|
|
# self.assertEqual(response.status_int, 404)
|
|
|
|
|
|
class ResponseMock:
|
|
def __init__(self, status_code=200, message=""):
|
|
self.status_code = status_code
|
|
self.message = message
|
|
|
|
|
|
def get_region_logic_mock():
|
|
global region_logic_mock
|
|
region_logic_mock = MagicMock()
|
|
|
|
if return_error == 0:
|
|
region_logic_mock.add_regions.return_value = RET_REGION_JSON
|
|
elif return_error == 1:
|
|
region_logic_mock.add_regions.side_effect = SystemError()
|
|
region_logic_mock.delete_region.side_effect = SystemError()
|
|
else:
|
|
region_logic_mock.add_regions.side_effect = ErrorStatus(status_code=404)
|
|
region_logic_mock.delete_region.side_effect = ErrorStatus(status_code=404)
|
|
|
|
return region_logic_mock
|
|
|
|
|
|
def get_utils_mock():
|
|
global utils_mock
|
|
utils_mock = MagicMock()
|
|
|
|
utils_mock.make_transid.return_value = 'some_trans_id'
|
|
utils_mock.audit_trail.return_value = None
|
|
utils_mock.make_uuid.return_value = 'some_uuid'
|
|
|
|
return utils_mock
|
|
|
|
|
|
REGION_JSON = {
|
|
"regions": [
|
|
{"name": "76", "type": "single"}
|
|
]
|
|
}
|
|
|
|
RET_REGION_JSON = models.RegionWrapper([models.Region(name='76', status='done')])
|