)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"8dc162941dadd7ac03a25fe9e6d2d1d5a5186b35","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tin Lam \u003ctl3438@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-28 15:06:00 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ClientException message does not set properly"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fix an issue where the child ClientException\u0027s message field overwrites"},{"line_number":10,"context_line":"the message set by super().__init__(message)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9aed3d3a_b1538c16","line":7,"updated":"2016-02-29 17:03:44.000000000","message":"The commit message should describe what is being done, not what was the issue. Like this:\n\nProperly set ClientException message","commit_id":"60925aabea2be55fe20bc8ac3d647531dc1c6b27"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"bada728401ded47d26ef17a24359d2573c29e533","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tin Lam \u003ctl3438@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-02-28 15:06:00 -0600"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"ClientException message does not set properly"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fix an issue where the child ClientException\u0027s message field overwrites"},{"line_number":10,"context_line":"the message set by super().__init__(message)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"9aed3d3a_63bf71aa","line":7,"in_reply_to":"9aed3d3a_b1538c16","updated":"2016-02-29 18:06:22.000000000","message":"Done","commit_id":"60925aabea2be55fe20bc8ac3d647531dc1c6b27"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f5c045459e3cbdaf1ff99643ddb2ba84cc29db2f","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Tin Lam \u003ctl3438@att.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-04-02 20:47:49 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Properly set ClientException message"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Fix an issue where the child ClientException\u0027s message field overwrites"},{"line_number":10,"context_line":"the message set by super().__init__(message)."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5a18252c_c9920f9f","line":7,"updated":"2016-04-13 19:44:31.000000000","message":"message is deprecated, so keystone shouldn\u0027t even be handling this.","commit_id":"79f7c9ec1b39ec62f54fd479b2bc8a49694413c9"}],"keystoneauth1/exceptions/base.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"8dc162941dadd7ac03a25fe9e6d2d1d5a5186b35","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    message \u003d None"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":22,"context_line":"        if not message:"},{"line_number":23,"context_line":"            message \u003d self.__class__.__name__"},{"line_number":24,"context_line":"        self.message \u003d message"},{"line_number":25,"context_line":"        super(ClientException, self).__init__(message)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aed3d3a_37b2c794","line":25,"range":{"start_line":22,"start_character":8,"end_line":25,"end_character":54},"updated":"2016-02-29 17:03:44.000000000","message":"If message is not provided, it will override self.message with class name. This is not what we want, because usually exceptions, inherited from ClientException, provide a default message. If it is provided, it should be used. Have a look at exceptions.connection.ConnectionError, for example.","commit_id":"60925aabea2be55fe20bc8ac3d647531dc1c6b27"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"bada728401ded47d26ef17a24359d2573c29e533","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    message \u003d None"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":22,"context_line":"        if not message:"},{"line_number":23,"context_line":"            message \u003d self.__class__.__name__"},{"line_number":24,"context_line":"        self.message \u003d message"},{"line_number":25,"context_line":"        super(ClientException, self).__init__(message)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aed3d3a_03e5c5da","line":25,"range":{"start_line":22,"start_character":8,"end_line":25,"end_character":54},"in_reply_to":"9aed3d3a_37b2c794","updated":"2016-02-29 18:06:22.000000000","message":"Done","commit_id":"60925aabea2be55fe20bc8ac3d647531dc1c6b27"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"645eb632b15d6b1400f216804aba282470e30849","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            if self.message:"},{"line_number":24,"context_line":"                message \u003d self.message"},{"line_number":25,"context_line":"            else:"},{"line_number":26,"context_line":"                message \u003d self.__class__.__name__"},{"line_number":27,"context_line":"        super(Exception, self).__init__(message)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_f25509c2","side":"PARENT","line":26,"range":{"start_line":26,"start_character":16,"end_line":26,"end_character":49},"updated":"2016-03-03 12:55:51.000000000","message":"I don\u0027t get it. Where did this part go? Will there be classname if no message and no self.message? If you change this part, there should be a unit-test too.","commit_id":"2e951b767098d1c1c0609b375518b5d599557472"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"5256c9cc10176fed4af4b34c391c90c2ef7bb82d","unresolved":false,"context_lines":[{"line_number":23,"context_line":"            if self.message:"},{"line_number":24,"context_line":"                message \u003d self.message"},{"line_number":25,"context_line":"            else:"},{"line_number":26,"context_line":"                message \u003d self.__class__.__name__"},{"line_number":27,"context_line":"        super(Exception, self).__init__(message)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_669db409","side":"PARENT","line":26,"range":{"start_line":26,"start_character":16,"end_line":26,"end_character":49},"in_reply_to":"7af24918_f25509c2","updated":"2016-03-03 14:44:27.000000000","message":"I believe I misunderstood your previous comment -- you were referring to the inherited class not this class itself.  I will provide a patch.","commit_id":"2e951b767098d1c1c0609b375518b5d599557472"},{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"645eb632b15d6b1400f216804aba282470e30849","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"class ClientException(Exception):"},{"line_number":18,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":19,"context_line":"    message \u003d \"A client exception occurred.\""},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":22,"context_line":"        if message:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7af24918_12407533","line":19,"range":{"start_line":19,"start_character":14,"end_line":19,"end_character":44},"updated":"2016-03-03 12:55:51.000000000","message":"the change has little to do with the bugreport. If you want to add a message, please do it in a separate patchset.","commit_id":"3f0b06a8681a3c9d1e2b2a42c42cf2afa4a4d138"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"234cafec8f87f944c9508deadeeee7c1aa463928","unresolved":false,"context_lines":[{"line_number":20,"context_line":""},{"line_number":21,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":22,"context_line":"        if message:"},{"line_number":23,"context_line":"            self.message \u003d message"},{"line_number":24,"context_line":"        else:"},{"line_number":25,"context_line":"            self.message \u003d self.__class__.__name__"},{"line_number":26,"context_line":"        super(ClientException, self).__init__(self.message)"}],"source_content_type":"text/x-python","patch_set":7,"id":"5aef4532_680aa17a","line":23,"updated":"2016-03-09 21:30:38.000000000","message":"we should change this to self._message since this was just the wrong thing to do to begin with, since Exception already has its own message field.","commit_id":"0d151983be8401d30d51a1b99d794a1cf00126b8"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f5c045459e3cbdaf1ff99643ddb2ba84cc29db2f","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class ClientException(Exception):"},{"line_number":21,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":22,"context_line":"    @property"},{"line_number":23,"context_line":"    def message(self):"},{"line_number":24,"context_line":"        msg \u003d (\u0027A direct call was made to Exception.message, \u0027"},{"line_number":25,"context_line":"               \u0027which may not work in a future release of keystoneauth.\u0027)"},{"line_number":26,"context_line":"        LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a18252c_69381ba1","line":23,"updated":"2016-04-13 19:44:31.000000000","message":"I don\u0027t think this is a good idea. message is defined by python so we shouldn\u0027t be messing with it at all.","commit_id":"79f7c9ec1b39ec62f54fd479b2bc8a49694413c9"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"c95f1ddb5623cd725d40f40bd5fbe0a68f2f0656","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class ClientException(Exception):"},{"line_number":21,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":22,"context_line":"    @property"},{"line_number":23,"context_line":"    def message(self):"},{"line_number":24,"context_line":"        msg \u003d (\u0027A direct call was made to Exception.message, \u0027"},{"line_number":25,"context_line":"               \u0027which may not work in a future release of keystoneauth.\u0027)"},{"line_number":26,"context_line":"        LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a18252c_e89d3b67","line":23,"in_reply_to":"5a18252c_69381ba1","updated":"2016-04-14 02:01:23.000000000","message":"Thanks for the input.  I can hop onto irc to discuss.  I am not sure what the correct approach is [it seems bad either way - but left unfixed, the behavior is not right either].  Exception.message exists in py2, but not py3.  I agree user should not do print(e.message) in general, but it works in py2.  We will either have to add e.message back to py3, or drop e.message in py2.  (and then update the unit test accordingly)","commit_id":"79f7c9ec1b39ec62f54fd479b2bc8a49694413c9"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"ba65a721985e3280ac8eef539c497530f88a4f03","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class ClientException(Exception):"},{"line_number":21,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":22,"context_line":"    @property"},{"line_number":23,"context_line":"    def message(self):"},{"line_number":24,"context_line":"        msg \u003d (\u0027A direct call was made to Exception.message, \u0027"},{"line_number":25,"context_line":"               \u0027which may not work in a future release of keystoneauth.\u0027)"},{"line_number":26,"context_line":"        LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a18252c_61447db6","line":23,"in_reply_to":"5a18252c_8b60e6a6","updated":"2016-04-14 16:06:00.000000000","message":"This gives me an idea, thanks.  Going to test if another fix would work better later.","commit_id":"79f7c9ec1b39ec62f54fd479b2bc8a49694413c9"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"143df5a8fb7e299be1d1844ef467aa14d76fb691","unresolved":false,"context_lines":[{"line_number":20,"context_line":"class ClientException(Exception):"},{"line_number":21,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":22,"context_line":"    @property"},{"line_number":23,"context_line":"    def message(self):"},{"line_number":24,"context_line":"        msg \u003d (\u0027A direct call was made to Exception.message, \u0027"},{"line_number":25,"context_line":"               \u0027which may not work in a future release of keystoneauth.\u0027)"},{"line_number":26,"context_line":"        LOG.warn(msg)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a18252c_8b60e6a6","line":23,"in_reply_to":"5a18252c_e89d3b67","updated":"2016-04-14 12:31:40.000000000","message":"on py2 e.message is set when you call self.__init().","commit_id":"79f7c9ec1b39ec62f54fd479b2bc8a49694413c9"},{"author":{"_account_id":8866,"name":"Raildo Mascena de Sousa Filho","email":"rmascena@redhat.com","username":"raildo"},"change_message_id":"b9e8161287bdd92141bd10fe9e3227ee3bb61075","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    @property"},{"line_number":23,"context_line":"    def message(self):"},{"line_number":24,"context_line":"        msg \u003d (\u0027A direct call was made to Exception.message, \u0027"},{"line_number":25,"context_line":"               \u0027which may not work in a future release of keystoneauth.\u0027)"},{"line_number":26,"context_line":"        LOG.warn(msg)"},{"line_number":27,"context_line":"        return self._message"},{"line_number":28,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"5a18252c_00325010","line":25,"range":{"start_line":25,"start_character":19,"end_line":25,"end_character":71},"updated":"2016-04-13 02:07:07.000000000","message":"this sounds like this class will be deprecated. if it right, do you know when this will happen?","commit_id":"79f7c9ec1b39ec62f54fd479b2bc8a49694413c9"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"66cf4241cea0596aeb1acc3e6717c5bcbbf7d8a2","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        msg \u003d (\u0027A direct call was made to Exception.message, \u0027"},{"line_number":25,"context_line":"               \u0027which may not work in a future release of keystoneauth.\u0027)"},{"line_number":26,"context_line":"        LOG.warn(msg)"},{"line_number":27,"context_line":"        return self._message"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":30,"context_line":"        if message:"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba0121b8_bf1c896b","line":27,"updated":"2016-04-02 21:03:52.000000000","message":"I am ok with this, however, I am curious if we need a setter/delter as well (to support previous cases).","commit_id":"79f7c9ec1b39ec62f54fd479b2bc8a49694413c9"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"9e348dbfc116150b590f54a5de76a36449b17341","unresolved":false,"context_lines":[{"line_number":10,"context_line":"# License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"# under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"__all__ \u003d (\u0027ClientException\u0027,)"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"1a122d0e_c3be66ad","side":"PARENT","line":13,"updated":"2016-04-25 22:38:07.000000000","message":"whitespace change","commit_id":"91436428f2da5067955d8d58b6aa1eec656ae073"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"9e348dbfc116150b590f54a5de76a36449b17341","unresolved":false,"context_lines":[{"line_number":19,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":20,"context_line":"        if message is None:"},{"line_number":21,"context_line":"            message \u003d self.__class__.__name__"},{"line_number":22,"context_line":"        super(ClientException, self).__init__(message)"}],"source_content_type":"text/x-python","patch_set":14,"id":"1a122d0e_c3d5c6e5","line":22,"range":{"start_line":22,"start_character":14,"end_line":22,"end_character":29},"updated":"2016-04-25 22:38:07.000000000","message":"This is not the same. \n\nIt\u0027s really common for subclasses to define message as a class level attribute, eg [1]. In this case the class name will be used instead of the class attribute.\n\nYou could do:\n\nif not message: \n    message \u003d self.message or self.__class__.__name__\n\nbut you need to add back the message \u003d None default and I need to remember if __class__.__name__ works the same way in py3. \n\n[1] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/exceptions/http.py#L67","commit_id":"d6ee43ffa688f598f7b9e6afc0fc8b26c61c4cb6"},{"author":{"_account_id":7191,"name":"Jamie Lennox","email":"jamielennox@gmail.com","username":"jamielennox"},"change_message_id":"c1c16a415ba6dda36101ef1069d31aad372801b0","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    _message \u003d None"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":23,"context_line":"        self._message \u003d message or self.__class__.__name__"},{"line_number":24,"context_line":"        super(ClientException, self).__init__(self._message)"}],"source_content_type":"text/x-python","patch_set":15,"id":"dab17558_bde9e11c","line":23,"updated":"2016-05-09 06:16:24.000000000","message":"so i get the py2 vs py3 point - but from my perspective you are changing an API because we remove e.message from py3.\n\nAlso i feel you are missing the point. Exceptions like [1] override the message class variable so that they can be created without passing something to __init__.\n\nWith this change all of for example the HTTP Exceptions won\u0027t have a string message set because we never check for the value of self.message.\n\n\n[1] https://github.com/openstack/keystoneauth/blob/master/keystoneauth1/exceptions/http.py#L113","commit_id":"15197ae2a5b8b30ab4b0bc48b71e8a3c87c94ea4"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"200cd64e1015d778dbfa8078ae5308b7f3143591","unresolved":false,"context_lines":[{"line_number":17,"context_line":"class ClientException(Exception):"},{"line_number":18,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    message \u003d \"Keystone Client Exception\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":23,"context_line":"        if not message:"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_1d438643","line":20,"range":{"start_line":20,"start_character":24,"end_line":20,"end_character":30},"updated":"2016-06-13 14:11:36.000000000","message":"Why not make this the class name, which seems like the original intent.","commit_id":"ea316f27ff65fab0c19418c4e38d3d476e41191b"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a7bf942680139ecc15238cd2bde7e5f80a85f5d8","unresolved":false,"context_lines":[{"line_number":17,"context_line":"class ClientException(Exception):"},{"line_number":18,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    message \u003d \"Keystone Client Exception\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":23,"context_line":"        if not message:"}],"source_content_type":"text/x-python","patch_set":17,"id":"1aa78d24_491bdbca","line":20,"range":{"start_line":20,"start_character":24,"end_line":20,"end_character":30},"in_reply_to":"7aa08908_1d438643","updated":"2016-07-10 12:29:23.000000000","message":"Removing this message per dstanek\u0027s code.","commit_id":"ea316f27ff65fab0c19418c4e38d3d476e41191b"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"62f683adf331957388e7005708b5a176d106e797","unresolved":false,"context_lines":[{"line_number":22,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":23,"context_line":"        if message:"},{"line_number":24,"context_line":"            self.message \u003d message"},{"line_number":25,"context_line":"        if not self.message:"},{"line_number":26,"context_line":"            self.message \u003d self.__class__.__name__"},{"line_number":27,"context_line":"        super(ClientException, self).__init__(self.message)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a6eadb0_8a93e4f9","line":25,"range":{"start_line":25,"start_character":8,"end_line":25,"end_character":28},"updated":"2016-12-20 12:15:10.000000000","message":"wouldn\u0027t an else statement have the same effect here ?","commit_id":"b07bc30598459f214d176d0be50922bc8e080156"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"e821b33c4ed715321649fc28eec5b509dd8cd0fd","unresolved":false,"context_lines":[{"line_number":20,"context_line":"    message \u003d \"ClientException\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":23,"context_line":"        self.message \u003d message or self.__class__.message"},{"line_number":24,"context_line":"        super(ClientException, self).__init__(self.message)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3a461143_bcf39b09","line":23,"updated":"2017-01-26 12:29:03.000000000","message":"I\u0027m not sure why we are explicitly pulling message off of the class instead of the instance here.","commit_id":"9b410e828a93e81bd7766444cd917288defa13d7"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"5a45d28b7d8a564074d1d7794d164b011f6739c1","unresolved":false,"context_lines":[{"line_number":17,"context_line":"class ClientException(Exception):"},{"line_number":18,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    message \u003d \"ClientException\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":23,"context_line":"        self.message \u003d message or self.message"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a461143_491e78bb","line":20,"range":{"start_line":20,"start_character":14,"end_line":20,"end_character":31},"updated":"2017-01-26 13:18:28.000000000","message":"ClientException.__name__","commit_id":"062dcc9cb29556b82ca7182458fac3038dd64c62"},{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"52e5bb1f9031b967d26f6fbd2164fb8aed883e03","unresolved":false,"context_lines":[{"line_number":17,"context_line":"class ClientException(Exception):"},{"line_number":18,"context_line":"    \"\"\"The base exception for everything to do with clients.\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    message \u003d \"ClientException\""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"    def __init__(self, message\u003dNone):"},{"line_number":23,"context_line":"        self.message \u003d message or self.message"}],"source_content_type":"text/x-python","patch_set":21,"id":"3a461143_bf72aae3","line":20,"in_reply_to":"3a461143_491e78bb","updated":"2017-01-26 13:57:34.000000000","message":"you can\u0027t do that here. This line is executed in order to create the ClientException object, so it doesn\u0027t exist yet.","commit_id":"062dcc9cb29556b82ca7182458fac3038dd64c62"}],"keystoneauth1/tests/unit/exceptions/__init__.py":[{"author":{"_account_id":21420,"name":"Gage Hugo","email":"gagehugo@gmail.com","username":"ghugo"},"change_message_id":"f99be0ea129205da6752bbd4eac947c77337c07a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"3a461143_9b79a232","updated":"2017-01-25 21:39:57.000000000","message":"Not sure if this file is really needed, just left it here since it was already part of the change.","commit_id":"d610afe6f8a417012b3911836009230aa7b86711"}],"keystoneauth1/tests/unit/exceptions/test_exceptions.py":[{"author":{"_account_id":7725,"name":"David Stanek","email":"dstanek@dstanek.com","username":"dstanek"},"change_message_id":"aaea56aae858a942ba0f939d649a085f9b083830","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        exc \u003d exceptions.ClientException(message\u003dtest_message)"},{"line_number":24,"context_line":"        self.assertEqual(test_message, six.text_type(exc))"},{"line_number":25,"context_line":"        if six.PY2:"},{"line_number":26,"context_line":"            # For py2, also verify the message property,"},{"line_number":27,"context_line":"            # which is removed in py3."},{"line_number":28,"context_line":"            self.assertEqual(test_message, exc.message)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1aa78d24_04fd3a3b","line":26,"updated":"2016-07-10 14:00:36.000000000","message":"Doesn\u0027t this patch add the attribute for Python 3?","commit_id":"b07bc30598459f214d176d0be50922bc8e080156"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"d3911e4586d79fc9fd747f93d72a7cdff2b2ced8","unresolved":false,"context_lines":[{"line_number":23,"context_line":"        exc \u003d exceptions.ClientException(message\u003dtest_message)"},{"line_number":24,"context_line":"        self.assertEqual(test_message, six.text_type(exc))"},{"line_number":25,"context_line":"        if six.PY2:"},{"line_number":26,"context_line":"            # For py2, also verify the message property,"},{"line_number":27,"context_line":"            # which is removed in py3."},{"line_number":28,"context_line":"            self.assertEqual(test_message, exc.message)"}],"source_content_type":"text/x-python","patch_set":18,"id":"5a74a57a_690b3f2c","line":26,"in_reply_to":"1aa78d24_04fd3a3b","updated":"2016-11-29 23:01:58.000000000","message":"It looks like this patch sets the exception message if it isn\u0027t already an attribute of the exception. So wouldn\u0027t that mean this would pass on py3 and py2?","commit_id":"b07bc30598459f214d176d0be50922bc8e080156"},{"author":{"_account_id":17860,"name":"Samuel de Medeiros Queiroz","email":"samueldmq@gmail.com","username":"samueldmq"},"change_message_id":"62f683adf331957388e7005708b5a176d106e797","unresolved":false,"context_lines":[{"line_number":24,"context_line":"        self.assertEqual(test_message, six.text_type(exc))"},{"line_number":25,"context_line":"        if six.PY2:"},{"line_number":26,"context_line":"            # For py2, also verify the message property,"},{"line_number":27,"context_line":"            # which is removed in py3."},{"line_number":28,"context_line":"            self.assertEqual(test_message, exc.message)"}],"source_content_type":"text/x-python","patch_set":18,"id":"1a6eadb0_453a9fce","line":27,"updated":"2016-12-20 12:15:10.000000000","message":"Why does this get removed in py3? The client behavior should be consistent through supported Python versions.","commit_id":"b07bc30598459f214d176d0be50922bc8e080156"}],"keystoneauth1/tests/unit/loading/test_generic.py":[{"author":{"_account_id":13478,"name":"Boris Bobrov","email":"b.bobrov@sap.com","username":"bbobrov"},"change_message_id":"8dc162941dadd7ac03a25fe9e6d2d1d5a5186b35","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def test_clientexception_message_setting(self):"},{"line_number":93,"context_line":"        test_message \u003d \u0027Unittest exception message.\u0027"},{"line_number":94,"context_line":"        exc \u003d exceptions.ClientException(message\u003dtest_message)"},{"line_number":95,"context_line":"        self.assertEqual(exc.message, test_message)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aed3d3a_ee14134e","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":51},"updated":"2016-02-29 17:03:44.000000000","message":"please swap the order of arguments","commit_id":"60925aabea2be55fe20bc8ac3d647531dc1c6b27"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"bada728401ded47d26ef17a24359d2573c29e533","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def test_clientexception_message_setting(self):"},{"line_number":93,"context_line":"        test_message \u003d \u0027Unittest exception message.\u0027"},{"line_number":94,"context_line":"        exc \u003d exceptions.ClientException(message\u003dtest_message)"},{"line_number":95,"context_line":"        self.assertEqual(exc.message, test_message)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9aed3d3a_2ddf186a","line":95,"range":{"start_line":95,"start_character":8,"end_line":95,"end_character":51},"in_reply_to":"9aed3d3a_ee14134e","updated":"2016-02-29 18:06:22.000000000","message":"Done","commit_id":"60925aabea2be55fe20bc8ac3d647531dc1c6b27"},{"author":{"_account_id":2903,"name":"Morgan Fainberg","email":"morgan.fainberg@gmail.com","username":"mdrnstm"},"change_message_id":"943966b63e7e9440b7484eec1230316eec9a0726","unresolved":false,"context_lines":[{"line_number":91,"context_line":""},{"line_number":92,"context_line":"class ExceptionTests(utils.TestCase):"},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"    @unittest.skipIf(sys.version_info \u003e\u003d (3, 0),"},{"line_number":95,"context_line":"                     \"not supported in python 3.x\")"},{"line_number":96,"context_line":"    def test_clientexception_message_setting(self):"},{"line_number":97,"context_line":"        test_message \u003d \u0027Unittest exception message.\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"ba0121b8_478b5cc3","line":94,"updated":"2016-03-31 07:05:22.000000000","message":"Why are we implementing a non-py3 compatible change/test?","commit_id":"a13f83a1c78970e90c20ced27e9c96109aadb047"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"f5c045459e3cbdaf1ff99643ddb2ba84cc29db2f","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def test_clientexception_message_setting(self):"},{"line_number":93,"context_line":"        test_message \u003d \u0027Unittest exception message.\u0027"},{"line_number":94,"context_line":"        exc \u003d exceptions.ClientException(message\u003dtest_message)"},{"line_number":95,"context_line":"        self.assertEqual(test_message, exc.message)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a18252c_295743cf","line":95,"updated":"2016-04-13 19:44:31.000000000","message":"let\u0027s not have a test for something that\u0027s deprecated. Use six.text_type(exc.message)","commit_id":"79f7c9ec1b39ec62f54fd479b2bc8a49694413c9"},{"author":{"_account_id":6486,"name":"Brant Knudson","email":"blk@acm.org","username":"blk-u"},"change_message_id":"d0052d57605bffc06a26e659f9556a580caac498","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            msg \u003d exc.message"},{"line_number":100,"context_line":"            self.assertEqual(test_message, msg)"},{"line_number":101,"context_line":"        except AttributeError:"},{"line_number":102,"context_line":"            self.assertEqual(test_message, str(exc))"}],"source_content_type":"text/x-python","patch_set":12,"id":"1a122d0e_86550f1f","line":102,"updated":"2016-04-15 14:25:38.000000000","message":"tests shouldn\u0027t guess and try something different if it doesn\u0027t work because this can lead to tests passing when they should not.\n\nI think it\u0027s ok to have a test that doesn\u0027t happen on py3, since the functionality was removed in py3.\n\nSo, for example, the test should\n\n self.assertEqual(test_message, six.text_type(exc))\n if not py3:\n   # The message property was removed in py3.\n   self.assertEqual(test_message, exc.message)","commit_id":"5e6b3ef758d923fcd5763bc8d64aef1ae0fde9d1"},{"author":{"_account_id":18338,"name":"Ron De Rose","email":"ronald.de.rose@intel.com","username":"derosenet"},"change_message_id":"200cd64e1015d778dbfa8078ae5308b7f3143591","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        self.assertEqual(len(allowed_opts), len(opts))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"class ExceptionTests(utils.TestCase):"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_clientexception_message_setting(self):"},{"line_number":94,"context_line":"        test_message \u003d \u0027Unittest exception message.\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"7aa08908_fdcf9a53","line":91,"range":{"start_line":91,"start_character":6,"end_line":91,"end_character":20},"updated":"2016-06-13 14:11:36.000000000","message":"This seems to be a strange location for this test.  Suggest: keystoneauth1/tests/unit/exceptions/base.py","commit_id":"ea316f27ff65fab0c19418c4e38d3d476e41191b"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"a7bf942680139ecc15238cd2bde7e5f80a85f5d8","unresolved":false,"context_lines":[{"line_number":88,"context_line":"        self.assertEqual(len(allowed_opts), len(opts))"},{"line_number":89,"context_line":""},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"class ExceptionTests(utils.TestCase):"},{"line_number":92,"context_line":""},{"line_number":93,"context_line":"    def test_clientexception_message_setting(self):"},{"line_number":94,"context_line":"        test_message \u003d \u0027Unittest exception message.\u0027"}],"source_content_type":"text/x-python","patch_set":17,"id":"1aa78d24_a95fdf73","line":91,"range":{"start_line":91,"start_character":6,"end_line":91,"end_character":20},"in_reply_to":"7aa08908_fdcf9a53","updated":"2016-07-10 12:29:23.000000000","message":"Done","commit_id":"ea316f27ff65fab0c19418c4e38d3d476e41191b"}]}
