Update quotes in tests

This commit is contained in:
Roman Mogylatov 2021-09-30 20:09:42 -04:00
parent 0b1e214135
commit 8ade2b7839
52 changed files with 1285 additions and 1287 deletions

View File

@ -3659,8 +3659,8 @@ static const char __pyx_k_to[] = "to";
static const char __pyx_k_0_1[] = "{0}={1}"; static const char __pyx_k_0_1[] = "{0}={1}";
static const char __pyx_k__10[] = "__"; static const char __pyx_k__10[] = "__";
static const char __pyx_k__30[] = ", "; static const char __pyx_k__30[] = ", ";
static const char __pyx_k__31[] = "('"; static const char __pyx_k__31[] = "(\"";
static const char __pyx_k__32[] = "')"; static const char __pyx_k__32[] = "\")";
static const char __pyx_k__33[] = ")"; static const char __pyx_k__33[] = ")";
static const char __pyx_k_cls[] = "cls"; static const char __pyx_k_cls[] = "cls";
static const char __pyx_k_doc[] = "__doc__"; static const char __pyx_k_doc[] = "__doc__";
@ -78727,7 +78727,7 @@ static int __pyx_pf_19dependency_injector_9providers_16ProvidedInstance___init__
* super().__init__() * super().__init__()
* *
* def __repr__(self): # <<<<<<<<<<<<<< * def __repr__(self): # <<<<<<<<<<<<<<
* return f'{self.__class__.__name__}(\'{self.__provides}\')' * return f'{self.__class__.__name__}("{self.__provides}")'
* *
*/ */
@ -78760,7 +78760,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_2_
/* "dependency_injector/providers.pyx":4054 /* "dependency_injector/providers.pyx":4054
* *
* def __repr__(self): * def __repr__(self):
* return f'{self.__class__.__name__}(\'{self.__provides}\')' # <<<<<<<<<<<<<< * return f'{self.__class__.__name__}("{self.__provides}")' # <<<<<<<<<<<<<<
* *
* def __deepcopy__(self, memo): * def __deepcopy__(self, memo):
*/ */
@ -78808,7 +78808,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_2_
* super().__init__() * super().__init__()
* *
* def __repr__(self): # <<<<<<<<<<<<<< * def __repr__(self): # <<<<<<<<<<<<<<
* return f'{self.__class__.__name__}(\'{self.__provides}\')' * return f'{self.__class__.__name__}("{self.__provides}")'
* *
*/ */
@ -78826,7 +78826,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_2_
} }
/* "dependency_injector/providers.pyx":4056 /* "dependency_injector/providers.pyx":4056
* return f'{self.__class__.__name__}(\'{self.__provides}\')' * return f'{self.__class__.__name__}("{self.__provides}")'
* *
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<< * def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* copied = memo.get(id(self)) * copied = memo.get(id(self))
@ -78982,7 +78982,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_16ProvidedInstance_4_
goto __pyx_L0; goto __pyx_L0;
/* "dependency_injector/providers.pyx":4056 /* "dependency_injector/providers.pyx":4056
* return f'{self.__class__.__name__}(\'{self.__provides}\')' * return f'{self.__class__.__name__}("{self.__provides}")'
* *
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<< * def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* copied = memo.get(id(self)) * copied = memo.get(id(self))
@ -80355,7 +80355,7 @@ static int __pyx_pf_19dependency_injector_9providers_15AttributeGetter___init__(
* super().__init__() * super().__init__()
* *
* def __repr__(self): # <<<<<<<<<<<<<< * def __repr__(self): # <<<<<<<<<<<<<<
* return f'{self.__class__.__name__}(\'{self.name}\')' * return f'{self.__class__.__name__}("{self.name}")'
* *
*/ */
@ -80388,7 +80388,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_2__
/* "dependency_injector/providers.pyx":4110 /* "dependency_injector/providers.pyx":4110
* *
* def __repr__(self): * def __repr__(self):
* return f'{self.__class__.__name__}(\'{self.name}\')' # <<<<<<<<<<<<<< * return f'{self.__class__.__name__}("{self.name}")' # <<<<<<<<<<<<<<
* *
* def __deepcopy__(self, memo): * def __deepcopy__(self, memo):
*/ */
@ -80439,7 +80439,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_2__
* super().__init__() * super().__init__()
* *
* def __repr__(self): # <<<<<<<<<<<<<< * def __repr__(self): # <<<<<<<<<<<<<<
* return f'{self.__class__.__name__}(\'{self.name}\')' * return f'{self.__class__.__name__}("{self.name}")'
* *
*/ */
@ -80457,7 +80457,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_2__
} }
/* "dependency_injector/providers.pyx":4112 /* "dependency_injector/providers.pyx":4112
* return f'{self.__class__.__name__}(\'{self.name}\')' * return f'{self.__class__.__name__}("{self.name}")'
* *
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<< * def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* copied = memo.get(id(self)) * copied = memo.get(id(self))
@ -80642,7 +80642,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_15AttributeGetter_4__
goto __pyx_L0; goto __pyx_L0;
/* "dependency_injector/providers.pyx":4112 /* "dependency_injector/providers.pyx":4112
* return f'{self.__class__.__name__}(\'{self.name}\')' * return f'{self.__class__.__name__}("{self.name}")'
* *
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<< * def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* copied = memo.get(id(self)) * copied = memo.get(id(self))
@ -82639,7 +82639,7 @@ static int __pyx_pf_19dependency_injector_9providers_10ItemGetter___init__(struc
* super().__init__() * super().__init__()
* *
* def __repr__(self): # <<<<<<<<<<<<<< * def __repr__(self): # <<<<<<<<<<<<<<
* return f'{self.__class__.__name__}(\'{self.name}\')' * return f'{self.__class__.__name__}("{self.name}")'
* *
*/ */
@ -82672,7 +82672,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_2__repr_
/* "dependency_injector/providers.pyx":4192 /* "dependency_injector/providers.pyx":4192
* *
* def __repr__(self): * def __repr__(self):
* return f'{self.__class__.__name__}(\'{self.name}\')' # <<<<<<<<<<<<<< * return f'{self.__class__.__name__}("{self.name}")' # <<<<<<<<<<<<<<
* *
* def __deepcopy__(self, memo): * def __deepcopy__(self, memo):
*/ */
@ -82723,7 +82723,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_2__repr_
* super().__init__() * super().__init__()
* *
* def __repr__(self): # <<<<<<<<<<<<<< * def __repr__(self): # <<<<<<<<<<<<<<
* return f'{self.__class__.__name__}(\'{self.name}\')' * return f'{self.__class__.__name__}("{self.name}")'
* *
*/ */
@ -82741,7 +82741,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_2__repr_
} }
/* "dependency_injector/providers.pyx":4194 /* "dependency_injector/providers.pyx":4194
* return f'{self.__class__.__name__}(\'{self.name}\')' * return f'{self.__class__.__name__}("{self.name}")'
* *
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<< * def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* copied = memo.get(id(self)) * copied = memo.get(id(self))
@ -82926,7 +82926,7 @@ static PyObject *__pyx_pf_19dependency_injector_9providers_10ItemGetter_4__deepc
goto __pyx_L0; goto __pyx_L0;
/* "dependency_injector/providers.pyx":4194 /* "dependency_injector/providers.pyx":4194
* return f'{self.__class__.__name__}(\'{self.name}\')' * return f'{self.__class__.__name__}("{self.name}")'
* *
* def __deepcopy__(self, memo): # <<<<<<<<<<<<<< * def __deepcopy__(self, memo): # <<<<<<<<<<<<<<
* copied = memo.get(id(self)) * copied = memo.get(id(self))

View File

@ -4051,7 +4051,7 @@ cdef class ProvidedInstance(Provider):
super().__init__() super().__init__()
def __repr__(self): def __repr__(self):
return f'{self.__class__.__name__}(\'{self.__provides}\')' return f'{self.__class__.__name__}("{self.__provides}")'
def __deepcopy__(self, memo): def __deepcopy__(self, memo):
copied = memo.get(id(self)) copied = memo.get(id(self))
@ -4107,7 +4107,7 @@ cdef class AttributeGetter(Provider):
super().__init__() super().__init__()
def __repr__(self): def __repr__(self):
return f'{self.__class__.__name__}(\'{self.name}\')' return f'{self.__class__.__name__}("{self.name}")'
def __deepcopy__(self, memo): def __deepcopy__(self, memo):
copied = memo.get(id(self)) copied = memo.get(id(self))
@ -4189,7 +4189,7 @@ cdef class ItemGetter(Provider):
super().__init__() super().__init__()
def __repr__(self): def __repr__(self):
return f'{self.__class__.__name__}(\'{self.name}\')' return f'{self.__class__.__name__}("{self.name}")'
def __deepcopy__(self, memo): def __deepcopy__(self, memo):
copied = memo.get(id(self)) copied = memo.get(id(self))

View File

@ -14,15 +14,15 @@ class Tester(object):
self.provider_modules = provider_modules self.provider_modules = provider_modules
self.tests = [getattr(self, name) self.tests = [getattr(self, name)
for name in dir(self) for name in dir(self)
if name.startswith('test')] if name.startswith("test")]
self.total_time = 0 self.total_time = 0
self.duration_factor = duration_factor self.duration_factor = duration_factor
def run(self): def run(self):
"""Run all tests for all provider modules.""" """Run all tests for all provider modules."""
for module in self.provider_modules: for module in self.provider_modules:
print('\n') print("\n")
print('Running tests for module - "{module}":' print("Running tests for module - \"{module}\":"
.format(module=module.__name__)) .format(module=module.__name__))
gc.disable() gc.disable()
@ -30,13 +30,13 @@ class Tester(object):
start_time = time.time() start_time = time.time()
test(module) test(module)
self.total_time = time.time() - start_time self.total_time = time.time() - start_time
print('Test "{test}" took - {time}' print("Test \"{test}\" took - {time}"
.format(test=test.__name__, .format(test=test.__name__,
time=self.total_time)) time=self.total_time))
gc.collect() gc.collect()
gc.enable() gc.enable()
print('\n') print("\n")
def test_raw_3_kw_injections(self, providers): def test_raw_3_kw_injections(self, providers):
"""Test 3 keyword argument injections.""" """Test 3 keyword argument injections."""
@ -53,7 +53,7 @@ class Tester(object):
def __init__(self, a, b, c): def __init__(self, a, b, c):
pass pass
for x in xrange(int(5000000 * self.duration_factor)): for x in range(int(5000000 * self.duration_factor)):
Test(a=A(), b=B(), c=C()) Test(a=A(), b=B(), c=C())
def test_factory_3_factory_kw_injections(self, providers): def test_factory_3_factory_kw_injections(self, providers):
@ -78,7 +78,7 @@ class Tester(object):
a=a_factory, a=a_factory,
b=b_factory, b=b_factory,
c=c_factory) c=c_factory)
for x in xrange(int(5000000 * self.duration_factor)): for x in range(int(5000000 * self.duration_factor)):
test_factory() test_factory()
def test_abstract_factory_3_factory_kw_injections(self, providers): def test_abstract_factory_3_factory_kw_injections(self, providers):
@ -104,7 +104,7 @@ class Tester(object):
a=a_factory, a=a_factory,
b=b_factory, b=b_factory,
c=c_factory)) c=c_factory))
for x in xrange(int(5000000 * self.duration_factor)): for x in range(int(5000000 * self.duration_factor)):
test_factory() test_factory()
def test_factory_6_factory_kw_injections_0_context(self, providers): def test_factory_6_factory_kw_injections_0_context(self, providers):
@ -114,7 +114,7 @@ class Tester(object):
pass pass
test_factory = providers.Factory(Test, a=1, b=2, c=3, d=4, e=5, f=6) test_factory = providers.Factory(Test, a=1, b=2, c=3, d=4, e=5, f=6)
for x in xrange(int(5000000 * self.duration_factor)): for x in range(int(5000000 * self.duration_factor)):
test_factory() test_factory()
def test_factory_6_factory_kw_injections_1_context(self, providers): def test_factory_6_factory_kw_injections_1_context(self, providers):
@ -124,7 +124,7 @@ class Tester(object):
pass pass
test_factory = providers.Factory(Test, f=6) test_factory = providers.Factory(Test, f=6)
for x in xrange(int(5000000 * self.duration_factor)): for x in range(int(5000000 * self.duration_factor)):
test_factory(a=1, b=2, c=3, d=4, e=5) test_factory(a=1, b=2, c=3, d=4, e=5)
def test_factory_6_factory_kw_injections_3_context(self, providers): def test_factory_6_factory_kw_injections_3_context(self, providers):
@ -134,11 +134,11 @@ class Tester(object):
pass pass
test_factory = providers.Factory(Test, a=1, b=2, c=3) test_factory = providers.Factory(Test, a=1, b=2, c=3)
for x in xrange(int(5000000 * self.duration_factor)): for x in range(int(5000000 * self.duration_factor)):
test_factory(d=4, e=5, f=6) test_factory(d=4, e=5, f=6)
if __name__ == '__main__': if __name__ == "__main__":
tester = Tester( tester = Tester(
provider_modules=[ provider_modules=[
dependency_injector.providers, dependency_injector.providers,

View File

@ -16,7 +16,7 @@ class Cat(Animal):
# Test 1: to check the return type (class) # Test 1: to check the return type (class)
provider1 = providers.Callable(Cat) provider1 = providers.Callable(Cat)
animal1: Animal = provider1(1, 2, 3, b='1', c=2, e=0.0) animal1: Animal = provider1(1, 2, 3, b="1", c=2, e=0.0)
# Test 2: to check the return type (class factory method) # Test 2: to check the return type (class factory method)
provider2 = providers.Callable(Cat.create) provider2 = providers.Callable(Cat.create)
@ -36,17 +36,17 @@ kwargs4: Dict[str, Any] = provider4.kwargs
provider5 = providers.Callable(Animal) provider5 = providers.Callable(Animal)
provided5: providers.ProvidedInstance = provider5.provided provided5: providers.ProvidedInstance = provider5.provided
attr_getter5: providers.AttributeGetter = provider5.provided.attr attr_getter5: providers.AttributeGetter = provider5.provided.attr
item_getter5: providers.ItemGetter = provider5.provided['item'] item_getter5: providers.ItemGetter = provider5.provided["item"]
method_caller: providers.MethodCaller = provider5.provided.method.call(123, arg=324) method_caller: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
# Test 6: to check the DelegatedCallable # Test 6: to check the DelegatedCallable
provider6 = providers.DelegatedCallable(Cat) provider6 = providers.DelegatedCallable(Cat)
animal6: Animal = provider6(1, 2, 3, b='1', c=2, e=0.0) animal6: Animal = provider6(1, 2, 3, b="1", c=2, e=0.0)
# Test 7: to check the AbstractCallable # Test 7: to check the AbstractCallable
provider7 = providers.AbstractCallable(Animal) provider7 = providers.AbstractCallable(Animal)
provider7.override(providers.Callable(Cat)) provider7.override(providers.Callable(Cat))
animal7: Animal = provider7(1, 2, 3, b='1', c=2, e=0.0) animal7: Animal = provider7(1, 2, 3, b="1", c=2, e=0.0)
# Test 8: to check the CallableDelegate __init__ # Test 8: to check the CallableDelegate __init__
provider8 = providers.CallableDelegate(providers.Callable(lambda: None)) provider8 = providers.CallableDelegate(providers.Callable(lambda: None))
@ -54,8 +54,8 @@ provider8 = providers.CallableDelegate(providers.Callable(lambda: None))
# Test 9: to check the return type with await # Test 9: to check the return type with await
provider9 = providers.Callable(Cat) provider9 = providers.Callable(Cat)
async def _async9() -> None: async def _async9() -> None:
animal1: Animal = await provider9(1, 2, 3, b='1', c=2, e=0.0) # type: ignore animal1: Animal = await provider9(1, 2, 3, b="1", c=2, e=0.0) # type: ignore
animal2: Animal = await provider9.async_(1, 2, 3, b='1', c=2, e=0.0) animal2: Animal = await provider9.async_(1, 2, 3, b="1", c=2, e=0.0)
# Test 10: to check the .provides # Test 10: to check the .provides
provider10 = providers.Callable(Cat) provider10 = providers.Callable(Cat)

View File

@ -9,12 +9,12 @@ provider1 = providers.Factory(dict, a=config1.a)
# Test 2: to check the from_*() method # Test 2: to check the from_*() method
config2 = providers.Configuration() config2 = providers.Configuration()
config2.from_dict({}) config2.from_dict({})
config2.from_ini('config.ini') config2.from_ini("config.ini")
config2.from_ini(Path('config.ini')) config2.from_ini(Path("config.ini"))
config2.from_yaml('config.yml') config2.from_yaml("config.yml")
config2.from_yaml(Path('config.yml')) config2.from_yaml(Path("config.yml"))
config2.from_env('ENV', 'default') config2.from_env("ENV", "default")
# Test 3: to check as_*() methods # Test 3: to check as_*() methods
config3 = providers.Configuration() config3 = providers.Configuration()

View File

@ -63,4 +63,4 @@ class Container7(containers.DeclarativeContainer):
provider = providers.Factory(str) provider = providers.Factory(str)
container7 = Container7() container7 = Container7()
container7.override_providers(provider='new_value') container7.override_providers(provider="new_value")

View File

@ -18,7 +18,7 @@ class Cat(Animal):
# Test 1: to check the return type (class) # Test 1: to check the return type (class)
provider1 = providers.Factory(Cat) provider1 = providers.Factory(Cat)
animal1: Animal = provider1(1, 2, 3, b='1', c=2, e=0.0) animal1: Animal = provider1(1, 2, 3, b="1", c=2, e=0.0)
# Test 2: to check the return type (class factory method) # Test 2: to check the return type (class factory method)
provider2 = providers.Factory(Cat.create) provider2 = providers.Factory(Cat.create)
@ -39,17 +39,17 @@ attributes4: Dict[str, Any] = provider4.attributes
provider5 = providers.Factory(Animal) provider5 = providers.Factory(Animal)
provided5: providers.ProvidedInstance = provider5.provided provided5: providers.ProvidedInstance = provider5.provided
attr_getter5: providers.AttributeGetter = provider5.provided.attr attr_getter5: providers.AttributeGetter = provider5.provided.attr
item_getter5: providers.ItemGetter = provider5.provided['item'] item_getter5: providers.ItemGetter = provider5.provided["item"]
method_caller5: providers.MethodCaller = provider5.provided.method.call(123, arg=324) method_caller5: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
# Test 6: to check the DelegatedFactory # Test 6: to check the DelegatedFactory
provider6 = providers.DelegatedFactory(Cat) provider6 = providers.DelegatedFactory(Cat)
animal6: Animal = provider6(1, 2, 3, b='1', c=2, e=0.0) animal6: Animal = provider6(1, 2, 3, b="1", c=2, e=0.0)
# Test 7: to check the AbstractFactory # Test 7: to check the AbstractFactory
provider7 = providers.AbstractFactory(Animal) provider7 = providers.AbstractFactory(Animal)
provider7.override(providers.Factory(Cat)) provider7.override(providers.Factory(Cat))
animal7: Animal = provider7(1, 2, 3, b='1', c=2, e=0.0) animal7: Animal = provider7(1, 2, 3, b="1", c=2, e=0.0)
# Test 8: to check the FactoryDelegate __init__ # Test 8: to check the FactoryDelegate __init__
provider8 = providers.FactoryDelegate(providers.Factory(object)) provider8 = providers.FactoryDelegate(providers.Factory(object))
@ -61,7 +61,7 @@ provider9: providers.FactoryAggregate[str] = providers.FactoryAggregate(
) )
factory_a_9: providers.Factory[str] = provider9.a factory_a_9: providers.Factory[str] = provider9.a
factory_b_9: providers.Factory[str] = provider9.b factory_b_9: providers.Factory[str] = provider9.b
val9: str = provider9('a') val9: str = provider9("a")
provider9_set_non_string_keys: providers.FactoryAggregate[str] = providers.FactoryAggregate() provider9_set_non_string_keys: providers.FactoryAggregate[str] = providers.FactoryAggregate()
provider9_set_non_string_keys.set_factories({Cat: providers.Factory(str, "str")}) provider9_set_non_string_keys.set_factories({Cat: providers.Factory(str, "str")})
@ -83,8 +83,8 @@ animal10: Animal = factory10()
# Test 11: to check the return type with await # Test 11: to check the return type with await
provider11 = providers.Factory(Cat) provider11 = providers.Factory(Cat)
async def _async11() -> None: async def _async11() -> None:
animal1: Animal = await provider11(1, 2, 3, b='1', c=2, e=0.0) # type: ignore animal1: Animal = await provider11(1, 2, 3, b="1", c=2, e=0.0) # type: ignore
animal2: Animal = await provider11.async_(1, 2, 3, b='1', c=2, e=0.0) animal2: Animal = await provider11.async_(1, 2, 3, b="1", c=2, e=0.0)
# Test 12: to check class type from .provides # Test 12: to check class type from .provides
provider12 = providers.Factory(Cat) provider12 = providers.Factory(Cat)

View File

@ -25,7 +25,7 @@ provider3 = providers.List(
) )
provided3: providers.ProvidedInstance = provider3.provided provided3: providers.ProvidedInstance = provider3.provided
attr_getter3: providers.AttributeGetter = provider3.provided.attr attr_getter3: providers.AttributeGetter = provider3.provided.attr
item_getter3: providers.ItemGetter = provider3.provided['item'] item_getter3: providers.ItemGetter = provider3.provided["item"]
method_caller3: providers.MethodCaller = provider3.provided.method.call(123, arg=324) method_caller3: providers.MethodCaller = provider3.provided.method.call(123, arg=324)
# Test 4: to check the return type with await # Test 4: to check the return type with await

View File

@ -11,7 +11,7 @@ var1: int = provider1()
provider2 = providers.Object(int) provider2 = providers.Object(int)
provided2: providers.ProvidedInstance = provider2.provided provided2: providers.ProvidedInstance = provider2.provided
attr_getter2: providers.AttributeGetter = provider2.provided.attr attr_getter2: providers.AttributeGetter = provider2.provided.attr
item_getter2: providers.ItemGetter = provider2.provided['item'] item_getter2: providers.ItemGetter = provider2.provided["item"]
method_caller2: providers.MethodCaller = provider2.provided.method.call(123, arg=324) method_caller2: providers.MethodCaller = provider2.provided.method.call(123, arg=324)
# Test 3: to check the return type with await # Test 3: to check the return type with await
@ -21,5 +21,5 @@ async def _async3() -> None:
var2: int = await provider3.async_() var2: int = await provider3.async_()
# Test 4: to check class type from provider # Test 4: to check class type from provider
provider4 = providers.Object(int('1')) provider4 = providers.Object(int("1"))
provided_provides: Optional[int] = provider4.provides provided_provides: Optional[int] = provider4.provides

View File

@ -5,7 +5,7 @@ from dependency_injector import providers
# Test 1: to check the return type # Test 1: to check the return type
provider1 = providers.Selector( provider1 = providers.Selector(
lambda: 'a', lambda: "a",
a=providers.Factory(object), a=providers.Factory(object),
b=providers.Factory(object), b=providers.Factory(object),
) )
@ -13,18 +13,18 @@ var1: Any = provider1()
# Test 2: to check the provided instance interface # Test 2: to check the provided instance interface
provider2 = providers.Selector( provider2 = providers.Selector(
lambda: 'a', lambda: "a",
a=providers.Factory(object), a=providers.Factory(object),
b=providers.Factory(object), b=providers.Factory(object),
) )
provided2: providers.ProvidedInstance = provider2.provided provided2: providers.ProvidedInstance = provider2.provided
attr_getter2: providers.AttributeGetter = provider2.provided.attr attr_getter2: providers.AttributeGetter = provider2.provided.attr
item_getter2: providers.ItemGetter = provider2.provided['item'] item_getter2: providers.ItemGetter = provider2.provided["item"]
method_caller2: providers.MethodCaller = provider2.provided.method.call(123, arg=324) method_caller2: providers.MethodCaller = provider2.provided.method.call(123, arg=324)
# Test3 to check the getattr # Test3 to check the getattr
provider3 = providers.Selector( provider3 = providers.Selector(
lambda: 'a', lambda: "a",
a=providers.Factory(object), a=providers.Factory(object),
b=providers.Factory(object), b=providers.Factory(object),
) )
@ -32,7 +32,7 @@ attr3: providers.Provider = provider3.a
# Test 4: to check the return type with await # Test 4: to check the return type with await
provider4 = providers.Selector( provider4 = providers.Selector(
lambda: 'a', lambda: "a",
a=providers.Factory(object), a=providers.Factory(object),
b=providers.Factory(object), b=providers.Factory(object),
) )

View File

@ -18,7 +18,7 @@ class Cat(Animal):
# Test 1: to check the return type (class) # Test 1: to check the return type (class)
provider1 = providers.Singleton(Cat) provider1 = providers.Singleton(Cat)
animal1: Animal = provider1(1, 2, 3, b='1', c=2, e=0.0) animal1: Animal = provider1(1, 2, 3, b="1", c=2, e=0.0)
# Test 2: to check the return type (class factory method) # Test 2: to check the return type (class factory method)
provider2 = providers.Singleton(Cat.create) provider2 = providers.Singleton(Cat.create)
@ -39,12 +39,12 @@ attributes4: Dict[str, Any] = provider4.attributes
provider5 = providers.Singleton(Animal) provider5 = providers.Singleton(Animal)
provided5: providers.ProvidedInstance = provider5.provided provided5: providers.ProvidedInstance = provider5.provided
attr_getter5: providers.AttributeGetter = provider5.provided.attr attr_getter5: providers.AttributeGetter = provider5.provided.attr
item_getter5: providers.ItemGetter = provider5.provided['item'] item_getter5: providers.ItemGetter = provider5.provided["item"]
method_caller5: providers.MethodCaller = provider5.provided.method.call(123, arg=324) method_caller5: providers.MethodCaller = provider5.provided.method.call(123, arg=324)
# Test 6: to check the DelegatedSingleton # Test 6: to check the DelegatedSingleton
provider6 = providers.DelegatedSingleton(Cat) provider6 = providers.DelegatedSingleton(Cat)
animal6: Animal = provider6(1, 2, 3, b='1', c=2, e=0.0) animal6: Animal = provider6(1, 2, 3, b="1", c=2, e=0.0)
# Test 7: to check the ThreadSafeSingleton # Test 7: to check the ThreadSafeSingleton
provider7: providers.BaseSingleton[Animal] = providers.ThreadSafeSingleton(Cat) provider7: providers.BaseSingleton[Animal] = providers.ThreadSafeSingleton(Cat)
@ -52,20 +52,20 @@ animal7: Animal = provider7()
# Test 8: to check the DelegatedThreadSafeSingleton # Test 8: to check the DelegatedThreadSafeSingleton
provider8 = providers.DelegatedThreadSafeSingleton(Cat) provider8 = providers.DelegatedThreadSafeSingleton(Cat)
animal8: Animal = provider8(1, 2, 3, b='1', c=2, e=0.0) animal8: Animal = provider8(1, 2, 3, b="1", c=2, e=0.0)
# Test 9: to check the ThreadLocalSingleton # Test 9: to check the ThreadLocalSingleton
provider9 = providers.ThreadLocalSingleton(Cat) provider9 = providers.ThreadLocalSingleton(Cat)
animal9: Animal = provider9(1, 2, 3, b='1', c=2, e=0.0) animal9: Animal = provider9(1, 2, 3, b="1", c=2, e=0.0)
# Test 10: to check the DelegatedThreadLocalSingleton # Test 10: to check the DelegatedThreadLocalSingleton
provider10 = providers.DelegatedThreadLocalSingleton(Cat) provider10 = providers.DelegatedThreadLocalSingleton(Cat)
animal10: Animal = provider10(1, 2, 3, b='1', c=2, e=0.0) animal10: Animal = provider10(1, 2, 3, b="1", c=2, e=0.0)
# Test 11: to check the AbstractSingleton # Test 11: to check the AbstractSingleton
provider11 = providers.AbstractSingleton(Animal) provider11 = providers.AbstractSingleton(Animal)
provider11.override(providers.Singleton(Cat)) provider11.override(providers.Singleton(Cat))
animal11: Animal = provider11(1, 2, 3, b='1', c=2, e=0.0) animal11: Animal = provider11(1, 2, 3, b="1", c=2, e=0.0)
# Test 12: to check the SingletonDelegate __init__ # Test 12: to check the SingletonDelegate __init__
provider12 = providers.SingletonDelegate(providers.Singleton(object)) provider12 = providers.SingletonDelegate(providers.Singleton(object))
@ -73,8 +73,8 @@ provider12 = providers.SingletonDelegate(providers.Singleton(object))
# Test 13: to check the return type with await # Test 13: to check the return type with await
provider13 = providers.Singleton(Cat) provider13 = providers.Singleton(Cat)
async def _async13() -> None: async def _async13() -> None:
animal1: Animal = await provider13(1, 2, 3, b='1', c=2, e=0.0) # type: ignore animal1: Animal = await provider13(1, 2, 3, b="1", c=2, e=0.0) # type: ignore
animal2: Animal = await provider13.async_(1, 2, 3, b='1', c=2, e=0.0) animal2: Animal = await provider13.async_(1, 2, 3, b="1", c=2, e=0.0)
# Test 14: to check class from .provides # Test 14: to check class from .provides
provider14 = providers.Singleton(Cat) provider14 = providers.Singleton(Cat)

View File

@ -18,12 +18,12 @@ def setup_test_loop(
loop = loop_factory() loop = loop_factory()
try: try:
module = loop.__class__.__module__ module = loop.__class__.__module__
skip_watcher = 'uvloop' in module skip_watcher = "uvloop" in module
except AttributeError: # pragma: no cover except AttributeError: # pragma: no cover
# Just in case # Just in case
skip_watcher = True skip_watcher = True
asyncio.set_event_loop(loop) asyncio.set_event_loop(loop)
if sys.platform != 'win32' and not skip_watcher: if sys.platform != "win32" and not skip_watcher:
policy = asyncio.get_event_loop_policy() policy = asyncio.get_event_loop_policy()
watcher = asyncio.SafeChildWatcher() # type: ignore watcher = asyncio.SafeChildWatcher() # type: ignore
watcher.attach_loop(loop) watcher.attach_loop(loop)

View File

@ -52,15 +52,15 @@ class DeclarativeContainerTests(unittest.TestCase):
self.assertEqual( self.assertEqual(
ContainerA.providers, ContainerA.providers,
{ {
'p11': ContainerA.p11, "p11": ContainerA.p11,
'p12': ContainerA.p12, "p12": ContainerA.p12,
}, },
) )
self.assertEqual( self.assertEqual(
ContainerA2.providers, ContainerA2.providers,
{ {
'p11': p1, "p11": p1,
'p12': p2, "p12": p2,
}, },
) )
@ -95,17 +95,17 @@ class DeclarativeContainerTests(unittest.TestCase):
self.assertEqual( self.assertEqual(
ContainerD.dependencies, ContainerD.dependencies,
{ {
'p41': ContainerD.p41, "p41": ContainerD.p41,
'p42': ContainerD.p42, "p42": ContainerD.p42,
}, },
) )
self.assertEqual( self.assertEqual(
ContainerE.dependencies, ContainerE.dependencies,
{ {
'p41': ContainerD.p41, "p41": ContainerD.p41,
'p42': ContainerD.p42, "p42": ContainerD.p42,
'p51': ContainerE.p51, "p51": ContainerE.p51,
'p52': ContainerE.p52, "p52": ContainerE.p52,
}, },
) )
@ -308,9 +308,9 @@ class DeclarativeContainerTests(unittest.TestCase):
self.assertIsNot(_Container1.p11, _Container2.p11) self.assertIsNot(_Container1.p11, _Container2.p11)
self.assertIsNot(_Container1.p12, _Container2.p12) self.assertIsNot(_Container1.p12, _Container2.p12)
self.assertEqual(_Container.p12(), {'p11': 0}) self.assertEqual(_Container.p12(), {"p11": 0})
self.assertEqual(_Container1.p12(), {'p11': 1}) self.assertEqual(_Container1.p12(), {"p11": 1})
self.assertEqual(_Container2.p12(), {'p11': 2}) self.assertEqual(_Container2.p12(), {"p11": 2})
self.assertEqual(_Container1.p13(), 11) self.assertEqual(_Container1.p13(), 11)
self.assertEqual(_Container2.p13(), 22) self.assertEqual(_Container2.p13(), 22)
@ -329,9 +329,9 @@ class DeclarativeContainerTests(unittest.TestCase):
new2 = New(p11=1) new2 = New(p11=1)
new3 = New(p11=2) new3 = New(p11=2)
self.assertEqual(new1.p13(), {'p12': {'p11': 0}}) self.assertEqual(new1.p13(), {"p12": {"p11": 0}})
self.assertEqual(new2.p13(), {'p12': {'p11': 1}}) self.assertEqual(new2.p13(), {"p12": {"p11": 1}})
self.assertEqual(new3.p13(), {'p12': {'p11': 2}}) self.assertEqual(new3.p13(), {"p12": {"p11": 2}})
def test_copy_with_replacing_subcontainer_providers(self): def test_copy_with_replacing_subcontainer_providers(self):
# See: https://github.com/ets-labs/python-dependency-injector/issues/374 # See: https://github.com/ets-labs/python-dependency-injector/issues/374
@ -339,7 +339,7 @@ class DeclarativeContainerTests(unittest.TestCase):
foo = providers.Dependency(instance_of=str) foo = providers.Dependency(instance_of=str)
def build_x(): def build_x():
return X(foo='1') return X(foo="1")
class A(containers.DeclarativeContainer): class A(containers.DeclarativeContainer):
x = providers.DependenciesContainer(**X.providers) x = providers.DependenciesContainer(**X.providers)
@ -351,7 +351,7 @@ class DeclarativeContainerTests(unittest.TestCase):
b1 = B1() b1 = B1()
self.assertEqual(b1.y(), '1') self.assertEqual(b1.y(), "1")
def test_containers_attribute(self): def test_containers_attribute(self):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -388,17 +388,17 @@ class DeclarativeContainerTests(unittest.TestCase):
container = _Container(p1=1) container = _Container(p1=1)
self.assertEqual(container.p2(), {'p1': 1}) self.assertEqual(container.p2(), {"p1": 1})
self.assertIs( self.assertIs(
container.p2.last_overriding.kwargs['p1'], container.p2.last_overriding.kwargs["p1"],
container.p1, container.p1,
) )
self.assertIsNot( self.assertIsNot(
container.p2.last_overriding.kwargs['p1'], container.p2.last_overriding.kwargs["p1"],
_Container.p1, _Container.p1,
) )
self.assertIs( self.assertIs(
_Container.p2.last_overriding.kwargs['p1'], _Container.p2.last_overriding.kwargs["p1"],
_Container.p1, _Container.p1,
) )
@ -419,9 +419,9 @@ class DeclarativeContainerTests(unittest.TestCase):
def test_init_with_dependency_delegation(self): def test_init_with_dependency_delegation(self):
# Bug: # Bug:
# https://github.com/ets-labs/python-dependency-injector/issues/235 # https://github.com/ets-labs/python-dependency-injector/issues/235
A = collections.namedtuple('A', []) A = collections.namedtuple("A", [])
B = collections.namedtuple('B', ['fa']) B = collections.namedtuple("B", ["fa"])
C = collections.namedtuple('B', ['a']) C = collections.namedtuple("B", ["a"])
class Services(containers.DeclarativeContainer): class Services(containers.DeclarativeContainer):
a = providers.Dependency() a = providers.Dependency()
@ -469,7 +469,7 @@ class DeclarativeContainerTests(unittest.TestCase):
self.assertIs(Container.container.parent, Container) self.assertIs(Container.container.parent, Container)
def test_resolve_provider_name(self): def test_resolve_provider_name(self):
self.assertEqual(ContainerA.resolve_provider_name(ContainerA.p11), 'p11') self.assertEqual(ContainerA.resolve_provider_name(ContainerA.p11), "p11")
def test_resolve_provider_name_no_provider(self): def test_resolve_provider_name_no_provider(self):
with self.assertRaises(errors.Error): with self.assertRaises(errors.Error):
@ -483,7 +483,7 @@ class DeclarativeContainerTests(unittest.TestCase):
Container.dependency() Container.dependency()
self.assertEqual( self.assertEqual(
str(context.exception), str(context.exception),
'Dependency "Container.dependency" is not defined', "Dependency \"Container.dependency\" is not defined",
) )
def test_child_dependencies_container_parent_name(self): def test_child_dependencies_container_parent_name(self):
@ -494,7 +494,7 @@ class DeclarativeContainerTests(unittest.TestCase):
Container.dependencies_container.dependency() Container.dependencies_container.dependency()
self.assertEqual( self.assertEqual(
str(context.exception), str(context.exception),
'Dependency "Container.dependencies_container.dependency" is not defined', "Dependency \"Container.dependencies_container.dependency\" is not defined",
) )
def test_child_container_parent_name(self): def test_child_container_parent_name(self):
@ -508,7 +508,7 @@ class DeclarativeContainerTests(unittest.TestCase):
Container.child_container.dependency() Container.child_container.dependency()
self.assertEqual( self.assertEqual(
str(context.exception), str(context.exception),
'Dependency "Container.child_container.dependency" is not defined', "Dependency \"Container.child_container.dependency\" is not defined",
) )
@ -529,11 +529,11 @@ class DeclarativeContainerWithCustomStringTests(unittest.TestCase):
self.provider = providers.Provider() self.provider = providers.Provider()
def test_setattr(self): def test_setattr(self):
setattr(self.container, self.CustomString('test_attr'), self.provider) setattr(self.container, self.CustomString("test_attr"), self.provider)
self.assertIs(self.container.test_attr, self.provider) self.assertIs(self.container.test_attr, self.provider)
def test_delattr(self): def test_delattr(self):
setattr(self.container, self.CustomString('test_attr'), self.provider) setattr(self.container, self.CustomString("test_attr"), self.provider)
delattr(self.container, self.CustomString('test_attr')) delattr(self.container, self.CustomString("test_attr"))
with self.assertRaises(AttributeError): with self.assertRaises(AttributeError):
self.container.test_attr self.container.test_attr

View File

@ -6,7 +6,7 @@ import os
_TOP_DIR = os.path.abspath( _TOP_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../', "../",
)), )),
) )
import sys import sys
@ -46,18 +46,18 @@ class AsyncResourcesTest(AsyncTestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource1 = providers.Resource( resource1 = providers.Resource(
_resource, _resource,
name='r1', name="r1",
delay=0.03, delay=0.03,
) )
resource2 = providers.Resource( resource2 = providers.Resource(
_resource, _resource,
name='r2', name="r2",
delay=0.02, delay=0.02,
r1=resource1, r1=resource1,
) )
resource3 = providers.Resource( resource3 = providers.Resource(
_resource, _resource,
name='r3', name="r3",
delay=0.01, delay=0.01,
r2=resource2, r2=resource2,
) )
@ -65,20 +65,20 @@ class AsyncResourcesTest(AsyncTestCase):
container = Container() container = Container()
self._run(container.init_resources()) self._run(container.init_resources())
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3"])
self.assertEqual(shutdown_resources, []) self.assertEqual(shutdown_resources, [])
self._run(container.shutdown_resources()) self._run(container.shutdown_resources())
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1"])
self._run(container.init_resources()) self._run(container.init_resources())
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3', 'r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3", "r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1"])
self._run(container.shutdown_resources()) self._run(container.shutdown_resources())
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3', 'r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3", "r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1', 'r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1", "r3", "r2", "r1"])
def test_shutdown_circular_dependencies_breaker(self): def test_shutdown_circular_dependencies_breaker(self):
async def _resource(name, **_): async def _resource(name, **_):
@ -87,16 +87,16 @@ class AsyncResourcesTest(AsyncTestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource1 = providers.Resource( resource1 = providers.Resource(
_resource, _resource,
name='r1', name="r1",
) )
resource2 = providers.Resource( resource2 = providers.Resource(
_resource, _resource,
name='r2', name="r2",
r1=resource1, r1=resource1,
) )
resource3 = providers.Resource( resource3 = providers.Resource(
_resource, _resource,
name='r3', name="r3",
r2=resource2, r2=resource2,
) )
@ -108,7 +108,7 @@ class AsyncResourcesTest(AsyncTestCase):
with self.assertRaises(RuntimeError) as context: with self.assertRaises(RuntimeError) as context:
self._run(container.shutdown_resources()) self._run(container.shutdown_resources())
self.assertEqual(str(context.exception), 'Unable to resolve resources shutdown order') self.assertEqual(str(context.exception), "Unable to resolve resources shutdown order")
def test_shutdown_sync_and_async_ordering(self): def test_shutdown_sync_and_async_ordering(self):
initialized_resources = [] initialized_resources = []
@ -127,33 +127,33 @@ class AsyncResourcesTest(AsyncTestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource1 = providers.Resource( resource1 = providers.Resource(
_sync_resource, _sync_resource,
name='r1', name="r1",
) )
resource2 = providers.Resource( resource2 = providers.Resource(
_sync_resource, _sync_resource,
name='r2', name="r2",
r1=resource1, r1=resource1,
) )
resource3 = providers.Resource( resource3 = providers.Resource(
_async_resource, _async_resource,
name='r3', name="r3",
r2=resource2, r2=resource2,
) )
container = Container() container = Container()
self._run(container.init_resources()) self._run(container.init_resources())
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3"])
self.assertEqual(shutdown_resources, []) self.assertEqual(shutdown_resources, [])
self._run(container.shutdown_resources()) self._run(container.shutdown_resources())
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1"])
self._run(container.init_resources()) self._run(container.init_resources())
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3', 'r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3", "r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1"])
self._run(container.shutdown_resources()) self._run(container.shutdown_resources())
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3', 'r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3", "r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1', 'r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1", "r3", "r2", "r1"])

View File

@ -28,7 +28,7 @@ class DeclarativeContainerInstanceTests(unittest.TestCase):
container = ContainerA() container = ContainerA()
container.a1 = providers.Dependency() container.a1 = providers.Dependency()
container.a2 = providers.DependenciesContainer() container.a2 = providers.DependenciesContainer()
self.assertEqual(container.dependencies, {'a1': container.a1, 'a2': container.a2}) self.assertEqual(container.dependencies, {"a1": container.a1, "a2": container.a2})
def test_set_get_del_providers(self): def test_set_get_del_providers(self):
p13 = providers.Provider() p13 = providers.Provider()
@ -212,36 +212,36 @@ class DeclarativeContainerInstanceTests(unittest.TestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource1 = providers.Resource( resource1 = providers.Resource(
_resource, _resource,
name='r1', name="r1",
) )
resource2 = providers.Resource( resource2 = providers.Resource(
_resource, _resource,
name='r2', name="r2",
r1=resource1, r1=resource1,
) )
resource3 = providers.Resource( resource3 = providers.Resource(
_resource, _resource,
name='r3', name="r3",
r2=resource2, r2=resource2,
) )
container = Container() container = Container()
container.init_resources() container.init_resources()
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3"])
self.assertEqual(shutdown_resources, []) self.assertEqual(shutdown_resources, [])
container.shutdown_resources() container.shutdown_resources()
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1"])
container.init_resources() container.init_resources()
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3', 'r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3", "r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1"])
container.shutdown_resources() container.shutdown_resources()
self.assertEqual(initialized_resources, ['r1', 'r2', 'r3', 'r1', 'r2', 'r3']) self.assertEqual(initialized_resources, ["r1", "r2", "r3", "r1", "r2", "r3"])
self.assertEqual(shutdown_resources, ['r3', 'r2', 'r1', 'r3', 'r2', 'r1']) self.assertEqual(shutdown_resources, ["r3", "r2", "r1", "r3", "r2", "r1"])
def test_shutdown_resources_circular_dependencies_breaker(self): def test_shutdown_resources_circular_dependencies_breaker(self):
def _resource(name, **_): def _resource(name, **_):
@ -250,16 +250,16 @@ class DeclarativeContainerInstanceTests(unittest.TestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource1 = providers.Resource( resource1 = providers.Resource(
_resource, _resource,
name='r1', name="r1",
) )
resource2 = providers.Resource( resource2 = providers.Resource(
_resource, _resource,
name='r2', name="r2",
r1=resource1, r1=resource1,
) )
resource3 = providers.Resource( resource3 = providers.Resource(
_resource, _resource,
name='r3', name="r3",
r2=resource2, r2=resource2,
) )
@ -271,7 +271,7 @@ class DeclarativeContainerInstanceTests(unittest.TestCase):
with self.assertRaises(RuntimeError) as context: with self.assertRaises(RuntimeError) as context:
container.shutdown_resources() container.shutdown_resources()
self.assertEqual(str(context.exception), 'Unable to resolve resources shutdown order') self.assertEqual(str(context.exception), "Unable to resolve resources shutdown order")
def test_init_shutdown_nested_resources(self): def test_init_shutdown_nested_resources(self):
def _init1(): def _init1():
@ -416,16 +416,16 @@ class DeclarativeContainerInstanceTests(unittest.TestCase):
with self.assertRaises(errors.Error) as context: with self.assertRaises(errors.Error) as context:
container.check_dependencies() container.check_dependencies()
self.assertIn('Container "Container" has undefined dependencies:', str(context.exception)) self.assertIn("Container \"Container\" has undefined dependencies:", str(context.exception))
self.assertIn('"Container.dependency"', str(context.exception)) self.assertIn("\"Container.dependency\"", str(context.exception))
self.assertIn('"Container.dependencies_container.dependency"', str(context.exception)) self.assertIn("\"Container.dependencies_container.dependency\"", str(context.exception))
self.assertIn('"Container.sub_container.dependency"', str(context.exception)) self.assertIn("\"Container.sub_container.dependency\"", str(context.exception))
def test_check_dependencies_all_defined(self): def test_check_dependencies_all_defined(self):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
dependency = providers.Dependency() dependency = providers.Dependency()
container = Container(dependency='provided') container = Container(dependency="provided")
result = container.check_dependencies() result = container.check_dependencies()
self.assertIsNone(result) self.assertIsNone(result)
@ -440,11 +440,11 @@ class DeclarativeContainerInstanceTests(unittest.TestCase):
def test_parent_name_declarative_parent(self): def test_parent_name_declarative_parent(self):
container = ContainerA() container = ContainerA()
self.assertEqual(container.parent_name, 'ContainerA') self.assertEqual(container.parent_name, "ContainerA")
def test_parent_name(self): def test_parent_name(self):
container = ContainerA() container = ContainerA()
self.assertEqual(container.parent_name, 'ContainerA') self.assertEqual(container.parent_name, "ContainerA")
def test_parent_name_with_deep_parenting(self): def test_parent_name_with_deep_parenting(self):
class Container2(containers.DeclarativeContainer): class Container2(containers.DeclarativeContainer):
@ -456,7 +456,7 @@ class DeclarativeContainerInstanceTests(unittest.TestCase):
container = providers.Container(Container2) container = providers.Container(Container2)
container = Container1() container = Container1()
self.assertEqual(container.container().name.parent_name, 'Container1.container.name') self.assertEqual(container.container().name.parent_name, "Container1.container.name")
def test_parent_name_is_none(self): def test_parent_name_is_none(self):
container = containers.DynamicContainer() container = containers.DynamicContainer()
@ -479,7 +479,7 @@ class DeclarativeContainerInstanceTests(unittest.TestCase):
def test_resolve_provider_name(self): def test_resolve_provider_name(self):
container = ContainerA() container = ContainerA()
self.assertEqual(container.resolve_provider_name(container.p11), 'p11') self.assertEqual(container.resolve_provider_name(container.p11), "p11")
def test_resolve_provider_name_no_provider(self): def test_resolve_provider_name_no_provider(self):
container = ContainerA() container = ContainerA()
@ -496,11 +496,11 @@ class SelfTests(unittest.TestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
__self__ = providers.Self() __self__ = providers.Self()
foo = providers.Callable(call_bar, __self__) foo = providers.Callable(call_bar, __self__)
bar = providers.Object('hello') bar = providers.Object("hello")
container = Container() container = Container()
self.assertIs(container.foo(), 'hello') self.assertIs(container.foo(), "hello")
def test_self_attribute_implicit(self): def test_self_attribute_implicit(self):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -531,7 +531,7 @@ class SelfTests(unittest.TestCase):
container = Container() container = Container()
self.assertIs(container.__self__, container.foo) self.assertIs(container.__self__, container.foo)
self.assertEqual(set(container.__self__.alt_names), {'foo'}) self.assertEqual(set(container.__self__.alt_names), {"foo"})
def test_self_attribute_alt_name_explicit_1(self): def test_self_attribute_alt_name_explicit_1(self):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -543,7 +543,7 @@ class SelfTests(unittest.TestCase):
self.assertIs(container.__self__, container.foo) self.assertIs(container.__self__, container.foo)
self.assertIs(container.__self__, container.bar) self.assertIs(container.__self__, container.bar)
self.assertEqual(set(container.__self__.alt_names), {'foo', 'bar'}) self.assertEqual(set(container.__self__.alt_names), {"foo", "bar"})
def test_self_attribute_alt_name_explicit_2(self): def test_self_attribute_alt_name_explicit_2(self):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -554,7 +554,7 @@ class SelfTests(unittest.TestCase):
self.assertIs(container.__self__, container.foo) self.assertIs(container.__self__, container.foo)
self.assertIs(container.__self__, container.bar) self.assertIs(container.__self__, container.bar)
self.assertEqual(set(container.__self__.alt_names), {'foo', 'bar'}) self.assertEqual(set(container.__self__.alt_names), {"foo", "bar"})
def test_providers_attribute_1(self): def test_providers_attribute_1(self):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -595,14 +595,14 @@ class SelfTests(unittest.TestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
__self__ = providers.Self() __self__ = providers.Self()
foo = providers.Callable(call_bar, __self__) foo = providers.Callable(call_bar, __self__)
bar = providers.Object('hello') bar = providers.Object("hello")
container1 = Container() container1 = Container()
container2 = providers.deepcopy(container1) container2 = providers.deepcopy(container1)
container1.bar.override('bye') container1.bar.override("bye")
self.assertIs(container1.foo(), 'bye') self.assertIs(container1.foo(), "bye")
self.assertIs(container2.foo(), 'hello') self.assertIs(container2.foo(), "hello")
def test_deepcopy_alt_names_1(self): def test_deepcopy_alt_names_1(self):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -646,7 +646,7 @@ class SelfTests(unittest.TestCase):
class SubContainer(containers.DeclarativeContainer): class SubContainer(containers.DeclarativeContainer):
__self__ = providers.Self() __self__ = providers.Self()
foo = providers.Callable(call_bar, __self__) foo = providers.Callable(call_bar, __self__)
bar = providers.Object('hello') bar = providers.Object("hello")
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
sub_container = providers.Container(SubContainer) sub_container = providers.Container(SubContainer)
@ -655,7 +655,7 @@ class SelfTests(unittest.TestCase):
container = Container() container = Container()
self.assertIs(container.baz(), 'hello') self.assertIs(container.baz(), "hello")
def test_with_container_provider_overriding(self): def test_with_container_provider_overriding(self):
def call_bar(container): def call_bar(container):
@ -664,16 +664,16 @@ class SelfTests(unittest.TestCase):
class SubContainer(containers.DeclarativeContainer): class SubContainer(containers.DeclarativeContainer):
__self__ = providers.Self() __self__ = providers.Self()
foo = providers.Callable(call_bar, __self__) foo = providers.Callable(call_bar, __self__)
bar = providers.Object('hello') bar = providers.Object("hello")
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
sub_container = providers.Container(SubContainer, bar='bye') sub_container = providers.Container(SubContainer, bar="bye")
baz = providers.Callable(lambda value: value, sub_container.foo) baz = providers.Callable(lambda value: value, sub_container.foo)
container = Container() container = Container()
self.assertIs(container.baz(), 'bye') self.assertIs(container.baz(), "bye")
def test_with_container_provider_self(self): def test_with_container_provider_self(self):
class SubContainer(containers.DeclarativeContainer): class SubContainer(containers.DeclarativeContainer):
@ -702,19 +702,19 @@ class DynamicContainerWithCustomStringTests(unittest.TestCase):
self.provider = providers.Provider() self.provider = providers.Provider()
def test_setattr(self): def test_setattr(self):
setattr(self.container, self.CustomString('test_attr'), self.provider) setattr(self.container, self.CustomString("test_attr"), self.provider)
self.assertIs(self.container.test_attr, self.provider) self.assertIs(self.container.test_attr, self.provider)
def test_delattr(self): def test_delattr(self):
setattr(self.container, self.CustomString('test_attr'), self.provider) setattr(self.container, self.CustomString("test_attr"), self.provider)
delattr(self.container, self.CustomString('test_attr')) delattr(self.container, self.CustomString("test_attr"))
with self.assertRaises(AttributeError): with self.assertRaises(AttributeError):
self.container.test_attr self.container.test_attr
def test_set_provider(self): def test_set_provider(self):
self.container.set_provider(self.CustomString('test_attr'), self.provider) self.container.set_provider(self.CustomString("test_attr"), self.provider)
self.assertIs(self.container.test_attr, self.provider) self.assertIs(self.container.test_attr, self.provider)
def test_set_providers(self): def test_set_providers(self):
self.container.set_providers(**{self.CustomString('test_attr'): self.provider}) self.container.set_providers(**{self.CustomString("test_attr"): self.provider})
self.assertIs(self.container.test_attr, self.provider) self.assertIs(self.container.test_attr, self.provider)

View File

@ -11,11 +11,11 @@ class TraverseProviderTests(unittest.TestCase):
dict, dict,
foo=providers.Resource( foo=providers.Resource(
dict, dict,
foo='bar' foo="bar"
), ),
bar=providers.Resource( bar=providers.Resource(
dict, dict,
foo='bar' foo="bar"
) )
) )
@ -23,8 +23,8 @@ class TraverseProviderTests(unittest.TestCase):
all_providers = list(container.traverse()) all_providers = list(container.traverse())
self.assertIn(container.obj_factory, all_providers) self.assertIn(container.obj_factory, all_providers)
self.assertIn(container.obj_factory.kwargs['foo'], all_providers) self.assertIn(container.obj_factory.kwargs["foo"], all_providers)
self.assertIn(container.obj_factory.kwargs['bar'], all_providers) self.assertIn(container.obj_factory.kwargs["bar"], all_providers)
self.assertEqual(len(all_providers), 3) self.assertEqual(len(all_providers), 3)
def test_nested_providers_with_filtering(self): def test_nested_providers_with_filtering(self):
@ -33,19 +33,19 @@ class TraverseProviderTests(unittest.TestCase):
dict, dict,
foo=providers.Resource( foo=providers.Resource(
dict, dict,
foo='bar' foo="bar"
), ),
bar=providers.Resource( bar=providers.Resource(
dict, dict,
foo='bar' foo="bar"
) )
) )
container = Container() container = Container()
all_providers = list(container.traverse(types=[providers.Resource])) all_providers = list(container.traverse(types=[providers.Resource]))
self.assertIn(container.obj_factory.kwargs['foo'], all_providers) self.assertIn(container.obj_factory.kwargs["foo"], all_providers)
self.assertIn(container.obj_factory.kwargs['bar'], all_providers) self.assertIn(container.obj_factory.kwargs["bar"], all_providers)
self.assertEqual(len(all_providers), 2) self.assertEqual(len(all_providers), 2)
@ -57,19 +57,19 @@ class TraverseProviderDeclarativeTests(unittest.TestCase):
dict, dict,
foo=providers.Resource( foo=providers.Resource(
dict, dict,
foo='bar' foo="bar"
), ),
bar=providers.Resource( bar=providers.Resource(
dict, dict,
foo='bar' foo="bar"
) )
) )
all_providers = list(Container.traverse()) all_providers = list(Container.traverse())
self.assertIn(Container.obj_factory, all_providers) self.assertIn(Container.obj_factory, all_providers)
self.assertIn(Container.obj_factory.kwargs['foo'], all_providers) self.assertIn(Container.obj_factory.kwargs["foo"], all_providers)
self.assertIn(Container.obj_factory.kwargs['bar'], all_providers) self.assertIn(Container.obj_factory.kwargs["bar"], all_providers)
self.assertEqual(len(all_providers), 3) self.assertEqual(len(all_providers), 3)
def test_nested_providers_with_filtering(self): def test_nested_providers_with_filtering(self):
@ -78,16 +78,16 @@ class TraverseProviderDeclarativeTests(unittest.TestCase):
dict, dict,
foo=providers.Resource( foo=providers.Resource(
dict, dict,
foo='bar' foo="bar"
), ),
bar=providers.Resource( bar=providers.Resource(
dict, dict,
foo='bar' foo="bar"
) )
) )
all_providers = list(Container.traverse(types=[providers.Resource])) all_providers = list(Container.traverse(types=[providers.Resource]))
self.assertIn(Container.obj_factory.kwargs['foo'], all_providers) self.assertIn(Container.obj_factory.kwargs["foo"], all_providers)
self.assertIn(Container.obj_factory.kwargs['bar'], all_providers) self.assertIn(Container.obj_factory.kwargs["bar"], all_providers)
self.assertEqual(len(all_providers), 2) self.assertEqual(len(all_providers), 2)

View File

@ -8,22 +8,22 @@ from dependency_injector.ext import aiohttp
async def index(_): async def index(_):
return web.Response(text='Hello World!') return web.Response(text="Hello World!")
async def test(_): async def test(_):
return web.Response(text='Test!') return web.Response(text="Test!")
class Test(web.View): class Test(web.View):
async def get(self): async def get(self):
return web.Response(text='Test class-based!') return web.Response(text="Test class-based!")
@web.middleware @web.middleware
async def middleware(request, handler): async def middleware(request, handler):
resp = await handler(request) resp = await handler(request)
resp.text = resp.text + ' wink1' resp.text = resp.text + " wink1"
return resp return resp
@ -42,7 +42,7 @@ class ApplicationContainer(containers.DeclarativeContainer):
web.Application, web.Application,
middlewares=providers.List( middlewares=providers.List(
aiohttp.Middleware(middleware), aiohttp.Middleware(middleware),
aiohttp.MiddlewareFactory(middleware_factory, text=' wink2'), aiohttp.MiddlewareFactory(middleware_factory, text=" wink2"),
), ),
) )
@ -61,33 +61,33 @@ class ApplicationTests(AioHTTPTestCase):
app = container.app() app = container.app()
app.container = container app.container = container
app.add_routes([ app.add_routes([
web.get('/', container.index_view.as_view()), web.get("/", container.index_view.as_view()),
web.get('/test', container.test_view.as_view(), name='test'), web.get("/test", container.test_view.as_view(), name="test"),
web.get('/test-class', container.test_class_view.as_view()), web.get("/test-class", container.test_class_view.as_view()),
]) ])
return app return app
@unittest_run_loop @unittest_run_loop
async def test_index(self): async def test_index(self):
response = await self.client.get('/') response = await self.client.get("/")
self.assertEqual(response.status, 200) self.assertEqual(response.status, 200)
self.assertEqual(await response.text(), 'Hello World! wink2 wink1') self.assertEqual(await response.text(), "Hello World! wink2 wink1")
@unittest_run_loop @unittest_run_loop
async def test_test(self): async def test_test(self):
response = await self.client.get('/test') response = await self.client.get("/test")
self.assertEqual(response.status, 200) self.assertEqual(response.status, 200)
self.assertEqual(await response.text(), 'Test! wink2 wink1') self.assertEqual(await response.text(), "Test! wink2 wink1")
@unittest_run_loop @unittest_run_loop
async def test_test_class_based(self): async def test_test_class_based(self):
response = await self.client.get('/test-class') response = await self.client.get("/test-class")
self.assertEqual(response.status, 200) self.assertEqual(response.status, 200)
self.assertEqual(await response.text(), 'Test class-based! wink2 wink1') self.assertEqual(await response.text(), "Test class-based! wink2 wink1")
@unittest_run_loop @unittest_run_loop
async def test_endpoints(self): async def test_endpoints(self):
self.assertEqual(str(self.app.router['test'].url_for()), '/test') self.assertEqual(str(self.app.router["test"].url_for()), "/test")

View File

@ -9,16 +9,16 @@ from dependency_injector.ext import flask
def index(): def index():
return 'Hello World!' return "Hello World!"
def test(): def test():
return 'Test!' return "Test!"
class Test(MethodView): class Test(MethodView):
def get(self): def get(self):
return 'Test class-based!' return "Test class-based!"
class ApplicationContainer(containers.DeclarativeContainer): class ApplicationContainer(containers.DeclarativeContainer):
@ -34,9 +34,9 @@ def create_app():
container = ApplicationContainer() container = ApplicationContainer()
app = container.app() app = container.app()
app.container = container app.container = container
app.add_url_rule('/', view_func=container.index_view.as_view()) app.add_url_rule("/", view_func=container.index_view.as_view())
app.add_url_rule('/test', 'test-test', view_func=container.test_view.as_view()) app.add_url_rule("/test", "test-test", view_func=container.test_view.as_view())
app.add_url_rule('/test-class', view_func=container.test_class_view.as_view('test-class')) app.add_url_rule("/test-class", view_func=container.test_class_view.as_view("test-class"))
return app return app
@ -44,7 +44,7 @@ class ApplicationTests(unittest.TestCase):
def setUp(self): def setUp(self):
self.app = create_app() self.app = create_app()
self.app.config['SERVER_NAME'] = 'test-server.com' self.app.config["SERVER_NAME"] = "test-server.com"
self.client = self.app.test_client() self.client = self.app.test_client()
self.client.__enter__() self.client.__enter__()
@ -52,25 +52,25 @@ class ApplicationTests(unittest.TestCase):
self.client.__exit__(None, None, None) self.client.__exit__(None, None, None)
def test_index(self): def test_index(self):
response = self.client.get('/') response = self.client.get("/")
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.data, b'Hello World!') self.assertEqual(response.data, b"Hello World!")
def test_test(self): def test_test(self):
response = self.client.get('/test') response = self.client.get("/test")
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.data, b'Test!') self.assertEqual(response.data, b"Test!")
def test_test_class_based(self): def test_test_class_based(self):
response = self.client.get('/test-class') response = self.client.get("/test-class")
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.data, b'Test class-based!') self.assertEqual(response.data, b"Test class-based!")
def test_endpoints(self): def test_endpoints(self):
with self.app.app_context(): with self.app.app_context():
self.assertEqual(url_for('index'), 'http://test-server.com/') self.assertEqual(url_for("index"), "http://test-server.com/")
self.assertEqual(url_for('test-test'), 'http://test-server.com/test') self.assertEqual(url_for("test-test"), "http://test-server.com/test")
self.assertEqual(url_for('test-class'), 'http://test-server.com/test-class') self.assertEqual(url_for("test-class"), "http://test-server.com/test-class")

View File

@ -80,48 +80,48 @@ class _BaseSingletonTestCase(object):
self.assertIsInstance(instance2, Example) self.assertIsInstance(instance2, Example)
def test_call_with_init_positional_args(self): def test_call_with_init_positional_args(self):
provider = self.singleton_cls(Example, 'i1', 'i2') provider = self.singleton_cls(Example, "i1", "i2")
instance1 = provider() instance1 = provider()
instance2 = provider() instance2 = provider()
self.assertEqual(instance1.init_arg1, 'i1') self.assertEqual(instance1.init_arg1, "i1")
self.assertEqual(instance1.init_arg2, 'i2') self.assertEqual(instance1.init_arg2, "i2")
self.assertEqual(instance2.init_arg1, 'i1') self.assertEqual(instance2.init_arg1, "i1")
self.assertEqual(instance2.init_arg2, 'i2') self.assertEqual(instance2.init_arg2, "i2")
self.assertIs(instance1, instance2) self.assertIs(instance1, instance2)
self.assertIsInstance(instance1, Example) self.assertIsInstance(instance1, Example)
self.assertIsInstance(instance2, Example) self.assertIsInstance(instance2, Example)
def test_call_with_init_keyword_args(self): def test_call_with_init_keyword_args(self):
provider = self.singleton_cls(Example, init_arg1='i1', init_arg2='i2') provider = self.singleton_cls(Example, init_arg1="i1", init_arg2="i2")
instance1 = provider() instance1 = provider()
instance2 = provider() instance2 = provider()
self.assertEqual(instance1.init_arg1, 'i1') self.assertEqual(instance1.init_arg1, "i1")
self.assertEqual(instance1.init_arg2, 'i2') self.assertEqual(instance1.init_arg2, "i2")
self.assertEqual(instance2.init_arg1, 'i1') self.assertEqual(instance2.init_arg1, "i1")
self.assertEqual(instance2.init_arg2, 'i2') self.assertEqual(instance2.init_arg2, "i2")
self.assertIs(instance1, instance2) self.assertIs(instance1, instance2)
self.assertIsInstance(instance1, Example) self.assertIsInstance(instance1, Example)
self.assertIsInstance(instance2, Example) self.assertIsInstance(instance2, Example)
def test_call_with_init_positional_and_keyword_args(self): def test_call_with_init_positional_and_keyword_args(self):
provider = self.singleton_cls(Example, 'i1', init_arg2='i2') provider = self.singleton_cls(Example, "i1", init_arg2="i2")
instance1 = provider() instance1 = provider()
instance2 = provider() instance2 = provider()
self.assertEqual(instance1.init_arg1, 'i1') self.assertEqual(instance1.init_arg1, "i1")
self.assertEqual(instance1.init_arg2, 'i2') self.assertEqual(instance1.init_arg2, "i2")
self.assertEqual(instance2.init_arg1, 'i1') self.assertEqual(instance2.init_arg1, "i1")
self.assertEqual(instance2.init_arg2, 'i2') self.assertEqual(instance2.init_arg2, "i2")
self.assertIs(instance1, instance2) self.assertIs(instance1, instance2)
self.assertIsInstance(instance1, Example) self.assertIsInstance(instance1, Example)
@ -129,16 +129,16 @@ class _BaseSingletonTestCase(object):
def test_call_with_attributes(self): def test_call_with_attributes(self):
provider = self.singleton_cls(Example) provider = self.singleton_cls(Example)
provider.add_attributes(attribute1='a1', attribute2='a2') provider.add_attributes(attribute1="a1", attribute2="a2")
instance1 = provider() instance1 = provider()
instance2 = provider() instance2 = provider()
self.assertEqual(instance1.attribute1, 'a1') self.assertEqual(instance1.attribute1, "a1")
self.assertEqual(instance1.attribute2, 'a2') self.assertEqual(instance1.attribute2, "a2")
self.assertEqual(instance2.attribute1, 'a1') self.assertEqual(instance2.attribute1, "a1")
self.assertEqual(instance2.attribute2, 'a2') self.assertEqual(instance2.attribute2, "a2")
self.assertIs(instance1, instance2) self.assertIs(instance1, instance2)
self.assertIsInstance(instance1, Example) self.assertIsInstance(instance1, Example)
@ -285,8 +285,8 @@ class _BaseSingletonTestCase(object):
provider.add_kwargs(a1=dependent_provider1, a2=dependent_provider2) provider.add_kwargs(a1=dependent_provider1, a2=dependent_provider2)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
dependent_provider_copy1 = provider_copy.kwargs['a1'] dependent_provider_copy1 = provider_copy.kwargs["a1"]
dependent_provider_copy2 = provider_copy.kwargs['a2'] dependent_provider_copy2 = provider_copy.kwargs["a2"]
self.assertNotEqual(provider.kwargs, provider_copy.kwargs) self.assertNotEqual(provider.kwargs, provider_copy.kwargs)
@ -304,8 +304,8 @@ class _BaseSingletonTestCase(object):
provider.add_attributes(a1=dependent_provider1, a2=dependent_provider2) provider.add_attributes(a1=dependent_provider1, a2=dependent_provider2)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
dependent_provider_copy1 = provider_copy.attributes['a1'] dependent_provider_copy1 = provider_copy.attributes["a1"]
dependent_provider_copy2 = provider_copy.attributes['a2'] dependent_provider_copy2 = provider_copy.attributes["a2"]
self.assertNotEqual(provider.attributes, provider_copy.attributes) self.assertNotEqual(provider.attributes, provider_copy.attributes)
@ -342,8 +342,8 @@ class _BaseSingletonTestCase(object):
self.assertIsNot(provider, provider_copy) self.assertIsNot(provider, provider_copy)
self.assertIsInstance(provider_copy, providers.Singleton) self.assertIsInstance(provider_copy, providers.Singleton)
self.assertIs(provider.args[0], sys.stdin) self.assertIs(provider.args[0], sys.stdin)
self.assertIs(provider.kwargs['a2'], sys.stdout) self.assertIs(provider.kwargs["a2"], sys.stdout)
self.assertIs(provider.attributes['a3'], sys.stderr) self.assertIs(provider.attributes["a3"], sys.stderr)
def test_reset(self): def test_reset(self):
provider = self.singleton_cls(object) provider = self.singleton_cls(object)
@ -364,12 +364,12 @@ class _BaseSingletonTestCase(object):
dependent_instance = dependent_singleton() dependent_instance = dependent_singleton()
instance1 = provider() instance1 = provider()
self.assertIs(instance1['dependency'], dependent_instance) self.assertIs(instance1["dependency"], dependent_instance)
provider.reset() provider.reset()
instance2 = provider() instance2 = provider()
self.assertIs(instance1['dependency'], dependent_instance) self.assertIs(instance1["dependency"], dependent_instance)
self.assertIsNot(instance1, instance2) self.assertIsNot(instance1, instance2)
@ -396,13 +396,13 @@ class _BaseSingletonTestCase(object):
dependent_instance1 = dependent_singleton() dependent_instance1 = dependent_singleton()
instance1 = provider() instance1 = provider()
self.assertIs(instance1['dependency'], dependent_instance1) self.assertIs(instance1["dependency"], dependent_instance1)
provider.full_reset() provider.full_reset()
dependent_instance2 = dependent_singleton() dependent_instance2 = dependent_singleton()
instance2 = provider() instance2 = provider()
self.assertIsNot(instance2['dependency'], dependent_instance1) self.assertIsNot(instance2["dependency"], dependent_instance1)
self.assertIsNot(dependent_instance1, dependent_instance2) self.assertIsNot(dependent_instance1, dependent_instance2)
self.assertIsNot(instance1, instance2) self.assertIsNot(instance1, instance2)

View File

@ -9,7 +9,7 @@ import os
_TOP_DIR = os.path.abspath( _TOP_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../', "../",
)), )),
) )
import sys import sys
@ -192,7 +192,7 @@ class FactoryTests(AsyncTestCase):
def test_injection_error(self): def test_injection_error(self):
async def init_resource(): async def init_resource():
raise Exception('Something went wrong') raise Exception("Something went wrong")
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource_with_error = providers.Resource(init_resource) resource_with_error = providers.Resource(init_resource)
@ -207,11 +207,11 @@ class FactoryTests(AsyncTestCase):
with self.assertRaises(Exception) as context: with self.assertRaises(Exception) as context:
self._run(container.client()) self._run(container.client())
self.assertEqual(str(context.exception), 'Something went wrong') self.assertEqual(str(context.exception), "Something went wrong")
def test_injection_runtime_error_async_provides(self): def test_injection_runtime_error_async_provides(self):
async def create_client(*args, **kwargs): async def create_client(*args, **kwargs):
raise Exception('Something went wrong') raise Exception("Something went wrong")
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource = providers.Resource(init_resource, providers.Object(RESOURCE1)) resource = providers.Resource(init_resource, providers.Object(RESOURCE1))
@ -226,7 +226,7 @@ class FactoryTests(AsyncTestCase):
with self.assertRaises(Exception) as context: with self.assertRaises(Exception) as context:
self._run(container.client()) self._run(container.client())
self.assertEqual(str(context.exception), 'Something went wrong') self.assertEqual(str(context.exception), "Something went wrong")
def test_injection_call_error_async_provides(self): def test_injection_call_error_async_provides(self):
async def create_client(): # <-- no args defined async def create_client(): # <-- no args defined
@ -302,7 +302,7 @@ class FactoryTests(AsyncTestCase):
@attribute_set_error.setter @attribute_set_error.setter
def attribute_set_error(self, value): def attribute_set_error(self, value):
raise Exception('Something went wrong') raise Exception("Something went wrong")
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource = providers.Resource(init_resource, providers.Object(RESOURCE1)) resource = providers.Resource(init_resource, providers.Object(RESOURCE1))
@ -318,11 +318,11 @@ class FactoryTests(AsyncTestCase):
with self.assertRaises(Exception) as context: with self.assertRaises(Exception) as context:
self._run(container.client()) self._run(container.client())
self.assertEqual(str(context.exception), 'Something went wrong') self.assertEqual(str(context.exception), "Something went wrong")
def test_attributes_injection_runtime_error(self): def test_attributes_injection_runtime_error(self):
async def init_resource(): async def init_resource():
raise Exception('Something went wrong') raise Exception("Something went wrong")
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resource = providers.Resource(init_resource) resource = providers.Resource(init_resource)
@ -339,7 +339,7 @@ class FactoryTests(AsyncTestCase):
with self.assertRaises(Exception) as context: with self.assertRaises(Exception) as context:
self._run(container.client()) self._run(container.client())
self.assertEqual(str(context.exception), 'Something went wrong') self.assertEqual(str(context.exception), "Something went wrong")
def test_async_instance_and_sync_attributes_injection(self): def test_async_instance_and_sync_attributes_injection(self):
class ContainerWithAttributes(containers.DeclarativeContainer): class ContainerWithAttributes(containers.DeclarativeContainer):
@ -406,11 +406,11 @@ class FactoryAggregateTests(AsyncTestCase):
self.assertTrue(provider.is_async_mode_undefined()) self.assertTrue(provider.is_async_mode_undefined())
created_object1 = self._run(provider('object1')) created_object1 = self._run(provider("object1"))
self.assertIs(created_object1, object1) self.assertIs(created_object1, object1)
self.assertTrue(provider.is_async_mode_enabled()) self.assertTrue(provider.is_async_mode_enabled())
created_object2 = self._run(provider('object2')) created_object2 = self._run(provider("object2"))
self.assertIs(created_object2, object2) self.assertIs(created_object2, object2)
@ -696,7 +696,7 @@ class ProvidedInstanceTests(AsyncTestCase):
class TestContainer(containers.DeclarativeContainer): class TestContainer(containers.DeclarativeContainer):
resource = providers.Resource(init_resource, providers.Object(RESOURCE1)) resource = providers.Resource(init_resource, providers.Object(RESOURCE1))
client = providers.Factory(TestClient, resource=resource) client = providers.Factory(TestClient, resource=resource)
service = providers.Factory(TestService, resource=client.provided['resource']) service = providers.Factory(TestService, resource=client.provided["resource"])
container = TestContainer() container = TestContainer()
@ -721,7 +721,7 @@ class ProvidedInstanceTests(AsyncTestCase):
container = TestContainer() container = TestContainer()
with self.assertRaises(RuntimeError): with self.assertRaises(RuntimeError):
self._run(container.client.provided['item']()) self._run(container.client.provided["item"]())
def test_provided_item_undefined_item(self): def test_provided_item_undefined_item(self):
class TestContainer(containers.DeclarativeContainer): class TestContainer(containers.DeclarativeContainer):
@ -731,7 +731,7 @@ class ProvidedInstanceTests(AsyncTestCase):
container = TestContainer() container = TestContainer()
with self.assertRaises(KeyError): with self.assertRaises(KeyError):
self._run(container.client.provided['item']()) self._run(container.client.provided["item"]())
def test_provided_method_call(self): def test_provided_method_call(self):
class TestClient: class TestClient:
@ -878,15 +878,15 @@ class ListTests(AsyncTestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resources = providers.List( resources = providers.List(
providers.Resource(create_resource, 'foo'), providers.Resource(create_resource, "foo"),
providers.Resource(create_resource, 'bar') providers.Resource(create_resource, "bar")
) )
container = Container() container = Container()
resources = self._run(container.resources()) resources = self._run(container.resources())
self.assertEqual(resources[0], 'foo') self.assertEqual(resources[0], "foo")
self.assertEqual(resources[1], 'bar') self.assertEqual(resources[1], "bar")
class DictTests(AsyncTestCase): class DictTests(AsyncTestCase):
@ -898,15 +898,15 @@ class DictTests(AsyncTestCase):
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
resources = providers.Dict( resources = providers.Dict(
foo=providers.Resource(create_resource, 'foo'), foo=providers.Resource(create_resource, "foo"),
bar=providers.Resource(create_resource, 'bar') bar=providers.Resource(create_resource, "bar")
) )
container = Container() container = Container()
resources = self._run(container.resources()) resources = self._run(container.resources())
self.assertEqual(resources['foo'], 'foo') self.assertEqual(resources["foo"], "foo")
self.assertEqual(resources['bar'], 'bar') self.assertEqual(resources["bar"], "bar")
class OverrideTests(AsyncTestCase): class OverrideTests(AsyncTestCase):
@ -1097,10 +1097,10 @@ class AsyncProvidersWithAsyncDependenciesTests(AsyncTestCase):
def test_injections(self): def test_injections(self):
# See: https://github.com/ets-labs/python-dependency-injector/issues/368 # See: https://github.com/ets-labs/python-dependency-injector/issues/368
async def async_db_provider(): async def async_db_provider():
return {'db': 'ok'} return {"db": "ok"}
async def async_service(db=None): async def async_service(db=None):
return {'service': 'ok', 'db': db} return {"service": "ok", "db": db}
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -1110,7 +1110,7 @@ class AsyncProvidersWithAsyncDependenciesTests(AsyncTestCase):
container = Container() container = Container()
service = self._run(container.service()) service = self._run(container.service())
self.assertEqual(service, {'service': 'ok', 'db': {'db': 'ok'}}) self.assertEqual(service, {"service": "ok", "db": {"db": "ok"}})
class AsyncProviderWithAwaitableObjectTests(AsyncTestCase): class AsyncProviderWithAwaitableObjectTests(AsyncTestCase):
@ -1118,7 +1118,7 @@ class AsyncProviderWithAwaitableObjectTests(AsyncTestCase):
def test(self): def test(self):
class SomeResource: class SomeResource:
def __await__(self): def __await__(self):
raise RuntimeError('Should never happen') raise RuntimeError("Should never happen")
async def init_resource(): async def init_resource():
pool = SomeResource() pool = SomeResource()
@ -1148,7 +1148,7 @@ class AsyncProviderWithAwaitableObjectTests(AsyncTestCase):
def test_without_init_resources(self): def test_without_init_resources(self):
class SomeResource: class SomeResource:
def __await__(self): def __await__(self):
raise RuntimeError('Should never happen') raise RuntimeError("Should never happen")
async def init_resource(): async def init_resource():
pool = SomeResource() pool = SomeResource()

View File

@ -23,7 +23,7 @@ class ProviderTests(unittest.TestCase):
def test_delegate(self): def test_delegate(self):
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter('ignore') warnings.simplefilter("ignore")
delegate1 = self.provider.delegate() delegate1 = self.provider.delegate()
delegate2 = self.provider.delegate() delegate2 = self.provider.delegate()
@ -143,8 +143,8 @@ class ProviderTests(unittest.TestCase):
def test_repr(self): def test_repr(self):
self.assertEqual(repr(self.provider), self.assertEqual(repr(self.provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Provider() at {0}>'.format(hex(id(self.provider)))) "Provider() at {0}>".format(hex(id(self.provider))))
class ObjectProviderTests(unittest.TestCase): class ObjectProviderTests(unittest.TestCase):
@ -225,8 +225,8 @@ class ObjectProviderTests(unittest.TestCase):
some_object = object() some_object = object()
provider = providers.Object(some_object) provider = providers.Object(some_object)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Object({0}) at {1}>'.format( "Object({0}) at {1}>".format(
repr(some_object), repr(some_object),
hex(id(provider)))) hex(id(provider))))
@ -248,8 +248,8 @@ class SelfProviderTests(unittest.TestCase):
def test_set_alt_names(self): def test_set_alt_names(self):
provider = providers.Self() provider = providers.Self()
provider.set_alt_names({'foo', 'bar', 'baz'}) provider.set_alt_names({"foo", "bar", "baz"})
self.assertEqual(set(provider.alt_names), {'foo', 'bar', 'baz'}) self.assertEqual(set(provider.alt_names), {"foo", "bar", "baz"})
def test_deepcopy(self): def test_deepcopy(self):
provider = providers.Self() provider = providers.Self()
@ -287,8 +287,8 @@ class SelfProviderTests(unittest.TestCase):
container = containers.DeclarativeContainer() container = containers.DeclarativeContainer()
provider = providers.Self(container) provider = providers.Self(container)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Self({0}) at {1}>'.format( "Self({0}) at {1}>".format(
repr(container), repr(container),
hex(id(provider)))) hex(id(provider))))
@ -324,8 +324,8 @@ class DelegateTests(unittest.TestCase):
def test_repr(self): def test_repr(self):
self.assertEqual(repr(self.delegate), self.assertEqual(repr(self.delegate),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Delegate({0}) at {1}>'.format( "Delegate({0}) at {1}>".format(
repr(self.delegated), repr(self.delegated),
hex(id(self.delegate)))) hex(id(self.delegate))))
@ -375,22 +375,22 @@ class DependencyTests(unittest.TestCase):
self.assertIsInstance(self.provider.provided, providers.ProvidedInstance) self.assertIsInstance(self.provider.provided, providers.ProvidedInstance)
def test_default(self): def test_default(self):
provider = providers.Dependency(instance_of=dict, default={'foo': 'bar'}) provider = providers.Dependency(instance_of=dict, default={"foo": "bar"})
self.assertEqual(provider(), {'foo': 'bar'}) self.assertEqual(provider(), {"foo": "bar"})
def test_default_attribute(self): def test_default_attribute(self):
provider = providers.Dependency(instance_of=dict, default={'foo': 'bar'}) provider = providers.Dependency(instance_of=dict, default={"foo": "bar"})
self.assertEqual(provider.default(), {'foo': 'bar'}) self.assertEqual(provider.default(), {"foo": "bar"})
def test_default_provider(self): def test_default_provider(self):
provider = providers.Dependency(instance_of=dict, default=providers.Factory(dict, foo='bar')) provider = providers.Dependency(instance_of=dict, default=providers.Factory(dict, foo="bar"))
self.assertEqual(provider.default(), {'foo': 'bar'}) self.assertEqual(provider.default(), {"foo": "bar"})
def test_default_attribute_provider(self): def test_default_attribute_provider(self):
default = providers.Factory(dict, foo='bar') default = providers.Factory(dict, foo="bar")
provider = providers.Dependency(instance_of=dict, default=default) provider = providers.Dependency(instance_of=dict, default=default)
self.assertEqual(provider.default(), {'foo': 'bar'}) self.assertEqual(provider.default(), {"foo": "bar"})
self.assertIs(provider.default, default) self.assertIs(provider.default, default)
def test_is_defined(self): def test_is_defined(self):
@ -399,11 +399,11 @@ class DependencyTests(unittest.TestCase):
def test_is_defined_when_overridden(self): def test_is_defined_when_overridden(self):
provider = providers.Dependency() provider = providers.Dependency()
provider.override('value') provider.override("value")
self.assertTrue(provider.is_defined) self.assertTrue(provider.is_defined)
def test_is_defined_with_default(self): def test_is_defined_with_default(self):
provider = providers.Dependency(default='value') provider = providers.Dependency(default="value")
self.assertTrue(provider.is_defined) self.assertTrue(provider.is_defined)
def test_call_overridden(self): def test_call_overridden(self):
@ -417,7 +417,7 @@ class DependencyTests(unittest.TestCase):
def test_call_undefined(self): def test_call_undefined(self):
with self.assertRaises(errors.Error) as context: with self.assertRaises(errors.Error) as context:
self.provider() self.provider()
self.assertEqual(str(context.exception), 'Dependency is not defined') self.assertEqual(str(context.exception), "Dependency is not defined")
def test_call_undefined_error_message_with_container_instance_parent(self): def test_call_undefined_error_message_with_container_instance_parent(self):
class UserService: class UserService:
@ -437,7 +437,7 @@ class DependencyTests(unittest.TestCase):
with self.assertRaises(errors.Error) as context: with self.assertRaises(errors.Error) as context:
container.user_service() container.user_service()
self.assertEqual(str(context.exception), 'Dependency "Container.database" is not defined') self.assertEqual(str(context.exception), "Dependency \"Container.database\" is not defined")
def test_call_undefined_error_message_with_container_provider_parent_deep(self): def test_call_undefined_error_message_with_container_provider_parent_deep(self):
class Database: class Database:
@ -473,7 +473,7 @@ class DependencyTests(unittest.TestCase):
self.assertEqual( self.assertEqual(
str(context.exception), str(context.exception),
'Dependency "Container.services.gateways.database_client" is not defined', "Dependency \"Container.services.gateways.database_client\" is not defined",
) )
def test_call_undefined_error_message_with_dependenciescontainer_provider_parent(self): def test_call_undefined_error_message_with_dependenciescontainer_provider_parent(self):
@ -496,7 +496,7 @@ class DependencyTests(unittest.TestCase):
self.assertEqual( self.assertEqual(
str(context.exception), str(context.exception),
'Dependency "Services.gateways.database_client" is not defined', "Dependency \"Services.gateways.database_client\" is not defined",
) )
def test_assign_parent(self): def test_assign_parent(self):
@ -511,13 +511,13 @@ class DependencyTests(unittest.TestCase):
container = containers.DynamicContainer() container = containers.DynamicContainer()
provider = providers.Dependency() provider = providers.Dependency()
container.name = provider container.name = provider
self.assertEqual(provider.parent_name, 'name') self.assertEqual(provider.parent_name, "name")
def test_parent_name_with_deep_parenting(self): def test_parent_name_with_deep_parenting(self):
provider = providers.Dependency() provider = providers.Dependency()
container = providers.DependenciesContainer(name=provider) container = providers.DependenciesContainer(name=provider)
_ = providers.DependenciesContainer(container=container) _ = providers.DependenciesContainer(container=container)
self.assertEqual(provider.parent_name, 'container.name') self.assertEqual(provider.parent_name, "container.name")
def test_parent_name_is_none(self): def test_parent_name_is_none(self):
provider = providers.DependenciesContainer() provider = providers.DependenciesContainer()
@ -541,18 +541,18 @@ class DependencyTests(unittest.TestCase):
default = providers.Configuration() default = providers.Configuration()
provider = providers.Dependency(default=default) provider = providers.Dependency(default=default)
provider.from_dict({'foo': 'bar'}) provider.from_dict({"foo": "bar"})
self.assertEqual(default(), {'foo': 'bar'}) self.assertEqual(default(), {"foo": "bar"})
def test_forward_attr_to_overriding(self): def test_forward_attr_to_overriding(self):
overriding = providers.Configuration() overriding = providers.Configuration()
provider = providers.Dependency() provider = providers.Dependency()
provider.override(overriding) provider.override(overriding)
provider.from_dict({'foo': 'bar'}) provider.from_dict({"foo": "bar"})
self.assertEqual(overriding(), {'foo': 'bar'}) self.assertEqual(overriding(), {"foo": "bar"})
def test_forward_attr_to_none(self): def test_forward_attr_to_none(self):
provider = providers.Dependency() provider = providers.Dependency()
@ -592,7 +592,7 @@ class DependencyTests(unittest.TestCase):
self.assertIsInstance(overriding_provider_copy, providers.Provider) self.assertIsInstance(overriding_provider_copy, providers.Provider)
def test_deep_copy_default_object(self): def test_deep_copy_default_object(self):
default = {'foo': 'bar'} default = {"foo": "bar"}
provider = providers.Dependency(dict, default=default) provider = providers.Dependency(dict, default=default)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
@ -607,12 +607,12 @@ class DependencyTests(unittest.TestCase):
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
self.assertEqual(provider_copy(), {'foo': bar}) self.assertEqual(provider_copy(), {"foo": bar})
self.assertEqual(provider_copy.default(), {'foo': bar}) self.assertEqual(provider_copy.default(), {"foo": bar})
self.assertIs(provider_copy()['foo'], bar) self.assertIs(provider_copy()["foo"], bar)
def test_with_container_default_object(self): def test_with_container_default_object(self):
default = {'foo': 'bar'} default = {"foo": "bar"}
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
provider = providers.Dependency(dict, default=default) provider = providers.Dependency(dict, default=default)
@ -630,9 +630,9 @@ class DependencyTests(unittest.TestCase):
container = Container() container = Container()
self.assertEqual(container.provider(), {'foo': bar}) self.assertEqual(container.provider(), {"foo": bar})
self.assertEqual(container.provider.default(), {'foo': bar}) self.assertEqual(container.provider.default(), {"foo": bar})
self.assertIs(container.provider()['foo'], bar) self.assertIs(container.provider()["foo"], bar)
def test_with_container_default_provider_with_overriding(self): def test_with_container_default_provider_with_overriding(self):
bar = object() bar = object()
@ -643,14 +643,14 @@ class DependencyTests(unittest.TestCase):
container = Container(provider=providers.Factory(dict, foo=providers.Object(baz))) container = Container(provider=providers.Factory(dict, foo=providers.Object(baz)))
self.assertEqual(container.provider(), {'foo': baz}) self.assertEqual(container.provider(), {"foo": baz})
self.assertEqual(container.provider.default(), {'foo': bar}) self.assertEqual(container.provider.default(), {"foo": bar})
self.assertIs(container.provider()['foo'], baz) self.assertIs(container.provider()["foo"], baz)
def test_repr(self): def test_repr(self):
self.assertEqual(repr(self.provider), self.assertEqual(repr(self.provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Dependency({0}) at {1}>'.format( "Dependency({0}) at {1}>".format(
repr(list), repr(list),
hex(id(self.provider)))) hex(id(self.provider))))
@ -661,8 +661,8 @@ class DependencyTests(unittest.TestCase):
container = Container() container = Container()
self.assertEqual(repr(container.dependency), self.assertEqual(repr(container.dependency),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Dependency({0}) at {1}, container name: "Container.dependency">'.format( "Dependency({0}) at {1}, container name: \"Container.dependency\">".format(
repr(int), repr(int),
hex(id(container.dependency)))) hex(id(container.dependency))))
@ -687,7 +687,7 @@ class DependenciesContainerTests(unittest.TestCase):
self.container = self.Container() self.container = self.Container()
def test_getattr(self): def test_getattr(self):
has_dependency = hasattr(self.provider, 'dependency') has_dependency = hasattr(self.provider, "dependency")
dependency = self.provider.dependency dependency = self.provider.dependency
self.assertIsInstance(dependency, providers.Dependency) self.assertIsInstance(dependency, providers.Dependency)
@ -706,8 +706,8 @@ class DependenciesContainerTests(unittest.TestCase):
def test_providers(self): def test_providers(self):
dependency1 = self.provider.dependency1 dependency1 = self.provider.dependency1
dependency2 = self.provider.dependency2 dependency2 = self.provider.dependency2
self.assertEqual(self.provider.providers, {'dependency1': dependency1, self.assertEqual(self.provider.providers, {"dependency1": dependency1,
'dependency2': dependency2}) "dependency2": dependency2})
def test_override(self): def test_override(self):
dependency = self.provider.dependency dependency = self.provider.dependency
@ -744,13 +744,13 @@ class DependenciesContainerTests(unittest.TestCase):
container = containers.DynamicContainer() container = containers.DynamicContainer()
provider = providers.DependenciesContainer() provider = providers.DependenciesContainer()
container.name = provider container.name = provider
self.assertEqual(provider.parent_name, 'name') self.assertEqual(provider.parent_name, "name")
def test_parent_name_with_deep_parenting(self): def test_parent_name_with_deep_parenting(self):
provider = providers.DependenciesContainer() provider = providers.DependenciesContainer()
container = providers.DependenciesContainer(name=provider) container = providers.DependenciesContainer(name=provider)
_ = providers.DependenciesContainer(container=container) _ = providers.DependenciesContainer(container=container)
self.assertEqual(provider.parent_name, 'container.name') self.assertEqual(provider.parent_name, "container.name")
def test_parent_name_is_none(self): def test_parent_name_is_none(self):
provider = providers.DependenciesContainer() provider = providers.DependenciesContainer()
@ -783,7 +783,7 @@ class DependenciesContainerTests(unittest.TestCase):
def test_resolve_provider_name(self): def test_resolve_provider_name(self):
container = providers.DependenciesContainer() container = providers.DependenciesContainer()
self.assertEqual(container.resolve_provider_name(container.name), 'name') self.assertEqual(container.resolve_provider_name(container.name), "name")
def test_resolve_provider_name_no_provider(self): def test_resolve_provider_name_no_provider(self):
container = providers.DependenciesContainer() container = providers.DependenciesContainer()

View File

@ -154,8 +154,8 @@ class CallableTests(unittest.TestCase):
provider.add_kwargs(a1=dependent_provider1, a2=dependent_provider2) provider.add_kwargs(a1=dependent_provider1, a2=dependent_provider2)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
dependent_provider_copy1 = provider_copy.kwargs['a1'] dependent_provider_copy1 = provider_copy.kwargs["a1"]
dependent_provider_copy2 = provider_copy.kwargs['a2'] dependent_provider_copy2 = provider_copy.kwargs["a2"]
self.assertNotEqual(provider.kwargs, provider_copy.kwargs) self.assertNotEqual(provider.kwargs, provider_copy.kwargs)
@ -193,14 +193,14 @@ class CallableTests(unittest.TestCase):
self.assertIsNot(provider, provider_copy) self.assertIsNot(provider, provider_copy)
self.assertIsInstance(provider_copy, providers.Callable) self.assertIsInstance(provider_copy, providers.Callable)
self.assertIs(provider.args[0], sys.stdin) self.assertIs(provider.args[0], sys.stdin)
self.assertIs(provider.kwargs['a2'], sys.stdout) self.assertIs(provider.kwargs["a2"], sys.stdout)
def test_repr(self): def test_repr(self):
provider = providers.Callable(_example) provider = providers.Callable(_example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Callable({0}) at {1}>'.format( "Callable({0}) at {1}>".format(
repr(_example), repr(_example),
hex(id(provider)))) hex(id(provider))))
@ -223,8 +223,8 @@ class DelegatedCallableTests(unittest.TestCase):
provider = providers.DelegatedCallable(_example) provider = providers.DelegatedCallable(_example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'DelegatedCallable({0}) at {1}>'.format( "DelegatedCallable({0}) at {1}>".format(
repr(_example), repr(_example),
hex(id(provider)))) hex(id(provider))))
@ -275,8 +275,8 @@ class AbstractCallableTests(unittest.TestCase):
provider = providers.AbstractCallable(_example) provider = providers.AbstractCallable(_example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'AbstractCallable({0}) at {1}>'.format( "AbstractCallable({0}) at {1}>".format(
repr(_example), repr(_example),
hex(id(provider)))) hex(id(provider))))

File diff suppressed because it is too large Load Diff

View File

@ -7,20 +7,20 @@ import unittest
from dependency_injector import containers, providers, errors from dependency_injector import containers, providers, errors
TEST_VALUE_1 = 'core_section_value1' TEST_VALUE_1 = "core_section_value1"
TEST_CONFIG_1 = { TEST_CONFIG_1 = {
'core': { "core": {
'section': { "section": {
'value': TEST_VALUE_1, "value": TEST_VALUE_1,
}, },
}, },
} }
TEST_VALUE_2 = 'core_section_value2' TEST_VALUE_2 = "core_section_value2"
TEST_CONFIG_2 = { TEST_CONFIG_2 = {
'core': { "core": {
'section': { "section": {
'value': TEST_VALUE_2, "value": TEST_VALUE_2,
}, },
}, },
} }
@ -31,12 +31,12 @@ def _copied(value):
class TestCore(containers.DeclarativeContainer): class TestCore(containers.DeclarativeContainer):
config = providers.Configuration('core') config = providers.Configuration("core")
value_getter = providers.Callable(lambda _: _, config.section.value) value_getter = providers.Callable(lambda _: _, config.section.value)
class TestApplication(containers.DeclarativeContainer): class TestApplication(containers.DeclarativeContainer):
config = providers.Configuration('config') config = providers.Configuration("config")
core = providers.Container(TestCore, config=config.core) core = providers.Container(TestCore, config=config.core)
dict_factory = providers.Factory(dict, value=core.value_getter) dict_factory = providers.Factory(dict, value=core.value_getter)
@ -45,22 +45,22 @@ class ContainerTests(unittest.TestCase):
def test(self): def test(self):
application = TestApplication(config=_copied(TEST_CONFIG_1)) application = TestApplication(config=_copied(TEST_CONFIG_1))
self.assertEqual(application.dict_factory(), {'value': TEST_VALUE_1}) self.assertEqual(application.dict_factory(), {"value": TEST_VALUE_1})
def test_double_override(self): def test_double_override(self):
application = TestApplication() application = TestApplication()
application.config.override(_copied(TEST_CONFIG_1)) application.config.override(_copied(TEST_CONFIG_1))
application.config.override(_copied(TEST_CONFIG_2)) application.config.override(_copied(TEST_CONFIG_2))
self.assertEqual(application.dict_factory(), {'value': TEST_VALUE_2}) self.assertEqual(application.dict_factory(), {"value": TEST_VALUE_2})
def test_override(self): def test_override(self):
# See: https://github.com/ets-labs/python-dependency-injector/issues/354 # See: https://github.com/ets-labs/python-dependency-injector/issues/354
class D(containers.DeclarativeContainer): class D(containers.DeclarativeContainer):
foo = providers.Object('foo') foo = providers.Object("foo")
class A(containers.DeclarativeContainer): class A(containers.DeclarativeContainer):
d = providers.DependenciesContainer() d = providers.DependenciesContainer()
bar = providers.Callable(lambda f: f + '++', d.foo.provided) bar = providers.Callable(lambda f: f + "++", d.foo.provided)
class B(containers.DeclarativeContainer): class B(containers.DeclarativeContainer):
d = providers.Container(D) d = providers.Container(D)
@ -69,7 +69,7 @@ class ContainerTests(unittest.TestCase):
b = B(d=D()) b = B(d=D())
result = b.a().bar() result = b.a().bar()
self.assertEqual(result, 'foo++') self.assertEqual(result, "foo++")
def test_override_not_root_provider(self): def test_override_not_root_provider(self):
# See: https://github.com/ets-labs/python-dependency-injector/issues/379 # See: https://github.com/ets-labs/python-dependency-injector/issues/379
@ -102,37 +102,37 @@ class ContainerTests(unittest.TestCase):
) )
container_using_factory = TestContainer(settings=dict( container_using_factory = TestContainer(settings=dict(
container='using_factory', container="using_factory",
foo='bar' foo="bar"
)) ))
self.assertEqual( self.assertEqual(
container_using_factory.root_container().print_settings(), container_using_factory.root_container().print_settings(),
{'container': 'using_factory', 'foo': 'bar'}, {"container": "using_factory", "foo": "bar"},
) )
self.assertEqual( self.assertEqual(
container_using_factory.not_root_container().print_settings(), container_using_factory.not_root_container().print_settings(),
{'container': 'using_factory', 'foo': 'bar'}, {"container": "using_factory", "foo": "bar"},
) )
container_using_container = TestContainer(settings=dict( container_using_container = TestContainer(settings=dict(
container='using_container', container="using_container",
foo='bar' foo="bar"
)) ))
self.assertEqual( self.assertEqual(
container_using_container.root_container().print_settings(), container_using_container.root_container().print_settings(),
{'container': 'using_container', 'foo': 'bar'}, {"container": "using_container", "foo": "bar"},
) )
self.assertEqual( self.assertEqual(
container_using_container.not_root_container().print_settings(), container_using_container.not_root_container().print_settings(),
{'container': 'using_container', 'foo': 'bar'}, {"container": "using_container", "foo": "bar"},
) )
def test_override_by_not_a_container(self): def test_override_by_not_a_container(self):
provider = providers.Container(TestCore) provider = providers.Container(TestCore)
with self.assertRaises(errors.Error): with self.assertRaises(errors.Error):
provider.override(providers.Object('foo')) provider.override(providers.Object("foo"))
def test_lazy_overriding(self): def test_lazy_overriding(self):
# See: https://github.com/ets-labs/python-dependency-injector/issues/354 # See: https://github.com/ets-labs/python-dependency-injector/issues/354
@ -151,7 +151,7 @@ class ContainerTests(unittest.TestCase):
b = B(d=D()) b = B(d=D())
result = b.a().bar() result = b.a().bar()
self.assertEqual(result, 'foo++') self.assertEqual(result, "foo++")
def test_lazy_overriding_deep(self): def test_lazy_overriding_deep(self):
# Extended version of test_lazy_overriding() # Extended version of test_lazy_overriding()
@ -174,49 +174,49 @@ class ContainerTests(unittest.TestCase):
b = B(d=D()) b = B(d=D())
result = b.a().c().bar() result = b.a().c().bar()
self.assertEqual(result, 'foo++') self.assertEqual(result, "foo++")
def test_reset_last_overriding(self): def test_reset_last_overriding(self):
application = TestApplication(config=_copied(TEST_CONFIG_1)) application = TestApplication(config=_copied(TEST_CONFIG_1))
application.core.override(TestCore(config=_copied(TEST_CONFIG_2['core']))) application.core.override(TestCore(config=_copied(TEST_CONFIG_2["core"])))
application.core.reset_last_overriding() application.core.reset_last_overriding()
self.assertEqual(application.dict_factory(), {'value': TEST_VALUE_1}) self.assertEqual(application.dict_factory(), {"value": TEST_VALUE_1})
def test_reset_last_overriding_only_overridden(self): def test_reset_last_overriding_only_overridden(self):
application = TestApplication(config=_copied(TEST_CONFIG_1)) application = TestApplication(config=_copied(TEST_CONFIG_1))
application.core.override(providers.DependenciesContainer(config=_copied(TEST_CONFIG_2['core']))) application.core.override(providers.DependenciesContainer(config=_copied(TEST_CONFIG_2["core"])))
application.core.reset_last_overriding() application.core.reset_last_overriding()
self.assertEqual(application.dict_factory(), {'value': TEST_VALUE_1}) self.assertEqual(application.dict_factory(), {"value": TEST_VALUE_1})
def test_override_context_manager(self): def test_override_context_manager(self):
application = TestApplication(config=_copied(TEST_CONFIG_1)) application = TestApplication(config=_copied(TEST_CONFIG_1))
overriding_core = TestCore(config=_copied(TEST_CONFIG_2['core'])) overriding_core = TestCore(config=_copied(TEST_CONFIG_2["core"]))
with application.core.override(overriding_core) as context_core: with application.core.override(overriding_core) as context_core:
self.assertEqual(application.dict_factory(), {'value': TEST_VALUE_2}) self.assertEqual(application.dict_factory(), {"value": TEST_VALUE_2})
self.assertIs(context_core(), overriding_core) self.assertIs(context_core(), overriding_core)
self.assertEqual(application.dict_factory(), {'value': TEST_VALUE_1}) self.assertEqual(application.dict_factory(), {"value": TEST_VALUE_1})
def test_reset_override(self): def test_reset_override(self):
application = TestApplication(config=_copied(TEST_CONFIG_1)) application = TestApplication(config=_copied(TEST_CONFIG_1))
application.core.override(TestCore(config=_copied(TEST_CONFIG_2['core']))) application.core.override(TestCore(config=_copied(TEST_CONFIG_2["core"])))
application.core.reset_override() application.core.reset_override()
self.assertEqual(application.dict_factory(), {'value': None}) self.assertEqual(application.dict_factory(), {"value": None})
def test_reset_override_only_overridden(self): def test_reset_override_only_overridden(self):
application = TestApplication(config=_copied(TEST_CONFIG_1)) application = TestApplication(config=_copied(TEST_CONFIG_1))
application.core.override(providers.DependenciesContainer(config=_copied(TEST_CONFIG_2['core']))) application.core.override(providers.DependenciesContainer(config=_copied(TEST_CONFIG_2["core"])))
application.core.reset_override() application.core.reset_override()
self.assertEqual(application.dict_factory(), {'value': None}) self.assertEqual(application.dict_factory(), {"value": None})
def test_assign_parent(self): def test_assign_parent(self):
parent = providers.DependenciesContainer() parent = providers.DependenciesContainer()
@ -230,13 +230,13 @@ class ContainerTests(unittest.TestCase):
container = containers.DynamicContainer() container = containers.DynamicContainer()
provider = providers.Container(TestCore) provider = providers.Container(TestCore)
container.name = provider container.name = provider
self.assertEqual(provider.parent_name, 'name') self.assertEqual(provider.parent_name, "name")
def test_parent_name_with_deep_parenting(self): def test_parent_name_with_deep_parenting(self):
provider = providers.Container(TestCore) provider = providers.Container(TestCore)
container = providers.DependenciesContainer(name=provider) container = providers.DependenciesContainer(name=provider)
_ = providers.DependenciesContainer(container=container) _ = providers.DependenciesContainer(container=container)
self.assertEqual(provider.parent_name, 'container.name') self.assertEqual(provider.parent_name, "container.name")
def test_parent_name_is_none(self): def test_parent_name_is_none(self):
provider = providers.Container(TestCore) provider = providers.Container(TestCore)
@ -258,7 +258,7 @@ class ContainerTests(unittest.TestCase):
def test_resolve_provider_name(self): def test_resolve_provider_name(self):
container = providers.Container(TestCore) container = providers.Container(TestCore)
self.assertEqual(container.resolve_provider_name(container.value_getter), 'value_getter') self.assertEqual(container.resolve_provider_name(container.value_getter), "value_getter")
def test_resolve_provider_name_no_provider(self): def test_resolve_provider_name_no_provider(self):
container = providers.Container(TestCore) container = providers.Container(TestCore)

View File

@ -14,7 +14,7 @@ import os
_TOP_DIR = os.path.abspath( _TOP_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../', "../",
)), )),
) )
import sys import sys
@ -172,8 +172,8 @@ class CoroutineTests(AsyncTestCase):
provider.add_kwargs(a1=dependent_provider1, a2=dependent_provider2) provider.add_kwargs(a1=dependent_provider1, a2=dependent_provider2)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
dependent_provider_copy1 = provider_copy.kwargs['a1'] dependent_provider_copy1 = provider_copy.kwargs["a1"]
dependent_provider_copy2 = provider_copy.kwargs['a2'] dependent_provider_copy2 = provider_copy.kwargs["a2"]
self.assertNotEqual(provider.kwargs, provider_copy.kwargs) self.assertNotEqual(provider.kwargs, provider_copy.kwargs)
@ -205,8 +205,8 @@ class CoroutineTests(AsyncTestCase):
provider = providers.Coroutine(_example) provider = providers.Coroutine(_example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Coroutine({0}) at {1}>'.format( "Coroutine({0}) at {1}>".format(
repr(_example), repr(_example),
hex(id(provider)))) hex(id(provider))))
@ -229,8 +229,8 @@ class DelegatedCoroutineTests(unittest.TestCase):
provider = providers.DelegatedCoroutine(_example) provider = providers.DelegatedCoroutine(_example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'DelegatedCoroutine({0}) at {1}>'.format( "DelegatedCoroutine({0}) at {1}>".format(
repr(_example), repr(_example),
hex(id(provider)))) hex(id(provider))))
@ -243,11 +243,11 @@ class AbstractCoroutineTests(AsyncTestCase):
def test_call_overridden_by_coroutine(self): def test_call_overridden_by_coroutine(self):
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter('ignore') warnings.simplefilter("ignore")
@asyncio.coroutine @asyncio.coroutine
def _abstract_example(): def _abstract_example():
raise RuntimeError('Should not be raised') raise RuntimeError("Should not be raised")
provider = providers.AbstractCoroutine(_abstract_example) provider = providers.AbstractCoroutine(_abstract_example)
provider.override(providers.Coroutine(_example)) provider.override(providers.Coroutine(_example))
@ -256,11 +256,11 @@ class AbstractCoroutineTests(AsyncTestCase):
def test_call_overridden_by_delegated_coroutine(self): def test_call_overridden_by_delegated_coroutine(self):
with warnings.catch_warnings(): with warnings.catch_warnings():
warnings.simplefilter('ignore') warnings.simplefilter("ignore")
@asyncio.coroutine @asyncio.coroutine
def _abstract_example(): def _abstract_example():
raise RuntimeError('Should not be raised') raise RuntimeError("Should not be raised")
provider = providers.AbstractCoroutine(_abstract_example) provider = providers.AbstractCoroutine(_abstract_example)
provider.override(providers.DelegatedCoroutine(_example)) provider.override(providers.DelegatedCoroutine(_example))
@ -289,8 +289,8 @@ class AbstractCoroutineTests(AsyncTestCase):
provider = providers.AbstractCoroutine(_example) provider = providers.AbstractCoroutine(_example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'AbstractCoroutine({0}) at {1}>'.format( "AbstractCoroutine({0}) at {1}>".format(
repr(_example), repr(_example),
hex(id(provider)))) hex(id(provider))))

View File

@ -19,110 +19,110 @@ class DictTests(unittest.TestCase):
def test_init_with_non_string_keys(self): def test_init_with_non_string_keys(self):
a1 = object() a1 = object()
a2 = object() a2 = object()
provider = providers.Dict({a1: 'i1', a2: 'i2'}) provider = providers.Dict({a1: "i1", a2: "i2"})
dict1 = provider() dict1 = provider()
dict2 = provider() dict2 = provider()
self.assertEqual(dict1, {a1: 'i1', a2: 'i2'}) self.assertEqual(dict1, {a1: "i1", a2: "i2"})
self.assertEqual(dict2, {a1: 'i1', a2: 'i2'}) self.assertEqual(dict2, {a1: "i1", a2: "i2"})
self.assertIsNot(dict1, dict2) self.assertIsNot(dict1, dict2)
def test_init_with_string_and_non_string_keys(self): def test_init_with_string_and_non_string_keys(self):
a1 = object() a1 = object()
provider = providers.Dict({a1: 'i1'}, a2='i2') provider = providers.Dict({a1: "i1"}, a2="i2")
dict1 = provider() dict1 = provider()
dict2 = provider() dict2 = provider()
self.assertEqual(dict1, {a1: 'i1', 'a2': 'i2'}) self.assertEqual(dict1, {a1: "i1", "a2": "i2"})
self.assertEqual(dict2, {a1: 'i1', 'a2': 'i2'}) self.assertEqual(dict2, {a1: "i1", "a2": "i2"})
self.assertIsNot(dict1, dict2) self.assertIsNot(dict1, dict2)
def test_call_with_init_keyword_args(self): def test_call_with_init_keyword_args(self):
provider = providers.Dict(a1='i1', a2='i2') provider = providers.Dict(a1="i1", a2="i2")
dict1 = provider() dict1 = provider()
dict2 = provider() dict2 = provider()
self.assertEqual(dict1, {'a1': 'i1', 'a2': 'i2'}) self.assertEqual(dict1, {"a1": "i1", "a2": "i2"})
self.assertEqual(dict2, {'a1': 'i1', 'a2': 'i2'}) self.assertEqual(dict2, {"a1": "i1", "a2": "i2"})
self.assertIsNot(dict1, dict2) self.assertIsNot(dict1, dict2)
def test_call_with_context_keyword_args(self): def test_call_with_context_keyword_args(self):
provider = providers.Dict(a1='i1', a2='i2') provider = providers.Dict(a1="i1", a2="i2")
self.assertEqual( self.assertEqual(
provider(a3='i3', a4='i4'), provider(a3="i3", a4="i4"),
{'a1': 'i1', 'a2': 'i2', 'a3': 'i3', 'a4': 'i4'}, {"a1": "i1", "a2": "i2", "a3": "i3", "a4": "i4"},
) )
def test_call_with_provider(self): def test_call_with_provider(self):
provider = providers.Dict( provider = providers.Dict(
a1=providers.Factory(str, 'i1'), a1=providers.Factory(str, "i1"),
a2=providers.Factory(str, 'i2'), a2=providers.Factory(str, "i2"),
) )
self.assertEqual(provider(), {'a1': 'i1', 'a2': 'i2'}) self.assertEqual(provider(), {"a1": "i1", "a2": "i2"})
def test_fluent_interface(self): def test_fluent_interface(self):
provider = providers.Dict() \ provider = providers.Dict() \
.add_kwargs(a1='i1', a2='i2') .add_kwargs(a1="i1", a2="i2")
self.assertEqual(provider(), {'a1': 'i1', 'a2': 'i2'}) self.assertEqual(provider(), {"a1": "i1", "a2": "i2"})
def test_add_kwargs(self): def test_add_kwargs(self):
provider = providers.Dict() \ provider = providers.Dict() \
.add_kwargs(a1='i1') \ .add_kwargs(a1="i1") \
.add_kwargs(a2='i2') .add_kwargs(a2="i2")
self.assertEqual(provider.kwargs, {'a1': 'i1', 'a2': 'i2'}) self.assertEqual(provider.kwargs, {"a1": "i1", "a2": "i2"})
def test_add_kwargs_non_string_keys(self): def test_add_kwargs_non_string_keys(self):
a1 = object() a1 = object()
a2 = object() a2 = object()
provider = providers.Dict() \ provider = providers.Dict() \
.add_kwargs({a1: 'i1'}) \ .add_kwargs({a1: "i1"}) \
.add_kwargs({a2: 'i2'}) .add_kwargs({a2: "i2"})
self.assertEqual(provider.kwargs, {a1: 'i1', a2: 'i2'}) self.assertEqual(provider.kwargs, {a1: "i1", a2: "i2"})
def test_add_kwargs_string_and_non_string_keys(self): def test_add_kwargs_string_and_non_string_keys(self):
a2 = object() a2 = object()
provider = providers.Dict() \ provider = providers.Dict() \
.add_kwargs(a1='i1') \ .add_kwargs(a1="i1") \
.add_kwargs({a2: 'i2'}) .add_kwargs({a2: "i2"})
self.assertEqual(provider.kwargs, {'a1': 'i1', a2: 'i2'}) self.assertEqual(provider.kwargs, {"a1": "i1", a2: "i2"})
def test_set_kwargs(self): def test_set_kwargs(self):
provider = providers.Dict() \ provider = providers.Dict() \
.add_kwargs(a1='i1', a2='i2') \ .add_kwargs(a1="i1", a2="i2") \
.set_kwargs(a3='i3', a4='i4') .set_kwargs(a3="i3", a4="i4")
self.assertEqual(provider.kwargs, {'a3': 'i3', 'a4': 'i4'}) self.assertEqual(provider.kwargs, {"a3": "i3", "a4": "i4"})
def test_set_kwargs_non_string_keys(self): def test_set_kwargs_non_string_keys(self):
a3 = object() a3 = object()
a4 = object() a4 = object()
provider = providers.Dict() \ provider = providers.Dict() \
.add_kwargs(a1='i1', a2='i2') \ .add_kwargs(a1="i1", a2="i2") \
.set_kwargs({a3: 'i3', a4: 'i4'}) .set_kwargs({a3: "i3", a4: "i4"})
self.assertEqual(provider.kwargs, {a3: 'i3', a4: 'i4'}) self.assertEqual(provider.kwargs, {a3: "i3", a4: "i4"})
def test_set_kwargs_string_and_non_string_keys(self): def test_set_kwargs_string_and_non_string_keys(self):
a3 = object() a3 = object()
provider = providers.Dict() \ provider = providers.Dict() \
.add_kwargs(a1='i1', a2='i2') \ .add_kwargs(a1="i1", a2="i2") \
.set_kwargs({a3: 'i3'}, a4='i4') .set_kwargs({a3: "i3"}, a4="i4")
self.assertEqual(provider.kwargs, {a3: 'i3', 'a4': 'i4'}) self.assertEqual(provider.kwargs, {a3: "i3", "a4": "i4"})
def test_clear_kwargs(self): def test_clear_kwargs(self):
provider = providers.Dict() \ provider = providers.Dict() \
.add_kwargs(a1='i1', a2='i2') \ .add_kwargs(a1="i1", a2="i2") \
.clear_kwargs() .clear_kwargs()
self.assertEqual(provider.kwargs, {}) self.assertEqual(provider.kwargs, {})
def test_call_overridden(self): def test_call_overridden(self):
provider = providers.Dict(a1='i1', a2='i2') provider = providers.Dict(a1="i1", a2="i2")
overriding_provider1 = providers.Dict(a2='i2', a3='i3') overriding_provider1 = providers.Dict(a2="i2", a3="i3")
overriding_provider2 = providers.Dict(a3='i3', a4='i4') overriding_provider2 = providers.Dict(a3="i3", a4="i4")
provider.override(overriding_provider1) provider.override(overriding_provider1)
provider.override(overriding_provider2) provider.override(overriding_provider2)
@ -131,11 +131,11 @@ class DictTests(unittest.TestCase):
instance2 = provider() instance2 = provider()
self.assertIsNot(instance1, instance2) self.assertIsNot(instance1, instance2)
self.assertEqual(instance1, {'a3': 'i3', 'a4': 'i4'}) self.assertEqual(instance1, {"a3": "i3", "a4": "i4"})
self.assertEqual(instance2, {'a3': 'i3', 'a4': 'i4'}) self.assertEqual(instance2, {"a3": "i3", "a4": "i4"})
def test_deepcopy(self): def test_deepcopy(self):
provider = providers.Dict(a1='i1', a2='i2') provider = providers.Dict(a1="i1", a2="i2")
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
@ -144,8 +144,8 @@ class DictTests(unittest.TestCase):
self.assertIsInstance(provider, providers.Dict) self.assertIsInstance(provider, providers.Dict)
def test_deepcopy_from_memo(self): def test_deepcopy_from_memo(self):
provider = providers.Dict(a1='i1', a2='i2') provider = providers.Dict(a1="i1", a2="i2")
provider_copy_memo = providers.Dict(a1='i1', a2='i2') provider_copy_memo = providers.Dict(a1="i1", a2="i2")
provider_copy = providers.deepcopy( provider_copy = providers.deepcopy(
provider, provider,
@ -162,8 +162,8 @@ class DictTests(unittest.TestCase):
provider.add_kwargs(d1=dependent_provider1, d2=dependent_provider2) provider.add_kwargs(d1=dependent_provider1, d2=dependent_provider2)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
dependent_provider_copy1 = provider_copy.kwargs['d1'] dependent_provider_copy1 = provider_copy.kwargs["d1"]
dependent_provider_copy2 = provider_copy.kwargs['d2'] dependent_provider_copy2 = provider_copy.kwargs["d2"]
self.assertNotEqual(provider.kwargs, provider_copy.kwargs) self.assertNotEqual(provider.kwargs, provider_copy.kwargs)
@ -218,14 +218,14 @@ class DictTests(unittest.TestCase):
self.assertIsNot(provider, provider_copy) self.assertIsNot(provider, provider_copy)
self.assertIsInstance(provider_copy, providers.Dict) self.assertIsInstance(provider_copy, providers.Dict)
self.assertIs(provider.kwargs['stdin'], sys.stdin) self.assertIs(provider.kwargs["stdin"], sys.stdin)
self.assertIs(provider.kwargs['stdout'], sys.stdout) self.assertIs(provider.kwargs["stdout"], sys.stdout)
self.assertIs(provider.kwargs['stderr'], sys.stderr) self.assertIs(provider.kwargs["stderr"], sys.stderr)
def test_repr(self): def test_repr(self):
provider = providers.Dict(a1=1, a2=2) provider = providers.Dict(a1=1, a2=2)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Dict({0}) at {1}>'.format( "Dict({0}) at {1}>".format(
repr(provider.kwargs), repr(provider.kwargs),
hex(id(provider)))) hex(id(provider))))

View File

@ -86,48 +86,48 @@ class FactoryTests(unittest.TestCase):
self.assertIsInstance(instance2, Example) self.assertIsInstance(instance2, Example)
def test_call_with_init_positional_args(self): def test_call_with_init_positional_args(self):
provider = providers.Factory(Example, 'i1', 'i2') provider = providers.Factory(Example, "i1", "i2")
instance1 = provider() instance1 = provider()
instance2 = provider() instance2 = provider()
self.assertEqual(instance1.init_arg1, 'i1') self.assertEqual(instance1.init_arg1, "i1")
self.assertEqual(instance1.init_arg2, 'i2') self.assertEqual(instance1.init_arg2, "i2")
self.assertEqual(instance2.init_arg1, 'i1') self.assertEqual(instance2.init_arg1, "i1")
self.assertEqual(instance2.init_arg2, 'i2') self.assertEqual(instance2.init_arg2, "i2")
self.assertIsNot(instance1, instance2) self.assertIsNot(instance1, instance2)
self.assertIsInstance(instance1, Example) self.assertIsInstance(instance1, Example)
self.assertIsInstance(instance2, Example) self.assertIsInstance(instance2, Example)
def test_call_with_init_keyword_args(self): def test_call_with_init_keyword_args(self):
provider = providers.Factory(Example, init_arg1='i1', init_arg2='i2') provider = providers.Factory(Example, init_arg1="i1", init_arg2="i2")
instance1 = provider() instance1 = provider()
instance2 = provider() instance2 = provider()
self.assertEqual(instance1.init_arg1, 'i1') self.assertEqual(instance1.init_arg1, "i1")
self.assertEqual(instance1.init_arg2, 'i2') self.assertEqual(instance1.init_arg2, "i2")
self.assertEqual(instance2.init_arg1, 'i1') self.assertEqual(instance2.init_arg1, "i1")
self.assertEqual(instance2.init_arg2, 'i2') self.assertEqual(instance2.init_arg2, "i2")
self.assertIsNot(instance1, instance2) self.assertIsNot(instance1, instance2)
self.assertIsInstance(instance1, Example) self.assertIsInstance(instance1, Example)
self.assertIsInstance(instance2, Example) self.assertIsInstance(instance2, Example)
def test_call_with_init_positional_and_keyword_args(self): def test_call_with_init_positional_and_keyword_args(self):
provider = providers.Factory(Example, 'i1', init_arg2='i2') provider = providers.Factory(Example, "i1", init_arg2="i2")
instance1 = provider() instance1 = provider()
instance2 = provider() instance2 = provider()
self.assertEqual(instance1.init_arg1, 'i1') self.assertEqual(instance1.init_arg1, "i1")
self.assertEqual(instance1.init_arg2, 'i2') self.assertEqual(instance1.init_arg2, "i2")
self.assertEqual(instance2.init_arg1, 'i1') self.assertEqual(instance2.init_arg1, "i1")
self.assertEqual(instance2.init_arg2, 'i2') self.assertEqual(instance2.init_arg2, "i2")
self.assertIsNot(instance1, instance2) self.assertIsNot(instance1, instance2)
self.assertIsInstance(instance1, Example) self.assertIsInstance(instance1, Example)
@ -135,16 +135,16 @@ class FactoryTests(unittest.TestCase):
def test_call_with_attributes(self): def test_call_with_attributes(self):
provider = providers.Factory(Example) provider = providers.Factory(Example)
provider.add_attributes(attribute1='a1', attribute2='a2') provider.add_attributes(attribute1="a1", attribute2="a2")
instance1 = provider() instance1 = provider()
instance2 = provider() instance2 = provider()
self.assertEqual(instance1.attribute1, 'a1') self.assertEqual(instance1.attribute1, "a1")
self.assertEqual(instance1.attribute2, 'a2') self.assertEqual(instance1.attribute2, "a2")
self.assertEqual(instance2.attribute1, 'a1') self.assertEqual(instance2.attribute1, "a1")
self.assertEqual(instance2.attribute2, 'a2') self.assertEqual(instance2.attribute2, "a2")
self.assertIsNot(instance1, instance2) self.assertIsNot(instance1, instance2)
self.assertIsInstance(instance1, Example) self.assertIsInstance(instance1, Example)
@ -331,8 +331,8 @@ class FactoryTests(unittest.TestCase):
provider.add_kwargs(a1=dependent_provider1, a2=dependent_provider2) provider.add_kwargs(a1=dependent_provider1, a2=dependent_provider2)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
dependent_provider_copy1 = provider_copy.kwargs['a1'] dependent_provider_copy1 = provider_copy.kwargs["a1"]
dependent_provider_copy2 = provider_copy.kwargs['a2'] dependent_provider_copy2 = provider_copy.kwargs["a2"]
self.assertNotEqual(provider.kwargs, provider_copy.kwargs) self.assertNotEqual(provider.kwargs, provider_copy.kwargs)
@ -350,8 +350,8 @@ class FactoryTests(unittest.TestCase):
provider.add_attributes(a1=dependent_provider1, a2=dependent_provider2) provider.add_attributes(a1=dependent_provider1, a2=dependent_provider2)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
dependent_provider_copy1 = provider_copy.attributes['a1'] dependent_provider_copy1 = provider_copy.attributes["a1"]
dependent_provider_copy2 = provider_copy.attributes['a2'] dependent_provider_copy2 = provider_copy.attributes["a2"]
self.assertNotEqual(provider.attributes, provider_copy.attributes) self.assertNotEqual(provider.attributes, provider_copy.attributes)
@ -388,15 +388,15 @@ class FactoryTests(unittest.TestCase):
self.assertIsNot(provider, provider_copy) self.assertIsNot(provider, provider_copy)
self.assertIsInstance(provider_copy, providers.Factory) self.assertIsInstance(provider_copy, providers.Factory)
self.assertIs(provider.args[0], sys.stdin) self.assertIs(provider.args[0], sys.stdin)
self.assertIs(provider.kwargs['a2'], sys.stdout) self.assertIs(provider.kwargs["a2"], sys.stdout)
self.assertIs(provider.attributes['a3'], sys.stderr) self.assertIs(provider.attributes["a3"], sys.stderr)
def test_repr(self): def test_repr(self):
provider = providers.Factory(Example) provider = providers.Factory(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Factory({0}) at {1}>'.format( "Factory({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -419,8 +419,8 @@ class DelegatedFactoryTests(unittest.TestCase):
provider = providers.DelegatedFactory(Example) provider = providers.DelegatedFactory(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'DelegatedFactory({0}) at {1}>'.format( "DelegatedFactory({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -465,8 +465,8 @@ class AbstractFactoryTests(unittest.TestCase):
provider = providers.AbstractFactory(Example) provider = providers.AbstractFactory(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'AbstractFactory({0}) at {1}>'.format( "AbstractFactory({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -552,12 +552,12 @@ class FactoryAggregateTests(unittest.TestCase):
self.assertEqual( self.assertEqual(
provider.factories, provider.factories,
{ {
'example_a': self.example_a_factory, "example_a": self.example_a_factory,
'example_b': self.example_b_factory, "example_b": self.example_b_factory,
}, },
) )
self.assertIsInstance(provider('example_a'), self.ExampleA) self.assertIsInstance(provider("example_a"), self.ExampleA)
self.assertIsInstance(provider('example_b'), self.ExampleB) self.assertIsInstance(provider("example_b"), self.ExampleB)
def test_set_factories_with_non_string_keys(self): def test_set_factories_with_non_string_keys(self):
factory = providers.FactoryAggregate() factory = providers.FactoryAggregate()
@ -594,9 +594,9 @@ class FactoryAggregateTests(unittest.TestCase):
self.assertIs(provider.set_factories(example_a=self.example_a_factory), provider) self.assertIs(provider.set_factories(example_a=self.example_a_factory), provider)
def test_call(self): def test_call(self):
object_a = self.factory_aggregate('example_a', object_a = self.factory_aggregate("example_a",
1, 2, init_arg3=3, init_arg4=4) 1, 2, init_arg3=3, init_arg4=4)
object_b = self.factory_aggregate('example_b', object_b = self.factory_aggregate("example_b",
11, 22, init_arg3=33, init_arg4=44) 11, 22, init_arg3=33, init_arg4=44)
self.assertIsInstance(object_a, self.ExampleA) self.assertIsInstance(object_a, self.ExampleA)
@ -613,7 +613,7 @@ class FactoryAggregateTests(unittest.TestCase):
def test_call_factory_name_as_kwarg(self): def test_call_factory_name_as_kwarg(self):
object_a = self.factory_aggregate( object_a = self.factory_aggregate(
factory_name='example_a', factory_name="example_a",
init_arg1=1, init_arg1=1,
init_arg2=2, init_arg2=2,
init_arg3=3, init_arg3=3,
@ -631,7 +631,7 @@ class FactoryAggregateTests(unittest.TestCase):
def test_call_no_such_provider(self): def test_call_no_such_provider(self):
with self.assertRaises(errors.NoSuchProviderError): with self.assertRaises(errors.NoSuchProviderError):
self.factory_aggregate('unknown') self.factory_aggregate("unknown")
def test_overridden(self): def test_overridden(self):
with self.assertRaises(errors.Error): with self.assertRaises(errors.Error):
@ -684,7 +684,7 @@ class FactoryAggregateTests(unittest.TestCase):
def test_repr(self): def test_repr(self):
self.assertEqual(repr(self.factory_aggregate), self.assertEqual(repr(self.factory_aggregate),
'<dependency_injector.providers.' "<dependency_injector.providers."
'FactoryAggregate({0}) at {1}>'.format( "FactoryAggregate({0}) at {1}>".format(
repr(self.factory_aggregate.factories), repr(self.factory_aggregate.factories),
hex(id(self.factory_aggregate)))) hex(id(self.factory_aggregate))))

View File

@ -56,19 +56,19 @@ class PositionalInjectionTests(unittest.TestCase):
class NamedInjectionTests(unittest.TestCase): class NamedInjectionTests(unittest.TestCase):
def test_isinstance(self): def test_isinstance(self):
injection = providers.NamedInjection('name', 1) injection = providers.NamedInjection("name", 1)
self.assertIsInstance(injection, providers.Injection) self.assertIsInstance(injection, providers.Injection)
def test_get_name(self): def test_get_name(self):
injection = providers.NamedInjection('name', 123) injection = providers.NamedInjection("name", 123)
self.assertEqual(injection.get_name(), 'name') self.assertEqual(injection.get_name(), "name")
def test_get_value_with_not_provider(self): def test_get_value_with_not_provider(self):
injection = providers.NamedInjection('name', 123) injection = providers.NamedInjection("name", 123)
self.assertEqual(injection.get_value(), 123) self.assertEqual(injection.get_value(), 123)
def test_get_value_with_factory(self): def test_get_value_with_factory(self):
injection = providers.NamedInjection('name', injection = providers.NamedInjection("name",
providers.Factory(object)) providers.Factory(object))
obj1 = injection.get_value() obj1 = injection.get_value()
@ -80,12 +80,12 @@ class NamedInjectionTests(unittest.TestCase):
def test_get_original_value(self): def test_get_original_value(self):
provider = providers.Factory(object) provider = providers.Factory(object)
injection = providers.NamedInjection('name', provider) injection = providers.NamedInjection("name", provider)
self.assertIs(injection.get_original_value(), provider) self.assertIs(injection.get_original_value(), provider)
def test_deepcopy(self): def test_deepcopy(self):
provider = providers.Factory(object) provider = providers.Factory(object)
injection = providers.NamedInjection('name', provider) injection = providers.NamedInjection("name", provider)
injection_copy = providers.deepcopy(injection) injection_copy = providers.deepcopy(injection)
@ -95,8 +95,8 @@ class NamedInjectionTests(unittest.TestCase):
def test_deepcopy_memo(self): def test_deepcopy_memo(self):
provider = providers.Factory(object) provider = providers.Factory(object)
injection = providers.NamedInjection('name', provider) injection = providers.NamedInjection("name", provider)
injection_copy_orig = providers.NamedInjection('name', provider) injection_copy_orig = providers.NamedInjection("name", provider)
injection_copy = providers.deepcopy( injection_copy = providers.deepcopy(
injection, {id(injection): injection_copy_orig}) injection, {id(injection): injection_copy_orig})

View File

@ -17,20 +17,20 @@ class ListTests(unittest.TestCase):
self.assertIsInstance(provider.provided, providers.ProvidedInstance) self.assertIsInstance(provider.provided, providers.ProvidedInstance)
def test_call_with_init_positional_args(self): def test_call_with_init_positional_args(self):
provider = providers.List('i1', 'i2') provider = providers.List("i1", "i2")
list1 = provider() list1 = provider()
list2 = provider() list2 = provider()
self.assertEqual(list1, ['i1', 'i2']) self.assertEqual(list1, ["i1", "i2"])
self.assertEqual(list2, ['i1', 'i2']) self.assertEqual(list2, ["i1", "i2"])
self.assertIsNot(list1, list2) self.assertIsNot(list1, list2)
def test_call_with_context_args(self): def test_call_with_context_args(self):
provider = providers.List('i1', 'i2') provider = providers.List("i1", "i2")
self.assertEqual(provider('i3', 'i4'), ['i1', 'i2', 'i3', 'i4']) self.assertEqual(provider("i3", "i4"), ["i1", "i2", "i3", "i4"])
def test_fluent_interface(self): def test_fluent_interface(self):
provider = providers.List() \ provider = providers.List() \
@ -134,7 +134,7 @@ class ListTests(unittest.TestCase):
provider = providers.List(1, 2) provider = providers.List(1, 2)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'List({0}) at {1}>'.format( "List({0}) at {1}>".format(
repr(list(provider.args)), repr(list(provider.args)),
hex(id(provider)))) hex(id(provider))))

View File

@ -32,7 +32,7 @@ class Client:
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
service = providers.Singleton(Service, value='foo') service = providers.Singleton(Service, value="foo")
client_attribute = providers.Factory( client_attribute = providers.Factory(
Client, Client,
@ -74,30 +74,30 @@ class ProvidedInstanceTests(unittest.TestCase):
def test_attribute(self): def test_attribute(self):
client = self.container.client_attribute() client = self.container.client_attribute()
self.assertEqual(client.value, 'foo') self.assertEqual(client.value, "foo")
def test_item(self): def test_item(self):
client = self.container.client_item() client = self.container.client_item()
self.assertEqual(client.value, 'foo') self.assertEqual(client.value, "foo")
def test_attribute_item(self): def test_attribute_item(self):
client = self.container.client_attribute_item() client = self.container.client_attribute_item()
self.assertEqual(client.value, 'foo') self.assertEqual(client.value, "foo")
def test_method_call(self): def test_method_call(self):
client = self.container.client_method_call() client = self.container.client_method_call()
self.assertEqual(client.value, 'foo') self.assertEqual(client.value, "foo")
def test_method_closure_call(self): def test_method_closure_call(self):
client = self.container.client_method_closure_call() client = self.container.client_method_closure_call()
self.assertEqual(client.value, 'foo') self.assertEqual(client.value, "foo")
def test_provided_call(self): def test_provided_call(self):
client = self.container.client_provided_call() client = self.container.client_provided_call()
self.assertEqual(client.value, 'foo') self.assertEqual(client.value, "foo")
def test_call_overridden(self): def test_call_overridden(self):
value = 'bar' value = "bar"
with self.container.service.override(Service(value)): with self.container.service.override(Service(value)):
self.assertEqual(self.container.client_attribute().value, value) self.assertEqual(self.container.client_attribute().value, value)
self.assertEqual(self.container.client_item().value, value) self.assertEqual(self.container.client_item().value, value)
@ -107,21 +107,21 @@ class ProvidedInstanceTests(unittest.TestCase):
def test_repr_provided_instance(self): def test_repr_provided_instance(self):
provider = self.container.service.provided provider = self.container.service.provided
self.assertEqual( self.assertEqual(
'ProvidedInstance(\'{0}\')'.format(repr(self.container.service)), "ProvidedInstance(\"{0}\")".format(repr(self.container.service)),
repr(provider), repr(provider),
) )
def test_repr_attribute_getter(self): def test_repr_attribute_getter(self):
provider = self.container.service.provided.value provider = self.container.service.provided.value
self.assertEqual( self.assertEqual(
'AttributeGetter(\'value\')', "AttributeGetter(\"value\")",
repr(provider), repr(provider),
) )
def test_repr_item_getter(self): def test_repr_item_getter(self):
provider = self.container.service.provided['test-test'] provider = self.container.service.provided["test-test"]
self.assertEqual( self.assertEqual(
'ItemGetter(\'test-test\')', "ItemGetter(\"test-test\")",
repr(provider), repr(provider),
) )
@ -139,21 +139,21 @@ class LazyInitTests(unittest.TestCase):
provides = providers.Object(object()) provides = providers.Object(object())
provider = providers.AttributeGetter() provider = providers.AttributeGetter()
provider.set_provides(provides) provider.set_provides(provides)
provider.set_name('__dict__') provider.set_name("__dict__")
self.assertIs(provider.provides, provides) self.assertIs(provider.provides, provides)
self.assertEqual(provider.name, '__dict__') self.assertEqual(provider.name, "__dict__")
self.assertIs(provider.set_provides(providers.Provider()), provider) self.assertIs(provider.set_provides(providers.Provider()), provider)
self.assertIs(provider.set_name('__dict__'), provider) self.assertIs(provider.set_name("__dict__"), provider)
def test_item_getter(self): def test_item_getter(self):
provides = providers.Object({'foo': 'bar'}) provides = providers.Object({"foo": "bar"})
provider = providers.ItemGetter() provider = providers.ItemGetter()
provider.set_provides(provides) provider.set_provides(provides)
provider.set_name('foo') provider.set_name("foo")
self.assertIs(provider.provides, provides) self.assertIs(provider.provides, provides)
self.assertEqual(provider.name, 'foo') self.assertEqual(provider.name, "foo")
self.assertIs(provider.set_provides(providers.Provider()), provider) self.assertIs(provider.set_provides(providers.Provider()), provider)
self.assertIs(provider.set_name('foo'), provider) self.assertIs(provider.set_name("foo"), provider)
def test_method_caller(self): def test_method_caller(self):
provides = providers.Object(lambda: 42) provides = providers.Object(lambda: 42)
@ -167,25 +167,25 @@ class LazyInitTests(unittest.TestCase):
class ProvidedInstancePuzzleTests(unittest.TestCase): class ProvidedInstancePuzzleTests(unittest.TestCase):
def test_puzzled(self): def test_puzzled(self):
service = providers.Singleton(Service, value='foo-bar') service = providers.Singleton(Service, value="foo-bar")
dependency = providers.Object( dependency = providers.Object(
{ {
'a': { "a": {
'b': { "b": {
'c1': 10, "c1": 10,
'c2': lambda arg: {'arg': arg} "c2": lambda arg: {"arg": arg}
}, },
}, },
}, },
) )
test_list = providers.List( test_list = providers.List(
dependency.provided['a']['b']['c1'], dependency.provided["a"]["b"]["c1"],
dependency.provided['a']['b']['c2'].call(22)['arg'], dependency.provided["a"]["b"]["c2"].call(22)["arg"],
dependency.provided['a']['b']['c2'].call(service)['arg'], dependency.provided["a"]["b"]["c2"].call(service)["arg"],
dependency.provided['a']['b']['c2'].call(service)['arg'].value, dependency.provided["a"]["b"]["c2"].call(service)["arg"].value,
dependency.provided['a']['b']['c2'].call(service)['arg'].get_value.call(), dependency.provided["a"]["b"]["c2"].call(service)["arg"].get_value.call(),
) )
result = test_list() result = test_list()
@ -196,8 +196,8 @@ class ProvidedInstancePuzzleTests(unittest.TestCase):
10, 10,
22, 22,
service(), service(),
'foo-bar', "foo-bar",
'foo-bar', "foo-bar",
], ],
) )

View File

@ -12,7 +12,7 @@ import os
_TOP_DIR = os.path.abspath( _TOP_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../', "../",
)), )),
) )
import sys import sys
@ -173,7 +173,7 @@ class ResourceTests(unittest.TestCase):
class TestResource(resources.Resource): class TestResource(resources.Resource):
def init(self): def init(self):
... ...
self.assertTrue(hasattr(TestResource(), 'shutdown')) self.assertTrue(hasattr(TestResource(), "shutdown"))
def test_init_not_callable(self): def test_init_not_callable(self):
provider = providers.Resource(1) provider = providers.Resource(1)
@ -229,15 +229,15 @@ class ResourceTests(unittest.TestCase):
self.assertFalse(provider.initialized) self.assertFalse(provider.initialized)
def test_call_with_context_args(self): def test_call_with_context_args(self):
provider = providers.Resource(init_fn, 'i1', 'i2') provider = providers.Resource(init_fn, "i1", "i2")
self.assertEqual(provider('i3', i4=4), (('i1', 'i2', 'i3'), {'i4': 4})) self.assertEqual(provider("i3", i4=4), (("i1", "i2", "i3"), {"i4": 4}))
def test_fluent_interface(self): def test_fluent_interface(self):
provider = providers.Resource(init_fn) \ provider = providers.Resource(init_fn) \
.add_args(1, 2) \ .add_args(1, 2) \
.add_kwargs(a3=3, a4=4) .add_kwargs(a3=3, a4=4)
self.assertEqual(provider(), ((1, 2), {'a3': 3, 'a4': 4})) self.assertEqual(provider(), ((1, 2), {"a3": 3, "a4": 4}))
def test_set_args(self): def test_set_args(self):
provider = providers.Resource(init_fn) \ provider = providers.Resource(init_fn) \
@ -253,13 +253,13 @@ class ResourceTests(unittest.TestCase):
def test_set_kwargs(self): def test_set_kwargs(self):
provider = providers.Resource(init_fn) \ provider = providers.Resource(init_fn) \
.add_kwargs(a1='i1', a2='i2') \ .add_kwargs(a1="i1", a2="i2") \
.set_kwargs(a3='i3', a4='i4') .set_kwargs(a3="i3", a4="i4")
self.assertEqual(provider.kwargs, {'a3': 'i3', 'a4': 'i4'}) self.assertEqual(provider.kwargs, {"a3": "i3", "a4": "i4"})
def test_clear_kwargs(self): def test_clear_kwargs(self):
provider = providers.Resource(init_fn) \ provider = providers.Resource(init_fn) \
.add_kwargs(a1='i1', a2='i2') \ .add_kwargs(a1="i1", a2="i2") \
.clear_kwargs() .clear_kwargs()
self.assertEqual(provider.kwargs, {}) self.assertEqual(provider.kwargs, {})
@ -333,8 +333,8 @@ class ResourceTests(unittest.TestCase):
provider.add_kwargs(d1=dependent_provider1, d2=dependent_provider2) provider.add_kwargs(d1=dependent_provider1, d2=dependent_provider2)
provider_copy = providers.deepcopy(provider) provider_copy = providers.deepcopy(provider)
dependent_provider_copy1 = provider_copy.kwargs['d1'] dependent_provider_copy1 = provider_copy.kwargs["d1"]
dependent_provider_copy2 = provider_copy.kwargs['d2'] dependent_provider_copy2 = provider_copy.kwargs["d2"]
self.assertNotEqual(provider.kwargs, provider_copy.kwargs) self.assertNotEqual(provider.kwargs, provider_copy.kwargs)
@ -377,7 +377,7 @@ class ResourceTests(unittest.TestCase):
self.assertEqual( self.assertEqual(
repr(provider), repr(provider),
'<dependency_injector.providers.Resource({0}) at {1}>'.format( "<dependency_injector.providers.Resource({0}) at {1}>".format(
repr(init_fn), repr(init_fn),
hex(id(provider)), hex(id(provider)),
) )
@ -506,7 +506,7 @@ class AsyncResourceTest(AsyncTestCase):
class TestAsyncResource(resources.AsyncResource): class TestAsyncResource(resources.AsyncResource):
async def init(self): async def init(self):
... ...
self.assertTrue(hasattr(TestAsyncResource(), 'shutdown')) self.assertTrue(hasattr(TestAsyncResource(), "shutdown"))
self.assertTrue(inspect.iscoroutinefunction(TestAsyncResource.shutdown)) self.assertTrue(inspect.iscoroutinefunction(TestAsyncResource.shutdown))
def test_init_with_error(self): def test_init_with_error(self):
@ -566,11 +566,11 @@ class AsyncResourceTest(AsyncTestCase):
# See: https://github.com/ets-labs/python-dependency-injector/issues/361 # See: https://github.com/ets-labs/python-dependency-injector/issues/361
async def init_db_connection(db_url: str): async def init_db_connection(db_url: str):
await asyncio.sleep(0.001) await asyncio.sleep(0.001)
yield {'connection': 'ok', 'url': db_url} yield {"connection": "ok", "url": db_url}
async def init_user_session(db): async def init_user_session(db):
await asyncio.sleep(0.001) await asyncio.sleep(0.001)
yield {'session': 'ok', 'db': db} yield {"session": "ok", "db": db}
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
config = providers.Configuration() config = providers.Configuration()
@ -586,7 +586,7 @@ class AsyncResourceTest(AsyncTestCase):
) )
async def main(): async def main():
container = Container(config={'db_url': 'postgres://...'}) container = Container(config={"db_url": "postgres://..."})
try: try:
return await container.user_session() return await container.user_session()
finally: finally:
@ -596,7 +596,7 @@ class AsyncResourceTest(AsyncTestCase):
self.assertEqual( self.assertEqual(
result, result,
{'session': 'ok', 'db': {'connection': 'ok', 'url': 'postgres://...'}}, {"session": "ok", "db": {"connection": "ok", "url": "postgres://..."}},
) )
def test_init_and_shutdown_methods(self): def test_init_and_shutdown_methods(self):

View File

@ -24,10 +24,10 @@ class SelectorTests(unittest.TestCase):
provider.set_selector(self.selector) provider.set_selector(self.selector)
provider.set_providers(one=one, two=two) provider.set_providers(one=one, two=two)
self.assertEqual(provider.providers, {'one': one, 'two': two}) self.assertEqual(provider.providers, {"one": one, "two": two})
with self.selector.override('one'): with self.selector.override("one"):
self.assertEqual(provider(), one()) self.assertEqual(provider(), one())
with self.selector.override('two'): with self.selector.override("two"):
self.assertEqual(provider(), two()) self.assertEqual(provider(), two())
def test_set_selector_returns_self(self): def test_set_selector_returns_self(self):
@ -49,10 +49,10 @@ class SelectorTests(unittest.TestCase):
two=providers.Object(2), two=providers.Object(2),
) )
with self.selector.override('one'): with self.selector.override("one"):
self.assertEqual(provider(), 1) self.assertEqual(provider(), 1)
with self.selector.override('two'): with self.selector.override("two"):
self.assertEqual(provider(), 2) self.assertEqual(provider(), 2)
def test_call_undefined_provider(self): def test_call_undefined_provider(self):
@ -62,7 +62,7 @@ class SelectorTests(unittest.TestCase):
two=providers.Object(2), two=providers.Object(2),
) )
with self.selector.override('three'): with self.selector.override("three"):
with self.assertRaises(errors.Error): with self.assertRaises(errors.Error):
provider() provider()
@ -79,7 +79,7 @@ class SelectorTests(unittest.TestCase):
def test_call_any_callable(self): def test_call_any_callable(self):
provider = providers.Selector( provider = providers.Selector(
functools.partial(next, itertools.cycle(['one', 'two'])), functools.partial(next, itertools.cycle(["one", "two"])),
one=providers.Object(1), one=providers.Object(1),
two=providers.Object(2), two=providers.Object(2),
) )
@ -95,11 +95,11 @@ class SelectorTests(unittest.TestCase):
one=providers.Callable(lambda *args, **kwargs: (args, kwargs)), one=providers.Callable(lambda *args, **kwargs: (args, kwargs)),
) )
with self.selector.override('one'): with self.selector.override("one"):
args, kwargs = provider(1, 2, three=3, four=4) args, kwargs = provider(1, 2, three=3, four=4)
self.assertEqual(args, (1, 2)) self.assertEqual(args, (1, 2))
self.assertEqual(kwargs, {'three': 3, 'four': 4}) self.assertEqual(kwargs, {"three": 3, "four": 4})
def test_getattr(self): def test_getattr(self):
provider_one = providers.Object(1) provider_one = providers.Object(1)
@ -135,7 +135,7 @@ class SelectorTests(unittest.TestCase):
provider.override(overriding_provider1) provider.override(overriding_provider1)
provider.override(overriding_provider2) provider.override(overriding_provider2)
with self.selector.override('sample'): with self.selector.override("sample"):
self.assertEqual(provider(), 3) self.assertEqual(provider(), 3)
def test_providers_attribute(self): def test_providers_attribute(self):
@ -148,7 +148,7 @@ class SelectorTests(unittest.TestCase):
two=provider_two, two=provider_two,
) )
self.assertEqual(provider.providers, {'one': provider_one, 'two': provider_two}) self.assertEqual(provider.providers, {"one": provider_one, "two": provider_two})
def test_deepcopy(self): def test_deepcopy(self):
provider = providers.Selector(self.selector) provider = providers.Selector(self.selector)
@ -198,13 +198,13 @@ class SelectorTests(unittest.TestCase):
self.assertIsNot(provider, provider_copy) self.assertIsNot(provider, provider_copy)
self.assertIsInstance(provider_copy, providers.Selector) self.assertIsInstance(provider_copy, providers.Selector)
with self.selector.override('stdin'): with self.selector.override("stdin"):
self.assertIs(provider(), sys.stdin) self.assertIs(provider(), sys.stdin)
with self.selector.override('stdout'): with self.selector.override("stdout"):
self.assertIs(provider(), sys.stdout) self.assertIs(provider(), sys.stdout)
with self.selector.override('stderr'): with self.selector.override("stderr"):
self.assertIs(provider(), sys.stderr) self.assertIs(provider(), sys.stderr)
def test_repr(self): def test_repr(self):
@ -215,9 +215,9 @@ class SelectorTests(unittest.TestCase):
) )
self.assertIn( self.assertIn(
'<dependency_injector.providers.Selector({0}'.format(repr(self.selector)), "<dependency_injector.providers.Selector({0}".format(repr(self.selector)),
repr(provider), repr(provider),
) )
self.assertIn('one={0}'.format(repr(provider.one)), repr(provider)) self.assertIn("one={0}".format(repr(provider.one)), repr(provider))
self.assertIn('two={0}'.format(repr(provider.two)), repr(provider)) self.assertIn("two={0}".format(repr(provider.two)), repr(provider))
self.assertIn('at {0}'.format(hex(id(provider))), repr(provider)) self.assertIn("at {0}".format(hex(id(provider))), repr(provider))

View File

@ -18,8 +18,8 @@ class SingletonTests(_BaseSingletonTestCase, unittest.TestCase):
provider = self.singleton_cls(Example) provider = self.singleton_cls(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'Singleton({0}) at {1}>'.format( "Singleton({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -36,8 +36,8 @@ class DelegatedSingletonTests(_BaseSingletonTestCase, unittest.TestCase):
provider = self.singleton_cls(Example) provider = self.singleton_cls(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'DelegatedSingleton({0}) at {1}>'.format( "DelegatedSingleton({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -50,8 +50,8 @@ class ThreadLocalSingletonTests(_BaseSingletonTestCase, unittest.TestCase):
provider = providers.ThreadLocalSingleton(Example) provider = providers.ThreadLocalSingleton(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'ThreadLocalSingleton({0}) at {1}>'.format( "ThreadLocalSingleton({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -92,8 +92,8 @@ class DelegatedThreadLocalSingletonTests(_BaseSingletonTestCase,
provider = self.singleton_cls(Example) provider = self.singleton_cls(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'DelegatedThreadLocalSingleton({0}) at {1}>'.format( "DelegatedThreadLocalSingleton({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -106,8 +106,8 @@ class ThreadSafeSingletonTests(_BaseSingletonTestCase, unittest.TestCase):
provider = self.singleton_cls(Example) provider = self.singleton_cls(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'ThreadSafeSingleton({0}) at {1}>'.format( "ThreadSafeSingleton({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -125,8 +125,8 @@ class DelegatedThreadSafeSingletonTests(_BaseSingletonTestCase,
provider = self.singleton_cls(Example) provider = self.singleton_cls(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'DelegatedThreadSafeSingleton({0}) at {1}>'.format( "DelegatedThreadSafeSingleton({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))
@ -185,8 +185,8 @@ class AbstractSingletonTests(unittest.TestCase):
provider = providers.AbstractSingleton(Example) provider = providers.AbstractSingleton(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'AbstractSingleton({0}) at {1}>'.format( "AbstractSingleton({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))

View File

@ -13,8 +13,8 @@ class ContextLocalSingletonTests(_BaseSingletonTestCase, unittest.TestCase):
provider = providers.ContextLocalSingleton(Example) provider = providers.ContextLocalSingleton(Example)
self.assertEqual(repr(provider), self.assertEqual(repr(provider),
'<dependency_injector.providers.' "<dependency_injector.providers."
'ContextLocalSingleton({0}) at {1}>'.format( "ContextLocalSingleton({0}) at {1}>".format(
repr(Example), repr(Example),
hex(id(provider)))) hex(id(provider))))

View File

@ -101,7 +101,7 @@ class ProviderTests(unittest.TestCase):
class ObjectTests(unittest.TestCase): class ObjectTests(unittest.TestCase):
def test_traversal(self): def test_traversal(self):
provider = providers.Object('string') provider = providers.Object("string")
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
self.assertEqual(len(all_providers), 0) self.assertEqual(len(all_providers), 0)
@ -250,9 +250,9 @@ class CallableTests(unittest.TestCase):
self.assertEqual(len(all_providers), 0) self.assertEqual(len(all_providers), 0)
def test_traverse_args(self): def test_traverse_args(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Callable(list, 'foo', provider1, provider2) provider = providers.Callable(list, "foo", provider1, provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -261,9 +261,9 @@ class CallableTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_kwargs(self): def test_traverse_kwargs(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Callable(dict, foo='foo', bar=provider1, baz=provider2) provider = providers.Callable(dict, foo="foo", bar=provider1, baz=provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -272,10 +272,10 @@ class CallableTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_overridden(self): def test_traverse_overridden(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Callable(dict, 'foo') provider = providers.Callable(dict, "foo")
provider.override(provider1) provider.override(provider1)
provider.override(provider2) provider.override(provider2)
@ -287,8 +287,8 @@ class CallableTests(unittest.TestCase):
def test_traverse_provides(self): def test_traverse_provides(self):
provider1 = providers.Callable(list) provider1 = providers.Callable(list)
provider2 = providers.Object('bar') provider2 = providers.Object("bar")
provider3 = providers.Object('baz') provider3 = providers.Object("baz")
provider = providers.Callable(provider1, provider2) provider = providers.Callable(provider1, provider2)
provider.override(provider3) provider.override(provider3)
@ -304,7 +304,7 @@ class CallableTests(unittest.TestCase):
class ConfigurationTests(unittest.TestCase): class ConfigurationTests(unittest.TestCase):
def test_traverse(self): def test_traverse(self):
config = providers.Configuration(default={'option1': {'option2': 'option2'}}) config = providers.Configuration(default={"option1": {"option2": "option2"}})
option1 = config.option1 option1 = config.option1
option2 = config.option1.option2 option2 = config.option1.option2
option3 = config.option1[config.option1.option2] option3 = config.option1[config.option1.option2]
@ -327,7 +327,7 @@ class ConfigurationTests(unittest.TestCase):
self.assertIn(option, all_providers) self.assertIn(option, all_providers)
def test_traverse_overridden(self): def test_traverse_overridden(self):
options = {'option1': {'option2': 'option2'}} options = {"option1": {"option2": "option2"}}
config = providers.Configuration() config = providers.Configuration()
config.from_dict(options) config.from_dict(options)
@ -339,7 +339,7 @@ class ConfigurationTests(unittest.TestCase):
self.assertIs(overridden, config.last_overriding) self.assertIs(overridden, config.last_overriding)
def test_traverse_overridden_option_1(self): def test_traverse_overridden_option_1(self):
options = {'option2': 'option2'} options = {"option2": "option2"}
config = providers.Configuration() config = providers.Configuration()
config.option1.from_dict(options) config.option1.from_dict(options)
@ -350,7 +350,7 @@ class ConfigurationTests(unittest.TestCase):
self.assertIn(config.last_overriding, all_providers) self.assertIn(config.last_overriding, all_providers)
def test_traverse_overridden_option_2(self): def test_traverse_overridden_option_2(self):
options = {'option2': 'option2'} options = {"option2": "option2"}
config = providers.Configuration() config = providers.Configuration()
config.option1.from_dict(options) config.option1.from_dict(options)
@ -367,9 +367,9 @@ class FactoryTests(unittest.TestCase):
self.assertEqual(len(all_providers), 0) self.assertEqual(len(all_providers), 0)
def test_traverse_args(self): def test_traverse_args(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Factory(list, 'foo', provider1, provider2) provider = providers.Factory(list, "foo", provider1, provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -378,9 +378,9 @@ class FactoryTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_kwargs(self): def test_traverse_kwargs(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Factory(dict, foo='foo', bar=provider1, baz=provider2) provider = providers.Factory(dict, foo="foo", bar=provider1, baz=provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -389,10 +389,10 @@ class FactoryTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_attributes(self): def test_traverse_attributes(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Factory(dict) provider = providers.Factory(dict)
provider.add_attributes(foo='foo', bar=provider1, baz=provider2) provider.add_attributes(foo="foo", bar=provider1, baz=provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -401,10 +401,10 @@ class FactoryTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_overridden(self): def test_traverse_overridden(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Factory(dict, 'foo') provider = providers.Factory(dict, "foo")
provider.override(provider1) provider.override(provider1)
provider.override(provider2) provider.override(provider2)
@ -416,8 +416,8 @@ class FactoryTests(unittest.TestCase):
def test_traverse_provides(self): def test_traverse_provides(self):
provider1 = providers.Callable(list) provider1 = providers.Callable(list)
provider2 = providers.Object('bar') provider2 = providers.Object("bar")
provider3 = providers.Object('baz') provider3 = providers.Object("baz")
provider = providers.Factory(provider1, provider2) provider = providers.Factory(provider1, provider2)
provider.override(provider3) provider.override(provider3)
@ -452,9 +452,9 @@ class BaseSingletonTests(unittest.TestCase):
self.assertEqual(len(all_providers), 0) self.assertEqual(len(all_providers), 0)
def test_traverse_args(self): def test_traverse_args(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Singleton(list, 'foo', provider1, provider2) provider = providers.Singleton(list, "foo", provider1, provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -463,9 +463,9 @@ class BaseSingletonTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_kwargs(self): def test_traverse_kwargs(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Singleton(dict, foo='foo', bar=provider1, baz=provider2) provider = providers.Singleton(dict, foo="foo", bar=provider1, baz=provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -474,10 +474,10 @@ class BaseSingletonTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_attributes(self): def test_traverse_attributes(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Singleton(dict) provider = providers.Singleton(dict)
provider.add_attributes(foo='foo', bar=provider1, baz=provider2) provider.add_attributes(foo="foo", bar=provider1, baz=provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -486,10 +486,10 @@ class BaseSingletonTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_overridden(self): def test_traverse_overridden(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Singleton(dict, 'foo') provider = providers.Singleton(dict, "foo")
provider.override(provider1) provider.override(provider1)
provider.override(provider2) provider.override(provider2)
@ -501,8 +501,8 @@ class BaseSingletonTests(unittest.TestCase):
def test_traverse_provides(self): def test_traverse_provides(self):
provider1 = providers.Callable(list) provider1 = providers.Callable(list)
provider2 = providers.Object('bar') provider2 = providers.Object("bar")
provider3 = providers.Object('baz') provider3 = providers.Object("baz")
provider = providers.Singleton(provider1, provider2) provider = providers.Singleton(provider1, provider2)
provider.override(provider3) provider.override(provider3)
@ -518,9 +518,9 @@ class BaseSingletonTests(unittest.TestCase):
class ListTests(unittest.TestCase): class ListTests(unittest.TestCase):
def test_traverse_args(self): def test_traverse_args(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.List('foo', provider1, provider2) provider = providers.List("foo", provider1, provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -529,11 +529,11 @@ class ListTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_overridden(self): def test_traverse_overridden(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider3 = providers.List(provider1, provider2) provider3 = providers.List(provider1, provider2)
provider = providers.List('foo') provider = providers.List("foo")
provider.override(provider3) provider.override(provider3)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -547,9 +547,9 @@ class ListTests(unittest.TestCase):
class DictTests(unittest.TestCase): class DictTests(unittest.TestCase):
def test_traverse_kwargs(self): def test_traverse_kwargs(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Dict(foo='foo', bar=provider1, baz=provider2) provider = providers.Dict(foo="foo", bar=provider1, baz=provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -558,11 +558,11 @@ class DictTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_overridden(self): def test_traverse_overridden(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider3 = providers.Dict(bar=provider1, baz=provider2) provider3 = providers.Dict(bar=provider1, baz=provider2)
provider = providers.Dict(foo='foo') provider = providers.Dict(foo="foo")
provider.override(provider3) provider.override(provider3)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -581,9 +581,9 @@ class ResourceTests(unittest.TestCase):
self.assertEqual(len(all_providers), 0) self.assertEqual(len(all_providers), 0)
def test_traverse_args(self): def test_traverse_args(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Resource(list, 'foo', provider1, provider2) provider = providers.Resource(list, "foo", provider1, provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -592,9 +592,9 @@ class ResourceTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_kwargs(self): def test_traverse_kwargs(self):
provider1 = providers.Object('bar') provider1 = providers.Object("bar")
provider2 = providers.Object('baz') provider2 = providers.Object("baz")
provider = providers.Resource(dict, foo='foo', bar=provider1, baz=provider2) provider = providers.Resource(dict, foo="foo", bar=provider1, baz=provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -606,7 +606,7 @@ class ResourceTests(unittest.TestCase):
provider1 = providers.Resource(list) provider1 = providers.Resource(list)
provider2 = providers.Resource(tuple) provider2 = providers.Resource(tuple)
provider = providers.Resource(dict, 'foo') provider = providers.Resource(dict, "foo")
provider.override(provider1) provider.override(provider1)
provider.override(provider2) provider.override(provider2)
@ -676,7 +676,7 @@ class ContainerTests(unittest.TestCase):
class SelectorTests(unittest.TestCase): class SelectorTests(unittest.TestCase):
def test_traverse(self): def test_traverse(self):
switch = lambda: 'provider1' switch = lambda: "provider1"
provider1 = providers.Callable(list) provider1 = providers.Callable(list)
provider2 = providers.Callable(dict) provider2 = providers.Callable(dict)
@ -693,7 +693,7 @@ class SelectorTests(unittest.TestCase):
self.assertIn(provider2, all_providers) self.assertIn(provider2, all_providers)
def test_traverse_switch(self): def test_traverse_switch(self):
switch = providers.Callable(lambda: 'provider1') switch = providers.Callable(lambda: "provider1")
provider1 = providers.Callable(list) provider1 = providers.Callable(list)
provider2 = providers.Callable(dict) provider2 = providers.Callable(dict)
@ -713,10 +713,10 @@ class SelectorTests(unittest.TestCase):
def test_traverse_overridden(self): def test_traverse_overridden(self):
provider1 = providers.Callable(list) provider1 = providers.Callable(list)
provider2 = providers.Callable(dict) provider2 = providers.Callable(dict)
selector1 = providers.Selector(lambda: 'provider1', provider1=provider1) selector1 = providers.Selector(lambda: "provider1", provider1=provider1)
provider = providers.Selector( provider = providers.Selector(
lambda: 'provider2', lambda: "provider2",
provider2=provider2, provider2=provider2,
) )
provider.override(selector1) provider.override(selector1)
@ -788,7 +788,7 @@ class ItemGetterTests(unittest.TestCase):
def test_traverse(self): def test_traverse(self):
provider1 = providers.Provider() provider1 = providers.Provider()
provided = provider1.provided provided = provider1.provided
provider = provided['item'] provider = provided["item"]
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -801,7 +801,7 @@ class ItemGetterTests(unittest.TestCase):
provided = provider1.provided provided = provider1.provided
provider2 = providers.Provider() provider2 = providers.Provider()
provider = provided['item'] provider = provided["item"]
provider.override(provider2) provider.override(provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -832,7 +832,7 @@ class MethodCallerTests(unittest.TestCase):
provided = provider1.provided provided = provider1.provided
method = provided.method method = provided.method
provider2 = providers.Provider() provider2 = providers.Provider()
provider = method.call('foo', provider2) provider = method.call("foo", provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())
@ -847,7 +847,7 @@ class MethodCallerTests(unittest.TestCase):
provided = provider1.provided provided = provider1.provided
method = provided.method method = provided.method
provider2 = providers.Provider() provider2 = providers.Provider()
provider = method.call(foo='foo', bar=provider2) provider = method.call(foo="foo", bar=provider2)
all_providers = list(provider.traverse()) all_providers = list(provider.traverse())

View File

@ -17,7 +17,7 @@ class IsProviderTests(unittest.TestCase):
self.assertFalse(providers.is_provider(providers.Provider)) self.assertFalse(providers.is_provider(providers.Provider))
def test_with_string(self): def test_with_string(self):
self.assertFalse(providers.is_provider('some_string')) self.assertFalse(providers.is_provider("some_string"))
def test_with_object(self): def test_with_object(self):
self.assertFalse(providers.is_provider(object())) self.assertFalse(providers.is_provider(object()))
@ -50,7 +50,7 @@ class EnsureIsProviderTests(unittest.TestCase):
def test_with_string(self): def test_with_string(self):
self.assertRaises(errors.Error, self.assertRaises(errors.Error,
providers.ensure_is_provider, providers.ensure_is_provider,
'some_string') "some_string")
def test_with_object(self): def test_with_object(self):
self.assertRaises(errors.Error, providers.ensure_is_provider, object()) self.assertRaises(errors.Error, providers.ensure_is_provider, object())

View File

@ -11,7 +11,7 @@ class BaseService:
def __init__(self) -> None: def __init__(self) -> None:
self.logger = logging.getLogger( self.logger = logging.getLogger(
f'{__name__}.{self.__class__.__name__}', f"{__name__}.{self.__class__.__name__}",
) )
@ -22,8 +22,8 @@ class UserService(BaseService):
super().__init__() super().__init__()
def get_user(self, email: str) -> Dict[str, str]: def get_user(self, email: str) -> Dict[str, str]:
self.logger.debug('User %s has been found in database', email) self.logger.debug("User %s has been found in database", email)
return {'email': email, 'password_hash': '...'} return {"email": email, "password_hash": "..."}
class AuthService(BaseService): class AuthService(BaseService):
@ -36,8 +36,8 @@ class AuthService(BaseService):
def authenticate(self, user: Dict[str, str], password: str) -> None: def authenticate(self, user: Dict[str, str], password: str) -> None:
assert password is not None assert password is not None
self.logger.debug( self.logger.debug(
'User %s has been successfully authenticated', "User %s has been successfully authenticated",
user['email'], user["email"],
) )
@ -50,7 +50,7 @@ class PhotoService(BaseService):
def upload_photo(self, user: Dict[str, str], photo_path: str) -> None: def upload_photo(self, user: Dict[str, str], photo_path: str) -> None:
self.logger.debug( self.logger.debug(
'Photo %s has been successfully uploaded by user %s', "Photo %s has been successfully uploaded by user %s",
photo_path, photo_path,
user['email'], user["email"],
) )

View File

@ -9,7 +9,7 @@ from dependency_injector.wiring import inject, Provide
class Service: class Service:
async def process(self) -> str: async def process(self) -> str:
return 'Ok' return "Ok"
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -21,19 +21,19 @@ app = FastAPI()
security = HTTPBasic() security = HTTPBasic()
@app.api_route('/') @app.api_route("/")
@inject @inject
async def index(service: Service = Depends(Provide[Container.service])): async def index(service: Service = Depends(Provide[Container.service])):
result = await service.process() result = await service.process()
return {'result': result} return {"result": result}
@app.get('/auth') @app.get("/auth")
@inject @inject
def read_current_user( def read_current_user(
credentials: HTTPBasicCredentials = Depends(security) credentials: HTTPBasicCredentials = Depends(security)
): ):
return {'username': credentials.username, 'password': credentials.password} return {"username": credentials.username, "password": credentials.password}
container = Container() container = Container()

View File

@ -1,5 +1,3 @@
import sys
from flask import Flask, jsonify, request, current_app, session, g from flask import Flask, jsonify, request, current_app, session, g
from flask import _request_ctx_stack, _app_ctx_stack from flask import _request_ctx_stack, _app_ctx_stack
from dependency_injector import containers, providers from dependency_injector import containers, providers
@ -12,7 +10,7 @@ _request_ctx_stack, _app_ctx_stack # noqa
class Service: class Service:
def process(self) -> str: def process(self) -> str:
return 'Ok' return "Ok"
class Container(containers.DeclarativeContainer): class Container(containers.DeclarativeContainer):
@ -23,12 +21,12 @@ class Container(containers.DeclarativeContainer):
app = Flask(__name__) app = Flask(__name__)
@app.route('/') @app.route("/")
@inject @inject
def index(service: Service = Provide[Container.service]): def index(service: Service = Provide[Container.service]):
result = service.process() result = service.process()
return jsonify({'result': result}) return jsonify({"result": result})
container = Container() container = Container()
container.wire(modules=[sys.modules[__name__]]) container.wire(modules=[__name__])

View File

@ -2,7 +2,7 @@
import sys import sys
if 'pypy' not in sys.version.lower(): if "pypy" not in sys.version.lower():
import numpy # noqa import numpy # noqa
from numpy import * # noqa from numpy import * # noqa

View File

@ -96,7 +96,7 @@ def test_provider_provider(service_provider: Callable[..., Service] = Provider[C
@inject @inject
def test_provided_instance(some_value: int = Provide[Container.service.provided.foo['bar'].call()]): def test_provided_instance(some_value: int = Provide[Container.service.provided.foo["bar"].call()]):
return some_value return some_value

View File

@ -2,4 +2,4 @@
from queue import Queue from queue import Queue
__all__ = ('Queue',) __all__ = ("Queue",)

View File

@ -36,15 +36,15 @@ class Container(containers.DeclarativeContainer):
@inject @inject
async def async_injection( async def async_injection(
resource1: object = Provide['resource1'], resource1: object = Provide["resource1"],
resource2: object = Provide['resource2'], resource2: object = Provide["resource2"],
): ):
return resource1, resource2 return resource1, resource2
@inject @inject
async def async_injection_with_closing( async def async_injection_with_closing(
resource1: object = Closing[Provide['resource1']], resource1: object = Closing[Provide["resource1"]],
resource2: object = Closing[Provide['resource2']], resource2: object = Closing[Provide["resource2"]],
): ):
return resource1, resource2 return resource1, resource2

View File

@ -19,58 +19,58 @@ from .container import Container
from .service import Service from .service import Service
service: Service = Provide['service'] service: Service = Provide["service"]
service_provider: Callable[..., Service] = Provider['service'] service_provider: Callable[..., Service] = Provider["service"]
undefined: Callable = Provide['undefined'] undefined: Callable = Provide["undefined"]
class TestClass: class TestClass:
service: Service = Provide['service'] service: Service = Provide["service"]
service_provider: Callable[..., Service] = Provider['service'] service_provider: Callable[..., Service] = Provider["service"]
undefined: Callable = Provide['undefined'] undefined: Callable = Provide["undefined"]
@inject @inject
def __init__(self, service: Service = Provide['service']): def __init__(self, service: Service = Provide["service"]):
self.service = service self.service = service
@inject @inject
def method(self, service: Service = Provide['service']): def method(self, service: Service = Provide["service"]):
return service return service
@classmethod @classmethod
@inject @inject
def class_method(cls, service: Service = Provide['service']): def class_method(cls, service: Service = Provide["service"]):
return service return service
@staticmethod @staticmethod
@inject @inject
def static_method(service: Service = Provide['service']): def static_method(service: Service = Provide["service"]):
return service return service
@inject @inject
def test_function(service: Service = Provide['service']): def test_function(service: Service = Provide["service"]):
return service return service
@inject @inject
def test_function_provider(service_provider: Callable[..., Service] = Provider['service']): def test_function_provider(service_provider: Callable[..., Service] = Provider["service"]):
service = service_provider() service = service_provider()
return service return service
@inject @inject
def test_config_value( def test_config_value(
value_int: int = Provide['config.a.b.c', as_int()], value_int: int = Provide["config.a.b.c", as_int()],
value_float: float = Provide['config.a.b.c', as_float()], value_float: float = Provide["config.a.b.c", as_float()],
value_str: str = Provide['config.a.b.c', as_(str)], value_str: str = Provide["config.a.b.c", as_(str)],
value_decimal: Decimal = Provide['config.a.b.c', as_(Decimal)], value_decimal: Decimal = Provide["config.a.b.c", as_(Decimal)],
value_required: str = Provide['config.a.b.c', required()], value_required: str = Provide["config.a.b.c", required()],
value_required_int: int = Provide['config.a.b.c', required().as_int()], value_required_int: int = Provide["config.a.b.c", required().as_int()],
value_required_float: float = Provide['config.a.b.c', required().as_float()], value_required_float: float = Provide["config.a.b.c", required().as_float()],
value_required_str: str = Provide['config.a.b.c', required().as_(str)], value_required_str: str = Provide["config.a.b.c", required().as_(str)],
value_required_decimal: str = Provide['config.a.b.c', required().as_(Decimal)], value_required_decimal: str = Provide["config.a.b.c", required().as_(Decimal)],
): ):
return ( return (
value_int, value_int,
@ -87,36 +87,36 @@ def test_config_value(
@inject @inject
def test_config_value_required_undefined( def test_config_value_required_undefined(
value_required: int = Provide['config.a.b.c', required()], value_required: int = Provide["config.a.b.c", required()],
): ):
return value_required return value_required
@inject @inject
def test_provide_provider(service_provider: Callable[..., Service] = Provide['service.provider']): def test_provide_provider(service_provider: Callable[..., Service] = Provide["service.provider"]):
service = service_provider() service = service_provider()
return service return service
@inject @inject
def test_provided_instance(some_value: int = Provide['service', provided().foo['bar'].call()]): def test_provided_instance(some_value: int = Provide["service", provided().foo["bar"].call()]):
return some_value return some_value
@inject @inject
def test_subcontainer_provider(some_value: int = Provide['sub.int_object']): def test_subcontainer_provider(some_value: int = Provide["sub.int_object"]):
return some_value return some_value
@inject @inject
def test_config_invariant(some_value: int = Provide['config.option', invariant('config.switch')]): def test_config_invariant(some_value: int = Provide["config.option", invariant("config.switch")]):
return some_value return some_value
@inject @inject
def test_provide_from_different_containers( def test_provide_from_different_containers(
service: Service = Provide['service'], service: Service = Provide["service"],
some_value: int = Provide['int_object'], some_value: int = Provide["int_object"],
): ):
return service, some_value return service, some_value
@ -131,9 +131,9 @@ class ClassDecorator:
@ClassDecorator @ClassDecorator
@inject @inject
def test_class_decorator(service: Service = Provide['service']): def test_class_decorator(service: Service = Provide["service"]):
return service return service
def test_container(container: Container = Provide['<container>']): def test_container(container: Container = Provide["<container>"]):
return container.service() return container.service()

View File

@ -4,5 +4,5 @@ from ...service import Service
@inject @inject
def test_function(service: Service = Provide['service']): def test_function(service: Service = Provide["service"]):
return service return service

View File

@ -33,5 +33,5 @@ class Container(containers.DeclarativeContainer):
@inject @inject
def test_function(service: Service = Closing[Provide['service']]): def test_function(service: Service = Closing[Provide["service"]]):
return service return service

View File

@ -14,19 +14,19 @@ class FromSchemaTests(unittest.TestCase):
container = containers.DynamicContainer() container = containers.DynamicContainer()
container.from_schema( container.from_schema(
{ {
'version': '1', "version": "1",
'container': { "container": {
'provider1': { "provider1": {
'provider': 'Factory', "provider": "Factory",
'provides': 'list', "provides": "list",
'args': [1, 2, 3], "args": [1, 2, 3],
}, },
'provider2': { "provider2": {
'provider': 'Factory', "provider": "Factory",
'provides': 'dict', "provides": "dict",
'kwargs': { "kwargs": {
'one': 'container.provider1', "one": "container.provider1",
'two': 2, "two": 2,
}, },
}, },
}, },
@ -39,7 +39,7 @@ class FromSchemaTests(unittest.TestCase):
self.assertIsInstance(container.provider2, providers.Factory) self.assertIsInstance(container.provider2, providers.Factory)
self.assertIs(container.provider2.provides, dict) self.assertIs(container.provider2.provides, dict)
self.assertEqual(container.provider2.kwargs, {'one': container.provider1, 'two': 2}) self.assertEqual(container.provider2.kwargs, {"one": container.provider1, "two": 2})
class FromYamlSchemaTests(unittest.TestCase): class FromYamlSchemaTests(unittest.TestCase):
@ -48,8 +48,8 @@ class FromYamlSchemaTests(unittest.TestCase):
container = containers.DynamicContainer() container = containers.DynamicContainer()
with tempfile.TemporaryDirectory() as tmp_dir: with tempfile.TemporaryDirectory() as tmp_dir:
schema_path = os.path.join(tmp_dir, 'schema.yml') schema_path = os.path.join(tmp_dir, "schema.yml")
with open(schema_path, 'w') as file: with open(schema_path, "w") as file:
file.write(""" file.write("""
version: "1" version: "1"
container: container:
@ -76,14 +76,14 @@ class FromYamlSchemaTests(unittest.TestCase):
self.assertIsInstance(container.provider2, providers.Factory) self.assertIsInstance(container.provider2, providers.Factory)
self.assertIs(container.provider2.provides, dict) self.assertIs(container.provider2.provides, dict)
self.assertEqual(container.provider2.kwargs, {'one': container.provider1, 'two': 2}) self.assertEqual(container.provider2.kwargs, {"one": container.provider1, "two": 2})
def test_with_loader(self): def test_with_loader(self):
container = containers.DynamicContainer() container = containers.DynamicContainer()
with tempfile.TemporaryDirectory() as tmp_dir: with tempfile.TemporaryDirectory() as tmp_dir:
schema_path = os.path.join(tmp_dir, 'schema.yml') schema_path = os.path.join(tmp_dir, "schema.yml")
with open(schema_path, 'w') as file: with open(schema_path, "w") as file:
file.write(""" file.write("""
version: "1" version: "1"
container: container:
@ -109,13 +109,13 @@ class FromYamlSchemaTests(unittest.TestCase):
container = containers.DynamicContainer() container = containers.DynamicContainer()
with no_yaml_module(): with no_yaml_module():
with self.assertRaises(errors.Error) as error: with self.assertRaises(errors.Error) as error:
container.from_yaml_schema('./no-yaml-installed.yml') container.from_yaml_schema("./no-yaml-installed.yml")
self.assertEqual( self.assertEqual(
error.exception.args[0], error.exception.args[0],
'Unable to load yaml schema - PyYAML is not installed. ' "Unable to load yaml schema - PyYAML is not installed. "
'Install PyYAML or install Dependency Injector with yaml extras: ' "Install PyYAML or install Dependency Injector with yaml extras: "
'"pip install dependency-injector[yaml]"', "\"pip install dependency-injector[yaml]\"",
) )
@ -125,24 +125,24 @@ class FromJsonSchemaTests(unittest.TestCase):
container = containers.DynamicContainer() container = containers.DynamicContainer()
with tempfile.TemporaryDirectory() as tmp_dir: with tempfile.TemporaryDirectory() as tmp_dir:
schema_path = os.path.join(tmp_dir, 'schema.json') schema_path = os.path.join(tmp_dir, "schema.json")
with open(schema_path, 'w') as file: with open(schema_path, "w") as file:
file.write( file.write(
json.dumps( json.dumps(
{ {
'version': '1', "version": "1",
'container': { "container": {
'provider1': { "provider1": {
'provider': 'Factory', "provider": "Factory",
'provides': 'list', "provides": "list",
'args': [1, 2, 3], "args": [1, 2, 3],
}, },
'provider2': { "provider2": {
'provider': 'Factory', "provider": "Factory",
'provides': 'dict', "provides": "dict",
'kwargs': { "kwargs": {
'one': 'container.provider1', "one": "container.provider1",
'two': 2, "two": 2,
}, },
}, },
}, },
@ -159,4 +159,4 @@ class FromJsonSchemaTests(unittest.TestCase):
self.assertIsInstance(container.provider2, providers.Factory) self.assertIsInstance(container.provider2, providers.Factory)
self.assertIs(container.provider2.provides, dict) self.assertIs(container.provider2.provides, dict)
self.assertEqual(container.provider2.kwargs, {'one': container.provider1, 'two': 2}) self.assertEqual(container.provider2.kwargs, {"one": container.provider1, "two": 2})

View File

@ -8,13 +8,13 @@ import os
_TOP_DIR = os.path.abspath( _TOP_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../', "../",
)), )),
) )
_SAMPLES_DIR = os.path.abspath( _SAMPLES_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../samples/', "../samples/",
)), )),
) )
import sys import sys
@ -27,17 +27,17 @@ class TestSchemaSingleContainer(unittest.TestCase):
def test(self): def test(self):
container = containers.DynamicContainer() container = containers.DynamicContainer()
container.from_yaml_schema(f'{_SAMPLES_DIR}/schemasample/container-single.yml') container.from_yaml_schema(f"{_SAMPLES_DIR}/schemasample/container-single.yml")
container.config.from_dict({ container.config.from_dict({
'database': { "database": {
'dsn': ':memory:', "dsn": ":memory:",
}, },
'aws': { "aws": {
'access_key_id': 'KEY', "access_key_id": "KEY",
'secret_access_key': 'SECRET', "secret_access_key": "SECRET",
}, },
'auth': { "auth": {
'token_ttl': 3600, "token_ttl": 3600,
}, },
}) })
@ -90,17 +90,17 @@ class TestSchemaMultipleContainers(unittest.TestCase):
def test(self): def test(self):
container = containers.DynamicContainer() container = containers.DynamicContainer()
container.from_yaml_schema(f'{_SAMPLES_DIR}/schemasample/container-multiple.yml') container.from_yaml_schema(f"{_SAMPLES_DIR}/schemasample/container-multiple.yml")
container.core.config.from_dict({ container.core.config.from_dict({
'database': { "database": {
'dsn': ':memory:', "dsn": ":memory:",
}, },
'aws': { "aws": {
'access_key_id': 'KEY', "access_key_id": "KEY",
'secret_access_key': 'SECRET', "secret_access_key": "SECRET",
}, },
'auth': { "auth": {
'token_ttl': 3600, "token_ttl": 3600,
}, },
}) })
@ -153,17 +153,17 @@ class TestSchemaMultipleContainersReordered(unittest.TestCase):
def test(self): def test(self):
container = containers.DynamicContainer() container = containers.DynamicContainer()
container.from_yaml_schema(f'{_SAMPLES_DIR}/schemasample/container-multiple-reordered.yml') container.from_yaml_schema(f"{_SAMPLES_DIR}/schemasample/container-multiple-reordered.yml")
container.core.config.from_dict({ container.core.config.from_dict({
'database': { "database": {
'dsn': ':memory:', "dsn": ":memory:",
}, },
'aws': { "aws": {
'access_key_id': 'KEY', "access_key_id": "KEY",
'secret_access_key': 'SECRET', "secret_access_key": "SECRET",
}, },
'auth': { "auth": {
'token_ttl': 3600, "token_ttl": 3600,
}, },
}) })
@ -216,17 +216,17 @@ class TestSchemaMultipleContainersWithInlineProviders(unittest.TestCase):
def test(self): def test(self):
container = containers.DynamicContainer() container = containers.DynamicContainer()
container.from_yaml_schema(f'{_SAMPLES_DIR}/schemasample/container-multiple-inline.yml') container.from_yaml_schema(f"{_SAMPLES_DIR}/schemasample/container-multiple-inline.yml")
container.core.config.from_dict({ container.core.config.from_dict({
'database': { "database": {
'dsn': ':memory:', "dsn": ":memory:",
}, },
'aws': { "aws": {
'access_key_id': 'KEY', "access_key_id": "KEY",
'secret_access_key': 'SECRET', "secret_access_key": "SECRET",
}, },
'auth': { "auth": {
'token_ttl': 3600, "token_ttl": 3600,
}, },
}) })
@ -277,18 +277,18 @@ class TestSchemaMultipleContainersWithInlineProviders(unittest.TestCase):
class TestSchemaBoto3Session(unittest.TestCase): class TestSchemaBoto3Session(unittest.TestCase):
@unittest.skip('Boto3 tries to connect to the internet') @unittest.skip("Boto3 tries to connect to the internet")
def test(self): def test(self):
container = containers.DynamicContainer() container = containers.DynamicContainer()
container.from_yaml_schema(f'{_SAMPLES_DIR}/schemasample/container-boto3-session.yml') container.from_yaml_schema(f"{_SAMPLES_DIR}/schemasample/container-boto3-session.yml")
container.config.from_dict( container.config.from_dict(
{ {
'aws_access_key_id': 'key', "aws_access_key_id": "key",
'aws_secret_access_key': 'secret', "aws_secret_access_key": "secret",
'aws_session_token': 'token', "aws_session_token": "token",
'aws_region_name': 'us-east-1', "aws_region_name": "us-east-1",
}, },
) )
self.assertEqual(container.s3_client().__class__.__name__, 'S3') self.assertEqual(container.s3_client().__class__.__name__, "S3")
self.assertEqual(container.sqs_client().__class__.__name__, 'SQS') self.assertEqual(container.sqs_client().__class__.__name__, "SQS")

View File

@ -8,4 +8,4 @@ from dependency_injector import __version__
class VersionTest(unittest.TestCase): class VersionTest(unittest.TestCase):
def test_version_follows_semantic_versioning(self): def test_version_follows_semantic_versioning(self):
self.assertEqual(len(__version__.split('.')), 3) self.assertEqual(len(__version__.split(".")), 3)

View File

@ -18,13 +18,13 @@ import os
_TOP_DIR = os.path.abspath( _TOP_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../', "../",
)), )),
) )
_SAMPLES_DIR = os.path.abspath( _SAMPLES_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../samples/', "../samples/",
)), )),
) )
import sys import sys
@ -44,7 +44,7 @@ class WiringTest(unittest.TestCase):
container: Container container: Container
def setUp(self) -> None: def setUp(self) -> None:
self.container = Container(config={'a': {'b': {'c': 10}}}) self.container = Container(config={"a": {"b": {"c": 10}}})
self.container.wire( self.container.wire(
modules=[module], modules=[module],
packages=[package], packages=[package],
@ -77,7 +77,7 @@ class WiringTest(unittest.TestCase):
self.container.wire(modules=[module_invalid_attr_injection]) self.container.wire(modules=[module_invalid_attr_injection])
self.assertEqual( self.assertEqual(
str(context.exception), str(context.exception),
'Unknown type of marker {0}'.format(module_invalid_attr_injection.service), "Unknown type of marker {0}".format(module_invalid_attr_injection.service),
) )
def test_class_wiring(self): def test_class_wiring(self):
@ -153,17 +153,17 @@ class WiringTest(unittest.TestCase):
self.assertEqual(value_int, 10) self.assertEqual(value_int, 10)
self.assertEqual(value_float, 10.0) self.assertEqual(value_float, 10.0)
self.assertEqual(value_str, '10') self.assertEqual(value_str, "10")
self.assertEqual(value_decimal, Decimal(10)) self.assertEqual(value_decimal, Decimal(10))
self.assertEqual(value_required, 10) self.assertEqual(value_required, 10)
self.assertEqual(value_required_int, 10) self.assertEqual(value_required_int, 10)
self.assertEqual(value_required_float, 10.0) self.assertEqual(value_required_float, 10.0)
self.assertEqual(value_required_str, '10') self.assertEqual(value_required_str, "10")
self.assertEqual(value_required_decimal, Decimal(10)) self.assertEqual(value_required_decimal, Decimal(10))
def test_configuration_option_required_undefined(self): def test_configuration_option_required_undefined(self):
self.container.config.reset_override() self.container.config.reset_override()
with self.assertRaisesRegex(errors.Error, 'Undefined configuration option "config.a.b.c"'): with self.assertRaisesRegex(errors.Error, "Undefined configuration option \"config.a.b.c\""):
module.test_config_value_required_undefined() module.test_config_value_required_undefined()
def test_provide_provider(self): def test_provide_provider(self):
@ -177,7 +177,7 @@ class WiringTest(unittest.TestCase):
def test_provided_instance(self): def test_provided_instance(self):
class TestService: class TestService:
foo = { foo = {
'bar': lambda: 10, "bar": lambda: 10,
} }
with self.container.service.override(TestService()): with self.container.service.override(TestService()):
@ -190,22 +190,22 @@ class WiringTest(unittest.TestCase):
def test_config_invariant(self): def test_config_invariant(self):
config = { config = {
'option': { "option": {
'a': 1, "a": 1,
'b': 2, "b": 2,
}, },
'switch': 'a', "switch": "a",
} }
self.container.config.from_dict(config) self.container.config.from_dict(config)
value_default = module.test_config_invariant() value_default = module.test_config_invariant()
self.assertEqual(value_default, 1) self.assertEqual(value_default, 1)
with self.container.config.switch.override('a'): with self.container.config.switch.override("a"):
value_a = module.test_config_invariant() value_a = module.test_config_invariant()
self.assertEqual(value_a, 1) self.assertEqual(value_a, 1)
with self.container.config.switch.override('b'): with self.container.config.switch.override("b"):
value_b = module.test_config_invariant() value_b = module.test_config_invariant()
self.assertEqual(value_b, 2) self.assertEqual(value_b, 2)
@ -364,7 +364,7 @@ class WiringWithStringModuleAndPackageNamesTest(unittest.TestCase):
class ModuleAsPackageTest(unittest.TestCase): class ModuleAsPackageTest(unittest.TestCase):
def setUp(self): def setUp(self):
self.container = Container(config={'a': {'b': {'c': 10}}}) self.container = Container(config={"a": {"b": {"c": 10}}})
self.addCleanup(self.container.unwire) self.addCleanup(self.container.unwire)
def test_module_as_package_wiring(self): def test_module_as_package_wiring(self):
@ -484,7 +484,7 @@ class AutoLoaderTest(unittest.TestCase):
container: Container container: Container
def setUp(self) -> None: def setUp(self) -> None:
self.container = Container(config={'a': {'b': {'c': 10}}}) self.container = Container(config={"a": {"b": {"c": 10}}})
importlib.reload(module) importlib.reload(module)
def tearDown(self) -> None: def tearDown(self) -> None:
@ -500,7 +500,7 @@ class AutoLoaderTest(unittest.TestCase):
def test_register_container(self): def test_register_container(self):
register_loader_containers(self.container) register_loader_containers(self.container)
importlib.reload(module) importlib.reload(module)
importlib.import_module('wiringsamples.imports') importlib.import_module("wiringsamples.imports")
service = module.test_function() service = module.test_function()
self.assertIsInstance(service, Service) self.assertIsInstance(service, Service)

View File

@ -18,13 +18,13 @@ import os
_TOP_DIR = os.path.abspath( _TOP_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../', "../",
)), )),
) )
_SAMPLES_DIR = os.path.abspath( _SAMPLES_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../samples/', "../samples/",
)), )),
) )
import sys import sys
@ -43,7 +43,7 @@ class WiringTest(unittest.TestCase):
container: Container container: Container
def setUp(self) -> None: def setUp(self) -> None:
self.container = Container(config={'a': {'b': {'c': 10}}}) self.container = Container(config={"a": {"b": {"c": 10}}})
self.container.wire( self.container.wire(
modules=[module], modules=[module],
packages=[package], packages=[package],
@ -143,17 +143,17 @@ class WiringTest(unittest.TestCase):
self.assertEqual(value_int, 10) self.assertEqual(value_int, 10)
self.assertEqual(value_float, 10.0) self.assertEqual(value_float, 10.0)
self.assertEqual(value_str, '10') self.assertEqual(value_str, "10")
self.assertEqual(value_decimal, Decimal(10)) self.assertEqual(value_decimal, Decimal(10))
self.assertEqual(value_required, 10) self.assertEqual(value_required, 10)
self.assertEqual(value_required_int, 10) self.assertEqual(value_required_int, 10)
self.assertEqual(value_required_float, 10.0) self.assertEqual(value_required_float, 10.0)
self.assertEqual(value_required_str, '10') self.assertEqual(value_required_str, "10")
self.assertEqual(value_required_decimal, Decimal(10)) self.assertEqual(value_required_decimal, Decimal(10))
def test_configuration_option_required_undefined(self): def test_configuration_option_required_undefined(self):
self.container.config.reset_override() self.container.config.reset_override()
with self.assertRaisesRegex(errors.Error, 'Undefined configuration option "config.a.b.c"'): with self.assertRaisesRegex(errors.Error, "Undefined configuration option \"config.a.b.c\""):
module.test_config_value_required_undefined() module.test_config_value_required_undefined()
def test_provide_provider(self): def test_provide_provider(self):
@ -163,7 +163,7 @@ class WiringTest(unittest.TestCase):
def test_provided_instance(self): def test_provided_instance(self):
class TestService: class TestService:
foo = { foo = {
'bar': lambda: 10, "bar": lambda: 10,
} }
with self.container.service.override(TestService()): with self.container.service.override(TestService()):
@ -176,22 +176,22 @@ class WiringTest(unittest.TestCase):
def test_config_invariant(self): def test_config_invariant(self):
config = { config = {
'option': { "option": {
'a': 1, "a": 1,
'b': 2, "b": 2,
}, },
'switch': 'a', "switch": "a",
} }
self.container.config.from_dict(config) self.container.config.from_dict(config)
value_default = module.test_config_invariant() value_default = module.test_config_invariant()
self.assertEqual(value_default, 1) self.assertEqual(value_default, 1)
with self.container.config.switch.override('a'): with self.container.config.switch.override("a"):
value_a = module.test_config_invariant() value_a = module.test_config_invariant()
self.assertEqual(value_a, 1) self.assertEqual(value_a, 1)
with self.container.config.switch.override('b'): with self.container.config.switch.override("b"):
value_b = module.test_config_invariant() value_b = module.test_config_invariant()
self.assertEqual(value_b, 2) self.assertEqual(value_b, 2)
@ -418,7 +418,7 @@ class AutoLoaderTest(unittest.TestCase):
container: Container container: Container
def setUp(self) -> None: def setUp(self) -> None:
self.container = Container(config={'a': {'b': {'c': 10}}}) self.container = Container(config={"a": {"b": {"c": 10}}})
importlib.reload(module) importlib.reload(module)
def tearDown(self) -> None: def tearDown(self) -> None:

View File

@ -5,13 +5,13 @@ import os
_TOP_DIR = os.path.abspath( _TOP_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../', "../",
)), )),
) )
_SAMPLES_DIR = os.path.abspath( _SAMPLES_DIR = os.path.abspath(
os.path.sep.join(( os.path.sep.join((
os.path.dirname(__file__), os.path.dirname(__file__),
'../samples/', "../samples/",
)), )),
) )
import sys import sys
@ -29,7 +29,7 @@ class WiringFastAPITest(AsyncTestCase):
def setUp(self) -> None: def setUp(self) -> None:
super().setUp() super().setUp()
self.client = AsyncClient(app=web.app, base_url='http://test') self.client = AsyncClient(app=web.app, base_url="http://test")
def tearDown(self) -> None: def tearDown(self) -> None:
self._run(self.client.aclose()) self._run(self.client.aclose())
@ -38,15 +38,15 @@ class WiringFastAPITest(AsyncTestCase):
def test_depends_marker_injection(self): def test_depends_marker_injection(self):
class ServiceMock: class ServiceMock:
async def process(self): async def process(self):
return 'Foo' return "Foo"
with web.container.service.override(ServiceMock()): with web.container.service.override(ServiceMock()):
response = self._run(self.client.get('/')) response = self._run(self.client.get("/"))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.json(), {'result': 'Foo'}) self.assertEqual(response.json(), {"result": "Foo"})
def test_depends_injection(self): def test_depends_injection(self):
response = self._run(self.client.get('/auth', auth=('john_smith', 'secret'))) response = self._run(self.client.get("/auth", auth=("john_smith", "secret")))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.json(), {'username': 'john_smith', 'password': 'secret'}) self.assertEqual(response.json(), {"username": "john_smith", "password": "secret"})