python-dependency-injector/examples/catalogs/simple.py

42 lines
1.1 KiB
Python
Raw Normal View History

2015-08-04 17:05:34 +03:00
"""Catalog example."""
from collections import namedtuple
2015-08-31 16:31:38 +03:00
from dependency_injector.catalog import AbstractCatalog
from dependency_injector.providers import Factory
from dependency_injector.injections import KwArg
2015-08-04 17:05:34 +03:00
# Creating some example classes:
Object1 = namedtuple('Object1', ['arg1', 'arg2'])
Object2 = namedtuple('Object2', ['object1'])
class Catalog(AbstractCatalog):
"""Providers catalog."""
object1_factory = Factory(Object1,
KwArg('arg1', 1),
KwArg('arg2', 2))
2015-08-31 16:31:38 +03:00
""":type: (dependency_injector.Provider) -> Object1"""
2015-08-04 17:05:34 +03:00
object2_factory = Factory(Object2,
KwArg('object1', object1_factory))
2015-08-31 16:31:38 +03:00
""":type: (dependency_injector.Provider) -> Object2"""
2015-08-04 17:05:34 +03:00
2015-08-31 16:31:38 +03:00
# Creating some dependency_injector:
2015-08-04 17:05:34 +03:00
object2_1 = Catalog.object2_factory()
object2_2 = Catalog.object2_factory()
# Making some asserts:
assert object2_1 is not object2_2
assert isinstance(object2_1, Object2)
assert object2_1.object1.arg1 == 1
assert object2_1.object1.arg2 == 2
assert isinstance(object2_2, Object2)
assert object2_2.object1.arg1 == 1
assert object2_2.object1.arg2 == 2