When unit testing Python, how can one assert that exceptions are raised or handled? Here’s how we do it:
First, here is the code we want to test:
def division_raises():
   print(10/0)def division_doesnt_raise():
   try:
       print(10/0)
   except ZeroDivisionError:
       return None
And here is how we test the code above:
from unittest import TestCase
class TestException(TestCase):
   def test_exception_is_raised(self):
       with self.assertRaises(ZeroDivisionError) as e:
           division_raises()
       self.assertEqual(‘Foo Exception occurred’, e.exception.message)   def test_exception_is_not_raised(self):
       with self.assertRaises(AssertionError):
           with self.assertRaises(ZeroDivisionError):
               division_doesnt_raise()