)]}'
{"cinder/tests/brick/test_brick_lvm.py":[{"author":{"_account_id":6802,"name":"Joel Coffman","email":"jmc7tp@gmail.com","username":"joel-coffman"},"change_message_id":"928d0a151f129afc62bca1b240a318bce0fa08c7","unresolved":false,"context_lines":[{"line_number":11,"context_line":"#    distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT"},{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":"from mox3 import mox"},{"line_number":16,"context_line":"from oslo_concurrency import processutils"},{"line_number":17,"context_line":"from oslo_log import log as logging"}],"source_content_type":"text/x-python","patch_set":19,"id":"baa041b7_dbecc491","line":14,"updated":"2015-04-01 18:18:49.000000000","message":"nit: lost the blank line before import","commit_id":"5c2a8f6d91f1e4b8b2955dc48e77d11f0d2fa03d"}],"cinder/tests/test_netapp_ssc.py":[{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"17f6a1186be71e15731149090398f7f5f5781c8f","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import httplib"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"from lxml import etree"},{"line_number":22,"context_line":"from mox3.mox import IgnoreArg"},{"line_number":23,"context_line":"import six"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"from cinder import exception"}],"source_content_type":"text/x-python","patch_set":2,"id":"3a961159_d20db641","line":22,"updated":"2015-01-15 14:37:18.000000000","message":"Granted this was wrong to begin with, but since updating you should change this to not import the class, just the module.","commit_id":"4ae6d73d726b890d840567bece9f727c356a80c9"}],"cinder/tests/test_scality.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28094e38a10809c94b869d3917307a1e97865760","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        image_utils.qemu_img_info(self.TEST_VOLPATH).AndReturn(info)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        self.mox.StubOutWithMock(utils, \u0027temporary_chown\u0027)"},{"line_number":300,"context_line":"        mock_tempchown \u003d mock.MagicMock()"},{"line_number":301,"context_line":"        utils.temporary_chown(self.TEST_VOLPATH).AndReturn(mock_tempchown)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        self.mox.StubOutWithMock(fileutils, \u0027file_open\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_ee409258","line":300,"updated":"2015-02-02 10:06:12.000000000","message":"I\u0027m guessing you\u0027re mixing mock and mox here because MagicMock helps with mocking context managers, and mox doesn\u0027t?","commit_id":"9fbb62ca21c7df51b203df16afad86465956d566"},{"author":{"_account_id":11904,"name":"Sean McGinnis","email":"sean.mcginnis@gmail.com","username":"SeanM"},"change_message_id":"1c8d92b8e38497d1bfefa3b9c86dd3ec0a5f1275","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        image_utils.qemu_img_info(self.TEST_VOLPATH).AndReturn(info)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        self.mox.StubOutWithMock(utils, \u0027temporary_chown\u0027)"},{"line_number":300,"context_line":"        mock_tempchown \u003d mock.MagicMock()"},{"line_number":301,"context_line":"        utils.temporary_chown(self.TEST_VOLPATH).AndReturn(mock_tempchown)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        self.mox.StubOutWithMock(fileutils, \u0027file_open\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_1f36e452","line":300,"in_reply_to":"da86d52c_e4d6f3c4","updated":"2015-02-02 16:08:26.000000000","message":"I normally wouldn\u0027t like mixing the two, but since it\u0027s a step in the direction we\u0027re heading and works then in this case it makes sense to me.","commit_id":"9fbb62ca21c7df51b203df16afad86465956d566"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"d7aa0b2658a61c49cbc4be0f70c2c9b279d1c7dd","unresolved":false,"context_lines":[{"line_number":297,"context_line":"        image_utils.qemu_img_info(self.TEST_VOLPATH).AndReturn(info)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        self.mox.StubOutWithMock(utils, \u0027temporary_chown\u0027)"},{"line_number":300,"context_line":"        mock_tempchown \u003d mock.MagicMock()"},{"line_number":301,"context_line":"        utils.temporary_chown(self.TEST_VOLPATH).AndReturn(mock_tempchown)"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        self.mox.StubOutWithMock(fileutils, \u0027file_open\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_e4d6f3c4","line":300,"in_reply_to":"da86d52c_ee409258","updated":"2015-02-02 11:04:39.000000000","message":"Yes, mox3 does not context manager correctly like mox did, so I ended up replacing it with mock.","commit_id":"9fbb62ca21c7df51b203df16afad86465956d566"}],"cinder/tests/test_volume.py":[{"author":{"_account_id":170,"name":"Mike Perez","email":"thingee@gmail.com","username":"thingee"},"change_message_id":"28094e38a10809c94b869d3917307a1e97865760","unresolved":false,"context_lines":[{"line_number":656,"context_line":"        volume_ref \u003d db.volume_get(context.get_admin_context(), volume_id)"},{"line_number":657,"context_line":"        self.assertEqual(volume_id, volume_ref.id)"},{"line_number":658,"context_line":"        self.assertEqual(\"available\", volume_ref.status)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    def test_get_volume_different_tenant(self):"},{"line_number":661,"context_line":"        \"\"\"Test can\u0027t get volume of another tenant when viewable_admin_meta.\"\"\""},{"line_number":662,"context_line":"        volume \u003d tests_utils.create_volume(self.context,"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_6e03c20f","line":659,"updated":"2015-02-02 10:06:12.000000000","message":"Was this delete_volume() and lines 2155-2156 meant to be deleted?","commit_id":"9fbb62ca21c7df51b203df16afad86465956d566"},{"author":{"_account_id":1669,"name":"Julien Danjou","display_name":"jd","email":"julien@danjou.info","username":"jdanjou"},"change_message_id":"d7aa0b2658a61c49cbc4be0f70c2c9b279d1c7dd","unresolved":false,"context_lines":[{"line_number":656,"context_line":"        volume_ref \u003d db.volume_get(context.get_admin_context(), volume_id)"},{"line_number":657,"context_line":"        self.assertEqual(volume_id, volume_ref.id)"},{"line_number":658,"context_line":"        self.assertEqual(\"available\", volume_ref.status)"},{"line_number":659,"context_line":""},{"line_number":660,"context_line":"    def test_get_volume_different_tenant(self):"},{"line_number":661,"context_line":"        \"\"\"Test can\u0027t get volume of another tenant when viewable_admin_meta.\"\"\""},{"line_number":662,"context_line":"        volume \u003d tests_utils.create_volume(self.context,"}],"source_content_type":"text/x-python","patch_set":13,"id":"da86d52c_c4e80f7f","line":659,"in_reply_to":"da86d52c_6e03c20f","updated":"2015-02-02 11:04:39.000000000","message":"Yes, otherwise the tests fail.","commit_id":"9fbb62ca21c7df51b203df16afad86465956d566"}]}
