Add a Closeable testing helper.

This commit is contained in:
Eric Snow 2018-04-09 20:00:11 +00:00
parent 07feb02e21
commit 0cbe4738e5

View file

@ -0,0 +1,30 @@
class Closeable(object):
def __init__(self):
self._closed = False
def __del__(self):
self.close()
def __enter__(self):
return self
def __exit__(self, *args):
self.close()
@property
def closed(self):
return self._closed
def close(self):
if self._closed:
return
self._closed = True
self._close()
# implemented by subclasses
def _close(self):
raise NotImplementedError