"""#intro to context manager
class Test(object):
def __enter__(self):
print("enter>>>")
def __exit__(self, ext, exv, trb):
print("exiting>>>")
print("ext", ext)
print("exv", exv)
print("trb", trb)
return True
with Test():
print("yaaay a context manager")
#enter>>>
#yaaay a context manager
#exiting>>>
#('ext', None)
#('exv', None)
#('trb', None)
with Test():
print(10/0)
print("yaaay a context manager")
print("uninterrupted")
#enter>>>
#exiting>>>
#('ext', <type 'exceptions.ZeroDivisionError'>)
#('exv', ZeroDivisionError('integer division or modulo by zero',))
#('trb', <traceback object at 0x1008763b0>)
#uninterrupted
#inspired by
#https://stackoverflow.com/questions/3693771/understanding-the-python-with-statement-and-context-managers
"""
"""#intro to unit test
import unittest
class TestStuff(unittest.TestCase):
def test_a(self):
self.assertTrue(10==10)
def test_b(self):
self.assertEqual(21, 21)
class TestStuffB(unittest.TestCase):
def setUp(self):
self.param = 10
def test_a(self):
self.assertTrue(self.param==10)
def test_b(self):
self.assertEqual(self.param+11, 21)
if __name__ == '__main__':
unittest.main()
#$ python topics.py -v
#test_a (__main__.TestStuff) ... ok
#test_b (__main__.TestStuff) ... ok
#test_a (__main__.TestStuffB) ... ok
#test_b (__main__.TestStuffB) ... ok
#
#----------------------------------------------------------------------
#Ran 4 tests in 0.000s
#
#OK
#inspired by
#https://docs.python.org/3/library/unittest.html
"""
Happy Sketching!