EMF_Camp_Badge/upip/tests.py

37 lines
892 B
Python

import unittest
from ucontextlib import contextmanager
class ContextManagerTestCase(unittest.TestCase):
def setUp(self):
self._history = []
@contextmanager
def manager(x):
self._history.append('start')
try:
yield x
finally:
self._history.append('finish')
self._manager = manager
def test_context_manager(self):
with self._manager(123) as x:
self.assertEqual(x, 123)
self.assertEqual(self._history, ['start', 'finish'])
def test_context_manager_on_error(self):
exc = Exception()
try:
with self._manager(123) as x:
raise exc
except Exception as e:
self.assertEqual(exc, e)
self.assertEqual(self._history, ['start', 'finish'])
if __name__ == '__main__':
unittest.main()