def inner(rev=None, branch="integration/autoland", json=None, automationrelevance=None): nonlocal prev_push, push_id if not rev: rev = "rev{}".format(push_id) if json is None: json = { "node": rev, } responses.add( responses.GET, HGMO.JSON_TEMPLATE.format(branch=branch, rev=rev), json=json, status=200, ) if automationrelevance is not None: responses.add( responses.GET, HGMO.AUTOMATION_RELEVANCE_TEMPLATE.format(branch=branch, rev=rev), json=automationrelevance, status=200, ) push = Push(rev, branch) push._id = push_id push.backedoutby = None push.tasks = [] if prev_push: push.parent = prev_push prev_push.child = push # Update global state prev_push = push push_id += 1 return push
def inner(rev=None, branch="integration/autoland"): nonlocal prev_push, push_id if not rev: rev = "rev{}".format(push_id) def automationrelevance_callback(request): *repo, _, revision = request.path_url[1:].split("/") body = { "changesets": [{ "node": rev, "bugs": [{ "no": bug_id } for bug_id in push.bugs], "backsoutnodes": [], "pushhead": push.rev, } for rev in push._revs] } return (200, {}, json.dumps(body)) responses.add_callback( responses.GET, HgRev.AUTOMATION_RELEVANCE_TEMPLATE.format(branch=branch, rev=rev), callback=automationrelevance_callback, content_type="application/json", ) responses.add( responses.GET, re.compile( "https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/.*/artifacts" ), json={"artifacts": []}, status=200, ) url = re.escape(HgRev.JSON_PUSHES_TEMPLATE_BASE.format(branch=branch)) responses.add( responses.GET, re.compile(url + ".*"), json={"pushes": {}}, status=200, ) push = Push(rev, branch) push._id = push_id push_rev_to_id[rev] = push_id push.backedoutby = None push.bugs = {push_id} push.tasks = [] push._revs = [push.rev] push.is_manifest_level = False if prev_push: push.parent = prev_push if branch != "try": prev_push.child = push # Update global state prev_push = push push_id += 1 return push