)]}'
{"tempest/api/network/test_dhcp_ipv6.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"5e18621b7f1e8e6c4a47a171d1e7fdc96bf0e84e","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                                   subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":328,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":329,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":330,"context_line":"        self.assertRaisesRegexp(exceptions.BadRequest,"},{"line_number":331,"context_line":"                                \"not a valid IP for .*subnet\","},{"line_number":332,"context_line":"                                self.create_port,"},{"line_number":333,"context_line":"                                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_da035fb6","line":330,"updated":"2015-01-29 07:14:34.000000000","message":"How about using self.assertRaises() instead of self.assertRaisesRegexp() for avoiding this kind of problem in the future.\n\nI feel current error message check seems overkill as an integrated test(Tempest).","commit_id":"fdc4d9fc48cad02e4e3fc218e0ac33c5a00c7fea"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"d742d53e723a053da7416b285a324ab44852abd6","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                                   subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":328,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":329,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":330,"context_line":"        self.assertRaisesRegexp(exceptions.BadRequest,"},{"line_number":331,"context_line":"                                \"not a valid IP for .*subnet\","},{"line_number":332,"context_line":"                                self.create_port,"},{"line_number":333,"context_line":"                                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_f7e403ae","line":330,"in_reply_to":"da86d52c_f775e332","updated":"2015-01-31 14:02:53.000000000","message":"Ok.\n\nAnd I also read http://www.mail-archive.com/openstack-dev@lists.openstack.org/msg44640.html this afteroon. It seems that we are considering to make API error response have granular error name or code besides http code in the future. So at this point we can recommend not to parsing error message in tempest. Once we have  the granular error code, we may consider to make tempest case a little more accurate.","commit_id":"fdc4d9fc48cad02e4e3fc218e0ac33c5a00c7fea"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"81229904673244a261c94d1d88fe51f506734b55","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                                   subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":328,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":329,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":330,"context_line":"        self.assertRaisesRegexp(exceptions.BadRequest,"},{"line_number":331,"context_line":"                                \"not a valid IP for .*subnet\","},{"line_number":332,"context_line":"                                self.create_port,"},{"line_number":333,"context_line":"                                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_f75a424f","line":330,"in_reply_to":"da86d52c_f7e403ae","updated":"2015-01-31 15:51:40.000000000","message":"I agree with you. It would be great if we have some more detail *sub* exception type beside response code. However, it should not depend on an message and I prefer to sub-type or similar things\nIn this Neutron case, it is \"exception type\" but this kind of things should be standarlized across OpenStack projects. This is the background of my previous comment.","commit_id":"fdc4d9fc48cad02e4e3fc218e0ac33c5a00c7fea"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"b0345b631864d858c47396df999382521d953e5a","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                                   subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":328,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":329,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":330,"context_line":"        self.assertRaisesRegexp(exceptions.BadRequest,"},{"line_number":331,"context_line":"                                \"not a valid IP for .*subnet\","},{"line_number":332,"context_line":"                                self.create_port,"},{"line_number":333,"context_line":"                                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_f7a9e790","line":330,"in_reply_to":"fa81d914_c02529c3","updated":"2015-01-30 06:36:32.000000000","message":"I don\u0027t prefer error message checks in tempest.\n\nassertRaisesRegexp exists in neutron API tests *only*, that is a reason why I feel this message check seems overkill.","commit_id":"fdc4d9fc48cad02e4e3fc218e0ac33c5a00c7fea"},{"author":{"_account_id":8574,"name":"Qin Zhao","username":"zhaoqin","inactive":true},"change_message_id":"af70845f0bd8198c352d90bb5093e03acd0fd7a7","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                                   subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":328,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":329,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":330,"context_line":"        self.assertRaisesRegexp(exceptions.BadRequest,"},{"line_number":331,"context_line":"                                \"not a valid IP for .*subnet\","},{"line_number":332,"context_line":"                                self.create_port,"},{"line_number":333,"context_line":"                                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"fa81d914_c02529c3","line":330,"in_reply_to":"fa81d914_da035fb6","updated":"2015-01-29 10:31:19.000000000","message":"@Ken, I feel it is compromise... Different errors will be raised according to different input. If no subnet id, Neutron will scan all the subnet under this network, and will say \"your ip is not in any of my subnets\". If subnet id is input, Neutorn will only scan that subnet and will say \"your ip is not in that subnet\".\n\nExactly checking the error type or message will be preferred from tempest perspective. However, we can not check Neutron exception here, so that we have to check the message. And this checking block me to define the new error type. It seems a deadlocking.\n\nIf we hope to let tempest exactly check the error, my plan is to make this tempest not block me to define new exception in Neutron. Then, after we have those two new exception types, I will modify tempest again to check the new message.\n\nOr, as you said, the alternative plan is to use assertRaises(). So  the test case will not be that accurate, but it is acceptable.\n\nWhich one do you prefer?","commit_id":"fdc4d9fc48cad02e4e3fc218e0ac33c5a00c7fea"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"change_message_id":"41db84c5ce49b7a832fd17155ba2d3857b057252","unresolved":false,"context_lines":[{"line_number":327,"context_line":"                                   subnet[\"allocation_pools\"][0][\"end\"])"},{"line_number":328,"context_line":"        ip \u003d netaddr.IPAddress(random.randrange("},{"line_number":329,"context_line":"            ip_range.last + 1, ip_range.last + 10)).format()"},{"line_number":330,"context_line":"        self.assertRaisesRegexp(exceptions.BadRequest,"},{"line_number":331,"context_line":"                                \"not a valid IP for .*subnet\","},{"line_number":332,"context_line":"                                self.create_port,"},{"line_number":333,"context_line":"                                self.network,"}],"source_content_type":"text/x-python","patch_set":2,"id":"da86d52c_f775e332","line":330,"in_reply_to":"fa81d914_f7a9e790","updated":"2015-01-31 12:16:21.000000000","message":"I agree with Ken. Tempest should check only if a response code is correct (400 in this case). It is enough if we can check the response code. I don\u0027t think error message string check is useful and the error message checks prevents minor error message improvement.","commit_id":"fdc4d9fc48cad02e4e3fc218e0ac33c5a00c7fea"}]}
