Skip to content

Commit 2dabfaa

Browse files
committed
Add test container with element after resource
1 parent 027ccfa commit 2dabfaa

File tree

1 file changed

+34
-2
lines changed

1 file changed

+34
-2
lines changed

tests/unit/samples/wiringstringids/resourceclosing.py

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,24 @@
22
from dependency_injector.wiring import inject, Provide, Closing
33

44

5+
class Singleton:
6+
pass
7+
8+
59
class Service:
610
init_counter: int = 0
711
shutdown_counter: int = 0
12+
dependency: Singleton = None
813

914
@classmethod
1015
def reset_counter(cls):
1116
cls.init_counter = 0
1217
cls.shutdown_counter = 0
1318

1419
@classmethod
15-
def init(cls):
20+
def init(cls, dependency: Singleton = None):
21+
if dependency:
22+
cls.dependency = dependency
1623
cls.init_counter += 1
1724

1825
@classmethod
@@ -37,11 +44,36 @@ def init_service():
3744
service.shutdown()
3845

3946

47+
def init_service_with_singleton(singleton: Singleton):
48+
service = Service()
49+
service.init(singleton)
50+
yield service
51+
service.shutdown()
52+
53+
4054
class Container(containers.DeclarativeContainer):
4155

4256
service = providers.Resource(init_service)
4357
factory_service = providers.Factory(FactoryService, service)
44-
factory_service_kwargs = providers.Factory(FactoryService, service=service)
58+
factory_service_kwargs = providers.Factory(
59+
FactoryService,
60+
service=service
61+
)
62+
nested_service = providers.Factory(NestedService, factory_service)
63+
64+
65+
class ContainerSingleton(containers.DeclarativeContainer):
66+
67+
singleton = providers.Resource(Singleton)
68+
service = providers.Resource(
69+
init_service_with_singleton,
70+
singleton
71+
)
72+
factory_service = providers.Factory(FactoryService, service)
73+
factory_service_kwargs = providers.Factory(
74+
FactoryService,
75+
service=service
76+
)
4577
nested_service = providers.Factory(NestedService, factory_service)
4678

4779

0 commit comments

Comments
 (0)