def testManifestFilters(self):
        """Make sure the manifest filters work"""
        _, _, patch = self._CommonGitSetup()

        patch.project = constants.CHROMITE_PROJECT
        self.assertFalse(trybot_patch_pool.ExtManifestFilter(patch))
        self.assertFalse(trybot_patch_pool.IntManifestFilter(patch))
        self.assertFalse(trybot_patch_pool.ManifestFilter(patch))

        patch.project = site_config.params.MANIFEST_PROJECT
        self.assertTrue(trybot_patch_pool.ExtManifestFilter(patch))
        self.assertFalse(trybot_patch_pool.IntManifestFilter(patch))
        self.assertTrue(trybot_patch_pool.ManifestFilter(patch))

        patch.project = site_config.params.MANIFEST_INT_PROJECT
        self.assertFalse(trybot_patch_pool.ExtManifestFilter(patch))
        self.assertTrue(trybot_patch_pool.IntManifestFilter(patch))
        self.assertTrue(trybot_patch_pool.ManifestFilter(patch))
Example #2
0
  def PerformStage(self):

    class NoisyPatchSeries(patch_series.PatchSeries):
      """Custom PatchSeries that adds links to buildbot logs for remote trys."""

      def ApplyChange(self, change):
        if isinstance(change, cros_patch.GerritPatch):
          logging.PrintBuildbotLink(str(change), change.url)
        elif isinstance(change, cros_patch.UploadedLocalPatch):
          logging.PrintBuildbotStepText(str(change))

        return patch_series.PatchSeries.ApplyChange(self, change)

    # If we're an external builder, ignore internal patches.
    helper_pool = patch_series.HelperPool.SimpleCreate(
        cros_internal=self._run.config.internal, cros=True)

    # Limit our resolution to non-manifest patches.
    patches = NoisyPatchSeries(
        self._build_root,
        helper_pool=helper_pool,
        deps_filter_fn=lambda p: not trybot_patch_pool.ManifestFilter(p))

    self._ApplyPatchSeries(patches, self.patch_pool)