title: Python unittest and multithreading
body: <p>I am using python's <code>unittest</code> and would like to write a test that starts a few threads and waits for them to finish. The threads execute a function that has some <code>unittest</code> assertions. If any of the assertions fail, I wish the test to, well, fail. This does not seem to be the case.</p>
  
  <p><strong>EDIT:</strong> Minimal runnable example (python3)</p>
  
  <pre class="lang-py prettyprint-override"><code>import unittest
  import threading
  
  class MyTests(unittest.TestCase):
  
      def test_sample(self):
          t = threading.Thread(target=lambda: self.fail())
          t.start()
          t.join()
  
  if __name__ == '__main__':
      unittest.main()
  </code></pre>
  
  <p>and the output is:</p>
  
  <pre><code>sh-4.3$ python main.py -v                                                                                                                                                                                                              
  test_sample (__main__.MyTests) ... Exception in thread Thread-1:                                                                                                                                                                       
  Traceback (most recent call last):                                                                                                                                                                                                     
    File "/usr/lib64/python2.7/threading.py", line 813, in __bootstrap_inner                                                                                                                                                             
      self.run()                                                                                                                                                                                                                         
    File "/usr/lib64/python2.7/threading.py", line 766, in run                                                                                                                                                                           
      self.__target(*self.__args, **self.__kwargs)                                                                                                                                                                                       
    File "main.py", line 7, in &lt;lambda&gt;                                                                                                                                                                                                  
      t = threading.Thread(target=lambda: self.fail())                                                                                                                                                                                   
    File "/usr/lib64/python2.7/unittest/case.py", line 450, in fail                                                                                                                                                                      
      raise self.failureException(msg)                                                                                                                                                                                                   
  AssertionError: None                                                                                                                                                                                                                   
  
  ok                                                                                                                                                                                                                                     
  
  ----------------------------------------------------------------------                                                                                                                                                                 
  Ran 1 test in 0.002s                                                                                                                                                                                                                   
  
  OK     
  </code></pre>