Wednesday, February 28, 2024

python doodle

"""#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!