)]}'
{"oslo/vmware/api.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"2a380ef5f12de290b780f4f4e0c6cf02a688fd4a","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                    if excep.fault_list:"},{"line_number":320,"context_line":"                        LOG.debug(\"Fault list: %s\", excep.fault_list)"},{"line_number":321,"context_line":"                        fault \u003d excep.fault_list[0]"},{"line_number":322,"context_line":"                        raise exceptions.get_fault_class(fault)(str(excep))"},{"line_number":323,"context_line":"                    raise"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"            except exceptions.VimConnectionException:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_5fd43feb","line":322,"updated":"2014-07-06 18:01:56.000000000","message":"Should this use unicode() instead of str()? Is there a chance the exception will have non-ASCII text?","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"74cf7fca29e8f11132971327c597926ee7d07e34","unresolved":false,"context_lines":[{"line_number":319,"context_line":"                    if excep.fault_list:"},{"line_number":320,"context_line":"                        LOG.debug(\"Fault list: %s\", excep.fault_list)"},{"line_number":321,"context_line":"                        fault \u003d excep.fault_list[0]"},{"line_number":322,"context_line":"                        raise exceptions.get_fault_class(fault)(str(excep))"},{"line_number":323,"context_line":"                    raise"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"            except exceptions.VimConnectionException:"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_92b3694c","line":322,"in_reply_to":"baada198_5fd43feb","updated":"2014-07-11 11:54:13.000000000","message":"Good point. It turns out that the \u0027details\u0027 we have in VimFaultException may contain non-ASCII text. I have reworked my patch to handle that.","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"}],"tests/test_api.py":[{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"2a380ef5f12de290b780f4f4e0c6cf02a688fd4a","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                               details\u003ddetails)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        module \u003d mock.Mock()"},{"line_number":290,"context_line":"        module.api \u003d api"},{"line_number":291,"context_line":"        e \u003d self.assertRaises(exceptions.NoPermissionException,"},{"line_number":292,"context_line":"                              lambda: api_session.invoke_api(module, \u0027api\u0027))"},{"line_number":293,"context_line":"        expected_str \u003d \"%s\\nFaults: %s\\nDetails: %s\" % (fault_string,"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_5ffb5f78","line":290,"updated":"2014-07-06 18:01:56.000000000","message":"You don\u0027t have to change it, but you can also say:\n\n  module.api.side_effect \u003d VimFaultException(...)\n\nand avoid defining a separate function to raise the exception.","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"74cf7fca29e8f11132971327c597926ee7d07e34","unresolved":false,"context_lines":[{"line_number":287,"context_line":"                                               details\u003ddetails)"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        module \u003d mock.Mock()"},{"line_number":290,"context_line":"        module.api \u003d api"},{"line_number":291,"context_line":"        e \u003d self.assertRaises(exceptions.NoPermissionException,"},{"line_number":292,"context_line":"                              lambda: api_session.invoke_api(module, \u0027api\u0027))"},{"line_number":293,"context_line":"        expected_str \u003d \"%s\\nFaults: %s\\nDetails: %s\" % (fault_string,"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_f2790583","line":290,"in_reply_to":"baada198_5ffb5f78","updated":"2014-07-11 11:54:13.000000000","message":"Done","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"2a380ef5f12de290b780f4f4e0c6cf02a688fd4a","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        module \u003d mock.Mock()"},{"line_number":290,"context_line":"        module.api \u003d api"},{"line_number":291,"context_line":"        e \u003d self.assertRaises(exceptions.NoPermissionException,"},{"line_number":292,"context_line":"                              lambda: api_session.invoke_api(module, \u0027api\u0027))"},{"line_number":293,"context_line":"        expected_str \u003d \"%s\\nFaults: %s\\nDetails: %s\" % (fault_string,"},{"line_number":294,"context_line":"                                                        fault_list,"},{"line_number":295,"context_line":"                                                        details)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_9ff17797","line":292,"updated":"2014-07-06 18:01:56.000000000","message":"The second argument is the callable, and the remaining arguments are passed to it.\n\n  e \u003d self.assertRaises(exceptions.NoPermissionException,\n      api_session.invoke_api,\n      module, \u0027api\u0027)","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"b992ed0d233dae4dc52d4b9d1784930b718c4992","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        module \u003d mock.Mock()"},{"line_number":290,"context_line":"        module.api \u003d api"},{"line_number":291,"context_line":"        e \u003d self.assertRaises(exceptions.NoPermissionException,"},{"line_number":292,"context_line":"                              lambda: api_session.invoke_api(module, \u0027api\u0027))"},{"line_number":293,"context_line":"        expected_str \u003d \"%s\\nFaults: %s\\nDetails: %s\" % (fault_string,"},{"line_number":294,"context_line":"                                                        fault_list,"},{"line_number":295,"context_line":"                                                        details)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_dc705242","line":292,"in_reply_to":"baada198_9ff17797","updated":"2014-07-07 07:58:01.000000000","message":"Even though the current usage works, it is not the intended usage. There are more places where we need to change.\n\nhttps://review.openstack.org/#/c/105077/","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"74cf7fca29e8f11132971327c597926ee7d07e34","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        module \u003d mock.Mock()"},{"line_number":290,"context_line":"        module.api \u003d api"},{"line_number":291,"context_line":"        e \u003d self.assertRaises(exceptions.NoPermissionException,"},{"line_number":292,"context_line":"                              lambda: api_session.invoke_api(module, \u0027api\u0027))"},{"line_number":293,"context_line":"        expected_str \u003d \"%s\\nFaults: %s\\nDetails: %s\" % (fault_string,"},{"line_number":294,"context_line":"                                                        fault_list,"},{"line_number":295,"context_line":"                                                        details)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_127f5967","line":292,"in_reply_to":"baada198_dc705242","updated":"2014-07-11 11:54:13.000000000","message":"Done","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"},{"author":{"_account_id":2472,"name":"Doug Hellmann","email":"dhellmann@redhat.com","username":"doug-hellmann"},"change_message_id":"2a380ef5f12de290b780f4f4e0c6cf02a688fd4a","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        expected_str \u003d \"%s\\nFaults: %s\\nDetails: %s\" % (fault_string,"},{"line_number":294,"context_line":"                                                        fault_list,"},{"line_number":295,"context_line":"                                                        details)"},{"line_number":296,"context_line":"        self.assertEqual(expected_str, str(e))"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def test_invoke_api_with_empty_response(self):"},{"line_number":299,"context_line":"        api_session \u003d self._create_api_session(True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_df2e8ffa","line":296,"updated":"2014-07-06 18:01:56.000000000","message":"Is there a chance that exception will include non-ASCII characters? Should that be a unicode string literal on line 293 and then unicode() here?","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"},{"author":{"_account_id":9172,"name":"Radoslav Gerganov","email":"rgerganov@vmware.com","username":"rgerganov"},"change_message_id":"74cf7fca29e8f11132971327c597926ee7d07e34","unresolved":false,"context_lines":[{"line_number":293,"context_line":"        expected_str \u003d \"%s\\nFaults: %s\\nDetails: %s\" % (fault_string,"},{"line_number":294,"context_line":"                                                        fault_list,"},{"line_number":295,"context_line":"                                                        details)"},{"line_number":296,"context_line":"        self.assertEqual(expected_str, str(e))"},{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def test_invoke_api_with_empty_response(self):"},{"line_number":299,"context_line":"        api_session \u003d self._create_api_session(True)"}],"source_content_type":"text/x-python","patch_set":1,"id":"baada198_728df57b","line":296,"in_reply_to":"baada198_df2e8ffa","updated":"2014-07-11 11:54:13.000000000","message":"Done","commit_id":"49ae58ec3ba7de0f8f3d5bfe349cbe9ac12c4536"}]}
