title: assertRaises: KeyError exception is not raised while doing unit test of a method
body: <p>I am testing an exception using assertRaises, even though exception is raised, it is not detected by assertRaises </p>
  
  <p>Here is the method under test:</p>
  
  <pre><code>def process_data(data):
      """
      process output data
      :return: dict object 
      """
      component = dict()
      try:
          properties = dict()
          properties['state'] = data['state']
          properties['status'] = data['status']
          component['properties'] = properties
      except KeyError as e:
          print "Missing key '{0}' in the response data".format(str(e))
  
      return component
  
  sample_data = {}
  process_data(sample_data)
  </code></pre>
  
  <p>And the test code is:</p>
  
  <pre><code>import unittest
  import test_exception
  
  
  class TestExceptions(unittest.TestCase):
      """
      test class
      """
      def test_process_data(self):
          """
          test
          :return: 
          """
          sample = {}
          self.assertRaises(KeyError, test_exception.process_data, sample)
  
  if __name__ == '__main__':
      unittest.main()
  </code></pre>
  
  <p>But it is not working as expected, getting following errors:</p>
  
  <pre><code>unittest -p test_test_exception.py
  Missing key ''state'' in the response data 
  
  
  Missing key ''state'' in the response data
  
  
  Failure
  Traceback (most recent call last):
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 331, in run
      testMethod()
    File "/unittest/test_test_exception.py", line 16, in test_process_data
      self.assertRaises(KeyError, test_exception.process_data, sample)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 475, in assertRaises
      callableObj(*args, **kwargs)
    File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/case.py", line 116, in __exit__
      "{0} not raised".format(exc_name))
  AssertionError: KeyError not raised
  
  
  
  Ran 1 test in 0.001s
  
  FAILED (failures=1)
  
  Process finished with exit code 1
  </code></pre>
  
  <p>What is wrong with unit test case?</p>