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