From 0cbe4738e5199e005ea78b607412979bbcd59c22 Mon Sep 17 00:00:00 2001 From: Eric Snow Date: Mon, 9 Apr 2018 20:00:11 +0000 Subject: [PATCH] Add a Closeable testing helper. --- tests/helpers/__init__.py | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/helpers/__init__.py b/tests/helpers/__init__.py index e69de29b..e1f1ebeb 100644 --- a/tests/helpers/__init__.py +++ b/tests/helpers/__init__.py @@ -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