1b144271179aaf82cb1151e9dfd8e866747402594epoger#!/usr/bin/python 2b144271179aaf82cb1151e9dfd8e866747402594epoger 3b144271179aaf82cb1151e9dfd8e866747402594epoger""" 4b144271179aaf82cb1151e9dfd8e866747402594epogerCopyright 2014 Google Inc. 5b144271179aaf82cb1151e9dfd8e866747402594epoger 6b144271179aaf82cb1151e9dfd8e866747402594epogerUse of this source code is governed by a BSD-style license that can be 7b144271179aaf82cb1151e9dfd8e866747402594epogerfound in the LICENSE file. 8b144271179aaf82cb1151e9dfd8e866747402594epoger 9b144271179aaf82cb1151e9dfd8e866747402594epogerRun all unittests within this directory tree, recursing into subdirectories. 10b144271179aaf82cb1151e9dfd8e866747402594epoger""" 11b144271179aaf82cb1151e9dfd8e866747402594epoger 12b144271179aaf82cb1151e9dfd8e866747402594epogerimport os 13b144271179aaf82cb1151e9dfd8e866747402594epogerimport unittest 14b144271179aaf82cb1151e9dfd8e866747402594epoger 15b144271179aaf82cb1151e9dfd8e866747402594epoger 16b144271179aaf82cb1151e9dfd8e866747402594epogerdef main(): 17b144271179aaf82cb1151e9dfd8e866747402594epoger suite = unittest.TestLoader().discover(os.path.dirname(__file__), 18b144271179aaf82cb1151e9dfd8e866747402594epoger pattern='*_test.py') 19b144271179aaf82cb1151e9dfd8e866747402594epoger results = unittest.TextTestRunner(verbosity=2).run(suite) 20b144271179aaf82cb1151e9dfd8e866747402594epoger print repr(results) 21b144271179aaf82cb1151e9dfd8e866747402594epoger if not results.wasSuccessful(): 22b144271179aaf82cb1151e9dfd8e866747402594epoger raise Exception('failed one or more unittests') 23b144271179aaf82cb1151e9dfd8e866747402594epoger 24b144271179aaf82cb1151e9dfd8e866747402594epogerif __name__ == '__main__': 25b144271179aaf82cb1151e9dfd8e866747402594epoger main() 26