8000 Add context manager to FluentSender in fluent/sender.py · mirwan/fluent-logger-python@3058514 · GitHub 8000
[go: up one dir, main page]

Skip to content

Commit 3058514

Browse files
author
Kiseok Kim
committed
Add context manager to FluentSender in fluent/sender.py
This patch adds context manager with FluentSender and its test code.
1 parent 5c4dff1 commit 3058514

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

fluent/sender.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,3 +178,9 @@ def _close(self):
178178
if self.socket:
179179
self.socket.close()
180180
self.socket = None
181+
182+
def __enter__(self):
183+
return self
184+
185+
def __exit__(self, typ, value, traceback):
186+
self.close()

tests/test_sender.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,18 @@ def test_simple(self):
6464
self.assertTrue(data[0][1])
6565
self.assertTrue(isinstance(data[0][1], int))
6666

67+
def test_decorator_simple(self):
68+
with self._sender as sender:
69+
sender.emit('foo', {'bar': 'baz'})
70+
data = self.get_data()
71+
eq = self.assertEqual
72+
eq(1, len(data))
73+
eq(3, len(data[0]))
74+
eq('test.foo', data[0][0])
75+
eq({'bar': 'baz'}, data[0][2])
76+
self.assertTrue(data[0][1])
77+
self.assertTrue(isinstance(data[0][1], int))
78+
6779
def test_no_last_error_on_successful_emit(self):
6880
sender = self._sender
6981
sender.emit('foo', {'bar': 'baz'})

0 commit comments

Comments
 (0)
0