8000 Add tests for .provided & .call() · kiq7/python-dependency-injector@c9ab7d5 · GitHub
[go: up one dir, main page]

Skip to content

Commit c9ab7d5

Browse files
committed
Add tests for .provided & .call()
1 parent 288284a commit c9ab7d5

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

docs/main/changelog.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ follows `Semantic versioning`_
1010
Development version
1111
-------------------
1212
- Add tests for ``Selector`` provider.
13+
- Add tests for ``ProvidedInstance`` and ``MethodCaller`` providers.
1314
- Update Makefile to make Python 3 tests to be a default test command: ``make test``.
1415

1516
4.17.0

tests/unit/providers/test_provided_instance_py2_py3.py

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,20 @@ def __init__(self, value):
1010
self.value = value
1111
self.values = [self.value]
1212

13-
def get_value(self):
13+
def __call__(self):
1414
return self.value
1515

1616
def __getitem__(self, item):
1717
return self.values[item]
1818

19+
def get_value(self):
20+
return self.value
21+
22+
def get_closure(self):
23+
def closure():
24+
return self.value
25+
return closure
26+
1927

2028
class Client:
2129
def __init__(self, value):
@@ -45,6 +53,15 @@ class Container(containers.DeclarativeContainer):
4553
Client,
4654
value=service.provided.get_value.call(),
4755
)
56+
client_met 8000 hod_closure_call = providers.Factory(
57+
Client,
58+
value=service.provided.get_closure.call().call(),
59+
)
60+
61+
client_provided_call = providers.Factory(
62+
Client,
63+
value=service.provided.call(),
64+
)
4865

4966

5067
class ProvidedInstanceTests(unittest.TestCase):
@@ -71,6 +88,14 @@ def test_method_call(self):
7188
client = self.container.client_method_call()
7289
self.assertEqual(client.value, 'foo')
7390

91+
def test_method_closure_call(self):
92+
client = self.container.client_method_closure_call()
93+
self.assertEqual(client.value, 'foo')
94+
95+
def test_provided_call(self):
96+
client = self.container.client_provided_call()
97+
self.assertEqual(client.value, 'foo')
98+
7499
def test_call_overridden(self):
75100
value = 'bar'
76101
with self.container.service.override(Service(value)):

0 commit comments

Comments
 (0)
0