)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6062,"name":"jichenjc","email":"jichenjc@cn.ibm.com","username":"jichenjc"},"change_message_id":"78e312ae6678f0ca6767053c6db3c811da56cfcc","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Change-Id: I1a2e1492c7e01db9015da0f42768c48061b1a2dd"},{"line_number":14,"context_line":"Partial-Bug: #1456955"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"foo"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ifcfed3865c41f1e772fda3717736aead713b37d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a5de9d1_971ceb14","line":16,"updated":"2016-02-02 13:06:58.000000000","message":"wrong commit message? :)","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"448cdb7262e198253a6b817680b7950e6bcec2f8","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Change-Id: I1a2e1492c7e01db9015da0f42768c48061b1a2dd"},{"line_number":14,"context_line":"Partial-Bug: #1456955"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"foo"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ifcfed3865c41f1e772fda3717736aead713b37d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a5ae5dd_b9ceb958","line":16,"in_reply_to":"7a5de9d1_4a622c18","updated":"2016-02-03 09:15:27.000000000","message":"Argh! Sorry people, these are a rebase leftover :(","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"7e607d8798b8ddc777e4ee993cf6b4b774116619","unresolved":false,"context_lines":[{"line_number":13,"context_line":"Change-Id: I1a2e1492c7e01db9015da0f42768c48061b1a2dd"},{"line_number":14,"context_line":"Partial-Bug: #1456955"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"foo"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"Change-Id: Ifcfed3865c41f1e772fda3717736aead713b37d6"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7a5de9d1_4a622c18","line":16,"in_reply_to":"7a5de9d1_971ceb14","updated":"2016-02-02 22:41:45.000000000","message":"Not to mention *two* Change-Id footers—ewww!  :)","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"}],"nova/tests/unit/virt/xenapi/image/test_vdi_through_dev.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"051615929759717d94a082e772dc0272f29b070e","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        self.assertEqual(\u0027writefile\u0027, producer.output)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def test_start(self):"},{"line_number":151,"context_line":"        outf \u003d six.StringIO.StringIO()"},{"line_number":152,"context_line":"        producer \u003d vdi_through_dev.TarGzProducer(\u0027fpath\u0027, outf,"},{"line_number":153,"context_line":"            \u0027100\u0027, \u0027fname\u0027)"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_c5ba8d0a","line":151,"updated":"2016-02-02 22:48:52.000000000","message":"Too many \"StringIO\"s here; six.StringIO is the class you\u0027re looking for.","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"448cdb7262e198253a6b817680b7950e6bcec2f8","unresolved":false,"context_lines":[{"line_number":148,"context_line":"        self.assertEqual(\u0027writefile\u0027, producer.output)"},{"line_number":149,"context_line":""},{"line_number":150,"context_line":"    def test_start(self):"},{"line_number":151,"context_line":"        outf \u003d six.StringIO.StringIO()"},{"line_number":152,"context_line":"        producer \u003d vdi_through_dev.TarGzProducer(\u0027fpath\u0027, outf,"},{"line_number":153,"context_line":"            \u0027100\u0027, \u0027fname\u0027)"},{"line_number":154,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_b96a3919","line":151,"in_reply_to":"7a5de9d1_c5ba8d0a","updated":"2016-02-03 09:15:27.000000000","message":":-(","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"}],"nova/virt/libvirt/utils.py":[{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"b64f0911930290f410e640b23175787cdbf7881c","unresolved":false,"context_lines":[{"line_number":304,"context_line":"def file_open(*args, **kwargs):"},{"line_number":305,"context_line":"    \"\"\"Open file"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    see built-in file() documentation for more details"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    Note: The reason this is kept in a separate module is to easily"},{"line_number":310,"context_line":"          be able to provide a stub module that doesn\u0027t alter system"}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_37e417ab","line":307,"range":{"start_line":307,"start_character":4,"end_line":307,"end_character":54},"updated":"2016-02-02 13:29:38.000000000","message":"Shouldn\u0027t the docstring be changed as well?","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"},{"author":{"_account_id":91,"name":"Alvaro","email":"aloga@ifca.unican.es","username":"aloga"},"change_message_id":"448cdb7262e198253a6b817680b7950e6bcec2f8","unresolved":false,"context_lines":[{"line_number":304,"context_line":"def file_open(*args, **kwargs):"},{"line_number":305,"context_line":"    \"\"\"Open file"},{"line_number":306,"context_line":""},{"line_number":307,"context_line":"    see built-in file() documentation for more details"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"    Note: The reason this is kept in a separate module is to easily"},{"line_number":310,"context_line":"          be able to provide a stub module that doesn\u0027t alter system"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a5ae5dd_f910b1aa","line":307,"range":{"start_line":307,"start_character":4,"end_line":307,"end_character":54},"in_reply_to":"7a5de9d1_37e417ab","updated":"2016-02-03 09:15:27.000000000","message":"Good point.","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"},{"author":{"_account_id":15524,"name":"dane-fichter","email":"dane.fichter@jhuapl.edu","username":"dane-fichter"},"change_message_id":"40cf213defc3d2c68f38411fce3fac32c4dea1bb","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    Note: The reason this is kept in a separate module is to easily"},{"line_number":310,"context_line":"          be able to provide a stub module that doesn\u0027t alter system"},{"line_number":311,"context_line":"          state at all (for unit tests)"},{"line_number":312,"context_line":"    \"\"\""},{"line_number":313,"context_line":"    return open(*args, **kwargs)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_7d2b4d95","line":312,"updated":"2016-02-02 14:42:02.000000000","message":"Do we even really need this method anymore? Can\u0027t open() just be mocked out on a per-test basis?","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"7e607d8798b8ddc777e4ee993cf6b4b774116619","unresolved":false,"context_lines":[{"line_number":309,"context_line":"    Note: The reason this is kept in a separate module is to easily"},{"line_number":310,"context_line":"          be able to provide a stub module that doesn\u0027t alter system"},{"line_number":311,"context_line":"          state at all (for unit tests)"},{"line_number":312,"context_line":"    \"\"\""},{"line_number":313,"context_line":"    return open(*args, **kwargs)"},{"line_number":314,"context_line":""},{"line_number":315,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"7a5de9d1_0a11945d","line":312,"in_reply_to":"7a5de9d1_7d2b4d95","updated":"2016-02-02 22:41:45.000000000","message":"It can, and we do that in various places in the test suite.  However, the usual means is to patch out the \"builtins\" module, which is in different places in Python 2 and Python 3, requiring us to use six.moves.builtins.  An alternative is to patch it within the module under test, but there aren\u0027t many examples of that (if any) in the nova test suite, so…\n\nAnd of course changing things to either expand or eliminate this whole file_open() function is a bit beyond the scope of this review :)","commit_id":"48bd9695fc0767bb54ee0504c7f986dea3d35ff4"}]}
