Expand dependency injection test coverage
Change-Id: I381bfb8c0f777d421b5cf0a4c1d1ef38486e1b59
This commit is contained in:
@@ -56,7 +56,7 @@ class TestDependencyInjection(unittest.TestCase):
|
|||||||
self.assertIsInstance(consumer.second_api, Interface)
|
self.assertIsInstance(consumer.second_api, Interface)
|
||||||
consumer.do_work_with_dependencies()
|
consumer.do_work_with_dependencies()
|
||||||
|
|
||||||
def test_dependency_configuration(self):
|
def test_dependency_provider_configuration(self):
|
||||||
@dependency.provider('api')
|
@dependency.provider('api')
|
||||||
class Configurable(object):
|
class Configurable(object):
|
||||||
def __init__(self, value=None):
|
def __init__(self, value=None):
|
||||||
@@ -81,6 +81,32 @@ class TestDependencyInjection(unittest.TestCase):
|
|||||||
self.assertIsInstance(consumer.api, Configurable)
|
self.assertIsInstance(consumer.api, Configurable)
|
||||||
self.assertTrue(consumer.get_value())
|
self.assertTrue(consumer.get_value())
|
||||||
|
|
||||||
|
def test_dependency_consumer_configuration(self):
|
||||||
|
@dependency.provider('api')
|
||||||
|
class Provider(object):
|
||||||
|
def get_value(self):
|
||||||
|
return True
|
||||||
|
|
||||||
|
@dependency.requires('api')
|
||||||
|
class Configurable(object):
|
||||||
|
def __init__(self, value=None):
|
||||||
|
self.value = value
|
||||||
|
|
||||||
|
def get_value(self):
|
||||||
|
if self.value:
|
||||||
|
return self.api.get_value()
|
||||||
|
|
||||||
|
# initialize dependency providers
|
||||||
|
api = Provider()
|
||||||
|
|
||||||
|
# ... sometime later, initialize a dependency consumer
|
||||||
|
consumer = Configurable(value=True)
|
||||||
|
|
||||||
|
# the expected dependencies should be available to the consumer
|
||||||
|
self.assertIs(consumer.api, api)
|
||||||
|
self.assertIsInstance(consumer.api, Provider)
|
||||||
|
self.assertTrue(consumer.get_value())
|
||||||
|
|
||||||
def test_inherited_dependency(self):
|
def test_inherited_dependency(self):
|
||||||
class Interface(object):
|
class Interface(object):
|
||||||
def do_work(self):
|
def do_work(self):
|
||||||
|
Reference in New Issue
Block a user