)]}'
{"shade/_utils.py":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"01cdfae5df8c1ad09bd94c03bc91ca81aeaa2f07","unresolved":false,"context_lines":[{"line_number":368,"context_line":"    ret \u003d []"},{"line_number":369,"context_line":"    for stack in stacks:"},{"line_number":370,"context_line":"        stack \u003d stack.to_dict()"},{"line_number":371,"context_line":"        stack[\u0027name\u0027] \u003d stack.pop(\u0027stack_name\u0027)"},{"line_number":372,"context_line":"        ret.append(stack)"},{"line_number":373,"context_line":"    return meta.obj_list_to_dict(ret)"},{"line_number":374,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a7e1126_56b92478","line":371,"updated":"2015-12-18 14:19:38.000000000","message":"Let\u0027s not pop it - that means that a stack returned from shade would be missing fields people would expect from the docs.","commit_id":"7386978731e4fb62309199fa2afdfcf1c6249f7a"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"ec97e837224598adad26de7fc92f7352afc3af5d","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        stack \u003d stack.to_dict()"},{"line_number":371,"context_line":"        stack[\u0027name\u0027] \u003d stack.pop(\u0027stack_name\u0027)"},{"line_number":372,"context_line":"        ret.append(stack)"},{"line_number":373,"context_line":"    return meta.obj_list_to_dict(ret)"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"def valid_kwargs(*valid_args):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a7e1126_7160eaa5","line":373,"range":{"start_line":373,"start_character":36,"end_line":373,"end_character":37},"updated":"2015-12-18 14:30:23.000000000","message":"This call to obj_list_to_dict() should not be necessary. It is done for you by the task manager.","commit_id":"7386978731e4fb62309199fa2afdfcf1c6249f7a"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"822f223b95e9738723641afcc42e9424640f995c","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        stack \u003d stack.to_dict()"},{"line_number":371,"context_line":"        stack[\u0027name\u0027] \u003d stack[\u0027stack_name\u0027]"},{"line_number":372,"context_line":"        ret.append(stack)"},{"line_number":373,"context_line":"    return ret"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"def valid_kwargs(*valid_args):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a7e1126_59f634fa","line":373,"updated":"2015-12-18 15:03:05.000000000","message":"Oops. I was totally wrong asking you to remove the obj_list_to_dict() call. Because you are replacing the objects with pure dicts (the to_dict() call), we DO need to make that call here. Very sorry about that.","commit_id":"fcd054340e109dd534f1d33ba5f22eca9abcc75d"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"eb073ebf68a89530207b2c693a6a78e9ecaafa66","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        stack \u003d stack.to_dict()"},{"line_number":371,"context_line":"        stack[\u0027name\u0027] \u003d stack[\u0027stack_name\u0027]"},{"line_number":372,"context_line":"        ret.append(stack)"},{"line_number":373,"context_line":"    return ret"},{"line_number":374,"context_line":""},{"line_number":375,"context_line":""},{"line_number":376,"context_line":"def valid_kwargs(*valid_args):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3a7e1126_39e568db","line":373,"in_reply_to":"3a7e1126_59f634fa","updated":"2015-12-18 15:05:50.000000000","message":"No worries :) I\u0027m updating the patch\nMy nick on freenode (or redhat) matbu","commit_id":"fcd054340e109dd534f1d33ba5f22eca9abcc75d"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"4a4fe3bbd6d4ce764bb534d372c804c91576026d","unresolved":false,"context_lines":[{"line_number":417,"context_line":"    \"\"\" Normalize Stack Objects \"\"\""},{"line_number":418,"context_line":"    ret \u003d []"},{"line_number":419,"context_line":"    for stack in stacks:"},{"line_number":420,"context_line":"        stack \u003d stack.to_dict()"},{"line_number":421,"context_line":"        stack[\u0027name\u0027] \u003d stack[\u0027stack_name\u0027]"},{"line_number":422,"context_line":"        ret.append(stack)"},{"line_number":423,"context_line":"    return meta.obj_list_to_dict(ret)"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_2d015838","line":420,"updated":"2015-12-21 17:12:10.000000000","message":"This is the source of your test failures.\n\ns/to_dict/toDict/","commit_id":"609382087c44662be24b4a5434ee61df7acd44cd"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"2343ab378740442741999adeabf7b0c90ef9a0e0","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        stack \u003d meta.obj_to_dict(stack)"},{"line_number":421,"context_line":"        stack[\u0027name\u0027] \u003d stack[\u0027stack_name\u0027]"},{"line_number":422,"context_line":"        ret.append(stack)"},{"line_number":423,"context_line":"    return meta.obj_list_to_dict(ret)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"def valid_kwargs(*valid_args):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_bd48dd2e","line":423,"updated":"2015-12-22 20:37:15.000000000","message":"This is unnecessarily complicated and adds two unneeded calls to our object transformation methods, increasing overhead. Since all you want to do is add a new attribute, I suggest this:\n\n    for stack in stacks:\n        stack[\u0027name\u0027] \u003d stack[\u0027stack_name\u0027]\n    return stacks","commit_id":"b61b744c8fbc7b6c6d1a0187784788ed19e8e1d2"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"bad2b32a427ace3e3fff8619a9b2c24f1e2db096","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        stack \u003d meta.obj_to_dict(stack)"},{"line_number":421,"context_line":"        stack[\u0027name\u0027] \u003d stack[\u0027stack_name\u0027]"},{"line_number":422,"context_line":"        ret.append(stack)"},{"line_number":423,"context_line":"    return meta.obj_list_to_dict(ret)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"def valid_kwargs(*valid_args):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_fd866512","line":423,"in_reply_to":"1a7b0d38_bd48dd2e","updated":"2015-12-22 20:58:29.000000000","message":"In this case the stack object is a heatclient.v1.stack object, you can\u0027t add a new attribute directly, you need to transform this object to a dict","commit_id":"b61b744c8fbc7b6c6d1a0187784788ed19e8e1d2"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"3079f1e2a9f3fa28906d8583590112ae5cd149e8","unresolved":false,"context_lines":[{"line_number":420,"context_line":"        stack \u003d meta.obj_to_dict(stack)"},{"line_number":421,"context_line":"        stack[\u0027name\u0027] \u003d stack[\u0027stack_name\u0027]"},{"line_number":422,"context_line":"        ret.append(stack)"},{"line_number":423,"context_line":"    return meta.obj_list_to_dict(ret)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"def valid_kwargs(*valid_args):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_80bb3a0e","line":423,"in_reply_to":"1a7b0d38_fd866512","updated":"2015-12-22 21:02:21.000000000","message":"That\u0027s not correct. The obj_to_dict() method is called automatically for all returned items from a lower level API call (see task_manager.py for the code). I tested the code I suggested myself and it does indeed work.","commit_id":"b61b744c8fbc7b6c6d1a0187784788ed19e8e1d2"}],"shade/meta.py":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"164ae50e5f1cd4276f257a1b49cad7c9f0039ff2","unresolved":false,"context_lines":[{"line_number":352,"context_line":"    return instance"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"def obj_gen_to_dict(gen):"},{"line_number":356,"context_line":"    \"\"\"Enumerate through generator of object and return lists of dictonaries."},{"line_number":357,"context_line":"    \"\"\""},{"line_number":358,"context_line":"    obj_list \u003d []"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a57f1b5_ba376baf","line":355,"updated":"2016-02-10 13:42:22.000000000","message":"I\u0027m not sure why this is needed. It\u0027s the same code as obj_list_to_dict.","commit_id":"34f136f15eca82f7c4075760ab4d965a1e09d7cf"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"fb9fbeb0d8b302eb302d90bc840e44b67a3cdeda","unresolved":false,"context_lines":[{"line_number":352,"context_line":"    return instance"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"def obj_gen_to_dict(gen):"},{"line_number":356,"context_line":"    \"\"\"Enumerate through generator of object and return lists of dictonaries."},{"line_number":357,"context_line":"    \"\"\""},{"line_number":358,"context_line":"    obj_list \u003d []"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a57f1b5_c04a7883","line":355,"in_reply_to":"3a57f1b5_5a5c374b","updated":"2016-02-10 14:21:45.000000000","message":"Agreed. Using obj_list_to_dict() should work fine.","commit_id":"34f136f15eca82f7c4075760ab4d965a1e09d7cf"},{"author":{"_account_id":9311,"name":"Tristan Cacqueray","email":"tdecacqu@redhat.com","username":"tristanC"},"change_message_id":"c74f106b462af1fff1c36c31423d3f82cb5a962c","unresolved":false,"context_lines":[{"line_number":352,"context_line":"    return instance"},{"line_number":353,"context_line":""},{"line_number":354,"context_line":""},{"line_number":355,"context_line":"def obj_gen_to_dict(gen):"},{"line_number":356,"context_line":"    \"\"\"Enumerate through generator of object and return lists of dictonaries."},{"line_number":357,"context_line":"    \"\"\""},{"line_number":358,"context_line":"    obj_list \u003d []"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a57f1b5_5a5c374b","line":355,"in_reply_to":"3a57f1b5_ba376baf","updated":"2016-02-10 13:47:30.000000000","message":"I\u0027m not sure either, I initially fixed the heat Stack object just for the stack_list method, see: https://review.openstack.org/#/c/276045/1/shade/openstackcloud.py\n\nBut then this change was already in the pipe so I updated it according to https://review.openstack.org/#/c/254337/6/shade/_utils.py@373","commit_id":"34f136f15eca82f7c4075760ab4d965a1e09d7cf"}],"shade/task_manager.py":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"164ae50e5f1cd4276f257a1b49cad7c9f0039ff2","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        if type(self._result) \u003d\u003d list:"},{"line_number":83,"context_line":"            return meta.obj_list_to_dict(self._result)"},{"line_number":84,"context_line":"        elif type(self._result) not in (bool, int, float, str, set,"},{"line_number":85,"context_line":"                                        tuple, types.GeneratorType):"},{"line_number":86,"context_line":"            return meta.obj_to_dict(self._result)"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            return self._result"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a57f1b5_7a5813fb","side":"PARENT","line":85,"updated":"2016-02-10 13:42:22.000000000","message":"Same here.","commit_id":"d70bcb40470b9e15b8805b3b5503cc88c9eadffe"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"fb9fbeb0d8b302eb302d90bc840e44b67a3cdeda","unresolved":false,"context_lines":[{"line_number":82,"context_line":"        if type(self._result) \u003d\u003d list:"},{"line_number":83,"context_line":"            return meta.obj_list_to_dict(self._result)"},{"line_number":84,"context_line":"        elif type(self._result) not in (bool, int, float, str, set,"},{"line_number":85,"context_line":"                                        tuple, types.GeneratorType):"},{"line_number":86,"context_line":"            return meta.obj_to_dict(self._result)"},{"line_number":87,"context_line":"        else:"},{"line_number":88,"context_line":"            return self._result"}],"source_content_type":"text/x-python","patch_set":18,"id":"3a57f1b5_2056ec29","side":"PARENT","line":85,"in_reply_to":"3a57f1b5_7a5813fb","updated":"2016-02-10 14:21:45.000000000","message":"This check against generator types was here to prevent a generator getting passed to obj_to_dict().","commit_id":"d70bcb40470b9e15b8805b3b5503cc88c9eadffe"}],"shade/tests/fakes.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"feb21246207bb0dac3596287d0e392eb06ac985b","unresolved":false,"context_lines":[{"line_number":205,"context_line":"    def __init__(self, id, name, description\u003dNone, status\u003dNone):"},{"line_number":206,"context_line":"        self.id \u003d id"},{"line_number":207,"context_line":"        self.stack_name \u003d name"},{"line_number":208,"context_line":"        self.name \u003d name"},{"line_number":209,"context_line":"        self.stack_description \u003d description"},{"line_number":210,"context_line":"        self.stack_status \u003d status"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a7b0d38_408d5230","line":208,"range":{"start_line":208,"start_character":20,"end_line":208,"end_character":24},"updated":"2015-12-22 21:07:11.000000000","message":"FakeStack is meant to emulate the underlying client object. By adding self.name here, you aren\u0027t giving your normalization method a chance to add this for you. Your tests will be move valid if you remove this.","commit_id":"4bc68dea60d83c3604642e8104c126b017c32092"}],"shade/tests/unit/test_stack.py":[{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"04fde88daf6c87762ff1088c4d5f6747149bdf7c","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertEqual(stack, ret)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @mock.patch.object(shade.OpenStackCloud, \u0027heat_client\u0027)"},{"line_number":116,"context_line":"    def test_list_stacks(self, mock_heat):"},{"line_number":117,"context_line":"        self.cloud.list_stacks()"},{"line_number":118,"context_line":"        mock_heat.stacks.list.assert_called_with()"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a7e1126_26f9c7c7","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":24},"updated":"2015-12-18 14:52:06.000000000","message":"This test is now redundant as there is already a test_list_stacks().","commit_id":"d07aab7b0b771959f2b36e6f49e61515e4cc014b"},{"author":{"_account_id":16515,"name":"mbu","email":"mat.bultel@gmail.com","username":"matbu"},"change_message_id":"2643557827bb1897a2ed212b2fe82f3ff2d0032a","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        self.assertEqual(stack, ret)"},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"    @mock.patch.object(shade.OpenStackCloud, \u0027heat_client\u0027)"},{"line_number":116,"context_line":"    def test_list_stacks(self, mock_heat):"},{"line_number":117,"context_line":"        self.cloud.list_stacks()"},{"line_number":118,"context_line":"        mock_heat.stacks.list.assert_called_with()"},{"line_number":119,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3a7e1126_2695473e","line":116,"range":{"start_line":116,"start_character":8,"end_line":116,"end_character":24},"in_reply_to":"3a7e1126_26f9c7c7","updated":"2015-12-18 14:54:17.000000000","message":"Ya sorry .. I didn\u0027t get it, I\u0027m removing...","commit_id":"d07aab7b0b771959f2b36e6f49e61515e4cc014b"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"4a4fe3bbd6d4ce764bb534d372c804c91576026d","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        mock_heat.stacks.list.return_value \u003d fake_stacks"},{"line_number":40,"context_line":"        stacks \u003d self.cloud.list_stacks()"},{"line_number":41,"context_line":"        mock_heat.stacks.list.assert_called_once_with()"},{"line_number":42,"context_line":"        self.assertEqual(meta.obj_list_to_dict(fake_stacks), stacks)"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":"    @mock.patch.object(shade.OpenStackCloud, \u0027heat_client\u0027)"},{"line_number":45,"context_line":"    def test_list_stacks_exception(self, mock_heat):"}],"source_content_type":"text/x-python","patch_set":8,"id":"3a7e1126_eddfd0d3","side":"PARENT","line":42,"updated":"2015-12-21 17:12:10.000000000","message":"I can only assume you are removing this code because your tests were not working. Removing existing, working test code to make your new code work is not a good practice.","commit_id":"2486cae21898c0799be0dbc42c9cd217dfcbefca"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"2343ab378740442741999adeabf7b0c90ef9a0e0","unresolved":false,"context_lines":[{"line_number":39,"context_line":"        \"creation_time\": \"2015-12-21T15:24:50\","},{"line_number":40,"context_line":"        \"updated_time\": \"2015-12-21T15:24:50\","},{"line_number":41,"context_line":"        \"stack_status\": \"CREATE_COMPLETE\""},{"line_number":42,"context_line":"    })"},{"line_number":43,"context_line":""},{"line_number":44,"context_line":""},{"line_number":45,"context_line":"class TestStack(base.TestCase):"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_5d5539c4","line":42,"updated":"2015-12-22 20:37:15.000000000","message":"I\u0027m not sure why you are adding this. We don\u0027t import client objects for other tests, and it ties us to a specific client making porting to openstacksdk (at a later point) more difficult. And you don\u0027t even use it in the test you are adding.","commit_id":"b61b744c8fbc7b6c6d1a0187784788ed19e8e1d2"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"2343ab378740442741999adeabf7b0c90ef9a0e0","unresolved":false,"context_lines":[{"line_number":52,"context_line":"    def test_list_stacks(self, mock_heat):"},{"line_number":53,"context_line":"        fake_stacks \u003d ["},{"line_number":54,"context_line":"            mock_stack(None, \u0027stack1\u0027, \u0027001\u0027),"},{"line_number":55,"context_line":"            mock_stack(None, \u0027stack2\u0027, \u0027002\u0027)"},{"line_number":56,"context_line":"        ]"},{"line_number":57,"context_line":"        mock_heat.stacks.list.return_value \u003d fake_stacks"},{"line_number":58,"context_line":"        stacks \u003d self.cloud.list_stacks()"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_7d5275df","line":55,"updated":"2015-12-22 20:37:15.000000000","message":"Why did you change this? Please undo.","commit_id":"b61b744c8fbc7b6c6d1a0187784788ed19e8e1d2"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"2343ab378740442741999adeabf7b0c90ef9a0e0","unresolved":false,"context_lines":[{"line_number":135,"context_line":"        stack \u003d ["},{"line_number":136,"context_line":"            fakes.FakeStack(\u0027azerty\u0027, \u0027stack\u0027,)"},{"line_number":137,"context_line":"        ]"},{"line_number":138,"context_line":"        mock_get.return_value \u003d stack"},{"line_number":139,"context_line":"        res \u003d self.cloud.get_stack(\u0027stack\u0027)"},{"line_number":140,"context_line":"        self.assertIsNotNone(res)"},{"line_number":141,"context_line":"        self.assertListEqual(stack, res)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_1d5ed1e9","line":138,"updated":"2015-12-22 20:37:15.000000000","message":"get_stack() does not return a list.","commit_id":"b61b744c8fbc7b6c6d1a0187784788ed19e8e1d2"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"2343ab378740442741999adeabf7b0c90ef9a0e0","unresolved":false,"context_lines":[{"line_number":138,"context_line":"        mock_get.return_value \u003d stack"},{"line_number":139,"context_line":"        res \u003d self.cloud.get_stack(\u0027stack\u0027)"},{"line_number":140,"context_line":"        self.assertIsNotNone(res)"},{"line_number":141,"context_line":"        self.assertListEqual(stack, res)"}],"source_content_type":"text/x-python","patch_set":10,"id":"1a7b0d38_3d638db3","line":141,"updated":"2015-12-22 20:37:15.000000000","message":"This test is all wrong, and doesn\u0027t really test your normalization. I suggest this:\n\n    @mock.patch.object(shade.OpenStackCloud, \u0027heat_client\u0027)\n    def test_get_stack(self, mock_heat):\n        stack \u003d fakes.FakeStack(\u0027azerty\u0027, \u0027stack\u0027,)\n        mock_heat.stacks.list.return_value \u003d [stack]\n        res \u003d self.cloud.get_stack(\u0027stack\u0027)\n        self.assertIsNotNone(res)\n        self.assertEqual(stack.stack_name, res[\u0027stack_name\u0027])\n        self.assertEqual(stack.stack_name, res[\u0027name\u0027])","commit_id":"b61b744c8fbc7b6c6d1a0187784788ed19e8e1d2"}],"shade/tests/unit/test_task_manager.py":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"164ae50e5f1cd4276f257a1b49cad7c9f0039ff2","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        \"\"\""},{"line_number":74,"context_line":"        self.assertRaises(TestException, self.manager.submitTask, TestTask())"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def test_dont_munchify_generators(self):"},{"line_number":77,"context_line":"        ret \u003d self.manager.submitTask(TestTaskGenerator())"},{"line_number":78,"context_line":"        self.assertIsInstance(ret, types.GeneratorType)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3a57f1b5_1a18ff1c","side":"PARENT","line":76,"updated":"2016-02-10 13:42:22.000000000","message":"Heh. This seems like a weird test in the first place. Why would we not munchify generators?","commit_id":"d70bcb40470b9e15b8805b3b5503cc88c9eadffe"},{"author":{"_account_id":3099,"name":"David Shrewsbury","email":"dshrewsb@redhat.com","username":"dshrews"},"change_message_id":"fb9fbeb0d8b302eb302d90bc840e44b67a3cdeda","unresolved":false,"context_lines":[{"line_number":73,"context_line":"        \"\"\""},{"line_number":74,"context_line":"        self.assertRaises(TestException, self.manager.submitTask, TestTask())"},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"    def test_dont_munchify_generators(self):"},{"line_number":77,"context_line":"        ret \u003d self.manager.submitTask(TestTaskGenerator())"},{"line_number":78,"context_line":"        self.assertIsInstance(ret, types.GeneratorType)"},{"line_number":79,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"3a57f1b5_20a82c1f","side":"PARENT","line":76,"in_reply_to":"3a57f1b5_1a18ff1c","updated":"2016-02-10 14:21:45.000000000","message":"We don\u0027t want generators being passed directly to obj_to_dict() since it can\u0027t handle that type. If we pass them to obj_list_to_dict(), then that\u0027s fine, and I think is what this change is doing.","commit_id":"d70bcb40470b9e15b8805b3b5503cc88c9eadffe"}]}
