)]}'
{
  "log": [
    {
      "commit": "63405117741c1cb18d1a4a21e73dca621601f1d8",
      "tree": "fbff58c149c4ae3537c609151b191631451b62e0",
      "parents": [
        "6c3b8f78baba1271ef10f59655c4882694fa2f29",
        "973c30bb0b23d5b56b3c4450d296952067f25246"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 05 22:37:26 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Oct 05 22:37:26 2021 +0000"
      },
      "message": "Merge \"Remove pymock now everyone\u0027s on python3.\" am: 973c30bb0b\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/python/mock/+/1845269\n\nChange-Id: Iaeb2bccf226919d60708e5f081183e4564007429\n"
    },
    {
      "commit": "973c30bb0b23d5b56b3c4450d296952067f25246",
      "tree": "fbff58c149c4ae3537c609151b191631451b62e0",
      "parents": [
        "6c3b8f78baba1271ef10f59655c4882694fa2f29",
        "bd072c3d3fc9c14e813a10883a035d00eec29a60"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 05 22:26:02 2021 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 05 22:26:02 2021 +0000"
      },
      "message": "Merge \"Remove pymock now everyone\u0027s on python3.\""
    },
    {
      "commit": "bd072c3d3fc9c14e813a10883a035d00eec29a60",
      "tree": "fbff58c149c4ae3537c609151b191631451b62e0",
      "parents": [
        "bb6267e067ecee941fade39b80d9b476951fc692"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 05 13:48:09 2021 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 05 13:48:09 2021 -0700"
      },
      "message": "Remove pymock now everyone\u0027s on python3.\n\nThis is built in now.\n\nBug: http://b/151436598\nTest: treehugger\nChange-Id: I79e73f3b65524a85e7d1181d0f07f5b60a0e67fc\n"
    },
    {
      "commit": "6c3b8f78baba1271ef10f59655c4882694fa2f29",
      "tree": "33748269e3bac6ecc26d25ef67785d5139a37e63",
      "parents": [
        "3eb84708b76c65e0c25e537e3294707fe86d670c",
        "cb02c5dffe8b44d62ae37cf670d1e476aa1cf19f"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Sun Feb 21 19:04:33 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sun Feb 21 19:04:33 2021 +0000"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to external/python/mock am: f95dc360d1 am: bb6267e067 am: cb02c5dffe\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/python/mock/+/1588557\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: If22a3ab65b31d017772653b56a7973d01f0432ae\n"
    },
    {
      "commit": "cb02c5dffe8b44d62ae37cf670d1e476aa1cf19f",
      "tree": "33748269e3bac6ecc26d25ef67785d5139a37e63",
      "parents": [
        "085ccc3448b3b28e344d516af39de0a42c9a75c7",
        "bb6267e067ecee941fade39b80d9b476951fc692"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 19 07:48:46 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 19 07:48:46 2021 +0000"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to external/python/mock am: f95dc360d1 am: bb6267e067\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/python/mock/+/1588557\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I23e3305b3144c093db24e7fc9690f871c617a579\n"
    },
    {
      "commit": "bb6267e067ecee941fade39b80d9b476951fc692",
      "tree": "33748269e3bac6ecc26d25ef67785d5139a37e63",
      "parents": [
        "9d91fb7665f777151b3ee42e6fe4a9ce2b20e7f1",
        "f95dc360d19caee395eb4ce490c0310ccd52d443"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 19 06:54:44 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Feb 19 06:54:44 2021 +0000"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to external/python/mock am: f95dc360d1\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/python/mock/+/1588557\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I74a58e3d74b8e73369b1b305adfb7b131a6b4472\n"
    },
    {
      "commit": "f95dc360d19caee395eb4ce490c0310ccd52d443",
      "tree": "33748269e3bac6ecc26d25ef67785d5139a37e63",
      "parents": [
        "810d359137f0d52b7a63761fb4206507208f7f5f"
      ],
      "author": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 14:40:26 2021 -0800"
      },
      "committer": {
        "name": "Bob Badour",
        "email": "bbadour@google.com",
        "time": "Fri Feb 12 14:40:26 2021 -0800"
      },
      "message": "[LSC] Add LOCAL_LICENSE_KINDS to external/python/mock\n\nAdded SPDX-license-identifier-BSD to:\n  Android.bp\n  mock/Android.bp\n\nBug: 68860345\nBug: 151177513\nBug: 151953481\n\nTest: m all\n\nExempt-From-Owner-Approval: janitorial work\nChange-Id: I1d1c4632b1f1bf4ffb0faa28f783961e09053013\n"
    },
    {
      "commit": "3eb84708b76c65e0c25e537e3294707fe86d670c",
      "tree": "08d2a66102bd9355e3bfc49ae7d1c2bcbf518c44",
      "parents": [
        "95369956c5362b5b59637ab92aa4371c4687a9ce",
        "085ccc3448b3b28e344d516af39de0a42c9a75c7"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Thu Jan 14 04:19:57 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jan 14 04:19:57 2021 +0000"
      },
      "message": "Remove test mapping file for acloud_test am: 810d359137 am: 9d91fb7665 am: 085ccc3448\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/python/mock/+/1550097\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I65902d1286c46e1476c63de5728deffccfe7dc5b\n"
    },
    {
      "commit": "085ccc3448b3b28e344d516af39de0a42c9a75c7",
      "tree": "08d2a66102bd9355e3bfc49ae7d1c2bcbf518c44",
      "parents": [
        "bd81ec987bd71e082bdf17dd919a2ccbb14fa772",
        "9d91fb7665f777151b3ee42e6fe4a9ce2b20e7f1"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Thu Jan 14 00:22:40 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jan 14 00:22:40 2021 +0000"
      },
      "message": "Remove test mapping file for acloud_test am: 810d359137 am: 9d91fb7665\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/python/mock/+/1550097\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: I23a3aa08dbd98c90f7c513100b123f0a5cb2c3f6\n"
    },
    {
      "commit": "9d91fb7665f777151b3ee42e6fe4a9ce2b20e7f1",
      "tree": "08d2a66102bd9355e3bfc49ae7d1c2bcbf518c44",
      "parents": [
        "bd81ec987bd71e082bdf17dd919a2ccbb14fa772",
        "810d359137f0d52b7a63761fb4206507208f7f5f"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Wed Jan 13 23:45:10 2021 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Jan 13 23:45:10 2021 +0000"
      },
      "message": "Remove test mapping file for acloud_test am: 810d359137\n\nOriginal change: https://android-review.googlesource.com/c/platform/external/python/mock/+/1550097\n\nMUST ONLY BE SUBMITTED BY AUTOMERGER\n\nChange-Id: Ice95b7ac2b4a85cf162d6095c7e97a785cc33a0d\n"
    },
    {
      "commit": "810d359137f0d52b7a63761fb4206507208f7f5f",
      "tree": "08d2a66102bd9355e3bfc49ae7d1c2bcbf518c44",
      "parents": [
        "bd81ec987bd71e082bdf17dd919a2ccbb14fa772"
      ],
      "author": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Wed Jan 13 11:03:36 2021 -0800"
      },
      "committer": {
        "name": "Julien Desprez",
        "email": "jdesprez@google.com",
        "time": "Wed Jan 13 22:58:55 2021 +0000"
      },
      "message": "Remove test mapping file for acloud_test\n\nNot needed anymore.\n\nExempt-From-Owner-Approval:clean up mapping files\nTest: presubmit\nBug: 175408655\nChange-Id: Ifc597a4b20d3c612ff7fa306dd16280aa5616435\n"
    },
    {
      "commit": "95369956c5362b5b59637ab92aa4371c4687a9ce",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "114d36c60db0f380e36ae906bea72ed1755de51c",
        "bd81ec987bd71e082bdf17dd919a2ccbb14fa772"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Apr 10 04:54:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 10 04:54:21 2020 +0000"
      },
      "message": "[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master am: 1a26ddc3d8 -s ours am: 18bf7909e0 am: 7970abcca2 am: bd81ec987b -s ours\n\nam skip reason: subject contains skip directive\n\nChange-Id: If94b070b8a7af472c648428394c5c909d6143713\n"
    },
    {
      "commit": "bd81ec987bd71e082bdf17dd919a2ccbb14fa772",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "b83db54794fc0ae8a33e2a4020a1cdc9149d1b05",
        "7970abcca2e5ecd1d07c1ede1a486b9f8bf0c89f"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Apr 10 04:24:15 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 10 04:24:15 2020 +0000"
      },
      "message": "[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master am: 1a26ddc3d8 -s ours am: 18bf7909e0 am: 7970abcca2\n\nChange-Id: Ia252e17bd7b65787bad3a7147d3d6908bc4a288e\n"
    },
    {
      "commit": "7970abcca2e5ecd1d07c1ede1a486b9f8bf0c89f",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "ab24e494f5840700c8c6905e627565c4593931f8",
        "18bf7909e02227a34642e1c91f66ede191614c0c"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Apr 10 03:54:24 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 10 03:54:24 2020 +0000"
      },
      "message": "[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master am: 1a26ddc3d8 -s ours am: 18bf7909e0\n\nChange-Id: I0cfa4ec83963598b9413ecbf929c86203c89e6fd\n"
    },
    {
      "commit": "18bf7909e02227a34642e1c91f66ede191614c0c",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "908191f99c7290c2014179e5ce9748cea3b95c01",
        "1a26ddc3d8f6d748996b3542faec05cf7154d573"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Apr 10 03:19:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 10 03:19:21 2020 +0000"
      },
      "message": "[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master am: 1a26ddc3d8 -s ours\n\nam skip reason: subject contains skip directive\n\nChange-Id: Ib56607f6f12d1fbcb867e8834b115061fafb6d79\n"
    },
    {
      "commit": "1a26ddc3d8f6d748996b3542faec05cf7154d573",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "dcce41cd2c9bdf928aedfbc2b1fb5db156d0d4aa",
        "c6291b4afad7afd4f60758ac72ce82c6b907cf34"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Apr 09 17:50:53 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Apr 09 17:50:53 2020 -0700"
      },
      "message": "DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp into stag-aosp-master\n\nBug: 151763422\nChange-Id: Iad2eb56a17bd06e465a6ff1ff22853b421f32872\n"
    },
    {
      "commit": "114d36c60db0f380e36ae906bea72ed1755de51c",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "2a0d08e656d5b3c3460dd40aaa0e33d0afea44c7",
        "b83db54794fc0ae8a33e2a4020a1cdc9149d1b05"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Mar 19 05:38:59 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 19 05:38:59 2020 +0000"
      },
      "message": "[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master am: dcce41cd2c -s ours am: 908191f99c am: ab24e494f5 am: b83db54794 -s ours\n\nam skip reason: subject contains skip directive\n\nChange-Id: Ica5df866bf8f074e0f6f33ca1c9ee43ecc578294\n"
    },
    {
      "commit": "b83db54794fc0ae8a33e2a4020a1cdc9149d1b05",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "4538b165245a32dd093c7e357b42e29b90e79851",
        "ab24e494f5840700c8c6905e627565c4593931f8"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Mar 19 05:16:12 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 19 05:16:12 2020 +0000"
      },
      "message": "[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master am: dcce41cd2c -s ours am: 908191f99c am: ab24e494f5\n\nChange-Id: I15f702f9404d2274734a68e8cdf380979281e3f2\n"
    },
    {
      "commit": "ab24e494f5840700c8c6905e627565c4593931f8",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "9d5d8fdcb73229f0304d1a4edd641c9244bf4073",
        "908191f99c7290c2014179e5ce9748cea3b95c01"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Mar 19 04:52:43 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 19 04:52:43 2020 +0000"
      },
      "message": "[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master am: dcce41cd2c -s ours am: 908191f99c\n\nChange-Id: I9a0e9975d5d3527ba6eaf18710f8cbc7a4b6dc8b\n"
    },
    {
      "commit": "908191f99c7290c2014179e5ce9748cea3b95c01",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "4837d7c35ea73e425c0d997a64e777391d6e1aa1",
        "dcce41cd2c9bdf928aedfbc2b1fb5db156d0d4aa"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Mar 19 04:26:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 19 04:26:03 2020 +0000"
      },
      "message": "[automerger skipped] DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master am: dcce41cd2c -s ours\n\nam skip reason: subject contains skip directive\n\nChange-Id: I22dc64bf1f7af6dcc9834a711b22770c456ba1be\n"
    },
    {
      "commit": "c6291b4afad7afd4f60758ac72ce82c6b907cf34",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "83a90a99982ff344d4467343e68949543aed2abd",
        "dcce41cd2c9bdf928aedfbc2b1fb5db156d0d4aa"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Thu Mar 19 04:20:01 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 19 04:20:01 2020 +0000"
      },
      "message": "DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master am: dcce41cd2c\n\nChange-Id: I443935812a57bb7bd2ca4edf2c2c8c8025a5c37b\n"
    },
    {
      "commit": "dcce41cd2c9bdf928aedfbc2b1fb5db156d0d4aa",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "276f8d6022c480f9f6f4804e89df5bf93aea2a2b",
        "83a90a99982ff344d4467343e68949543aed2abd"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Mar 18 19:40:41 2020 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Mar 18 19:40:41 2020 -0700"
      },
      "message": "DO NOT MERGE - Empty merge qt-qpr1-dev-plus-aosp@6304901 into stag-aosp-master\n\nBug: 151763422\nChange-Id: Ie3a914841c5b532b5841e057b95a1aadc53d115f\n"
    },
    {
      "commit": "2a0d08e656d5b3c3460dd40aaa0e33d0afea44c7",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "9c919f28399ed5f9acdcd322da4004a31dfcbd84",
        "4538b165245a32dd093c7e357b42e29b90e79851"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:51:08 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:51:08 2020 +0000"
      },
      "message": "Revert \"Upgrade python/mock to 4.0.2\" am: 3381fde741 am: 276f8d6022 am: 4837d7c35e am: 9d5d8fdcb7 am: 4538b16524\n\nChange-Id: Ifcfb18de8d3a058270f0f9b8517735ab0bf6d71e\n"
    },
    {
      "commit": "4538b165245a32dd093c7e357b42e29b90e79851",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "56d7e669c2671bf04d49c5f48dee1f0e92fd4fb4",
        "9d5d8fdcb73229f0304d1a4edd641c9244bf4073"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:30:38 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:30:38 2020 +0000"
      },
      "message": "Revert \"Upgrade python/mock to 4.0.2\" am: 3381fde741 am: 276f8d6022 am: 4837d7c35e am: 9d5d8fdcb7\n\nChange-Id: Ie53c72ea6d883c7b0e9b9ce1ccd804e24633de2e\n"
    },
    {
      "commit": "9d5d8fdcb73229f0304d1a4edd641c9244bf4073",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "faca398e048082fafc582fd2023ed2e3da161d8d",
        "4837d7c35ea73e425c0d997a64e777391d6e1aa1"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:12:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:12:48 2020 +0000"
      },
      "message": "Revert \"Upgrade python/mock to 4.0.2\" am: 3381fde741 am: 276f8d6022 am: 4837d7c35e\n\nChange-Id: I6afcc41f0edbf9b26449fba5501ecfc59b35a037\n"
    },
    {
      "commit": "83a90a99982ff344d4467343e68949543aed2abd",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "463b416b3380bbae43ed1adcb6081596de01c21f",
        "276f8d6022c480f9f6f4804e89df5bf93aea2a2b"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:00:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:00:47 2020 +0000"
      },
      "message": "Revert \"Upgrade python/mock to 4.0.2\" am: 3381fde741 am: 276f8d6022\n\nChange-Id: I59adf0766aaeb79adb2b4326f08b998d1640953a\n"
    },
    {
      "commit": "4837d7c35ea73e425c0d997a64e777391d6e1aa1",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "f332c94a41ebb992ae90e58c9cb61d2c5a7ef170",
        "276f8d6022c480f9f6f4804e89df5bf93aea2a2b"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:00:28 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 17:00:28 2020 +0000"
      },
      "message": "Revert \"Upgrade python/mock to 4.0.2\" am: 3381fde741 am: 276f8d6022\n\nChange-Id: I7de1ceedb047681f0ff4bf9d58c7d06112d3c0f3\n"
    },
    {
      "commit": "276f8d6022c480f9f6f4804e89df5bf93aea2a2b",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "f5ce53b5810a305cc59e658ddeff0c4f4212c2a7",
        "3381fde74146dd5d07917b7ec8e74ecd1945d193"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 16:41:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 13 16:41:33 2020 +0000"
      },
      "message": "Revert \"Upgrade python/mock to 4.0.2\" am: 3381fde741\n\nChange-Id: I3b6bdb23c93e4227a65d4592eb424a956a36e584\n"
    },
    {
      "commit": "3381fde74146dd5d07917b7ec8e74ecd1945d193",
      "tree": "3d0f6532dde961e17aa921b9a5e76681a0b47fff",
      "parents": [
        "73ebb2ed5b2c2548259190bcbec2136f25598ec6"
      ],
      "author": {
        "name": "Herbert Xue",
        "email": "herbertxue@google.com",
        "time": "Fri Mar 13 14:48:45 2020 +0000"
      },
      "committer": {
        "name": "Herbert Xue",
        "email": "herbertxue@google.com",
        "time": "Fri Mar 13 16:05:32 2020 +0000"
      },
      "message": "Revert \"Upgrade python/mock to 4.0.2\"\n\nThis reverts commit 73ebb2ed5b2c2548259190bcbec2136f25598ec6.\n\nReason for revert: The CL caused acloud unittest fail. (b/151394661)\n\nBug: 151394661\nBug: 151400302\n\nChange-Id: I174b84067f892cb343abdc3a3aebd90cd1ddb0d3\n"
    },
    {
      "commit": "9c919f28399ed5f9acdcd322da4004a31dfcbd84",
      "tree": "dda13397b5da52c0a12b694da49e9c61d4be35a0",
      "parents": [
        "2955fbc6ae54f18375684e1d933c83907978f92f",
        "56d7e669c2671bf04d49c5f48dee1f0e92fd4fb4"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 02:02:40 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 02:02:40 2020 +0000"
      },
      "message": "Upgrade python/mock to 4.0.2 am: 73ebb2ed5b am: f5ce53b581 am: f332c94a41 am: faca398e04 am: 56d7e669c2\n\nChange-Id: Ie6a28a89e5fa806217aa39d2ceca470ae7703468\n"
    },
    {
      "commit": "56d7e669c2671bf04d49c5f48dee1f0e92fd4fb4",
      "tree": "dda13397b5da52c0a12b694da49e9c61d4be35a0",
      "parents": [
        "2955fbc6ae54f18375684e1d933c83907978f92f",
        "faca398e048082fafc582fd2023ed2e3da161d8d"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 01:42:38 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 01:42:38 2020 +0000"
      },
      "message": "Upgrade python/mock to 4.0.2 am: 73ebb2ed5b am: f5ce53b581 am: f332c94a41 am: faca398e04\n\nChange-Id: Ie05e2f987016c332b805e74642d591dc0f029f78\n"
    },
    {
      "commit": "faca398e048082fafc582fd2023ed2e3da161d8d",
      "tree": "dda13397b5da52c0a12b694da49e9c61d4be35a0",
      "parents": [
        "2955fbc6ae54f18375684e1d933c83907978f92f",
        "f332c94a41ebb992ae90e58c9cb61d2c5a7ef170"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 01:27:36 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 01:27:36 2020 +0000"
      },
      "message": "Upgrade python/mock to 4.0.2 am: 73ebb2ed5b am: f5ce53b581 am: f332c94a41\n\nChange-Id: Iac1d39c758245a3ac9904f2e6d3c977e2290273c\n"
    },
    {
      "commit": "463b416b3380bbae43ed1adcb6081596de01c21f",
      "tree": "dda13397b5da52c0a12b694da49e9c61d4be35a0",
      "parents": [
        "9689100683aa0695bd2ba3c72068473346dfea7b",
        "f5ce53b5810a305cc59e658ddeff0c4f4212c2a7"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 01:14:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 01:14:52 2020 +0000"
      },
      "message": "Upgrade python/mock to 4.0.2 am: 73ebb2ed5b am: f5ce53b581\n\nChange-Id: Ia3ddfac945fbf3d4b5ed13257d6cf81bfbf2a23a\n"
    },
    {
      "commit": "f332c94a41ebb992ae90e58c9cb61d2c5a7ef170",
      "tree": "dda13397b5da52c0a12b694da49e9c61d4be35a0",
      "parents": [
        "2955fbc6ae54f18375684e1d933c83907978f92f",
        "f5ce53b5810a305cc59e658ddeff0c4f4212c2a7"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 01:14:43 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 01:14:43 2020 +0000"
      },
      "message": "Upgrade python/mock to 4.0.2 am: 73ebb2ed5b am: f5ce53b581\n\nChange-Id: I5cbf2c2acaa5898ffa528f79290651b941661a6c\n"
    },
    {
      "commit": "f5ce53b5810a305cc59e658ddeff0c4f4212c2a7",
      "tree": "dda13397b5da52c0a12b694da49e9c61d4be35a0",
      "parents": [
        "9689100683aa0695bd2ba3c72068473346dfea7b",
        "73ebb2ed5b2c2548259190bcbec2136f25598ec6"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 00:51:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Mar 12 00:51:49 2020 +0000"
      },
      "message": "Upgrade python/mock to 4.0.2 am: 73ebb2ed5b\n\nChange-Id: Id330f80fd1b0a941929a3ab84dec1430ee30da5d\n"
    },
    {
      "commit": "73ebb2ed5b2c2548259190bcbec2136f25598ec6",
      "tree": "dda13397b5da52c0a12b694da49e9c61d4be35a0",
      "parents": [
        "9689100683aa0695bd2ba3c72068473346dfea7b",
        "b5ce0a5c4d372b77deff46fec8edf974d7d1f875"
      ],
      "author": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Wed Mar 11 13:49:06 2020 -0700"
      },
      "committer": {
        "name": "Haibo Huang",
        "email": "hhb@google.com",
        "time": "Thu Mar 12 00:31:44 2020 +0000"
      },
      "message": "Upgrade python/mock to 4.0.2\n\nTest: None\nExempt-From-Owner-Approval: Upgrade\nChange-Id: Ic0a71aca5940afe1cdbbc8bd7bef4034543fc1af\n"
    },
    {
      "commit": "b5ce0a5c4d372b77deff46fec8edf974d7d1f875",
      "tree": "7ddd1306aaef61cf7e75f6fb269b87e2841d06d4",
      "parents": [
        "87546bf7b90531e70419e6343c0938dcab3fb36b"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@simplistix.co.uk",
        "time": "Wed Mar 11 17:10:35 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Mar 11 17:25:49 2020 +0000"
      },
      "message": "Add intersphinx."
    },
    {
      "commit": "87546bf7b90531e70419e6343c0938dcab3fb36b",
      "tree": "f1bad0511133b69af16aebcba7e84791b50d6bea",
      "parents": [
        "d06f48d677ffd387fab97a628d9d96613f6af065"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@simplistix.co.uk",
        "time": "Wed Mar 11 17:08:10 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Mar 11 17:25:49 2020 +0000"
      },
      "message": "Preparing for 4.0.2 release.\n"
    },
    {
      "commit": "d06f48d677ffd387fab97a628d9d96613f6af065",
      "tree": "40fd246f1591764765e1957b66ab9854473d01f0",
      "parents": [
        "742b7f025cfe641fcbb8ef6b1043d00ccfdcf840"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@simplistix.co.uk",
        "time": "Wed Mar 11 17:04:44 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Mar 11 17:25:49 2020 +0000"
      },
      "message": "latest sync point\n"
    },
    {
      "commit": "742b7f025cfe641fcbb8ef6b1043d00ccfdcf840",
      "tree": "150d359f12ef36b3dfbd7e00c6732be6e85c2fc0",
      "parents": [
        "bab8ceab6219866b1589bec37e74c7a6dd85bc80"
      ],
      "author": {
        "name": "Karthikeyan Singaravelan",
        "email": "tir.karthi@gmail.com",
        "time": "Wed Mar 11 20:36:12 2020 +0530"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Mar 11 17:25:49 2020 +0000"
      },
      "message": "bpo-39915: Ensure await_args_list is updated according to the order in which coroutines were awaited (GH-18924)\n\nCreate call objects with awaited arguments instead of using call_args which has only last call value.\n\nBackports: e553f204bf0e39b1d701a364bc71b286acb9433f\nSigned-off-by: Chris Withers \u003cchris@simplistix.co.uk\u003e\n"
    },
    {
      "commit": "bab8ceab6219866b1589bec37e74c7a6dd85bc80",
      "tree": "381cae46bf9db59a73f7b01abdd3ba3ef6253f83",
      "parents": [
        "ea9f71536da0ce3bd31e31b5f428f3495c6ab0dc"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Thu Feb 06 15:42:01 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Thu Feb 06 15:50:10 2020 +0000"
      },
      "message": "Remove universal wheel tag and prepare for a 4.0.1 release\n"
    },
    {
      "commit": "ea9f71536da0ce3bd31e31b5f428f3495c6ab0dc",
      "tree": "c2b1c4cccc031e2d51d75b2acb680f1741c719f7",
      "parents": [
        "9e5e0380626fd3c540aa4799df0e794cf24d16aa"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Feb 05 08:13:41 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Feb 05 08:13:41 2020 +0000"
      },
      "message": "Prepare for 4.0.0 release\n"
    },
    {
      "commit": "9e5e0380626fd3c540aa4799df0e794cf24d16aa",
      "tree": "f24c52dcf40f3d8d387cc7cf660853a603ac514c",
      "parents": [
        "87ca4065d461e46430070a0f1680e45c9c80a1f0"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 21:14:49 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 21:14:49 2020 +0000"
      },
      "message": "*sigh*\n"
    },
    {
      "commit": "87ca4065d461e46430070a0f1680e45c9c80a1f0",
      "tree": "4ef01789f28f6ff23e970ea04df0d50f059dfc7c",
      "parents": [
        "8fb893c3485eee683348e113f90334b6341c99a3"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 21:14:42 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 21:14:42 2020 +0000"
      },
      "message": "this skip is no longer needed\n"
    },
    {
      "commit": "8fb893c3485eee683348e113f90334b6341c99a3",
      "tree": "c565e18c9cc3144079c5ff34ee8df169255e3900",
      "parents": [
        "7a4a7d20bbdd0da2ffa945e91969afd639da67e6"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 20:50:11 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 20:50:11 2020 +0000"
      },
      "message": "*sigh*\n"
    },
    {
      "commit": "7a4a7d20bbdd0da2ffa945e91969afd639da67e6",
      "tree": "0abe9e4cccb04e9f58381551ef531f28e467429e",
      "parents": [
        "4bc7455e26f2cef983d878a7a46ce961d961888e"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 20:48:51 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 20:48:51 2020 +0000"
      },
      "message": "another packaging test bugfix\n"
    },
    {
      "commit": "4bc7455e26f2cef983d878a7a46ce961d961888e",
      "tree": "7ccaa1b104e962aa68f7f906fc90b1e7029688e8",
      "parents": [
        "35c733d6128877141e06a28ed670535f67580455"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:56:18 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:56:18 2020 +0000"
      },
      "message": "paranoid packaging check for 3.6\n"
    },
    {
      "commit": "35c733d6128877141e06a28ed670535f67580455",
      "tree": "ae4a74f1ea624d593ed7a04ce3022d11cbe51b99",
      "parents": [
        "8c6dcdfa9d44038202194ef2c3e5ae088089d65a"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:53:11 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:53:47 2020 +0000"
      },
      "message": "fixup: package checks\n"
    },
    {
      "commit": "8c6dcdfa9d44038202194ef2c3e5ae088089d65a",
      "tree": "c2829e7163c79719a41f9ca149f430bdc789b3a3",
      "parents": [
        "8fcd7fb6b37dd5b024406f78326449244776d27d",
        "ba8cbf9dff0f44b9d4f281487c046de09095dbbb"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@simplistix.co.uk",
        "time": "Wed Jan 29 19:51:08 2020 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Jan 29 19:51:08 2020 +0000"
      },
      "message": "Merge pull request #476 from cjw296/restart_for_4\n\nversion 4.0.0b1 - gulp..."
    },
    {
      "commit": "ba8cbf9dff0f44b9d4f281487c046de09095dbbb",
      "tree": "c2829e7163c79719a41f9ca149f430bdc789b3a3",
      "parents": [
        "9004d447d9c8dcf3d4e039628d31c3e01c74f0f5"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:29:46 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:46:36 2020 +0000"
      },
      "message": "Preparing for 4.1.0 release.\n"
    },
    {
      "commit": "9004d447d9c8dcf3d4e039628d31c3e01c74f0f5",
      "tree": "3528040ef4db71399da82618f19697cfc6bf99a3",
      "parents": [
        "fe43b42af2907a2990cd7223338b381a3e7ca01a"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:42:00 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:46:36 2020 +0000"
      },
      "message": "ReST bugfix\n"
    },
    {
      "commit": "fe43b42af2907a2990cd7223338b381a3e7ca01a",
      "tree": "ef7a514ab557d5f2440a2f0b904c23f97b630780",
      "parents": [
        "7fd17496a8b840d6f51dfdc639a8310ec8efa36e"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:41:50 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:46:36 2020 +0000"
      },
      "message": "another code coverage pattern\n"
    },
    {
      "commit": "7fd17496a8b840d6f51dfdc639a8310ec8efa36e",
      "tree": "86460b3239994ba2c66f5f374ae936914f6a8957",
      "parents": [
        "37f664b1dd378d7de97624bcda9b5ee09abc87a7"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:39:12 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:46:36 2020 +0000"
      },
      "message": "bug fix on committing changed version file\n"
    },
    {
      "commit": "37f664b1dd378d7de97624bcda9b5ee09abc87a7",
      "tree": "f138adff79915cae61458e94d6da2737045c61d5",
      "parents": [
        "3610394f7dfeb8c8a9ba2c789ed1ccd020abddec"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:26:01 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:26:01 2020 +0000"
      },
      "message": "fixup: point sphinx conf at new version location\n"
    },
    {
      "commit": "3610394f7dfeb8c8a9ba2c789ed1ccd020abddec",
      "tree": "d1cda23010c768d8eb13697e5fe10ba3c5f7f722",
      "parents": [
        "a294948da73d1135e6ea955cb46413903a0906da"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 07:34:27 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:15:17 2020 +0000"
      },
      "message": "latest sync point\n"
    },
    {
      "commit": "a294948da73d1135e6ea955cb46413903a0906da",
      "tree": "191c6bb27cd4350f9371303662401516ff08b394",
      "parents": [
        "9b05bea15f383b90c155cff08032bb2db7fbae96"
      ],
      "author": {
        "name": "blhsing",
        "email": "github@ydooby.com",
        "time": "Wed Sep 11 07:28:06 2019 -0700"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:15:17 2020 +0000"
      },
      "message": "bpo-37972: unittest.mock._Call now passes on __getitem__ to the __getattr__ chaining so that call() can be subscriptable (GH-15565)\n\n* bpo-37972: unittest.mock._Call now passes on __getitem__ to the __getattr__ chaining so that call() can be subscriptable\n\n* 📜🤖 Added by blurb_it.\n\n* Update 2019-08-28-21-40-12.bpo-37972.kP-n4L.rst\n\nadded name of the contributor\n\n* bpo-37972: made all dunder methods chainable for _Call\n\n* bpo-37972: delegate only attributes of tuple instead to __getattr__\n\nBackports: 72c359912d36705a94fca8b63d80451905a14ae4\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "9b05bea15f383b90c155cff08032bb2db7fbae96",
      "tree": "71c891159fc490369944640c0f00fdb3c807705d",
      "parents": [
        "5db45d4d68bbf1550a83f6390b00bde223547365"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 16:24:54 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "Get mock coverage back to 100% (GH-18228)\n\n* use the `: pass` and `: yield` patterns for code that isn\u0027t expected to ever be executed.\n\n* The _Call items passed to _AnyComparer are only ever of length two, so assert instead of if/else\n\n* fix typo\n\n* Fix bug, where stop-without-start patching dict blows up with `TypeError: \u0027NoneType\u0027 object is not iterable`, highlighted by lack of coverage of an except branch.\n\n* The fix for bpo-37972 means _Call.count and _Call.index are no longer needed.\n\n* add coverage for calling next() on a mock_open with readline.return_value set.\n\n* __aiter__ is defined on the Mock so the one on _AsyncIterator is never called.\n\nBackports: db5e86adbce12350c26e7ffc2c6673369971a2dc\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "5db45d4d68bbf1550a83f6390b00bde223547365",
      "tree": "a1854f30cafd59af26bdae69d3735eb8248b6eb5",
      "parents": [
        "0c6893a81d6a6ef106d3f2698e0cf12a021eecc7"
      ],
      "author": {
        "name": "Carl Friedrich Bolz-Tereick",
        "email": "cfbolz@gmx.de",
        "time": "Wed Jan 29 16:43:37 2020 +0100"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-39485: fix corner-case in method-detection of mock (GH-18252)\n\nReplace check for whether something is a method in the mock module. The\nprevious version fails on PyPy, because there no method wrappers exist\n(everything looks like a regular Python-defined function). Thus the\nisinstance(getattr(result, \u0027__get__\u0027, None), MethodWrapperTypes) check\nreturns True for any descriptor, not just methods.\n\nThis condition could also return erroneously True in CPython for\nC-defined descriptors.\n\nInstead to decide whether something is a method, just check directly\nwhether it\u0027s a function defined on the class. This passes all tests on\nCPython and fixes the bug on PyPy.\n\nBackports: a327677905956ae0b239ff430a1346dfe265709e\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "0c6893a81d6a6ef106d3f2698e0cf12a021eecc7",
      "tree": "3d48bad0c48d92df4ced4c17a821a41bc419fe35",
      "parents": [
        "608b1bd15975abdcd7db51462c53ad0df7376c99"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Tue Jan 28 07:25:50 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "instructions for running coverage on cpython\u0027s mock package"
    },
    {
      "commit": "608b1bd15975abdcd7db51462c53ad0df7376c99",
      "tree": "dd8bf852f0ba7eeae7c059bc7f0b3fd1e6703051",
      "parents": [
        "d6deb20320a60af7045d4ee5959b762a88dba743"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Tue Jan 28 07:25:36 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "ignore empty yield methods too"
    },
    {
      "commit": "d6deb20320a60af7045d4ee5959b762a88dba743",
      "tree": "bf1beb581fb43c6c91b955670570cb2ae76354ec",
      "parents": [
        "af0e3edb1f8df0f22751bd068cdbccc39d377392"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Mon Jan 27 18:41:10 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "fixup: uncache backport\n"
    },
    {
      "commit": "af0e3edb1f8df0f22751bd068cdbccc39d377392",
      "tree": "788b920a9222b606430d2048c9f82967a40ac9de",
      "parents": [
        "a4d8faec42cf0d0235f2fdaa889568d0bcd0d757"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Mon Jan 27 18:38:51 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "fixup: simplify IsolatedAsyncioTestCase backport\n"
    },
    {
      "commit": "a4d8faec42cf0d0235f2fdaa889568d0bcd0d757",
      "tree": "95f0f20e5747a6b841a75b63469aee4dfc5c750c",
      "parents": [
        "04ebc282849a202c50f9ab08c6cde6ee67286c2a"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Mon Jan 27 14:55:56 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "Clarify and fix assertions that mocks have not been awaited (GH-18196)\n\n- The gc.collect is needed for other implementations, such as pypy\n- Using context managers over multiple lines will only catch the warning from the first line in the context!\n- remove a skip for a test that no longer fails on pypy\n\nBackports: a46575a8f2ded8b49e26c25bb67192e1500e76ca\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "04ebc282849a202c50f9ab08c6cde6ee67286c2a",
      "tree": "a5cfe8e093ab6b0e82802e41fc22d68ceb8d1385",
      "parents": [
        "740932702ba4fc01a8bbad3d5a1ce9ee799e3b9b"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Mon Jan 27 18:17:37 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "Backports: c7dd3c7d87d6961756d99b57aa13db7c7a03e1f8, skipped: already applied\n"
    },
    {
      "commit": "740932702ba4fc01a8bbad3d5a1ce9ee799e3b9b",
      "tree": "5b34fa040d1ce09b5d4000a7074fe3d59ff6fb73",
      "parents": [
        "0dc01d64279df3c51df2b2e3c6312110fce02973"
      ],
      "author": {
        "name": "Karthikeyan Singaravelan",
        "email": "tir.karthi@gmail.com",
        "time": "Mon Jan 27 12:18:15 2020 +0530"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-25597: Ensure wraps\u0027 return value is used for magic methods in MagicMock (#16029)\n\nBackports: 72b1004657e60c900e4cd031b2635b587f4b280e\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "0dc01d64279df3c51df2b2e3c6312110fce02973",
      "tree": "c570d2f14a569fff0b8126c9646cb4a4e6165533",
      "parents": [
        "1d85e1adde1bebbd5fe26de82ceecbf88ba886b5"
      ],
      "author": {
        "name": "Vegard Stikbakke",
        "email": "vegard.stikbakke@gmail.com",
        "time": "Sat Jan 25 16:44:46 2020 +0100"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-38932: Mock fully resets child objects on reset_mock(). (GH-17409)\n\nBackports: aef7dc89879d099dc704bd8037b8a7686fb72838\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "1d85e1adde1bebbd5fe26de82ceecbf88ba886b5",
      "tree": "e64c7c038a899e5b4efc8feac074ea4ba6f16ad6",
      "parents": [
        "ad2b38dacd3743add10481bde39de984057a5b5c"
      ],
      "author": {
        "name": "Paulo Henrique Silva",
        "email": "ph.silva@gmail.com",
        "time": "Sat Jan 25 07:53:54 2020 -0300"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-37955: correct mock.patch docs with respect to the returned type (GH-15521)\n\nBackports: 40c080934b3d49311209b1cb690c2ea1e04df7e7\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "ad2b38dacd3743add10481bde39de984057a5b5c",
      "tree": "3f7941a860d097b198755122479078998d1957dd",
      "parents": [
        "8d3d8f29fa9aa9fcac375e6481480d57886478ef"
      ],
      "author": {
        "name": "Matthew Kokotovich",
        "email": "mkokotovich@gmail.com",
        "time": "Sat Jan 25 04:17:47 2020 -0600"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-39082: Allow AsyncMock to correctly patch static/class methods (GH-18116)\n\nBackports: 62865f4532094017a9b780b704686ca9734bc329\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "8d3d8f29fa9aa9fcac375e6481480d57886478ef",
      "tree": "a0ae0b6efaa2584d17cbfe9297c88fe0602c36e6",
      "parents": [
        "7a5fc548cd3c6dac3c601a866bf910420d797a96"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Mon Jan 27 07:50:25 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "move testasync to backports.iscoroutinefunction to keep inline with upstream imports\n"
    },
    {
      "commit": "7a5fc548cd3c6dac3c601a866bf910420d797a96",
      "tree": "8d2d040d6cc3d35d3b9e568a504b795023db0fe0",
      "parents": [
        "5a12423241f1168c0609c28e88c1f2e40ba40e38"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Sat Jan 25 10:44:42 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "pypy actually gets this right, so make it clear in the test"
    },
    {
      "commit": "5a12423241f1168c0609c28e88c1f2e40ba40e38",
      "tree": "7b4579d3d75a0c7251561a11b7a9d6c020573733",
      "parents": [
        "610e9e3ae0cac170883c73ddc6a5bb164e9451d4"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Sat Jan 25 10:44:19 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "this one no longer fails on pypy\n"
    },
    {
      "commit": "610e9e3ae0cac170883c73ddc6a5bb164e9451d4",
      "tree": "f292d50145a4f891dcc935922c475a19efb19e2e",
      "parents": [
        "5de813ca343c6bc4bc990b6d1a3df1a0407ddaa6"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 18:37:55 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "flip more to iscoroutinefunction backport\n"
    },
    {
      "commit": "5de813ca343c6bc4bc990b6d1a3df1a0407ddaa6",
      "tree": "78ef26a9a87be2fb3eb345e1d39a7376fab4c1f2",
      "parents": [
        "11df596649d109d3d36f3a5062bd32f42493808a"
      ],
      "author": {
        "name": "Karthikeyan Singaravelan",
        "email": "tir.karthi@gmail.com",
        "time": "Fri Jan 24 18:44:29 2020 +0530"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-38473: Handle autospecced functions and methods used with attach_mock (GH-16784)\n\nBackports: 66b00a9d3aacf6ed49412f48743e4913104a2bb3\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "11df596649d109d3d36f3a5062bd32f42493808a",
      "tree": "4c968abd8fa6795762a7f2681cecfec52421a84a",
      "parents": [
        "aa5f6e9e2df8a77b2f81714018043efc392ae676"
      ],
      "author": {
        "name": "Mario Corchero",
        "email": "mariocj89@gmail.com",
        "time": "Fri Jan 24 08:38:33 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "Fix `mock.patch.dict` to be stopped with `mock.patch.stopall` (#17606)\n\nAs the function was not registering in the active patches, the mocks\nstarted by `mock.patch.dict` were not being stopped when\n`mock.patch.stopall` was being called.\n\nBackports: e131c9720d087c0c4988bd2a5c62020feb9d1d77\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "aa5f6e9e2df8a77b2f81714018043efc392ae676",
      "tree": "4f60b2a3b8233b8363a81e461312577a525b2a7e",
      "parents": [
        "7a35f3a96bd043073f089a840965166923808de5"
      ],
      "author": {
        "name": "Emmanuel Arias",
        "email": "eamanu@yaerobi.com",
        "time": "Fri Jan 24 05:14:14 2020 -0300"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-24928: Add test case for patch.dict using OrderedDict (GH -11437)\n\n* add test for path.dict using OrderedDict\n\nCo-authored-by: Yu Tomita nekobon@users.noreply.github.com\nBackports: 1d0c5e16eab29d55773cc4196bb90d2bf12e09dd\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "7a35f3a96bd043073f089a840965166923808de5",
      "tree": "daa17fc7ed0d6bdebd7ec51e32d82d7768b83635",
      "parents": [
        "695580a480ce046136aa652191d9b5c6926015a9"
      ],
      "author": {
        "name": "Karthikeyan Singaravelan",
        "email": "tir.karthi@gmail.com",
        "time": "Wed Jan 15 15:19:49 2020 +0530"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "Improve test coverage for AsyncMock. (GH-17906)\n\n* Add test for nested async decorator patch.\n* Add test for side_effect and wraps with a function.\n* Add test for side_effect with an exception in the iterable.\n\nBackports: 54f743eb315f00b0ff45e115dde7a5d506034153\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "695580a480ce046136aa652191d9b5c6926015a9",
      "tree": "e59f3d8894925588681b4334e9b9719be6d98521",
      "parents": [
        "c000fff5bdc49c620ea6bc9160214858b64f611e"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Mon Jan 13 19:11:34 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "remove unused __version__ from mock.py (#17977)\n\nThis isn\u0027t included in `__all__` and could be a source of confusion.\n\nBackports: 31d6de5aba009914efa8f0f3c3d7da35217578eb\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "c000fff5bdc49c620ea6bc9160214858b64f611e",
      "tree": "aeff1eaab210bae48fd1384b05d36f5319f73c6c",
      "parents": [
        "a6768e64120cd6c963035044e9d70fb85f2dabc0"
      ],
      "author": {
        "name": "Elena Oat",
        "email": "oat.elena@gmail.com",
        "time": "Sun Dec 08 12:14:38 2019 -0800"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-38669: patch.object now raises a helpful error (GH17034)\n\nThis means a clearer message is now shown when patch.object is called with two string arguments, rather than a class and a string argument.\n\nBackports: cd90a52983db34896a6335a572d55bdda274778f\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "a6768e64120cd6c963035044e9d70fb85f2dabc0",
      "tree": "f8ce6ced270903d4111cf2fd875a03f3e50796ae",
      "parents": [
        "30cc1881168041d1ddede3ecd15b69407a564e7f"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 07:29:40 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "minimal backport of IsolatedAsyncioTestCase to get tests passing on Py3.6\n"
    },
    {
      "commit": "30cc1881168041d1ddede3ecd15b69407a564e7f",
      "tree": "55da56958743a00ac23f829d6421c667dd766519",
      "parents": [
        "0fda551a97c2a99f6dd3e426b4ceedcde4d38d1b"
      ],
      "author": {
        "name": "Jason Fried",
        "email": "fried@fb.com",
        "time": "Wed Nov 20 16:27:51 2019 -0800"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-38857: AsyncMock fix for awaitable values and StopIteration fix [3.8] (GH-17269)\n\nBackports: 046442d02bcc6e848e71e93e47f6cde9e279e993\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "0fda551a97c2a99f6dd3e426b4ceedcde4d38d1b",
      "tree": "d1fe2b64a5eace8ae7e2da61b66a35bb89c03810",
      "parents": [
        "ec2bfa7997580e981232a400401c12998db67c44"
      ],
      "author": {
        "name": "Adam Johnson",
        "email": "me@adamj.eu",
        "time": "Tue Nov 19 19:45:20 2019 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:17 2020 +0000"
      },
      "message": "bpo-38839: Fix some unused functions in tests (GH-17189)\n\nBackports: 892221bfa04a41cf581f988ba19dc263f557e157\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "ec2bfa7997580e981232a400401c12998db67c44",
      "tree": "c77370330fad39394550e4e8f1698bdef73c50e9",
      "parents": [
        "189dffbe8106c7afb5e65211a6132235f62c23ca"
      ],
      "author": {
        "name": "Lisa Roach",
        "email": "lisaroach14@gmail.com",
        "time": "Sun Sep 29 21:56:47 2019 -0700"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-38163: Child mocks detect their type as sync or async (GH-16471)\n\nBackports: 3667e1ee6c90e6d3b6a745cd590ece87118f81ad\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "189dffbe8106c7afb5e65211a6132235f62c23ca",
      "tree": "7f450d3dd114007dd6461eaf7f4ae9076ddbcfa6",
      "parents": [
        "be7df8183b74c4c83da3321941a964b279976e8f"
      ],
      "author": {
        "name": "Lisa Roach",
        "email": "lisaroach14@gmail.com",
        "time": "Sun Sep 29 21:01:28 2019 -0700"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-38161: Removes _AwaitEvent from AsyncMock. (GH-16443)\n\nBackports: 25e115ec00b5f75e3589c9f21013c47c21e1753f\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "be7df8183b74c4c83da3321941a964b279976e8f",
      "tree": "2df237ed61ba192556cdab32e9c43a5c31ddac33",
      "parents": [
        "ee8bbd4effef511f527e27d1bf27978650b4ac9e"
      ],
      "author": {
        "name": "Lisa Roach",
        "email": "lisaroach14@gmail.com",
        "time": "Sat Sep 28 18:42:44 2019 -0700"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-38108: Makes mock objects inherit from Base (GH-16060)\n\nBackports: 9a7d9519506ae807ca48ff02e2ea117ebac3450e\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "ee8bbd4effef511f527e27d1bf27978650b4ac9e",
      "tree": "d849ee83367ae6102e042b862111928e75089381",
      "parents": [
        "3bdebf260ea3b7143e4946863fafe63dbe8cb5ee"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 22 18:52:28 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "support for py3.6"
    },
    {
      "commit": "3bdebf260ea3b7143e4946863fafe63dbe8cb5ee",
      "tree": "188f257d422473b8048d0b0f7d5c61d598ff615a",
      "parents": [
        "a0e820d377a4724f5d1478a76a1b6ffbb6551e0c"
      ],
      "author": {
        "name": "Samuel Freilich",
        "email": "sfreilich@google.com",
        "time": "Tue Sep 24 18:04:29 2019 -0400"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-36871: Avoid duplicated \u0027Actual:\u0027 in assertion message (GH-16361)\n\nFixes an issue caught after merge of PR 16005.\n\nTightened test assertions to check the entire assertion message.\n\nBackports: 2180f6b058effbf49ec819f7cedbe76ddd4b700c\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "a0e820d377a4724f5d1478a76a1b6ffbb6551e0c",
      "tree": "102c87576a7c2beb898c955efd65329257bffce4",
      "parents": [
        "e702e61a24abe7dfff374875358669fdbfaa2aa2"
      ],
      "author": {
        "name": "Samuel Freilich",
        "email": "sfreilich@google.com",
        "time": "Tue Sep 24 15:08:31 2019 -0400"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-36871: Handle spec errors in assert_has_calls (GH-16005)\n\nThe fix in PR 13261 handled the underlying issue about the spec for specific methods not being applied correctly, but it didn\u0027t fix the issue that was causing the misleading error message.\n\nThe code currently grabs a list of responses from _call_matcher (which may include exceptions). But it doesn\u0027t reach inside the list when checking if the result is an exception. This results in a misleading error message when one of the provided calls does not match the spec.\n\nhttps://bugs.python.org/issue36871\n\nAutomerge-Triggered-By: @gpshead\nBackports: b5a7a4f0c20717a4c92c371583b5521b83f40f32\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "e702e61a24abe7dfff374875358669fdbfaa2aa2",
      "tree": "caa2fcd61deb76b7d06d86142569c78a09fbdbfd",
      "parents": [
        "d66e9d73d9d0894182aec074a6fb3c674788ff47"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 22 07:25:16 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "turn warnings for async stuff into errors."
    },
    {
      "commit": "d66e9d73d9d0894182aec074a6fb3c674788ff47",
      "tree": "cd914a90edce42bd01950134e7d493f73711ea77",
      "parents": [
        "136175ad1590c5a11629346931759868213e1416"
      ],
      "author": {
        "name": "Lisa Roach",
        "email": "lisaroach14@gmail.com",
        "time": "Mon Sep 23 20:49:40 2019 -0700"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-38136: Updates await_count and call_count to be different things (GH-16192)\n\nBackports: ef048517755db1f0d211fb6dfc655a8b412cc96f\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "136175ad1590c5a11629346931759868213e1416",
      "tree": "e3fb2aa5239ee7c095a6204fbad79121018426b6",
      "parents": [
        "3b149c9b1e8be34c12710ed88f5e73a6469b0215"
      ],
      "author": {
        "name": "Lisa Roach",
        "email": "lisaroach14@gmail.com",
        "time": "Thu Sep 19 21:04:18 2019 -0700"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-38093: Correctly returns AsyncMock for async subclasses. (GH-15947)\n\nBackports: 8b03f943c37e07fb2394acdcfacd066647f9b1fd\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "3b149c9b1e8be34c12710ed88f5e73a6469b0215",
      "tree": "ba79649a4672113cf6a6d49860f18deb0d3a6c9e",
      "parents": [
        "14aaccb5db4b977fe6968807f51a7b6286def5b3"
      ],
      "author": {
        "name": "Abraham Toriz Cruz",
        "email": "awonderfulcode@gmail.com",
        "time": "Tue Sep 17 06:16:08 2019 -0500"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-37828: Fix default mock_name in unittest.mock.assert_called error (GH-16166)\n\nIn the format string for assert_called the evaluation order is incorrect and hence for mock\u0027s without name, \u0027None\u0027 is printed whereas it should be \u0027mock\u0027 like for other messages. The error message is (\"Expected \u0027%s\u0027 to have been called.\" % self._mock_name or \u0027mock\u0027).\n\nBackports: 5f5f11faf9de0d8dcbe1a8a4eb35d2a4232d6eaa\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "14aaccb5db4b977fe6968807f51a7b6286def5b3",
      "tree": "f27970edc217350e694fdca6df84f53a6065f6d0",
      "parents": [
        "21ea393db3c288d6d1450a90c1b07d11d0c0f02f"
      ],
      "author": {
        "name": "marcoramirezmx",
        "email": "55331462+marcoramirezmx@users.noreply.github.com",
        "time": "Mon Sep 16 11:34:46 2019 -0500"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-38100: Fix spelling error in unittest.mock code (GH-16168)\n\nBackports: a9187c31185fe7ea47271839898416400cc3d976\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "21ea393db3c288d6d1450a90c1b07d11d0c0f02f",
      "tree": "19e8a618fbf195385cc4db7dce5c52198de7489b",
      "parents": [
        "702d35bd917f37a5105596d36dfa9a476d5f7155"
      ],
      "author": {
        "name": "Michael Foord",
        "email": "voidspace@users.noreply.github.com",
        "time": "Fri Sep 13 18:40:56 2019 +0200"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-38122: minor fixes to AsyncMock spec handling (GH-16099)\n\nBackports: 14fd925a18fe3db0922a7d798e373102fe7a8a9c\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "702d35bd917f37a5105596d36dfa9a476d5f7155",
      "tree": "ab93e5023be84c5f540a03a69850017011a50fc0",
      "parents": [
        "08a2de7a298ddcdf2b5f3a4a13f18f09b05df168"
      ],
      "author": {
        "name": "Elizabeth Uselton",
        "email": "elizabeth.uselton@gmail.com",
        "time": "Fri Sep 13 08:54:32 2019 -0700"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Wed Jan 29 19:12:16 2020 +0000"
      },
      "message": "bpo-37555: Update _CallList.__contains__ to respect ANY (#14700)\n\n* Flip equality to use mock calls\u0027 __eq__\n\n* bpo-37555: Regression test demonstrating assert_has_calls not working with ANY and spec_set\n\nCo-authored-by: Neal Finne \u003cneal@nealfinne.com\u003e\n\n* Revert \"Flip equality to use mock calls\u0027 __eq__\"\n\nThis reverts commit 94ddf54c5a8aab7d00d9ab93e1cc5695c28d73e7.\n\n* bpo-37555: Add regression tests for mock ANY ordering issues\n\nAdd regression tests for whether __eq__ is order agnostic on _Call and _CallList, which is useful for comparisons involving ANY, especially if the ANY comparison is to a class not defaulting __eq__ to NotImplemented.\n\nCo-authored-by: Neal Finne \u003cneal@nealfinne.com\u003e\n\n* bpo-37555: Fix _CallList and _Call order sensitivity\n\n_Call and _CallList depend on ordering to correctly process that an object being compared to ANY with __eq__ should return True. This fix updates the comparison to check both a \u003d\u003d b and b \u003d\u003d a and return True if either condition is met, fixing situations from the tests in the previous two commits where assertEqual would not be commutative if checking _Call or _CallList objects. This seems like a reasonable fix considering that the Python data model specifies that if an object doesn\u0027t know how to compare itself to another object it should return NotImplemented, and that on getting NotImplemented from a \u003d\u003d b, it should try b \u003d\u003d a, implying that good behavior for __eq__ is commutative. This also flips the order of comparison in _CallList\u0027s __contains__ method, guaranteeing ANY will be on the left and have it\u0027s __eq__ called for equality checking, fixing the interaction between assert_has_calls and ANY.\n\nCo-author: Neal Finne \u003cneal@neal.finne.com\u003e\n\n* bpo-37555: Ensure _call_matcher returns _Call object\n\n* Adding ACK and news entry\n\n* bpo-37555: Replacing __eq__ with \u003d\u003d to sidestep NotImplemented\n\nbool(NotImplemented) returns True, so it\u0027s necessary to use \u003d\u003d\ninstead of __eq__ in this comparison.\n\n* bpo-37555: cleaning up changes unnecessary to the final product\n\n* bpo-37555: Fixed call on bound arguments to respect args and kwargs\n\n* Revert \"bpo-37555: Add regression tests for mock ANY ordering issues\"\n\nThis reverts commit 49c5310ad493c4356dd3bc58c03653cd9466c4fa.\n\n* Revert \"bpo-37555: cleaning up changes unnecessary to the final product\"\n\nThis reverts commit 18e964ba0126d8964d89842cb95534b63c2d326e.\n\n* Revert \"bpo-37555: Replacing __eq__ with \u003d\u003d to sidestep NotImplemented\"\n\nThis reverts commit f295eaca5bceac6636c0e2b10e6c7d9a8ee8296a.\n\n* Revert \"bpo-37555: Fix _CallList and _Call order sensitivity\"\n\nThis reverts commit 874fb697b8376fcea130116e56189061f944fde6.\n\n* Updated NEWS.d\n\n* bpo-37555: Add tests checking every function using _call_matcher both with and without spec\n\n* bpo-37555: Ensure all assert methods using _call_matcher are actually passing calls\n\n* Remove AnyCompare and use call objects everywhere.\n\n* Revert \"Remove AnyCompare and use call objects everywhere.\"\n\nThis reverts commit 24973c0b32ce7d796a7f4eeaf259832222aae0f5.\n\n* Check for exception in assert_any_await\n\nBackports: d6a9d17d8b6c68073931dd8ffa213b4ac351a4ab\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "08a2de7a298ddcdf2b5f3a4a13f18f09b05df168",
      "tree": "437e3466126bce27a0aa9f29c3154151cbfb2630",
      "parents": [
        "d8170ff058661e2a96ec871b4e48bc57b41f5a44"
      ],
      "author": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Tue Jan 21 08:19:38 2020 +0000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 18:39:09 2020 +0000"
      },
      "message": "backport fixed iscoroutinefunction from Python 3.8 "
    },
    {
      "commit": "d8170ff058661e2a96ec871b4e48bc57b41f5a44",
      "tree": "5dddf9b852ec789f2a63659de39428f11f4d485e",
      "parents": [
        "42ae9ebded7db37a290b6e7d3309b21738992a07"
      ],
      "author": {
        "name": "Lisa Roach",
        "email": "lisaroach14@gmail.com",
        "time": "Tue Sep 10 12:18:40 2019 +0100"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 18:39:09 2020 +0000"
      },
      "message": "bpo-37251: Removes __code__ check from _is_async_obj. (GH-15830)\n\nBackports: f1a297acb60b88917712450ebd3cfa707e6efd6b\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "42ae9ebded7db37a290b6e7d3309b21738992a07",
      "tree": "b2635f6caa0839a6306c300de4749b549ea5bf24",
      "parents": [
        "93f85f9e5546a0de971f7cc62e156c252b044603"
      ],
      "author": {
        "name": "Mario Corchero",
        "email": "mcorcherojim@bloomberg.net",
        "time": "Mon Sep 09 15:18:06 2019 +0100"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 18:39:09 2020 +0000"
      },
      "message": "docs: Add references to AsyncMock in unittest.mock.patch (#13681)\n\nUpdate the docs as patch can now return an AsyncMock if the patched\nobject is an async function.\n\nBackports: f5e7f39d2916ed150e80381faed125f405a11e11\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "93f85f9e5546a0de971f7cc62e156c252b044603",
      "tree": "1342f32b3639b6a69b72b15a05a1228bf9656dd9",
      "parents": [
        "39b5272fb7099da0f3a3719a1ef0d2bd48c7efcc"
      ],
      "author": {
        "name": "Xtreak",
        "email": "tir.karthi@gmail.com",
        "time": "Mon Sep 09 16:25:22 2019 +0530"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 18:39:09 2020 +0000"
      },
      "message": "bpo-37212: Preserve keyword argument order in unittest.mock.call and error messages (GH-14310)\n\nBackports: 9d607061c9c888913ae2c18543775cf360d55f27\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "39b5272fb7099da0f3a3719a1ef0d2bd48c7efcc",
      "tree": "a011bdbdfcac362f7776d89f4c6150c5fac913b1",
      "parents": [
        "97bf5a41187fe84e47fe8799df1b585af73870c4"
      ],
      "author": {
        "name": "Xtreak",
        "email": "tir.karthi@gmail.com",
        "time": "Mon Sep 09 14:34:57 2019 +0530"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 18:39:08 2020 +0000"
      },
      "message": "Fix assertions regarding magic methods function body that was not executed (GH-14154)\n\nBackports: aa515082749687c1e3bc9ec5e2296368191b9f84\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    },
    {
      "commit": "97bf5a41187fe84e47fe8799df1b585af73870c4",
      "tree": "62bb6d1657e33db883a5af619f314ebd17e1d2d5",
      "parents": [
        "20fce5db496c7864341665233e0f73d2df1836c8"
      ],
      "author": {
        "name": "Min ho Kim",
        "email": "minho42@gmail.com",
        "time": "Sat Aug 31 06:21:19 2019 +1000"
      },
      "committer": {
        "name": "Chris Withers",
        "email": "chris@withers.org",
        "time": "Fri Jan 24 18:39:08 2020 +0000"
      },
      "message": "Fix typos mostly in comments, docs and test names (GH-15209)\n\nBackports: 39d87b54715197ca9dcb6902bb43461c0ed701a2\nSigned-off-by: Chris Withers \u003cchris@withers.org\u003e\n"
    }
  ],
  "next": "20fce5db496c7864341665233e0f73d2df1836c8"
}
