Skip to content

Commit 8f03599

Browse files
committed
plan9.filesystem: Inode context manager protocol
provide context manager protocol for Inode objects in order to simplify callback registration code blocks
1 parent 3412954 commit 8f03599

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

pyroute2/fixtures/plan9.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ def __init__(self):
2424
self.server = Plan9ServerSocket(use_socket=self.server_sock)
2525
self.client = Plan9ClientSocket(use_socket=self.client_sock)
2626
self._task = None
27-
inode_static = self.server.filesystem.create('test_file')
28-
inode_static.data.write(self.sample_data)
29-
inode_dynamic = self.server.filesystem.create('test_time')
30-
inode_dynamic.metadata.call_on_read = True
31-
inode_dynamic.register_function(test_time, loader=lambda x: {})
27+
with self.server.filesystem.create('test_file') as i:
28+
i.data.write(self.sample_data)
29+
with self.server.filesystem.create('test_time') as i:
30+
i.metadata.call_on_read = True
31+
i.register_function(test_time, loader=lambda x: {})
3232

3333
async def ensure_session(self):
3434
self._task = await self.server.async_run()

pyroute2/plan9/filesystem.py

+6
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,12 @@ def __init__(
118118
self.stat['name'] = name
119119
self.sync()
120120

121+
def __enter__(self):
122+
return self
123+
124+
def __exit__(self, exc_type, exc_value, traceback):
125+
pass
126+
121127
def sync(self):
122128
self.stat['length'] = len(self.data.getvalue())
123129

0 commit comments

Comments
 (0)