)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5504b38c4800b01a3cc4ef2fda87e8ca4c6aabb6","unresolved":false,"context_lines":[{"line_number":11,"context_line":"patching with self.stubs.Set. We can do the same thing with the"},{"line_number":12,"context_line":"monkeypatch fixture instead."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This introduces self.stub_out to nova/test.py and an example of what a"},{"line_number":15,"context_line":"stubs \u003d\u003e stub_out change would look like."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The teardown function in the converted test was removed at the same"},{"line_number":18,"context_line":"time, as those should no longer be used."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Part of the mox community goal for Rocky."},{"line_number":21,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"3f79a3b5_21937e51","line":18,"range":{"start_line":14,"start_character":0,"end_line":18,"end_character":40},"updated":"2018-08-09 18:24:27.000000000","message":"I think this is leftover from another patch?","commit_id":"8954959817332ef4002e6bad20edb8e77a8f096b"}],"glance/tests/unit/base.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3df8e68af5f455fac78f5143391040cbd936ebb1","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        Mocks the specified objects attribute with the given value."},{"line_number":91,"context_line":"        Automatically performs \u0027addCleanup\u0027 for the mock."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        patcher \u003d mock.patch.object(obj, attr_name, *args, **kwargs)"},{"line_number":95,"context_line":"        result \u003d patcher.start()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_0fc7e666","line":92,"updated":"2018-06-04 22:52:44.000000000","message":"Extra blank line here if you do an update.","commit_id":"28d95d6dc593cf272c0752d7194c6ff5e1723b9d"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"a219f9f12ffd93a610eabf3d2b29c60b63dd70f8","unresolved":false,"context_lines":[{"line_number":89,"context_line":""},{"line_number":90,"context_line":"        Mocks the specified objects attribute with the given value."},{"line_number":91,"context_line":"        Automatically performs \u0027addCleanup\u0027 for the mock."},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"        \"\"\""},{"line_number":94,"context_line":"        patcher \u003d mock.patch.object(obj, attr_name, *args, **kwargs)"},{"line_number":95,"context_line":"        result \u003d patcher.start()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_8848c32e","line":92,"in_reply_to":"5f7c97a3_0fc7e666","updated":"2018-06-05 10:55:42.000000000","message":"Done","commit_id":"28d95d6dc593cf272c0752d7194c6ff5e1723b9d"}],"glance/tests/utils.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3df8e68af5f455fac78f5143391040cbd936ebb1","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"\"\"\"Use python mock to mock an object attirbute"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        Mocks the specified objects attribute with the given value."},{"line_number":147,"context_line":"        AUtomatically performs \u0027addCleanup\u0027 for the mock."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        \"\"\""},{"line_number":150,"context_line":"        patcher \u003d mock.patch.object(obj, attr_name, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_4f92be5a","line":147,"range":{"start_line":147,"start_character":8,"end_line":147,"end_character":21},"updated":"2018-06-04 22:52:44.000000000","message":"Au","commit_id":"28d95d6dc593cf272c0752d7194c6ff5e1723b9d"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"a219f9f12ffd93a610eabf3d2b29c60b63dd70f8","unresolved":false,"context_lines":[{"line_number":144,"context_line":"        \"\"\"\"Use python mock to mock an object attirbute"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        Mocks the specified objects attribute with the given value."},{"line_number":147,"context_line":"        AUtomatically performs \u0027addCleanup\u0027 for the mock."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        \"\"\""},{"line_number":150,"context_line":"        patcher \u003d mock.patch.object(obj, attr_name, *args, **kwargs)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_684f6734","line":147,"range":{"start_line":147,"start_character":8,"end_line":147,"end_character":21},"in_reply_to":"5f7c97a3_4f92be5a","updated":"2018-06-05 10:55:42.000000000","message":"Done","commit_id":"28d95d6dc593cf272c0752d7194c6ff5e1723b9d"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"3df8e68af5f455fac78f5143391040cbd936ebb1","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        Mocks the specified objects attribute with the given value."},{"line_number":147,"context_line":"        AUtomatically performs \u0027addCleanup\u0027 for the mock."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        \"\"\""},{"line_number":150,"context_line":"        patcher \u003d mock.patch.object(obj, attr_name, *args, **kwargs)"},{"line_number":151,"context_line":"        result \u003d patcher.start()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_afad929c","line":148,"updated":"2018-06-04 22:52:44.000000000","message":"Extra blank space.","commit_id":"28d95d6dc593cf272c0752d7194c6ff5e1723b9d"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"a219f9f12ffd93a610eabf3d2b29c60b63dd70f8","unresolved":false,"context_lines":[{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        Mocks the specified objects attribute with the given value."},{"line_number":147,"context_line":"        AUtomatically performs \u0027addCleanup\u0027 for the mock."},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"        \"\"\""},{"line_number":150,"context_line":"        patcher \u003d mock.patch.object(obj, attr_name, *args, **kwargs)"},{"line_number":151,"context_line":"        result \u003d patcher.start()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_085ef3e8","line":148,"in_reply_to":"5f7c97a3_afad929c","updated":"2018-06-05 10:55:42.000000000","message":"Done","commit_id":"28d95d6dc593cf272c0752d7194c6ff5e1723b9d"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5504b38c4800b01a3cc4ef2fda87e8ca4c6aabb6","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # the following policy tests"},{"line_number":79,"context_line":"        config.parse_args(args\u003d[])"},{"line_number":80,"context_line":"        self.addCleanup(CONF.reset)"},{"line_number":81,"context_line":"        mox_fixture \u003d self.useFixture(moxstubout.MoxStubout())"},{"line_number":82,"context_line":"        self.stubs \u003d mox_fixture.stubs"},{"line_number":83,"context_line":"        self.mock_object(exception, \u0027_FATAL_EXCEPTION_FORMAT_ERRORS\u0027, True)"},{"line_number":84,"context_line":"        self.test_dir \u003d self.useFixture(fixtures.TempDir()).path"},{"line_number":85,"context_line":"        self.conf_dir \u003d os.path.join(self.test_dir, \u0027etc\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_c19f2a01","line":82,"range":{"start_line":81,"start_character":0,"end_line":82,"end_character":38},"updated":"2018-08-09 18:24:27.000000000","message":"I was going to ask why you left these, but I see they\u0027re required by tests/stubs.py and tests/unit/base.py\n\n(Just a note to self, you said this is only part of the mox goal in the commit message.)","commit_id":"8954959817332ef4002e6bad20edb8e77a8f096b"},{"author":{"_account_id":24,"name":"Chuck Short","email":"charles.short@windriver.com","username":"zulcss"},"change_message_id":"a35dac59d701651098fb1d6256b32d7825a1938b","unresolved":false,"context_lines":[{"line_number":78,"context_line":"        # the following policy tests"},{"line_number":79,"context_line":"        config.parse_args(args\u003d[])"},{"line_number":80,"context_line":"        self.addCleanup(CONF.reset)"},{"line_number":81,"context_line":"        mox_fixture \u003d self.useFixture(moxstubout.MoxStubout())"},{"line_number":82,"context_line":"        self.stubs \u003d mox_fixture.stubs"},{"line_number":83,"context_line":"        self.mock_object(exception, \u0027_FATAL_EXCEPTION_FORMAT_ERRORS\u0027, True)"},{"line_number":84,"context_line":"        self.test_dir \u003d self.useFixture(fixtures.TempDir()).path"},{"line_number":85,"context_line":"        self.conf_dir \u003d os.path.join(self.test_dir, \u0027etc\u0027)"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_8c6ac9b0","line":82,"range":{"start_line":81,"start_character":0,"end_line":82,"end_character":38},"in_reply_to":"3f79a3b5_c19f2a01","updated":"2018-08-09 18:31:23.000000000","message":"Yeah I wasnt sure about that part when I was doing this patch. I was going to to leave it for another commit.","commit_id":"8954959817332ef4002e6bad20edb8e77a8f096b"},{"author":{"_account_id":5314,"name":"Brian Rosmaita","email":"rosmaita.fossdev@gmail.com","username":"brian-rosmaita"},"change_message_id":"5504b38c4800b01a3cc4ef2fda87e8ca4c6aabb6","unresolved":false,"context_lines":[{"line_number":141,"context_line":"        self._config_fixture.config(**kw)"},{"line_number":142,"context_line":""},{"line_number":143,"context_line":"    def mock_object(self, obj, attr_name, *args, **kwargs):"},{"line_number":144,"context_line":"        \"\"\"\"Use python mock to mock an object attirbute"},{"line_number":145,"context_line":""},{"line_number":146,"context_line":"        Mocks the specified objects attribute with the given value."},{"line_number":147,"context_line":"        Automatically performs \u0027addCleanup\u0027 for the mock."}],"source_content_type":"text/x-python","patch_set":6,"id":"3f79a3b5_a6232405","line":144,"range":{"start_line":144,"start_character":49,"end_line":144,"end_character":51},"updated":"2018-08-09 18:24:27.000000000","message":"nit: but only if you need to put up another patch","commit_id":"8954959817332ef4002e6bad20edb8e77a8f096b"}]}
