1f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org#!/usr/bin/python
2f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
3f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org"""
4f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.orgCopyright 2014 Google Inc.
5f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
6f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.orgUse of this source code is governed by a BSD-style license that can be
7f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.orgfound in the LICENSE file.
8f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
9f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.orgA wrapper around the standard Python unittest library, adding features we need
10f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.orgfor various unittests within this directory.
11f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org"""
12f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
1366ed8dc4bfd63e4552a213cb17909f9fbbf59abdepoger# System-level imports.
14f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.orgimport os
1566ed8dc4bfd63e4552a213cb17909f9fbbf59abdepogerimport sys
16f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
1766ed8dc4bfd63e4552a213cb17909f9fbbf59abdepogerPARENT_DIR = os.path.abspath(os.path.dirname(__file__))
1866ed8dc4bfd63e4552a213cb17909f9fbbf59abdepogerTRUNK_DIR = os.path.abspath(os.path.join(PARENT_DIR, os.pardir, os.pardir))
19f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
2066ed8dc4bfd63e4552a213cb17909f9fbbf59abdepoger# Import the superclass base_unittest module from the tools dir.
210b7127635d8245de7ac704080d722d06e47621d0epoger#
220b7127635d8245de7ac704080d722d06e47621d0epoger# TODO(epoger): If I don't put this at the beginning of sys.path, the import of
230b7127635d8245de7ac704080d722d06e47621d0epoger# tests.base_unittest fails.  That's bad.  I need to come up with a cleaner way
240b7127635d8245de7ac704080d722d06e47621d0epoger# of doing this... I think this will involve changing how we import the "boto"
250b7127635d8245de7ac704080d722d06e47621d0epoger# library in gs_utils.py, within the common repo.
2666ed8dc4bfd63e4552a213cb17909f9fbbf59abdepogerTOOLS_DIR = os.path.join(TRUNK_DIR, 'tools')
270b7127635d8245de7ac704080d722d06e47621d0epogerif TOOLS_DIR != sys.path[0]:
280b7127635d8245de7ac704080d722d06e47621d0epoger  sys.path.insert(0, TOOLS_DIR)
2966ed8dc4bfd63e4552a213cb17909f9fbbf59abdepogerimport tests.base_unittest as superclass_module
30f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
31f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
3266ed8dc4bfd63e4552a213cb17909f9fbbf59abdepogerclass TestCase(superclass_module.TestCase):
3333ac9506fba85373135d78212bdfaab597ba7ed7epoger
3466ed8dc4bfd63e4552a213cb17909f9fbbf59abdepoger  def __init__(self, *args, **kwargs):
3566ed8dc4bfd63e4552a213cb17909f9fbbf59abdepoger    super(TestCase, self).__init__(*args, **kwargs)
3666ed8dc4bfd63e4552a213cb17909f9fbbf59abdepoger    # Some of the tests within this package want their output validated,
3766ed8dc4bfd63e4552a213cb17909f9fbbf59abdepoger    # so we declare where the expected and actual output will be.
3866ed8dc4bfd63e4552a213cb17909f9fbbf59abdepoger    self._testdata_dir = os.path.join(PARENT_DIR, 'testdata')
39f679e2b90dbd23dd3b0a369a8be77965a07eb698commit-bot@chromium.org
4066ed8dc4bfd63e4552a213cb17909f9fbbf59abdepogerdef main(*args, **kwargs):
4166ed8dc4bfd63e4552a213cb17909f9fbbf59abdepoger  superclass_module.main(*args, **kwargs)
42