OCP-Router: Enable the OCP-Route handler unit tests
Although the file that includes the ocp-route handler unit tests exist, the unit tests don't run in tox command. The reason for that was missing __init__.py files. This patch resolves the __init__.py issue and updates the relevant unit tests. Change-Id: I690eadb27095fdd531803804f2517f422e62e3ef Closes-Bug: 1781825
This commit is contained in:
parent
194dfdfb21
commit
0256ed2c4d
|
@ -12,7 +12,7 @@
|
|||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
from kuryr_kubernetes.controller.drivers import l7_router as d_l7_rtr
|
||||
from kuryr_kubernetes.controller.drivers import base as drv_base
|
||||
from kuryr_kubernetes.objects import lbaas as obj_lbaas
|
||||
from kuryr_kubernetes.objects import route as obj_route
|
||||
from kuryr_kubernetes.platform.ocp.controller.handlers import route as h_route
|
||||
|
@ -23,12 +23,12 @@ import mock
|
|||
class TestOcpRouteHandler(test_base.TestCase):
|
||||
|
||||
@mock.patch('kuryr_kubernetes.controller.drivers.base'
|
||||
'.L7RouterDriver.get_instance')
|
||||
def test_init(self, m_get_drv_l7_router):
|
||||
m_get_drv_l7_router.return_value = mock.sentinel.drv_l7_router
|
||||
'.LBaaSDriver.get_instance')
|
||||
def test_init(self, m_get_drv_lbaas):
|
||||
m_get_drv_lbaas.return_value = mock.sentinel.drv_lbaas
|
||||
|
||||
handler = h_route.OcpRouteHandler()
|
||||
self.assertEqual(mock.sentinel.drv_l7_router, handler._drv_l7_router)
|
||||
self.assertEqual(mock.sentinel.drv_lbaas, handler._drv_lbaas)
|
||||
self.assertIsNone(handler._l7_router)
|
||||
self.assertIsNone(handler._l7_router_listeners)
|
||||
|
||||
|
@ -44,6 +44,12 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._l7_router_listeners = obj_lbaas.LBaaSListener(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E1234',
|
||||
project_id='TEST_PROJECT',
|
||||
name='http_listenr',
|
||||
protocol='http',
|
||||
port=80)
|
||||
|
||||
h_route.OcpRouteHandler.on_present(m_handler, route_event)
|
||||
m_handler._sync_router_pool.assert_called_once_with(
|
||||
|
@ -72,6 +78,13 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
|
||||
m_handler._l7_router_listeners = obj_lbaas.LBaaSListener(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E1234',
|
||||
project_id='TEST_PROJECT',
|
||||
name='http_listenr',
|
||||
protocol='http',
|
||||
port=80)
|
||||
|
||||
h_route.OcpRouteHandler.on_present(m_handler, route_event)
|
||||
m_handler._get_route_spec.assert_called_once_with(
|
||||
route_event)
|
||||
|
@ -161,9 +174,10 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_l7_router = mock.Mock(
|
||||
spec=d_l7_rtr.LBaaSv2L7RouterDriver)
|
||||
m_handler._drv_l7_router.ensure_pool.return_value = None
|
||||
m_handler._drv_lbaas = mock.Mock(
|
||||
spec=drv_base.LBaaSDriver)
|
||||
m_handler._drv_lbaas.get_pool_by_name.return_value = None
|
||||
m_handler._drv_lbaas.ensure_pool_attached_to_lb.return_value = None
|
||||
|
||||
route = {'metadata': {'namespace': 'namespace'},
|
||||
'spec': {'host': 'www.test.com', 'path': 'mypath',
|
||||
|
@ -184,14 +198,16 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_l7_router = mock.Mock(
|
||||
spec=d_l7_rtr.LBaaSv2L7RouterDriver)
|
||||
m_handler._drv_lbaas = mock.Mock(
|
||||
spec=drv_base.LBaaSDriver)
|
||||
ret_pool = obj_lbaas.LBaaSPool(
|
||||
name='TEST_NAME', project_id='TEST_PROJECT', protocol='TCP',
|
||||
listener_id='A57B7771-6050-4CA8-A63C-443493EC98AB',
|
||||
loadbalancer_id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C')
|
||||
|
||||
m_handler._drv_l7_router.ensure_pool.return_value = ret_pool
|
||||
m_handler._drv_lbaas.get_pool_by_name.return_value = None
|
||||
m_handler._drv_lbaas.ensure_pool_attached_to_lb.return_value = ret_pool
|
||||
|
||||
route = {'metadata': {'namespace': 'namespace'},
|
||||
'spec': {'host': 'www.test.com', 'path': 'mypath',
|
||||
'to': {'name': 'target_service'}}}
|
||||
|
@ -211,21 +227,21 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_l7_router = mock.Mock(
|
||||
spec=d_l7_rtr.LBaaSv2L7RouterDriver)
|
||||
m_handler._drv_lbaas = mock.Mock(
|
||||
spec=drv_base.LBaaSDriver)
|
||||
listener = obj_lbaas.LBaaSListener(
|
||||
id='123443545',
|
||||
name='TEST_NAME', project_id='TEST_PROJECT', protocol='TCP',
|
||||
port=80, loadbalancer_id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C')
|
||||
m_handler._l7_router_listeners = {'80': listener}
|
||||
l7_policy = obj_route.RouteL7Policy(
|
||||
l7_policy = obj_lbaas.LBaaSL7Policy(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C44', name='myname',
|
||||
listener_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
redirect_pool_id='00EE9E11-91C2-41CF-8FD4-7970579E5C46',
|
||||
project_id='00EE9E11-91C2-41CF-8FD4-7970579E5C46')
|
||||
|
||||
route_state = obj_route.RouteState()
|
||||
m_handler._drv_l7_router.ensure_l7_policy.return_value = l7_policy
|
||||
m_handler._drv_lbaas.ensure_l7_policy.return_value = l7_policy
|
||||
|
||||
route = {'metadata': {'namespace': 'namespace', 'name': 'name'},
|
||||
'spec': {'host': 'www.test.com', 'path': 'mypath',
|
||||
|
@ -244,9 +260,9 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_l7_router = mock.Mock(
|
||||
spec=d_l7_rtr.LBaaSv2L7RouterDriver)
|
||||
h_l7_rule = obj_route.RouteL7Rule(
|
||||
m_handler._drv_lbaas = mock.Mock(
|
||||
spec=drv_base.LBaaSDriver)
|
||||
h_l7_rule = obj_lbaas.LBaaSL7Rule(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
|
@ -272,9 +288,9 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_l7_router = mock.Mock(
|
||||
spec=d_l7_rtr.LBaaSv2L7RouterDriver)
|
||||
h_l7_rule = obj_route.RouteL7Rule(
|
||||
m_handler._drv_lbaas = mock.Mock(
|
||||
spec=drv_base.LBaaSDriver)
|
||||
h_l7_rule = obj_lbaas.LBaaSL7Rule(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
|
@ -291,7 +307,7 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
path='mypath',
|
||||
to_service='target_service')
|
||||
|
||||
m_handler._drv_l7_router.ensure_l7_rule.return_value = h_l7_rule
|
||||
m_handler._drv_lbaas.ensure_l7_rule.return_value = h_l7_rule
|
||||
h_route.OcpRouteHandler._sync_host_l7_rule(
|
||||
m_handler, route, route_spec, route_state)
|
||||
self.assertEqual(route_state.h_l7_rule.value, route['spec']['host'])
|
||||
|
@ -301,90 +317,95 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_l7_router = mock.Mock(
|
||||
spec=d_l7_rtr.LBaaSv2L7RouterDriver)
|
||||
m_handler._drv_lbaas = mock.Mock(
|
||||
spec=drv_base.LBaaSDriver)
|
||||
|
||||
old_p_l7_rule = obj_route.RouteL7Rule(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
type='PATH',
|
||||
value='/nice_path/')
|
||||
l7_policy = obj_lbaas.LBaaSL7Policy(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E6666', name='myname',
|
||||
listener_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
redirect_pool_id='00EE9E11-91C2-41CF-8FD4-7970579E5C46',
|
||||
project_id='00EE9E11-91C2-41CF-8FD4-7970579E5C46')
|
||||
|
||||
route_state = obj_route.RouteState(p_l7_rule=old_p_l7_rule)
|
||||
route_state = obj_route.RouteState(
|
||||
l7_policy=l7_policy)
|
||||
|
||||
route = {'metadata': {'namespace': 'namespace', 'name': 'name'},
|
||||
'spec': {'host': 'new.www.test.com', 'path': 'mypath',
|
||||
'spec': {'host': 'new.www.test.com', 'path': '/nice_path',
|
||||
'to': {'name': 'target_service'}}}
|
||||
|
||||
route_spec = obj_route.RouteSpec(
|
||||
host='www.test.com',
|
||||
path='mypath',
|
||||
to_service='target_service')
|
||||
|
||||
ret_p_l7_rule = obj_route.RouteL7Rule(
|
||||
id='55559E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='55559E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
type='PATH',
|
||||
value='/nice_path/')
|
||||
|
||||
m_handler._drv_l7_router.ensure_l7_rule.return_value = ret_p_l7_rule
|
||||
h_route.OcpRouteHandler._sync_path_l7_rule(
|
||||
m_handler, route, route_spec, route_state)
|
||||
self.assertEqual(route_state.p_l7_rule, old_p_l7_rule)
|
||||
|
||||
def test_sync_path_l7_rule_route_spec_path_is_none(self):
|
||||
m_handler = mock.Mock(spec=h_route.OcpRouteHandler)
|
||||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_l7_router = mock.Mock(
|
||||
spec=d_l7_rtr.LBaaSv2L7RouterDriver)
|
||||
|
||||
old_p_l7_rule = obj_route.RouteL7Rule(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
type='PATH',
|
||||
value='/nice_path/')
|
||||
|
||||
route_state = obj_route.RouteState(p_l7_rule=old_p_l7_rule)
|
||||
|
||||
route = {'metadata': {'namespace': 'namespace', 'name': 'name'},
|
||||
'spec': {'host': 'new.www.test.com', 'path': 'mypath',
|
||||
'to': {'name': 'target_service'}}}
|
||||
route_spec = obj_route.RouteSpec(
|
||||
host='www.test.com',
|
||||
path=None,
|
||||
to_service='target_service')
|
||||
|
||||
ret_p_l7_rule = obj_route.RouteL7Rule(
|
||||
ret_p_l7_rule = obj_lbaas.LBaaSL7Rule(
|
||||
id='55559E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='55559E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
type='PATH',
|
||||
value='/nice_path/')
|
||||
value='/nice_path')
|
||||
|
||||
m_handler._drv_l7_router.ensure_l7_rule.return_value = ret_p_l7_rule
|
||||
m_handler._drv_lbaas.ensure_l7_rule.return_value = ret_p_l7_rule
|
||||
h_route.OcpRouteHandler._sync_path_l7_rule(
|
||||
m_handler, route, route_spec, route_state)
|
||||
self.assertEqual(route_state.p_l7_rule, ret_p_l7_rule)
|
||||
m_handler._drv_lbaas.ensure_l7_rule.assert_called_once_with(
|
||||
m_handler._l7_router, route_state.l7_policy,
|
||||
'EQUAL_TO', 'PATH', route['spec']['path'])
|
||||
|
||||
def test_sync_path_l7_rule_edit_usecase(self):
|
||||
m_handler = mock.Mock(spec=h_route.OcpRouteHandler)
|
||||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_lbaas = mock.Mock(
|
||||
spec=drv_base.LBaaSDriver)
|
||||
|
||||
old_p_l7_rule = obj_lbaas.LBaaSL7Rule(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
type='PATH',
|
||||
value='/cur_path')
|
||||
|
||||
route_state = obj_route.RouteState(p_l7_rule=old_p_l7_rule)
|
||||
|
||||
route = {'metadata': {'namespace': 'namespace', 'name': 'name'},
|
||||
'spec': {'host': 'new.www.test.com', 'path': '/new_path',
|
||||
'to': {'name': 'target_service'}}}
|
||||
route_spec = obj_route.RouteSpec(
|
||||
host='www.test.com',
|
||||
path=old_p_l7_rule.value,
|
||||
to_service='target_service')
|
||||
|
||||
ret_p_l7_rule = obj_lbaas.LBaaSL7Rule(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
type='PATH',
|
||||
value=route['spec']['path'])
|
||||
|
||||
m_handler._drv_lbaas.update_l7_rule.return_value = True
|
||||
h_route.OcpRouteHandler._sync_path_l7_rule(
|
||||
m_handler, route, route_spec, route_state)
|
||||
self.assertEqual(route_state.p_l7_rule.value, ret_p_l7_rule.value)
|
||||
m_handler._drv_lbaas.update_l7_rule.assert_called_once_with(
|
||||
old_p_l7_rule, route['spec']['path'])
|
||||
|
||||
def test_sync_path_l7_rule_route_spec_not_sync(self):
|
||||
m_handler = mock.Mock(spec=h_route.OcpRouteHandler)
|
||||
m_handler._l7_router = obj_lbaas.LBaaSLoadBalancer(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C4C',
|
||||
project_id='TEST_PROJECT')
|
||||
m_handler._drv_l7_router = mock.Mock(
|
||||
spec=d_l7_rtr.LBaaSv2L7RouterDriver)
|
||||
m_handler._drv_lbaas = mock.Mock(
|
||||
spec=drv_base.LBaaSDriver)
|
||||
|
||||
old_p_l7_rule = obj_route.RouteL7Rule(
|
||||
old_p_l7_rule = obj_lbaas.LBaaSL7Rule(
|
||||
id='00EE9E11-91C2-41CF-8FD4-7970579E5C44',
|
||||
compare_type='EQUAL_TO',
|
||||
l7policy_id='00EE9E11-91C2-41CF-8FD4-7970579E5C45',
|
||||
type='PATH',
|
||||
value='/nice_path/')
|
||||
value='/cur_path')
|
||||
|
||||
route_state = obj_route.RouteState(p_l7_rule=old_p_l7_rule)
|
||||
|
||||
|
@ -394,10 +415,11 @@ class TestOcpRouteHandler(test_base.TestCase):
|
|||
|
||||
route_spec = obj_route.RouteSpec(
|
||||
host='www.test.com',
|
||||
path='path',
|
||||
path='/not_cur_path',
|
||||
to_service='target_service')
|
||||
m_handler._drv_l7_router.update_l7_rule.return_value = None
|
||||
m_handler._drv_lbaas.update_l7_rule.return_value = None
|
||||
|
||||
h_route.OcpRouteHandler._sync_path_l7_rule(
|
||||
m_handler, route, route_spec, route_state)
|
||||
self.assertEqual(route_state.p_l7_rule.value, route['spec']['path'])
|
||||
self.assertEqual(route_spec.path, route['spec']['path'])
|
||||
|
|
|
@ -35,6 +35,8 @@ object_data = {
|
|||
'LBaaSRouteState': '1.0-bdf561462a2d337c0e0ae8cb10e9ff20',
|
||||
'LBaaSServiceSpec': '1.0-d430ecd443f2b1999196bfe531e56f7e',
|
||||
'LBaaSState': '1.0-a0ff7dce2d3f6ce1ffab4ff95a344361',
|
||||
'RouteSpec': '1.0-2f02b2e24b1ca2b94c2bbdb718bfc020',
|
||||
'RouteState': '1.0-2475dbeb6ebedabe2a1e235f9bc6b614',
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue