blob: 61f1f12d74c3b9d0b0bbf6b6ea128d78059a558a [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
import sys
from chromite.lib import cros_test_lib
from chromite.lib import sysroot_lib
from chromite.scripts import cros_list_modified_packages
assert sys.version_info >= (3, 6), 'This module requires Python 3.6+'
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('/')))