blob: ea9e62b61721cec2c7cb0e831c1a37c1b2defba1 [file] [log] [blame]
# -*- coding: utf-8 -*-
# Copyright 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 cros_list_modified_packages program"""
from __future__ import print_function
import functools
from chromite.lib import cros_test_lib
from chromite.lib import sysroot_lib
from chromite.scripts import cros_list_modified_packages
class ListModifiedWorkonPackagesTest(cros_test_lib.MockTestCase):
"""Test for cros_list_modified_packages.ListModifiedWorkonPackages."""
def testListModifiedWorkonPackages(self):
"""Test that no ebuild breaks cros_list_modified_packages"""
# A hook to set the "all_opt" parameter when calling ListWorkonPackages
_ListWorkonPackagesPatch = \
functools.partial(cros_list_modified_packages.ListWorkonPackages,
all_opt=True)
with self.PatchObject(cros_list_modified_packages, 'ListWorkonPackages',
side_effect=_ListWorkonPackagesPatch):
# ListModifiedWorkonPackages returns a generator object and doesn't
# actually do any work automatically. We have to extract the elements
# from it to get it to exercise the code, and we can do that by turning
# it into a list.
list(cros_list_modified_packages.ListModifiedWorkonPackages(
sysroot=sysroot_lib.Sysroot('/')))