)]}'
{
  "commit": "9191077294ebd809e6e706c82d8f811423b11bd7",
  "tree": "0fbc110dde97404f158fe242ee68ddf1e4fde108",
  "parents": [
    "1119723db88f5360cf17d2e4cc4cd2f6d52f3c67"
  ],
  "author": {
    "name": "Jason Graffius",
    "email": "jasongraffius@gmail.com",
    "time": "Thu May 18 12:43:52 2023 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu May 18 09:43:52 2023 -0700"
  },
  "message": "Fix header_generator_test (#88)\n\n* Fix header_generator_test\r\n\r\nDue to a missing `unittest.main()` call, the header_generator_test was\r\nnot actually running any tests when run with bazel/run directly.\r\nHowever, the failure was noticed by `python -m unittest discover`. Fixed\r\nthe header_generator_test in the following ways:\r\n\r\n - Import test_util (tests failed due to missing import).\r\n - Change attribute_checker.normalize_and_verify to\r\n   header_generator.generate_header.\r\n - Remove unused imports.\r\n - Make appropriate BUILD changes.\r\n - Add unittest.main() call so that unit tests are run.\r\n\r\nAdditionally, this change adds a (blank) __init__.py to compiler/ and\r\ncompiler/util/ so that they are importable by the unittest module. This\r\nmeans that running `python -m unittest discover -p \u0027*_test.py\u0027` from the\r\nmain emboss repository should run all python tests in the compiler - and\r\ncould be a good sanity check to make sure all python tests pass, even\r\nwhen `bazel test compiler/...` could miss tests (not declared in BUILD\r\nor missing the unittest.main() call).\r\n\r\n* Move front_end/test_util to util/test_util",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "compiler/__init__.py"
    },
    {
      "type": "modify",
      "old_id": "2280c368813be5f2094596440a67aa56d8c8ab30",
      "old_mode": 33188,
      "old_path": "compiler/back_end/cpp/BUILD",
      "new_id": "c67b6862ff249eadeb0a27ed3887be4647c1147f",
      "new_mode": 33188,
      "new_path": "compiler/back_end/cpp/BUILD"
    },
    {
      "type": "modify",
      "old_id": "e057c0d4c3c072ed7a023d4ced215eeb42457a75",
      "old_mode": 33188,
      "old_path": "compiler/back_end/cpp/header_generator_test.py",
      "new_id": "f20c1aebc75e658951322efe48e03ecac4c9b698",
      "new_mode": 33188,
      "new_path": "compiler/back_end/cpp/header_generator_test.py"
    },
    {
      "type": "modify",
      "old_id": "f8d8484f385c8d8fd6cf864fe7481aeb8f98de6e",
      "old_mode": 33188,
      "old_path": "compiler/front_end/BUILD",
      "new_id": "024524d32b7abb26970944aa2214efe65c526b1e",
      "new_mode": 33188,
      "new_path": "compiler/front_end/BUILD"
    },
    {
      "type": "modify",
      "old_id": "bb57ac9448f2a7c6bd5357f6a8e075dda27bf8e8",
      "old_mode": 33188,
      "old_path": "compiler/front_end/attribute_checker_test.py",
      "new_id": "11a5c1854f9d5fb2164868d7cec7f1e8588ab773",
      "new_mode": 33188,
      "new_path": "compiler/front_end/attribute_checker_test.py"
    },
    {
      "type": "modify",
      "old_id": "9bf5a8e6cc51a55d5a88a8ee5262f5bf40494224",
      "old_mode": 33188,
      "old_path": "compiler/front_end/constraints_test.py",
      "new_id": "b214107e810e65a5a54f56e9bcea9b023de5c043",
      "new_mode": 33188,
      "new_path": "compiler/front_end/constraints_test.py"
    },
    {
      "type": "modify",
      "old_id": "ba7ceb71fdb99c885a84a81e77e5a7893f83e5fc",
      "old_mode": 33188,
      "old_path": "compiler/front_end/dependency_checker_test.py",
      "new_id": "27af812d422a490b71eedc19339a3f61b0cc26c7",
      "new_mode": 33188,
      "new_path": "compiler/front_end/dependency_checker_test.py"
    },
    {
      "type": "modify",
      "old_id": "15870b465af6d128846a49cf85151ce69afced73",
      "old_mode": 33188,
      "old_path": "compiler/front_end/expression_bounds_test.py",
      "new_id": "54fa0cee078dddab77fb99be08943f22239bc0b0",
      "new_mode": 33188,
      "new_path": "compiler/front_end/expression_bounds_test.py"
    },
    {
      "type": "modify",
      "old_id": "cc8469cabe753da8ad99b98e5c4bf6c06f66ebf2",
      "old_mode": 33188,
      "old_path": "compiler/front_end/glue_test.py",
      "new_id": "5c7308b2b78b943706a4670e201f8cac242266f5",
      "new_mode": 33188,
      "new_path": "compiler/front_end/glue_test.py"
    },
    {
      "type": "modify",
      "old_id": "b4451efc89f16ce33b84204838fec143edcf2b66",
      "old_mode": 33188,
      "old_path": "compiler/front_end/module_ir_test.py",
      "new_id": "b2ad69bd27a9e10836970ba72062d699d10452bc",
      "new_mode": 33188,
      "new_path": "compiler/front_end/module_ir_test.py"
    },
    {
      "type": "modify",
      "old_id": "4428f26c499145e61d25da9876a3e0c72bf9e081",
      "old_mode": 33188,
      "old_path": "compiler/front_end/symbol_resolver_test.py",
      "new_id": "deaf1a0f4a282ef3a0cd310d316c6a4524673881",
      "new_mode": 33188,
      "new_path": "compiler/front_end/symbol_resolver_test.py"
    },
    {
      "type": "modify",
      "old_id": "904b6cfc4bf9d50e381e99da4deaaf3eccfc41a0",
      "old_mode": 33188,
      "old_path": "compiler/front_end/synthetics_test.py",
      "new_id": "ceafa1146a014564a7551d411bc5162009d31c26",
      "new_mode": 33188,
      "new_path": "compiler/front_end/synthetics_test.py"
    },
    {
      "type": "modify",
      "old_id": "c5f174f719536bf97fa7ad81160319acc871a4d7",
      "old_mode": 33188,
      "old_path": "compiler/front_end/type_check_test.py",
      "new_id": "69067380da118c5bcac244e29efcff437773160c",
      "new_mode": 33188,
      "new_path": "compiler/front_end/type_check_test.py"
    },
    {
      "type": "modify",
      "old_id": "0928d94875922df6c3a71123f407279263b86046",
      "old_mode": 33188,
      "old_path": "compiler/front_end/write_inference_test.py",
      "new_id": "52e8c26f5036994886d947b73c7e4441c3a22adf",
      "new_mode": 33188,
      "new_path": "compiler/front_end/write_inference_test.py"
    },
    {
      "type": "modify",
      "old_id": "c9ec1289aa3a89f83cd769170489626f301641eb",
      "old_mode": 33188,
      "old_path": "compiler/util/BUILD",
      "new_id": "4c34cc13be7e9ef56caf3bfeb5a4802898bf83ce",
      "new_mode": 33188,
      "new_path": "compiler/util/BUILD"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e69de29bb2d1d6434b8b29ae775ad8c2e48c5391",
      "new_mode": 33188,
      "new_path": "compiler/util/__init__.py"
    },
    {
      "type": "rename",
      "old_id": "dd803430e180bd9a9a7efc528105cd15d5690674",
      "old_mode": 33188,
      "old_path": "compiler/front_end/test_util.py",
      "new_id": "dd803430e180bd9a9a7efc528105cd15d5690674",
      "new_mode": 33188,
      "new_path": "compiler/util/test_util.py",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "c5ba61b551549c77e51102bdb4387c71d0694478",
      "old_mode": 33188,
      "old_path": "compiler/front_end/test_util_test.py",
      "new_id": "a0512aae37f8182043df633700390167449ba807",
      "new_mode": 33188,
      "new_path": "compiler/util/test_util_test.py",
      "score": 99
    }
  ]
}
