| 
0
 | 
     1 #!/usr/bin/env python
 | 
| 
 | 
     2 
 | 
| 
 | 
     3 """
 | 
| 
 | 
     4 run all unit tests
 | 
| 
 | 
     5 """
 | 
| 
 | 
     6 
 | 
| 
 | 
     7 import os
 | 
| 
 | 
     8 import sys
 | 
| 
 | 
     9 import unittest
 | 
| 
 | 
    10 
 | 
| 
 | 
    11 here = os.path.dirname(os.path.abspath(__file__))
 | 
| 
 | 
    12 
 | 
| 
 | 
    13 def main(args=sys.argv[1:]):
 | 
| 
 | 
    14 
 | 
| 
 | 
    15     results = unittest.TestResult()
 | 
| 
 | 
    16     suite = unittest.TestLoader().discover(here, 'test_*.py')
 | 
| 
 | 
    17     suite.run(results)
 | 
| 
 | 
    18     n_errors = len(results.errors)
 | 
| 
 | 
    19     n_failures = len(results.failures)
 | 
| 
 | 
    20     print ("Run {} tests ({} failures; {} errors)".format(results.testsRun,
 | 
| 
 | 
    21                                                           n_failures,
 | 
| 
 | 
    22                                                           n_errors))
 | 
| 
 | 
    23     if results.wasSuccessful():
 | 
| 
 | 
    24         print ("Success")
 | 
| 
 | 
    25         sys.exit(0)
 | 
| 
 | 
    26     else:
 | 
| 
 | 
    27         # print failures and errors
 | 
| 
 | 
    28         for label, item in (('FAIL', results.failures),
 | 
| 
 | 
    29                             ('ERROR', results.errors)):
 | 
| 
 | 
    30             if item:
 | 
| 
 | 
    31                 print ("\n{}::\n".format(label))
 | 
| 
 | 
    32                 for index, (i, message) in enumerate(item):
 | 
| 
 | 
    33                     print ('{})  {}:'.format(index, str(i)))
 | 
| 
 | 
    34                     print (message)
 | 
| 
 | 
    35         sys.exit(1)
 | 
| 
 | 
    36 
 | 
| 
 | 
    37 if __name__ == '__main__':
 | 
| 
 | 
    38     main()
 | 
| 
 | 
    39 
 | 
| 
 | 
    40 
 |