)]}'
{
  "commit": "55eef52e801be5fafa76c26b96a84ee737741dd1",
  "tree": "0e3baa5b511e0e3b3162d8f98d4028117afa9ec2",
  "parents": [
    "0bb312a4eacc5df4d5556f61694416644fd6902b"
  ],
  "author": {
    "name": "Serhiy Storchaka",
    "email": "storchaka@gmail.com",
    "time": "Sat Aug 29 19:27:09 2026"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat Aug 29 19:27:09 2026"
  },
  "message": "gh-108885: Report the examples of a doctest run by unittest (GH-155377)\n\nDocTestCase ran its examples with verbose\u003dFalse, so there was no way to ask\nunittest for the details which doctest reports on its own.  It now takes the\nverbosity from the test result, and reports every example if the test runner\nis asked for more than the test names.  They are written to the stream of the\ntest runner, so that they are not lost when it buffers the output of the test.\n\nTo make this reachable:\n\n* unittest.TestResult has now a verbosity attribute, which it accepted but\n  ignored.  The test runner sets it, because a result class is free to filter\n  what its constructor gets.\n* The unittest -v option is now counted, so that -vv means 3.\n* The verbosity of regrtest is one less, so it is translated where the test\n  runner is created: -v reports the test names, as before, and -vv reports\n  also the examples.\n\nCo-authored-by: Claude Opus 5 (1M context) \u003cnoreply@anthropic.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3298697af8511b61d2513a56169521a5dd063abf",
      "old_mode": 33188,
      "old_path": "Doc/library/doctest.rst",
      "new_id": "4b61c07919dd0258d81ece4fbd1d7c1c6f4fc13b",
      "new_mode": 33188,
      "new_path": "Doc/library/doctest.rst"
    },
    {
      "type": "modify",
      "old_id": "72ffc2a0b760ead9b4684b0844f225914927f719",
      "old_mode": 33188,
      "old_path": "Doc/library/test.rst",
      "new_id": "765811eba32fd405814c461031a1deb03bdb9f3c",
      "new_mode": 33188,
      "new_path": "Doc/library/test.rst"
    },
    {
      "type": "modify",
      "old_id": "7afcdb368a3562e21190ae3dc8160a7c5511945e",
      "old_mode": 33188,
      "old_path": "Doc/library/unittest.rst",
      "new_id": "e1bc32fb79c2eb1ccea73dce2f283aea7729cc81",
      "new_mode": 33188,
      "new_path": "Doc/library/unittest.rst"
    },
    {
      "type": "modify",
      "old_id": "d5541ab41f38d4fd69beb5a88a804e15fe9d8a9c",
      "old_mode": 33188,
      "old_path": "Lib/doctest.py",
      "new_id": "a8f08868cf4957ee48aa77d0814e5312e047f2bb",
      "new_mode": 33188,
      "new_path": "Lib/doctest.py"
    },
    {
      "type": "modify",
      "old_id": "1820f354572521accb4ec7340942f8b13505d0e2",
      "old_mode": 33188,
      "old_path": "Lib/test/libregrtest/testresult.py",
      "new_id": "605f1f4e6a89fb6926568e1d82b66470de9008d5",
      "new_mode": 33188,
      "new_path": "Lib/test/libregrtest/testresult.py"
    },
    {
      "type": "modify",
      "old_id": "b125693ab0891cd4db71488f757f4150d1de32e1",
      "old_mode": 33188,
      "old_path": "Lib/test/test_doctest/test_doctest.py",
      "new_id": "776ad83ee6d6ce538b544849f1a6f7754915fabe",
      "new_mode": 33188,
      "new_path": "Lib/test/test_doctest/test_doctest.py"
    },
    {
      "type": "modify",
      "old_id": "f4baa965b3f632b4e666328a4369477aebad40cb",
      "old_mode": 33188,
      "old_path": "Lib/test/test_regrtest.py",
      "new_id": "c966f8659e2abb0fd2e6a91edca588e54e71900d",
      "new_mode": 33188,
      "new_path": "Lib/test/test_regrtest.py"
    },
    {
      "type": "modify",
      "old_id": "38c9779daaf87d4721942ff92bbcb47603425e88",
      "old_mode": 33188,
      "old_path": "Lib/test/test_unittest/test_discovery.py",
      "new_id": "da184bd12be8d170e36b6c46edb212e029a69949",
      "new_mode": 33188,
      "new_path": "Lib/test/test_unittest/test_discovery.py"
    },
    {
      "type": "modify",
      "old_id": "8ed92373e5e984a6b320d84528dbb0734988c815",
      "old_mode": 33188,
      "old_path": "Lib/test/test_unittest/test_program.py",
      "new_id": "a9a73f0d057ee81e33ad930a5277ae116962ffc5",
      "new_mode": 33188,
      "new_path": "Lib/test/test_unittest/test_program.py"
    },
    {
      "type": "modify",
      "old_id": "3f44e617303f81dffb6fc679d1be6f95675a0753",
      "old_mode": 33188,
      "old_path": "Lib/test/test_unittest/test_result.py",
      "new_id": "cb591c23fc964fd79333a80e6033c48b25e4561f",
      "new_mode": 33188,
      "new_path": "Lib/test/test_unittest/test_result.py"
    },
    {
      "type": "modify",
      "old_id": "a47e2ebb59da028326b690080b9e54e1a8676f70",
      "old_mode": 33188,
      "old_path": "Lib/test/test_unittest/test_runner.py",
      "new_id": "195d5e928030927feba44a9f7dddf2ebca7ec4f5",
      "new_mode": 33188,
      "new_path": "Lib/test/test_unittest/test_runner.py"
    },
    {
      "type": "modify",
      "old_id": "6eeebf9657a3c7b7c4905a44e04e716dc7f80306",
      "old_mode": 33188,
      "old_path": "Lib/unittest/main.py",
      "new_id": "850c825a7366579b2c7b50c06bfe17f3d37e8434",
      "new_mode": 33188,
      "new_path": "Lib/unittest/main.py"
    },
    {
      "type": "modify",
      "old_id": "b8ea396db6772edbcae66f6e724763bb42ab0473",
      "old_mode": 33188,
      "old_path": "Lib/unittest/result.py",
      "new_id": "a787686a5bea4ceb6e7abe66000b440b8cf9c4dd",
      "new_mode": 33188,
      "new_path": "Lib/unittest/result.py"
    },
    {
      "type": "modify",
      "old_id": "893fcba968c3ef8830a9d4a4ace5257d00089611",
      "old_mode": 33188,
      "old_path": "Lib/unittest/runner.py",
      "new_id": "f19d7b6e446d2ac9b75c614cf4d3759b70e9ee1b",
      "new_mode": 33188,
      "new_path": "Lib/unittest/runner.py"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e504f9b7d684f889c7567922a82f0e6bf7865c57",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Library/2026-08-08-09-14-22.gh-issue-108885.C4ktfw.rst"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3cdac196dd35c0c5031233a0c0446d24aca9e11c",
      "new_mode": 33188,
      "new_path": "Misc/NEWS.d/next/Tests/2026-08-08-09-15-08.gh-issue-108885.Qm3vLp.rst"
    }
  ]
}
