# Copyright 2018 The Chromium Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

from recipe_engine import post_process


DEPS = [
  "bot_update",
  "gclient",
  "recipe_engine/json",
]


def RunSteps(api):
  api.gclient.set_config("depot_tools")
  api.bot_update.ensure_checkout()
  api.bot_update.ensure_checkout(no_fetch_tags=True, enforce_fetch=True)
  api.bot_update.ensure_checkout(step_tags={"tag": "value"})
  api.bot_update.ensure_checkout(clean_ignored=True)
  api.bot_update.ensure_checkout(no_history=True)
  api.bot_update.ensure_checkout(shallow=True)


def GenTests(api):
  yield (
    api.test("basic")
    + api.post_process(post_process.StatusSuccess)
    + api.post_process(post_process.DropExpectation)
  )

  yield (
    api.test("failure", status="INFRA_FAILURE")
    + api.override_step_data(
      "bot_update", api.json.output({"did_run": True}), retcode=1
    )
    + api.post_process(post_process.StatusAnyFailure)
    + api.post_process(post_process.DropExpectation)
  )

  yield (
    api.test("cancelled", status="INFRA_FAILURE")
    + api.override_step_data(
      "bot_update", api.json.output({"did_run": True}), cancel=True
    )
    + api.post_process(post_process.StatusAnyFailure)
    + api.post_process(post_process.DropExpectation)
  )
