Files
kuryr-kubernetes/kuryr_kubernetes/tests/unit/controller/test_service.py
Antoni Segura Puimedon d3a6cdcf99 Kuryr-Controller: make handlers pluggable
This patch introduces a new way for configuring which handlers the
Kuryr controller should be using. This will allow people to use
externally provided handlers as long as they are installed as
entrypoints of the right namespace.

Implements: blueprint kuryr-pluggable-handlers

Change-Id: I52ce0ef00771c8587d7f7113cc5eb4839d1309a5
Signed-off-by: Antoni Segura Puimedon <antonisp@celebdor.com>
2018-04-17 17:02:00 +03:00

60 lines
2.3 KiB
Python

# Copyright (c) 2016 Mirantis, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
import mock
from kuryr_kubernetes.controller import service
from kuryr_kubernetes.tests import base as test_base
from kuryr_kubernetes.tests.unit.controller.handlers import test_fake_handler
from oslo_config import cfg
class TestControllerService(test_base.TestCase):
@mock.patch('oslo_service.service.launch')
@mock.patch('kuryr_kubernetes.config.init')
@mock.patch('kuryr_kubernetes.config.setup_logging')
@mock.patch('kuryr_kubernetes.clients.setup_clients')
@mock.patch('kuryr_kubernetes.controller.service.KuryrK8sService')
def test_start(self, m_svc, m_setup_clients, m_setup_logging,
m_config_init, m_oslo_launch):
m_launcher = mock.Mock()
m_oslo_launch.return_value = m_launcher
service.start()
m_config_init.assert_called()
m_setup_logging.assert_called()
m_setup_clients.assert_called()
m_svc.assert_called()
m_oslo_launch.assert_called()
m_launcher.wait.assert_called()
def test_check_test_handler(self):
cfg.CONF.set_override('enabled_handlers', ['test_handler'],
group='kubernetes')
handlers = service._load_kuryr_ctrlr_handlers()
for handler in handlers:
self.assertEqual(handler.get_watch_path(),
test_fake_handler.TestHandler.OBJECT_WATCH_PATH)
@mock.patch('kuryr_kubernetes.controller.service._handler_not_found')
def test_handler_not_found(self, m_handler_not_found):
cfg.CONF.set_override('enabled_handlers', ['fake_handler'],
group='kubernetes')
service._load_kuryr_ctrlr_handlers()
m_handler_not_found.assert_called()