)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"2e1f6700596cb0f3d817c1eada8b7a832f026a8f","unresolved":false,"context_lines":[{"line_number":12,"context_line":"This patch adds a strict checking for it to prevent invalid"},{"line_number":13,"context_line":"value, and adds a test case for this change as well."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I313b3bd495557a9d20ab954b37dd8162e34cf871"},{"line_number":16,"context_line":"Closes-Bug: #1594261"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5a9d85d2_a1d8d81e","line":15,"updated":"2016-06-20 07:49:45.000000000","message":"We need APIImpact line in the commit message because it changes the behavior of /v2/os-quota-sets API.","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"feb59fc751746b6dd5174f06ac39d2846b9b2c3f","unresolved":false,"context_lines":[{"line_number":10,"context_line":"\"usage\" of API /os-quota-sets, so that any invalid"},{"line_number":11,"context_line":"boolean value can be specified."},{"line_number":12,"context_line":"This patch adds a strict checking for it to prevent"},{"line_number":13,"context_line":"invalid value, and adds a test case for this"},{"line_number":14,"context_line":"change as well."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Change-Id: I313b3bd495557a9d20ab954b37dd8162e34cf871"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"3aaa91ec_d86737b5","line":13,"range":{"start_line":13,"start_character":24,"end_line":13,"end_character":35},"updated":"2016-06-24 10:30:32.000000000","message":"nit: tests","commit_id":"ff56afed3b679b1162fa60e15e60778383ca93cb"}],"cinder/api/contrib/quotas.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"c4e0a3888265f4636d8d68122b3c153d432c31b8","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":164,"context_line":"                                                  strict\u003dTrue)"},{"line_number":165,"context_line":"            except ValueError:"},{"line_number":166,"context_line":"                msg \u003d _(\"usage must be a boolean\")"},{"line_number":167,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            usage \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_7e7ccf20","line":166,"range":{"start_line":166,"start_character":25,"end_line":166,"end_character":48},"updated":"2016-06-20 07:13:03.000000000","message":"msg \u003d _(\u0027usage \u003d %(param)s must be a boolean value.\u0027) % {\u0027param\u0027: params[\u0027usage\u0027]}","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"12c00023689174e85bba994324075301e68caf00","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":164,"context_line":"                                                  strict\u003dTrue)"},{"line_number":165,"context_line":"            except ValueError:"},{"line_number":166,"context_line":"                msg \u003d _(\"usage must be a boolean\")"},{"line_number":167,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            usage \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_e4302ea1","line":166,"range":{"start_line":166,"start_character":25,"end_line":166,"end_character":48},"in_reply_to":"5a9d85d2_21e22804","updated":"2016-06-20 08:15:31.000000000","message":"I was referring to existing cinder messages which follow same pattern..\nFor ex, in utils.py: \nmsg \u003d _(\u0027Value %(param)s for %(param_string)s is not a \u0027\n        \u0027boolean.\u0027) % {\u0027param\u0027: param, \u0027param_string\u0027: param_string}\n\nbtw its ok to keep anyway.","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"2e1f6700596cb0f3d817c1eada8b7a832f026a8f","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":164,"context_line":"                                                  strict\u003dTrue)"},{"line_number":165,"context_line":"            except ValueError:"},{"line_number":166,"context_line":"                msg \u003d _(\"usage must be a boolean\")"},{"line_number":167,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            usage \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_21e22804","line":166,"range":{"start_line":166,"start_character":25,"end_line":166,"end_character":48},"in_reply_to":"5a9d85d2_7e7ccf20","updated":"2016-06-20 07:49:45.000000000","message":"I think the current message is ok, may be we can put usage in single quotes.","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"6bfd245657d5bb33b8ef6fcf763e6477c80adb87","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":164,"context_line":"                                                  strict\u003dTrue)"},{"line_number":165,"context_line":"            except ValueError:"},{"line_number":166,"context_line":"                msg \u003d _(\"usage must be a boolean\")"},{"line_number":167,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            usage \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_64ab998a","line":166,"range":{"start_line":166,"start_character":25,"end_line":166,"end_character":48},"in_reply_to":"5a9d85d2_d5be7ed3","updated":"2016-06-20 10:36:19.000000000","message":"cool :)","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"8ed70dafab227cdd8a95c72d2fc30988f0d1e20c","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":164,"context_line":"                                                  strict\u003dTrue)"},{"line_number":165,"context_line":"            except ValueError:"},{"line_number":166,"context_line":"                msg \u003d _(\"usage must be a boolean\")"},{"line_number":167,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            usage \u003d False"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_d5be7ed3","line":166,"range":{"start_line":166,"start_character":25,"end_line":166,"end_character":48},"in_reply_to":"5a9d85d2_e4302ea1","updated":"2016-06-20 09:48:39.000000000","message":"How about the following pattern which is also following the existing code(https://github.com/openstack/cinder/blob/master/cinder/api/v2/snapshots.py#L150):\nmsg \u003d _(\"Invalid value for usage: \u0027%s\u0027\") % e.message\nBecause this pattern will not only return the error message, but also output the help information about the valid value, for instance:\n{\n    \"badRequest\": {\n        \"code\": 400,\n        \"message\": \"Invalid value for usage: \u0027Unrecognized value \u0027InvalidBool\u0027, acceptable values are: \u00270\u0027, \u00271\u0027, \u0027f\u0027, \u0027false\u0027, \u0027n\u0027, \u0027no\u0027, \u0027off\u0027, \u0027on\u0027, \u0027t\u0027, \u0027true\u0027, \u0027y\u0027, \u0027yes\u0027\u0027\"\n    }\n}","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"c4e0a3888265f4636d8d68122b3c153d432c31b8","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                                                  strict\u003dTrue)"},{"line_number":165,"context_line":"            except ValueError:"},{"line_number":166,"context_line":"                msg \u003d _(\"usage must be a boolean\")"},{"line_number":167,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            usage \u003d False"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_3e352746","line":167,"range":{"start_line":167,"start_character":16,"end_line":167,"end_character":62},"updated":"2016-06-20 07:13:03.000000000","message":"Won\u0027t we require micro version for this change?\nI am suspecting as we are changing behavior for previously accepted parameter value.\n\nAs per microversion dev ref doc, \n\n\"the list of query parameters that are valid on urls\n\nExample: adding a new parameter is_yellow servers/{ID}?is_yellow\u003dTrue\"\n\nRefer http://docs.openstack.org/developer/cinder/devref/api_microversion_dev.html","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"8ed70dafab227cdd8a95c72d2fc30988f0d1e20c","unresolved":false,"context_lines":[{"line_number":164,"context_line":"                                                  strict\u003dTrue)"},{"line_number":165,"context_line":"            except ValueError:"},{"line_number":166,"context_line":"                msg \u003d _(\"usage must be a boolean\")"},{"line_number":167,"context_line":"                raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":168,"context_line":"        else:"},{"line_number":169,"context_line":"            usage \u003d False"},{"line_number":170,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_15b926ea","line":167,"range":{"start_line":167,"start_character":16,"end_line":167,"end_character":62},"in_reply_to":"5a9d85d2_3e352746","updated":"2016-06-20 09:48:39.000000000","message":"Done","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"66d7bbbbd2854eaedf54c7c3aea7df01a3e4e6f1","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        target_project_id \u003d id"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        if not hasattr(params, \u0027__call__\u0027) and \u0027usage\u0027 in params:"},{"line_number":163,"context_line":"            if (req.api_version_request.matches(\"3.7\")):"},{"line_number":164,"context_line":"                try:"},{"line_number":165,"context_line":"                    usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":166,"context_line":"                                                      strict\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_761bb9ca","line":163,"range":{"start_line":163,"start_character":11,"end_line":163,"end_character":56},"updated":"2016-06-24 08:58:04.000000000","message":"-1: This does not need a new microversion, we clearly state in the documentation that expected value is a boolean [1]\n\n[1]: http://developer.openstack.org/api-ref-blockstorage-v2.html#showQuota","commit_id":"3e9bdf202b4cf8fef31069754fdbb325627a6235"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"bb8f7fc753987cbc5b8773044c61456d34f9184d","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        target_project_id \u003d id"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        if not hasattr(params, \u0027__call__\u0027) and \u0027usage\u0027 in params:"},{"line_number":163,"context_line":"            if (req.api_version_request.matches(\"3.7\")):"},{"line_number":164,"context_line":"                try:"},{"line_number":165,"context_line":"                    usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":166,"context_line":"                                                      strict\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_389d9bbc","line":163,"range":{"start_line":163,"start_character":11,"end_line":163,"end_character":56},"in_reply_to":"3aaa91ec_6c8bec68","updated":"2016-06-24 10:30:12.000000000","message":"Yes, that\u0027s what I mean  :-)","commit_id":"3e9bdf202b4cf8fef31069754fdbb325627a6235"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"78b51cf8b22acf79dbde9c63a6f6384101d292e0","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        target_project_id \u003d id"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        if not hasattr(params, \u0027__call__\u0027) and \u0027usage\u0027 in params:"},{"line_number":163,"context_line":"            if (req.api_version_request.matches(\"3.7\")):"},{"line_number":164,"context_line":"                try:"},{"line_number":165,"context_line":"                    usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":166,"context_line":"                                                      strict\u003dTrue)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_6c8bec68","line":163,"range":{"start_line":163,"start_character":11,"end_line":163,"end_character":56},"in_reply_to":"3aaa91ec_761bb9ca","updated":"2016-06-24 09:24:59.000000000","message":"you mean to say though this patch will change behavior but as we have already mentioned in document we can assume that nothing will break due to this change in behavior?\nSeems ok to me as well if we have already mentioned in document about expected input.","commit_id":"3e9bdf202b4cf8fef31069754fdbb325627a6235"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"66d7bbbbd2854eaedf54c7c3aea7df01a3e4e6f1","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        target_project_id \u003d id"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        if not hasattr(params, \u0027__call__\u0027) and \u0027usage\u0027 in params:"},{"line_number":163,"context_line":"            if (req.api_version_request.matches(\"3.7\")):"},{"line_number":164,"context_line":"                try:"},{"line_number":165,"context_line":"                    usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":166,"context_line":"                                                      strict\u003dTrue)"},{"line_number":167,"context_line":"                except ValueError as e:"},{"line_number":168,"context_line":"                    err_msg \u003d encodeutils.exception_to_unicode(e)"},{"line_number":169,"context_line":"                    msg \u003d _(\"Invalid value for usage: \u0027%s\u0027\") % err_msg"},{"line_number":170,"context_line":"                    raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                usage \u003d strutils.bool_from_string(params[\u0027usage\u0027])"},{"line_number":173,"context_line":"        else:"},{"line_number":174,"context_line":"            usage \u003d False"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_f6a16947","line":172,"range":{"start_line":163,"start_character":0,"end_line":172,"end_character":66},"updated":"2016-06-24 08:58:04.000000000","message":"-1: All this should just be:\n\n usage \u003d utils.get_bool_param(\u0027usage\u0027, params)","commit_id":"3e9bdf202b4cf8fef31069754fdbb325627a6235"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"bdbf12bb90b606dfde08d0e1bd8c85701761db72","unresolved":false,"context_lines":[{"line_number":160,"context_line":"        target_project_id \u003d id"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"        if not hasattr(params, \u0027__call__\u0027) and \u0027usage\u0027 in params:"},{"line_number":163,"context_line":"            if (req.api_version_request.matches(\"3.7\")):"},{"line_number":164,"context_line":"                try:"},{"line_number":165,"context_line":"                    usage \u003d strutils.bool_from_string(params[\u0027usage\u0027],"},{"line_number":166,"context_line":"                                                      strict\u003dTrue)"},{"line_number":167,"context_line":"                except ValueError as e:"},{"line_number":168,"context_line":"                    err_msg \u003d encodeutils.exception_to_unicode(e)"},{"line_number":169,"context_line":"                    msg \u003d _(\"Invalid value for usage: \u0027%s\u0027\") % err_msg"},{"line_number":170,"context_line":"                    raise exception.InvalidParameterValue(err\u003dmsg)"},{"line_number":171,"context_line":"            else:"},{"line_number":172,"context_line":"                usage \u003d strutils.bool_from_string(params[\u0027usage\u0027])"},{"line_number":173,"context_line":"        else:"},{"line_number":174,"context_line":"            usage \u003d False"},{"line_number":175,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3aaa91ec_b2608a02","line":172,"range":{"start_line":163,"start_character":0,"end_line":172,"end_character":66},"in_reply_to":"3aaa91ec_f6a16947","updated":"2016-06-24 10:16:30.000000000","message":"Great, thanks a lot.","commit_id":"3e9bdf202b4cf8fef31069754fdbb325627a6235"}],"cinder/tests/unit/api/contrib/test_quotas.py":[{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"c4e0a3888265f4636d8d68122b3c153d432c31b8","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        self.controller._get_quotas.assert_called_with("},{"line_number":189,"context_line":"            self.req.environ[\u0027cinder.context\u0027], fake.PROJECT_ID, False)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def test_show_invalid_usage(self):"},{"line_number":192,"context_line":"        self.req.params \u003d {\u0027usage\u0027: \u0027InvalidBool\u0027}"},{"line_number":193,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":194,"context_line":"                          self.controller.show,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_9eaa5b6f","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":31},"updated":"2016-06-20 07:13:03.000000000","message":"Test case name does not clearly convey about what is being tested.\nMaybe some better name or some doc comment could work here.","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"12c00023689174e85bba994324075301e68caf00","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        self.controller._get_quotas.assert_called_with("},{"line_number":189,"context_line":"            self.req.environ[\u0027cinder.context\u0027], fake.PROJECT_ID, False)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def test_show_invalid_usage(self):"},{"line_number":192,"context_line":"        self.req.params \u003d {\u0027usage\u0027: \u0027InvalidBool\u0027}"},{"line_number":193,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":194,"context_line":"                          self.controller.show,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_c41a5217","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":31},"in_reply_to":"5a9d85d2_01d3ac39","updated":"2016-06-20 08:15:31.000000000","message":"seems good :)","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"2e1f6700596cb0f3d817c1eada8b7a832f026a8f","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        self.controller._get_quotas.assert_called_with("},{"line_number":189,"context_line":"            self.req.environ[\u0027cinder.context\u0027], fake.PROJECT_ID, False)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def test_show_invalid_usage(self):"},{"line_number":192,"context_line":"        self.req.params \u003d {\u0027usage\u0027: \u0027InvalidBool\u0027}"},{"line_number":193,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":194,"context_line":"                          self.controller.show,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_01d3ac39","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":31},"in_reply_to":"5a9d85d2_9eaa5b6f","updated":"2016-06-20 07:49:45.000000000","message":"I agree, how about test_show_with_invalid_usage_param?","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"8ed70dafab227cdd8a95c72d2fc30988f0d1e20c","unresolved":false,"context_lines":[{"line_number":188,"context_line":"        self.controller._get_quotas.assert_called_with("},{"line_number":189,"context_line":"            self.req.environ[\u0027cinder.context\u0027], fake.PROJECT_ID, False)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"    def test_show_invalid_usage(self):"},{"line_number":192,"context_line":"        self.req.params \u003d {\u0027usage\u0027: \u0027InvalidBool\u0027}"},{"line_number":193,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":194,"context_line":"                          self.controller.show,"}],"source_content_type":"text/x-python","patch_set":1,"id":"5a9d85d2_55cbae72","line":191,"range":{"start_line":191,"start_character":18,"end_line":191,"end_character":31},"in_reply_to":"5a9d85d2_c41a5217","updated":"2016-06-20 09:48:39.000000000","message":"Done","commit_id":"986f86408e116e23992d80ae897886ae62a114d5"},{"author":{"_account_id":16308,"name":"Sheel Rana","email":"ranasheel2000@gmail.com","username":"sheel.rana"},"change_message_id":"123e196364764dfc96d572838a3bf291742a8d3a","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":196,"context_line":"                          self.controller.show,"},{"line_number":197,"context_line":"                          self.req, fake.PROJECT2_ID)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def test_update(self):"},{"line_number":200,"context_line":"        body \u003d make_body(gigabytes\u003d2000, snapshots\u003d15,"},{"line_number":201,"context_line":"                         volumes\u003d5, backups\u003d5, tenant_id\u003dNone)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a9d85d2_443add37","line":198,"updated":"2016-06-20 10:40:50.000000000","message":"kindly add one more test case to check behavior for version other than 3.6.","commit_id":"2d8c3d122d58f6de5697f67c6623b39cbb62bb82"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"7d52a96a4589cfc36538b65e17e070c4c76743c1","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        self.assertRaises(exception.InvalidParameterValue,"},{"line_number":196,"context_line":"                          self.controller.show,"},{"line_number":197,"context_line":"                          self.req, fake.PROJECT2_ID)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"    def test_update(self):"},{"line_number":200,"context_line":"        body \u003d make_body(gigabytes\u003d2000, snapshots\u003d15,"},{"line_number":201,"context_line":"                         volumes\u003d5, backups\u003d5, tenant_id\u003dNone)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a9d85d2_08ba7f6e","line":198,"in_reply_to":"5a9d85d2_443add37","updated":"2016-06-21 02:24:28.000000000","message":"Done","commit_id":"2d8c3d122d58f6de5697f67c6623b39cbb62bb82"},{"author":{"_account_id":9171,"name":"Vipin Balachandran","email":"vipin.bl@gmail.com","username":"vbala"},"change_message_id":"48ed7a08367c463eedf5b1bb537f1f5858cfe186","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                          self.req, fake.PROJECT2_ID)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def test_show_with_valid_usage_param(self):"},{"line_number":198,"context_line":"        self.req.params \u003d {\u0027usage\u0027: \u0027False\u0027}"},{"line_number":199,"context_line":"        result \u003d self.controller.show(self.req, fake.PROJECT_ID)"},{"line_number":200,"context_line":"        self.assertDictMatch(make_body(), result)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_58d4e7bb","line":198,"range":{"start_line":198,"start_character":37,"end_line":198,"end_character":43},"updated":"2016-06-24 10:47:34.000000000","message":"As per the API documentation, \u0027False\u0027 is not a valid value. The type xsd:boolean can have values {true, false, 1, 0}. But we allow False, True etc. in other APIs. Gorka might know why.","commit_id":"ff56afed3b679b1162fa60e15e60778383ca93cb"},{"author":{"_account_id":16066,"name":"xiexs","email":"xiexs@cn.fujitsu.com","username":"simen"},"change_message_id":"c4d6b61ec175e570a3113088f94fb3dae2567bf7","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                          self.req, fake.PROJECT2_ID)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def test_show_with_valid_usage_param(self):"},{"line_number":198,"context_line":"        self.req.params \u003d {\u0027usage\u0027: \u0027False\u0027}"},{"line_number":199,"context_line":"        result \u003d self.controller.show(self.req, fake.PROJECT_ID)"},{"line_number":200,"context_line":"        self.assertDictMatch(make_body(), result)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_68af4a2a","line":198,"range":{"start_line":198,"start_character":37,"end_line":198,"end_character":43},"in_reply_to":"3aaa91ec_1bc1b954","updated":"2016-06-24 14:27:23.000000000","message":"Maybe because the YAML is case sensitive in which only lower case is valid for boolean values.","commit_id":"ff56afed3b679b1162fa60e15e60778383ca93cb"},{"author":{"_account_id":9535,"name":"Gorka Eguileor","email":"geguileo@redhat.com","username":"Gorka"},"change_message_id":"2e44a85e78ac629e6b1f273cff6fcbf3dc897a2c","unresolved":false,"context_lines":[{"line_number":195,"context_line":"                          self.req, fake.PROJECT2_ID)"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def test_show_with_valid_usage_param(self):"},{"line_number":198,"context_line":"        self.req.params \u003d {\u0027usage\u0027: \u0027False\u0027}"},{"line_number":199,"context_line":"        result \u003d self.controller.show(self.req, fake.PROJECT_ID)"},{"line_number":200,"context_line":"        self.assertDictMatch(make_body(), result)"},{"line_number":201,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3aaa91ec_1bc1b954","line":198,"range":{"start_line":198,"start_character":37,"end_line":198,"end_character":43},"in_reply_to":"3aaa91ec_58d4e7bb","updated":"2016-06-24 11:02:41.000000000","message":"I really don\u0027t know why, and we even allow yes/no/y/n","commit_id":"ff56afed3b679b1162fa60e15e60778383ca93cb"}]}
