| # -*- coding: utf-8 -*- |
| # Copyright (c) 2014 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. |
| |
| """Unit tests for the cbuildbot program""" |
| |
| from __future__ import print_function |
| |
| import sys |
| |
| from chromite.lib import constants |
| from chromite.lib import cros_test_lib |
| from chromite.scripts import cbuildbot |
| |
| |
| assert sys.version_info >= (3, 6), 'This module requires Python 3.6+' |
| |
| |
| # pylint: disable=protected-access |
| |
| |
| class IsDistributedBuilderTest(cros_test_lib.TestCase): |
| """Test for cbuildbot._IsDistributedBuilder.""" |
| |
| # pylint: disable=protected-access |
| def testIsDistributedBuilder(self): |
| """Tests for _IsDistributedBuilder() under various configurations.""" |
| parser = cbuildbot._CreateParser() |
| argv = ['--buildroot', '/foo', 'amd64-generic-paladin'] |
| options = cbuildbot.ParseCommandLine(parser, argv) |
| options.buildbot = False |
| |
| build_config = dict(manifest_version=False) |
| chrome_rev = None |
| |
| def _TestConfig(expected): |
| self.assertEqual(expected, |
| cbuildbot._IsDistributedBuilder( |
| options=options, |
| chrome_rev=chrome_rev, |
| build_config=build_config)) |
| |
| # Default options. |
| _TestConfig(False) |
| |
| build_config['manifest_version'] = True |
| # Not running in buildbot mode even though manifest_version=True. |
| _TestConfig(False) |
| options.buildbot = True |
| _TestConfig(True) |
| |
| for chrome_rev in (constants.CHROME_REV_TOT, |
| constants.CHROME_REV_LOCAL, |
| constants.CHROME_REV_SPEC): |
| _TestConfig(False) |
| |
| |
| class PostsubmitBuilderTest(cros_test_lib.TestCase): |
| """Test for special parameters for ChromeOS Findit Integration.""" |
| |
| def testBuildPackages(self): |
| parser = cbuildbot.CreateParser() |
| argv = ['--buildroot', '/foo', '--buildbot', |
| '--cbb_snapshot_revision', 'hash1234', |
| '--cbb_build_packages', 'pkgA pkgB', 'caroline-postsubmit'] |
| options = cbuildbot.ParseCommandLine(parser, argv) |
| expected = ['pkgA', 'pkgB'] |
| self.assertEqual(expected, options.cbb_build_packages) |
| self.assertEqual('hash1234', options.cbb_snapshot_revision) |