title: assertRaises in python unit-test not catching the exception
body: <p>Can somebody tell me why the following unit-test is failing on the
  ValueError in test_bad, rather than catching it with assertRaises
  and succeeding?  I think I'm using the correct procedure and syntax,
  but the ValueError is not getting caught.</p>
  
  <p>I'm using Python 2.7.5 on a linux box.</p>
  
  <p>Here is the code …</p>
  
  <pre><code>import unittest
  
  class IsOne(object):
      def __init__(self):
          pass
      def is_one(self, i):
          if (i != 1):
              raise ValueError
  
  class IsOne_test(unittest.TestCase):
  
      def setUp(self):
          self.isone = IsOne()
  
      def test_good(self):
          self.isone.is_one(1)
          self.assertTrue(True)
  
      def test_bad(self):
          self.assertRaises(ValueError, self.isone.is_one(2))
  
  if __name__ == "__main__":
      unittest.main()
  </code></pre>
  
  <p>and here is the output of the unit-test:</p>
  
  <pre><code>======================================================================
  ERROR: test_bad (__main__.IsOne_test)
  ----------------------------------------------------------------------
  Traceback (most recent call last):
    File "test/raises.py", line 20, in test_bad
      self.assertRaises(ValueError, self.isone.is_one(2))
    File "test/raises.py", line 8, in is_one
      raise ValueError
  ValueError
  
  ----------------------------------------------------------------------
  Ran 2 tests in 0.008s
  
  FAILED (errors=1)
  </code></pre>