)]}'
{"nova/api/openstack/placement/handlers/inventory.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"531e5317ec0fce05cfa7a20d739085fd8bce7c55","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    context \u003d req.environ[\u0027placement.context\u0027]"},{"line_number":287,"context_line":"    uuid \u003d util.wsgi_path_item(req.environ, \u0027uuid\u0027)"},{"line_number":288,"context_line":"    try:"},{"line_number":289,"context_line":"        rp \u003d rp_obj.ResourceProvider.get_by_uuid(context, uuid)"},{"line_number":290,"context_line":"    except exception.NotFound as exc:"},{"line_number":291,"context_line":"        raise webob.exc.HTTPNotFound("},{"line_number":292,"context_line":"            _(\"No resource provider with uuid %(uuid)s found : %(error)s\") %"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_f5e0df28","line":289,"range":{"start_line":289,"start_character":8,"end_line":289,"end_character":11},"updated":"2017-10-05 14:38:46.000000000","message":"resource_provider","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"65280e4ad387178db7c531685efa02d8c47cc1fb","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    context \u003d req.environ[\u0027placement.context\u0027]"},{"line_number":287,"context_line":"    uuid \u003d util.wsgi_path_item(req.environ, \u0027uuid\u0027)"},{"line_number":288,"context_line":"    try:"},{"line_number":289,"context_line":"        rp \u003d rp_obj.ResourceProvider.get_by_uuid(context, uuid)"},{"line_number":290,"context_line":"    except exception.NotFound as exc:"},{"line_number":291,"context_line":"        raise webob.exc.HTTPNotFound("},{"line_number":292,"context_line":"            _(\"No resource provider with uuid %(uuid)s found : %(error)s\") %"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_f81b36c7","line":289,"range":{"start_line":289,"start_character":8,"end_line":289,"end_character":11},"in_reply_to":"7f515b1d_f5e0df28","updated":"2017-10-05 15:05:22.000000000","message":"Used rp because it\u0027s clear what rp is and it\u0027s better to have a single-line call below...","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"531e5317ec0fce05cfa7a20d739085fd8bce7c55","unresolved":false,"context_lines":[{"line_number":290,"context_line":"    except exception.NotFound as exc:"},{"line_number":291,"context_line":"        raise webob.exc.HTTPNotFound("},{"line_number":292,"context_line":"            _(\"No resource provider with uuid %(uuid)s found : %(error)s\") %"},{"line_number":293,"context_line":"             {\u0027uuid\u0027: uuid, \u0027error\u0027: exc})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    inv_list \u003d rp_obj.InventoryList.get_all_by_resource_provider(context, rp)"},{"line_number":296,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_f5b21f49","line":293,"updated":"2017-10-05 14:38:46.000000000","message":"as before, not strictly necessary because of handler.py, but still nice","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"531e5317ec0fce05cfa7a20d739085fd8bce7c55","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            _(\"No resource provider with uuid %(uuid)s found : %(error)s\") %"},{"line_number":293,"context_line":"             {\u0027uuid\u0027: uuid, \u0027error\u0027: exc})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    inv_list \u003d rp_obj.InventoryList.get_all_by_resource_provider(context, rp)"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return _send_inventories(req.response, rp, inv_list)"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_d5d16359","line":295,"range":{"start_line":295,"start_character":4,"end_line":295,"end_character":12},"updated":"2017-10-05 14:38:46.000000000","message":"inventories","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"65280e4ad387178db7c531685efa02d8c47cc1fb","unresolved":false,"context_lines":[{"line_number":292,"context_line":"            _(\"No resource provider with uuid %(uuid)s found : %(error)s\") %"},{"line_number":293,"context_line":"             {\u0027uuid\u0027: uuid, \u0027error\u0027: exc})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    inv_list \u003d rp_obj.InventoryList.get_all_by_resource_provider(context, rp)"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return _send_inventories(req.response, rp, inv_list)"},{"line_number":298,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_985b2286","line":295,"range":{"start_line":295,"start_character":4,"end_line":295,"end_character":12},"in_reply_to":"7f515b1d_d5d16359","updated":"2017-10-05 15:05:22.000000000","message":"I prefer a single line.","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"ae43412ecbeb1831e0d6141e7163476a8a77601d","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    context \u003d req.environ[\u0027placement.context\u0027]"},{"line_number":287,"context_line":"    uuid \u003d util.wsgi_path_item(req.environ, \u0027uuid\u0027)"},{"line_number":288,"context_line":"    try:"},{"line_number":289,"context_line":"        rp \u003d rp_obj.ResourceProvider.get_by_uuid(context, uuid)"},{"line_number":290,"context_line":"    except exception.NotFound as exc:"},{"line_number":291,"context_line":"        raise webob.exc.HTTPNotFound("},{"line_number":292,"context_line":"            _(\"No resource provider with uuid %(uuid)s found : %(error)s\") %"},{"line_number":293,"context_line":"             {\u0027uuid\u0027: uuid, \u0027error\u0027: exc})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    inv_list \u003d rp_obj.InventoryList.get_all_by_resource_provider(context, rp)"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return _send_inventories(req.response, rp, inv_list)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"@wsgi_wrapper.PlacementWsgify"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_f626c1ba","line":297,"range":{"start_line":289,"start_character":0,"end_line":297,"end_character":56},"updated":"2017-10-04 22:43:15.000000000","message":"These changes not functional - just for LOC reduction, right?","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"1b3566ade9200f6778febdc22655fb13088f77ed","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    context \u003d req.environ[\u0027placement.context\u0027]"},{"line_number":287,"context_line":"    uuid \u003d util.wsgi_path_item(req.environ, \u0027uuid\u0027)"},{"line_number":288,"context_line":"    try:"},{"line_number":289,"context_line":"        rp \u003d rp_obj.ResourceProvider.get_by_uuid(context, uuid)"},{"line_number":290,"context_line":"    except exception.NotFound as exc:"},{"line_number":291,"context_line":"        raise webob.exc.HTTPNotFound("},{"line_number":292,"context_line":"            _(\"No resource provider with uuid %(uuid)s found : %(error)s\") %"},{"line_number":293,"context_line":"             {\u0027uuid\u0027: uuid, \u0027error\u0027: exc})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    inv_list \u003d rp_obj.InventoryList.get_all_by_resource_provider(context, rp)"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return _send_inventories(req.response, rp, inv_list)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"@wsgi_wrapper.PlacementWsgify"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_7b9ab96e","line":297,"range":{"start_line":289,"start_character":0,"end_line":297,"end_character":56},"in_reply_to":"7f515b1d_9847bbbd","updated":"2017-10-05 00:28:51.000000000","message":"I see now.  Just L295, though.","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"304ea300018d041d1ab98a998bf127e6b0cea0bc","unresolved":false,"context_lines":[{"line_number":286,"context_line":"    context \u003d req.environ[\u0027placement.context\u0027]"},{"line_number":287,"context_line":"    uuid \u003d util.wsgi_path_item(req.environ, \u0027uuid\u0027)"},{"line_number":288,"context_line":"    try:"},{"line_number":289,"context_line":"        rp \u003d rp_obj.ResourceProvider.get_by_uuid(context, uuid)"},{"line_number":290,"context_line":"    except exception.NotFound as exc:"},{"line_number":291,"context_line":"        raise webob.exc.HTTPNotFound("},{"line_number":292,"context_line":"            _(\"No resource provider with uuid %(uuid)s found : %(error)s\") %"},{"line_number":293,"context_line":"             {\u0027uuid\u0027: uuid, \u0027error\u0027: exc})"},{"line_number":294,"context_line":""},{"line_number":295,"context_line":"    inv_list \u003d rp_obj.InventoryList.get_all_by_resource_provider(context, rp)"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"    return _send_inventories(req.response, rp, inv_list)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"@wsgi_wrapper.PlacementWsgify"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_9847bbbd","line":297,"range":{"start_line":289,"start_character":0,"end_line":297,"end_character":56},"in_reply_to":"7f515b1d_f626c1ba","updated":"2017-10-04 23:35:21.000000000","message":"No, they are actually functional. We\u0027re passing the resource provider object to InventoryList.get_all_by_resource_provider() now instead of passing the resource provider UUID to InventoryList.get_all_by_resource_provider_uuid(). The former removes the need to join inventories table to resource providers (since the lookup of the resource provider object on line 289 already gives us the internal resource provider ID).","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"}],"nova/objects/resource_provider.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"531e5317ec0fce05cfa7a20d739085fd8bce7c55","unresolved":false,"context_lines":[{"line_number":1422,"context_line":"    def get_all_by_resource_provider(cls, context, rp):"},{"line_number":1423,"context_line":"        _ensure_rc_cache(context)"},{"line_number":1424,"context_line":"        db_inv \u003d _get_inventory_by_provider_id(context, rp.id)"},{"line_number":1425,"context_line":"        objs \u003d ["},{"line_number":1426,"context_line":"            Inventory("},{"line_number":1427,"context_line":"                context, resource_provider\u003drp,"},{"line_number":1428,"context_line":"                resource_class\u003d_RC_CACHE.string_from_id("},{"line_number":1429,"context_line":"                    rec[\u0027resource_class_id\u0027]),"},{"line_number":1430,"context_line":"                **rec)"},{"line_number":1431,"context_line":"            for rec in db_inv"},{"line_number":1432,"context_line":"        ]"},{"line_number":1433,"context_line":"        inv_list \u003d cls(context, objects\u003dobjs)"},{"line_number":1434,"context_line":"        inv_list.obj_reset_changes()"},{"line_number":1435,"context_line":"        return inv_list"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_55f8d3c2","line":1432,"range":{"start_line":1425,"start_character":1,"end_line":1432,"end_character":9},"updated":"2017-10-05 14:38:46.000000000","message":"this is hard to read/understand. I mean, I get it, since I already know what it was doing, but for a first time this is bewildering. What\u0027s a \"rec\"? Is **rec being passed to Inventory (yes, but it\u0027s hard not to think actually it\u0027s being passed to string_from_id)","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"6cc5ce32015a21dbb653bc17326f39e44564b590","unresolved":false,"context_lines":[{"line_number":1422,"context_line":"    def get_all_by_resource_provider(cls, context, rp):"},{"line_number":1423,"context_line":"        _ensure_rc_cache(context)"},{"line_number":1424,"context_line":"        db_inv \u003d _get_inventory_by_provider_id(context, rp.id)"},{"line_number":1425,"context_line":"        objs \u003d ["},{"line_number":1426,"context_line":"            Inventory("},{"line_number":1427,"context_line":"                context, resource_provider\u003drp,"},{"line_number":1428,"context_line":"                resource_class\u003d_RC_CACHE.string_from_id("},{"line_number":1429,"context_line":"                    rec[\u0027resource_class_id\u0027]),"},{"line_number":1430,"context_line":"                **rec)"},{"line_number":1431,"context_line":"            for rec in db_inv"},{"line_number":1432,"context_line":"        ]"},{"line_number":1433,"context_line":"        inv_list \u003d cls(context, objects\u003dobjs)"},{"line_number":1434,"context_line":"        inv_list.obj_reset_changes()"},{"line_number":1435,"context_line":"        return inv_list"}],"source_content_type":"text/x-python","patch_set":2,"id":"7f515b1d_18e4d2ab","line":1432,"range":{"start_line":1425,"start_character":1,"end_line":1432,"end_character":9},"in_reply_to":"7f515b1d_55f8d3c2","updated":"2017-10-05 15:06:36.000000000","message":"rec is record. as in a database record. as in the database records returned from _get_inventory_by_provider_id().","commit_id":"f536c97947e48c814a9a1b5cf9aeb9895388b4c2"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"21c05d1364e04c3a121991bf5aec4d16295a5640","unresolved":false,"context_lines":[{"line_number":1439,"context_line":"            for rec in db_inv"},{"line_number":1440,"context_line":"        ]"},{"line_number":1441,"context_line":"        inv_list \u003d cls(context, objects\u003dobjs)"},{"line_number":1442,"context_line":"        inv_list.obj_reset_changes()"},{"line_number":1443,"context_line":"        return inv_list"},{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_a16649ba","line":1442,"updated":"2017-10-09 17:48:11.000000000","message":"This isn\u0027t covered in your tests anywhere. The unit test you removed would be a good place to put it as this\u0027d be a fairly unit-y thing to validate :)","commit_id":"d34626b1c37a76068a570c9b98e0df42f06f2bd0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"aecc267540195667c36a287b576b9168d0effbb3","unresolved":false,"context_lines":[{"line_number":1439,"context_line":"            for rec in db_inv"},{"line_number":1440,"context_line":"        ]"},{"line_number":1441,"context_line":"        inv_list \u003d cls(context, objects\u003dobjs)"},{"line_number":1442,"context_line":"        inv_list.obj_reset_changes()"},{"line_number":1443,"context_line":"        return inv_list"},{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_623a26e8","line":1442,"in_reply_to":"7f515b1d_441e835f","updated":"2017-10-10 14:44:43.000000000","message":"Done","commit_id":"d34626b1c37a76068a570c9b98e0df42f06f2bd0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"5201eb03d499f26db43c5249fa153698b71bd84a","unresolved":false,"context_lines":[{"line_number":1439,"context_line":"            for rec in db_inv"},{"line_number":1440,"context_line":"        ]"},{"line_number":1441,"context_line":"        inv_list \u003d cls(context, objects\u003dobjs)"},{"line_number":1442,"context_line":"        inv_list.obj_reset_changes()"},{"line_number":1443,"context_line":"        return inv_list"},{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_6840c508","line":1442,"in_reply_to":"7f515b1d_a16649ba","updated":"2017-10-10 15:08:32.000000000","message":"Actually, I removed the obj_reset_changes() call, since InventoryList has no data-modifying methods...","commit_id":"d34626b1c37a76068a570c9b98e0df42f06f2bd0"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"4201fdfea22d85ac18abb0c1c99c549e5566653b","unresolved":false,"context_lines":[{"line_number":1439,"context_line":"            for rec in db_inv"},{"line_number":1440,"context_line":"        ]"},{"line_number":1441,"context_line":"        inv_list \u003d cls(context, objects\u003dobjs)"},{"line_number":1442,"context_line":"        inv_list.obj_reset_changes()"},{"line_number":1443,"context_line":"        return inv_list"},{"line_number":1444,"context_line":""},{"line_number":1445,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_441e835f","line":1442,"in_reply_to":"7f515b1d_a16649ba","updated":"2017-10-09 18:23:59.000000000","message":"will do :)","commit_id":"d34626b1c37a76068a570c9b98e0df42f06f2bd0"}],"nova/tests/unit/objects/test_resource_provider.py":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"38efefd95aede3c9fcc977e35af53dec776e8bb1","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            side_effect\u003d_fake_ensure_cache)"},{"line_number":149,"context_line":"    @mock.patch(\u0027nova.objects.resource_provider.InventoryList.\u0027"},{"line_number":150,"context_line":"                \u0027_get_all_by_resource_provider\u0027)"},{"line_number":151,"context_line":"    def test_get_all_by_resource_provider(self, mock_get, mock_ensure_cache):"},{"line_number":152,"context_line":"        expected \u003d [dict(_INVENTORY_DB,"},{"line_number":153,"context_line":"                         resource_provider\u003ddict(_RESOURCE_PROVIDER_DB)),"},{"line_number":154,"context_line":"                    dict(_INVENTORY_DB,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_0fc9c957","side":"PARENT","line":151,"updated":"2017-10-09 17:25:19.000000000","message":"Why did you remove this?","commit_id":"6a88eaee43a3ecc7e3004bab02840bfd4bdf254a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"687237af96c09b05db4fbfd685faf17ed4f8531f","unresolved":false,"context_lines":[{"line_number":148,"context_line":"            side_effect\u003d_fake_ensure_cache)"},{"line_number":149,"context_line":"    @mock.patch(\u0027nova.objects.resource_provider.InventoryList.\u0027"},{"line_number":150,"context_line":"                \u0027_get_all_by_resource_provider\u0027)"},{"line_number":151,"context_line":"    def test_get_all_by_resource_provider(self, mock_get, mock_ensure_cache):"},{"line_number":152,"context_line":"        expected \u003d [dict(_INVENTORY_DB,"},{"line_number":153,"context_line":"                         resource_provider\u003ddict(_RESOURCE_PROVIDER_DB)),"},{"line_number":154,"context_line":"                    dict(_INVENTORY_DB,"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_eff9cd4d","side":"PARENT","line":151,"in_reply_to":"7f515b1d_0fc9c957","updated":"2017-10-09 17:32:37.000000000","message":"not sure... but I do know this code path is fully covered in the functional test case tests/functional/db/test_resource_provider.py more than this unit test covered anything.","commit_id":"6a88eaee43a3ecc7e3004bab02840bfd4bdf254a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"38efefd95aede3c9fcc977e35af53dec776e8bb1","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        self.assertEqual(2, inv.capacity)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"class TestInventoryList(test_objects._LocalTest):"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_find(self):"},{"line_number":216,"context_line":"        rp \u003d resource_provider.ResourceProvider(uuid\u003duuids.rp_uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_afdd1515","side":"PARENT","line":213,"updated":"2017-10-09 17:25:19.000000000","message":"This has nothing to do with the rest of the patch right? Maybe these were both rebase damage?","commit_id":"6a88eaee43a3ecc7e3004bab02840bfd4bdf254a"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"21c05d1364e04c3a121991bf5aec4d16295a5640","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        self.assertEqual(2, inv.capacity)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"class TestInventoryList(test_objects._LocalTest):"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_find(self):"},{"line_number":216,"context_line":"        rp \u003d resource_provider.ResourceProvider(uuid\u003duuids.rp_uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_21cdb9b6","side":"PARENT","line":213,"in_reply_to":"7f515b1d_0f8669ba","updated":"2017-10-09 17:48:11.000000000","message":"The above tests (except for the one you remove) are testing Inventory, not InventoryList, which is the conventional layout for this.","commit_id":"6a88eaee43a3ecc7e3004bab02840bfd4bdf254a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"aecc267540195667c36a287b576b9168d0effbb3","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        self.assertEqual(2, inv.capacity)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"class TestInventoryList(test_objects._LocalTest):"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_find(self):"},{"line_number":216,"context_line":"        rp \u003d resource_provider.ResourceProvider(uuid\u003duuids.rp_uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f4e5783_6da45709","side":"PARENT","line":213,"in_reply_to":"7f515b1d_21cdb9b6","updated":"2017-10-10 14:44:43.000000000","message":"Done","commit_id":"6a88eaee43a3ecc7e3004bab02840bfd4bdf254a"},{"author":{"_account_id":7,"name":"Jay Pipes","email":"jaypipes@gmail.com","username":"jaypipes"},"change_message_id":"687237af96c09b05db4fbfd685faf17ed4f8531f","unresolved":false,"context_lines":[{"line_number":210,"context_line":"        self.assertEqual(2, inv.capacity)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":""},{"line_number":213,"context_line":"class TestInventoryList(test_objects._LocalTest):"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    def test_find(self):"},{"line_number":216,"context_line":"        rp \u003d resource_provider.ResourceProvider(uuid\u003duuids.rp_uuid)"}],"source_content_type":"text/x-python","patch_set":5,"id":"7f515b1d_0f8669ba","side":"PARENT","line":213,"in_reply_to":"7f515b1d_afdd1515","updated":"2017-10-09 17:32:37.000000000","message":"Yeah, not sure about this one either... prolly removed it because there was no point in having two classes testing InventoryList when one test class did just fine.","commit_id":"6a88eaee43a3ecc7e3004bab02840bfd4bdf254a"}]}
