)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"11d425f8b3d835623890a93180061208eabd004a","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Haiwei Xu \u003cxu-haiwei@mxw.nes.nec.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2013-12-09 13:51:28 +0900"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Separate negative tests for test_fixed_ips in Tempest"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move negative tests from test_fixed_ips.py to test_fixed_ips_negative.py"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9qcI%3D","line":7,"updated":"2013-12-09 05:02:25.000000000","message":"The title should be under 50 chars.","commit_id":"41d546d9e8e83fc562faae52f208d4f4425070d7"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"11d425f8b3d835623890a93180061208eabd004a","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Separate negative tests for test_fixed_ips in Tempest"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Move negative tests from test_fixed_ips.py to test_fixed_ips_negative.py"},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: I965b85790463eb5de7c77d237996e469b0c4423f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"AAAATn%2F9qcE%3D","line":10,"updated":"2013-12-09 05:02:25.000000000","message":"nit: please add \"Partially implements blueprint negative-test-files\"","commit_id":"41d546d9e8e83fc562faae52f208d4f4425070d7"}],"tempest/api/compute/admin/test_fixed_ips.py":[{"author":{"_account_id":7139,"name":"Zhi Kun Liu","username":"zhikunliu","inactive":true},"change_message_id":"bdd7733effd6471b281a71a8f96fba6d0dcc8d6f","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if cls.config.service_available.neutron:"},{"line_number":29,"context_line":"            msg \u003d (\"%s skipped as neutron is available\" % cls.__name__)"},{"line_number":30,"context_line":"            raise cls.skipException(msg)"},{"line_number":31,"context_line":"        cls.client \u003d cls.os_adm.fixed_ips_client"},{"line_number":32,"context_line":"        cls.non_admin_client \u003d cls.fixed_ips_client"},{"line_number":33,"context_line":"        resp, server \u003d cls.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":34,"context_line":"        resp, server \u003d cls.servers_client.get_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9jro%3D","line":31,"updated":"2013-12-10 09:25:05.000000000","message":"non_admin_client is not used in this file.","commit_id":"458feccbbd3bcd6aef9c971671661825a1a83c4f"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"82856b8901e36a389865cfcc37f3d3d628f03b6b","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        if cls.config.service_available.neutron:"},{"line_number":29,"context_line":"            msg \u003d (\"%s skipped as neutron is available\" % cls.__name__)"},{"line_number":30,"context_line":"            raise cls.skipException(msg)"},{"line_number":31,"context_line":"        cls.client \u003d cls.os_adm.fixed_ips_client"},{"line_number":32,"context_line":"        cls.non_admin_client \u003d cls.fixed_ips_client"},{"line_number":33,"context_line":"        resp, server \u003d cls.create_test_server(wait_until\u003d\u0027ACTIVE\u0027)"},{"line_number":34,"context_line":"        resp, server \u003d cls.servers_client.get_server(server[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9ZFY%3D","line":31,"in_reply_to":"AAAATn%2F9jro%3D","updated":"2013-12-18 10:06:15.000000000","message":"Thank you Liu, I will delete it in the next patch.","commit_id":"458feccbbd3bcd6aef9c971671661825a1a83c4f"}],"tempest/api/compute/admin/test_fixed_ips_negative.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"36ecf1a977ccd312feac2400731800d296a5a1ca","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class FixedIPsTestJson(base.BaseV2ComputeAdminTest):"},{"line_number":23,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9qaY%3D","line":22,"updated":"2013-12-09 05:15:59.000000000","message":"Could you change the class name to \"FixedIPsNegativeTestJson\" for showing negative test clearly.","commit_id":"3fe13e0746cb389a41882ff8ef6f6dab442c7e55"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"40fe04a5f263613350a327dccc6af48a3b230414","unresolved":false,"context_lines":[{"line_number":19,"context_line":"from tempest.test import attr"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"class FixedIPsTestJson(base.BaseV2ComputeAdminTest):"},{"line_number":23,"context_line":"    _interface \u003d \u0027json\u0027"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9qFs%3D","line":22,"in_reply_to":"AAAATn%2F9qaY%3D","updated":"2013-12-09 07:26:52.000000000","message":"done. Thank you.","commit_id":"3fe13e0746cb389a41882ff8ef6f6dab442c7e55"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"36ecf1a977ccd312feac2400731800d296a5a1ca","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                           self.ip, body)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":" class FixedIPsTestXml(FixedIPsTestJson):"},{"line_number":80,"context_line":"     _interface \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9qaU%3D","line":79,"updated":"2013-12-09 05:15:59.000000000","message":"ditto","commit_id":"3fe13e0746cb389a41882ff8ef6f6dab442c7e55"},{"author":{"_account_id":6348,"name":"xu-haiwei","email":"hai-xu@xr.jp.nec.com","username":"xu-haiwei"},"change_message_id":"40fe04a5f263613350a327dccc6af48a3b230414","unresolved":false,"context_lines":[{"line_number":76,"context_line":"                           self.ip, body)"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""},{"line_number":79,"context_line":" class FixedIPsTestXml(FixedIPsTestJson):"},{"line_number":80,"context_line":"     _interface \u003d \u0027xml\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAATn%2F9qFo%3D","line":79,"in_reply_to":"AAAATn%2F9qaU%3D","updated":"2013-12-09 07:26:52.000000000","message":"Done. Thank you","commit_id":"3fe13e0746cb389a41882ff8ef6f6dab442c7e55"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"c3cef228139b97e60b6c01409e6e8d41e63d5370","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                    cls.ip \u003d ip[\u0027addr\u0027]"},{"line_number":39,"context_line":"                    break"},{"line_number":40,"context_line":"            if cls.ip:"},{"line_number":41,"context_line":"                break"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":44,"context_line":"    def test_list_fixed_ip_details_with_non_admin_user(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9o9Q%3D","line":41,"updated":"2013-12-09 12:51:27.000000000","message":"pedant me says this code is duplicated wrt the class for positive tests.\n\nNot sure if we should do something for avoiding duplication.","commit_id":"458feccbbd3bcd6aef9c971671661825a1a83c4f"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"31c8aba1be83a829586a10880f0b7d245ee6a4eb","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                    cls.ip \u003d ip[\u0027addr\u0027]"},{"line_number":39,"context_line":"                    break"},{"line_number":40,"context_line":"            if cls.ip:"},{"line_number":41,"context_line":"                break"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":44,"context_line":"    def test_list_fixed_ip_details_with_non_admin_user(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9KLs%3D","line":41,"in_reply_to":"AAAATn%2F9PlE%3D","updated":"2013-12-16 07:03:07.000000000","message":"I also think we should avoid the code duplication. But I feel we should separate the patch into seperating negative tests and refactoring them.","commit_id":"458feccbbd3bcd6aef9c971671661825a1a83c4f"},{"author":{"_account_id":7020,"name":"Joe Hakim Rahme","email":"jhakimra@redhat.com","username":"rahmu"},"change_message_id":"69c1a4f44ea1e26d6e5af8c0fd87748e03cc90e8","unresolved":false,"context_lines":[{"line_number":38,"context_line":"                    cls.ip \u003d ip[\u0027addr\u0027]"},{"line_number":39,"context_line":"                    break"},{"line_number":40,"context_line":"            if cls.ip:"},{"line_number":41,"context_line":"                break"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":44,"context_line":"    def test_list_fixed_ip_details_with_non_admin_user(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9PlE%3D","line":41,"in_reply_to":"AAAATn%2F9o9Q%3D","updated":"2013-12-13 15:37:34.000000000","message":"I also think so. I think it\u0027s still time to do something about. How can we bring this up?","commit_id":"458feccbbd3bcd6aef9c971671661825a1a83c4f"},{"author":{"_account_id":7882,"name":"Yuiko Takada Mori","email":"yuiko-mori@nec.com","username":"YuikoTakada"},"change_message_id":"5afa5d043ddfc9e8bd130938c1c6eb0fae23f7cb","unresolved":false,"context_lines":[{"line_number":39,"context_line":"                    break"},{"line_number":40,"context_line":"            if cls.ip:"},{"line_number":41,"context_line":"                break"},{"line_number":42,"context_line":""},{"line_number":43,"context_line":"    @attr(type\u003d[\u0027negative\u0027, \u0027gate\u0027])"},{"line_number":44,"context_line":"    def test_list_fixed_ip_details_with_non_admin_user(self):"},{"line_number":45,"context_line":"        self.assertRaises(exceptions.Unauthorized,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAATn%2F9kIQ%3D","line":42,"updated":"2013-12-10 07:16:08.000000000","message":"For example, like the below patch, There are the means to create a base class.\nhttps://review.openstack.org/#/c/55846/","commit_id":"458feccbbd3bcd6aef9c971671661825a1a83c4f"}]}
