def test_suppresses_parent_exceptions(self):
     with suppress(LookupError):
         my_dict = {'key': 'value'}
         my_dict[4]
     self.assertEqual(my_dict, {'key': 'value'})
     with suppress(LookupError):
         my_list = ['item']
         my_list[1]
         self.assertEqual(my_list, ['item'])
 def test_keyerror_and_index_error(self):
     with suppress(KeyError):
         my_dict = {'key': 'value'}
         my_dict[4]
     self.assertEqual(my_dict, {'key': 'value'})
     with suppress(IndexError):
         my_list = ['item']
         my_list[1]
         self.assertEqual(my_list, ['item'])
 def test_catches_any_number_of_exceptions(self):
     with suppress(ValueError, TypeError):
         int('hello')
     with suppress(IndexError, TypeError):
         int(None)
     with self.assertRaises(KeyError):
         with suppress(IndexError, TypeError):
             {0: 1}[1]
     with suppress(ValueError, SystemError, IndexError, TypeError):
         ['item'][1]
 def test_does_not_suppress_other_exceptions(self):
     with self.assertRaises(KeyError):
         with suppress(IndexError):
             my_dict = {'key': 'value'}
             my_dict[4]
         self.assertEqual(my_dict, {'key': 'value'})
     with self.assertRaises(IndexError):
         with suppress(KeyError):
             my_list = ['item']
             my_list[1]
             self.assertEqual(my_list, ['item'])
 def test_suppress_specific_exception(self):
     with suppress(ValueError):
         x = 1
         int('hello')
         x = 2
     self.assertEqual(x, 1)
     with suppress(TypeError):
         x = 3
         int(None)
         x = 4
     self.assertEqual(x, 3)
 def test_works_when_no_exception_raised(self):
     with suppress(Exception):
         x = 4
     self.assertEqual(x, 4)
 def test_allows_exception_to_be_viewed(self):
     with suppress(LookupError) as suppressed:
         my_dict = {'key': 'value'}
         my_dict[4]
     self.assertEqual(type(suppressed.exception), KeyError)
     self.assertEqual(type(suppressed.traceback), TracebackType)