Skip to content

Commit 0747e68

Browse files
committed
-
1 parent a5af9ee commit 0747e68

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

source_py3/test_python_toolbox/test_context_management/test_idempotentify.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class SomeContextManager(ContextManager):
1212
def manage_context(self):
1313
self.x += 1
1414
try:
15-
yield self
15+
yield (self, self)
1616
finally:
1717
self.x -= 1
1818

@@ -21,7 +21,10 @@ def manage_context(self):
2121
def test_idempotentify():
2222
some_context_manager = SomeContextManager()
2323
assert some_context_manager.x == 0
24-
with some_context_manager:
24+
with some_context_manager as enter_result:
25+
assert isinstance(enter_result, tuple)
26+
assert len(enter_result) == 2
27+
assert enter_result[0] is enter_result[1] is some_context_manager
2528
assert some_context_manager.x == 1
2629
assert some_context_manager.x == 0
2730

@@ -42,7 +45,20 @@ def test_idempotentify():
4245
with cute_testing.RaiseAssertor():
4346
some_context_manager.__exit__(None, None, None)
4447

45-
idempotent_context_manager = idempotentify(SomeContextManager())
48+
###########################################################################
49+
50+
51+
another_context_manager = SomeContextManager()
52+
idempotent_context_manager = idempotentify(another_context_manager)
53+
54+
assert another_context_manager is idempotent_context_manager.__wrapped__
55+
56+
with idempotent_context_manager as enter_result:
57+
assert isinstance(enter_result, tuple)
58+
assert len(enter_result) == 2
59+
assert enter_result[0] is enter_result[1] is another_context_manager
60+
assert another_context_manager.x == 1
61+
4662

4763
idempotent_context_manager.__enter__()
4864
assert idempotent_context_manager.__wrapped__.x == 1

0 commit comments

Comments
 (0)