| #!/usr/bin/env python2 |
| # -*- coding: utf-8 -*- |
| # Copyright 2015 The Chromium OS Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| """Tests module containing unittests for cros_au_test_harness.py. |
| |
| Instead of calling to functions/methods in cros_au_test_harness, tests defined |
| here use its binary version, to mimic the behavior of ctest. |
| """ |
| |
| from __future__ import print_function |
| |
| import os |
| import sys |
| import unittest |
| |
| import constants |
| sys.path.append(constants.SOURCE_ROOT) |
| |
| from chromite.lib import cros_build_lib |
| |
| |
| class CrosAuTestHarnessTest(unittest.TestCase): |
| """Testing the GCE related funcionalities in cros_au_test_harness.py""" |
| |
| INVALID_TYPE_ERROR = 'error: argument --type: invalid choice' |
| INVALID_IMAGE_PATH = 'Testing requires a valid target image.' |
| |
| def testCheckOptionsDisallowsUndefinedType(self): |
| """Verifies that CheckOptions complains about invalid type.""" |
| cmd = [os.path.join(constants.CROSTESTUTILS_DIR, 'au_test_harness', |
| 'cros_au_test_harness.py'), |
| '--type=aws' |
| ] |
| with self.assertRaises(cros_build_lib.RunCommandError) as cm: |
| cros_build_lib.run(cmd) |
| |
| self.assertIn(self.INVALID_TYPE_ERROR, cm.exception.result.error) |
| |
| def testCheckOptionsRecognizesGceType(self): |
| """Verifies that 'gce' is an allowed type.""" |
| cmd = [os.path.join(constants.CROSTESTUTILS_DIR, 'au_test_harness', |
| 'cros_au_test_harness.py'), |
| '--type=gce' |
| ] |
| # We don't have all required flags passed in so still expect an exception, |
| # but it won't be complaining about invalid type. |
| with self.assertRaises(cros_build_lib.RunCommandError) as cm: |
| cros_build_lib.run(cmd) |
| |
| self.assertNotIn(self.INVALID_TYPE_ERROR, cm.exception.result.error) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |