blob: fdeb26fe278e5f01447199df65390231ffe8e409 [file] [log] [blame]
# -*- 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
from chromite.lib import constants
from chromite.lib import cros_test_lib
from chromite.scripts import cbuildbot
# 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(pre_cq=False,
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['pre_cq'] = True
_TestConfig(True)
build_config['pre_cq'] = 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)