Skip to content

Commit e3600a3

Browse files
Context manager (#7)
1 parent 4493f0a commit e3600a3

2 files changed

Lines changed: 32 additions & 0 deletions

File tree

src/context_manager.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from contextlib import contextmanager
2+
3+
4+
class ClassyContextManager:
5+
def __init__(self, thing):
6+
self.thing = thing
7+
8+
def __enter__(self):
9+
return self.thing
10+
11+
def __exit__(self, exc_type, exc_val, exc_tb):
12+
pass
13+
14+
15+
@contextmanager
16+
def funky_context_manager(thing):
17+
yield thing

tests/test_context_manager.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from unittest.mock import Mock
2+
3+
from context_manager import ClassyContextManager, funky_context_manager
4+
5+
6+
def test_class_context_manager():
7+
mock = Mock()
8+
with ClassyContextManager(mock) as classy:
9+
assert classy is mock
10+
11+
12+
def test_funky_context_manager():
13+
mock = Mock()
14+
with funky_context_manager(mock) as funky:
15+
assert funky is mock

0 commit comments

Comments
 (0)