Files
deb-python-taskflow/taskflow/tests/unit/jobs/test_entrypoint.py
Joshua Harlow 6f5896c8bd Allow fetching jobboard implementations
To provide a standard way to fetch jobboards
that doesn't require importing the modules themselves
but by using entrypoints instead.

Blueprint jobboard-entrypoints

Change-Id: I13639c6be78a5d003e50e6cfd452c7b810072006
2014-04-15 14:48:35 -07:00

50 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
# Copyright (C) 2014 Yahoo! 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 contextlib
from zake import fake_client
from taskflow.jobs import backends
from taskflow.jobs.backends import impl_zookeeper
from taskflow import test
class BackendFetchingTest(test.TestCase):
def test_zk_entry_point_text(self):
conf = 'zookeeper'
with contextlib.closing(backends.fetch('test', conf)) as be:
self.assertIsInstance(be, impl_zookeeper.ZookeeperJobBoard)
def test_zk_entry_point(self):
conf = {
'board': 'zookeeper',
}
with contextlib.closing(backends.fetch('test', conf)) as be:
self.assertIsInstance(be, impl_zookeeper.ZookeeperJobBoard)
def test_zk_entry_point_existing_client(self):
existing_client = fake_client.FakeClient()
conf = {
'board': 'zookeeper',
}
kwargs = {
'client': existing_client,
}
with contextlib.closing(backends.fetch('test', conf, **kwargs)) as be:
self.assertIsInstance(be, impl_zookeeper.ZookeeperJobBoard)
self.assertIs(existing_client, be._client)