)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"cf31bb0c88b96e522a40a40634d6ab1be71e9887","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nam Nguyen Hoai \u003cnamnh@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-09 10:22:05 +0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disallow specifying too long name and description for qos"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I5c3ed086a7b6ac98186a136a2e449d31e8a93aec"},{"line_number":10,"context_line":"Closes-Bug: #1610103"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_2897d53a","line":7,"updated":"2016-08-08 04:44:42.000000000","message":"nit: The title exceeds 50 characters[1]\n\n[1] https://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure","commit_id":"83097d2905569dc6c58b049a220104637146d711"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"6f92a946916ced96fbc18d7970c64e16a562a52d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Nam Nguyen Hoai \u003cnamnh@vn.fujitsu.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-08-09 10:22:05 +0700"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Disallow specifying too long name and description for qos"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I5c3ed086a7b6ac98186a136a2e449d31e8a93aec"},{"line_number":10,"context_line":"Closes-Bug: #1610103"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"bacf61ea_d861a43a","line":7,"in_reply_to":"bacf61ea_2897d53a","updated":"2016-08-08 07:34:18.000000000","message":"Yes, I will update it in the next patch set.","commit_id":"83097d2905569dc6c58b049a220104637146d711"}],"neutron/extensions/qos.py":[{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"7b8ca77530463170080add63682a10b56dd20095","unresolved":false,"context_lines":[{"line_number":60,"context_line":"                   \u0027is_visible\u0027: True, \u0027default\u0027: False,"},{"line_number":61,"context_line":"                   \u0027convert_to\u0027: converters.convert_to_boolean},"},{"line_number":62,"context_line":"        \u0027tenant_id\u0027: {\u0027allow_post\u0027: True, \u0027allow_put\u0027: False,"},{"line_number":63,"context_line":"                      \u0027required_by_policy\u0027: True,"},{"line_number":64,"context_line":"                      \u0027is_visible\u0027: True},"},{"line_number":65,"context_line":"        \u0027rules\u0027: {\u0027allow_post\u0027: False, \u0027allow_put\u0027: False, \u0027is_visible\u0027: True},"},{"line_number":66,"context_line":"    },"}],"source_content_type":"text/x-python","patch_set":1,"id":"9ad45d7e_a6137a65","line":63,"updated":"2016-08-10 04:46:55.000000000","message":"I think validation is required. Please add:\n\u0027validate\u0027:{\u0027type:string\u0027:attr.TENANT_ID_MAX_LEN}.","commit_id":"83097d2905569dc6c58b049a220104637146d711"}],"neutron/tests/tempest/api/test_qos.py":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"1f5fe86c8258c8f055062ecd4d47434fe045e0f1","unresolved":false,"context_lines":[{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        return rbac_for_client_tenant, rbac_wildcard"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"},{"line_number":602,"context_line":"    def test_add_policy_with_too_long_name(self):"},{"line_number":603,"context_line":"        qos \u003d self.create_qos_policy("},{"line_number":604,"context_line":"            name\u003d_long_name_ng,"},{"line_number":605,"context_line":"            description\u003d\u0027test-shared-policy\u0027, shared\u003dFalse"},{"line_number":606,"context_line":"        )"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, qos.status_int)"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    @test.idempotent_id(\u0027b9dce444-d3b3-11e5-950a-54ee747c99db\u0027)"},{"line_number":611,"context_line":"    def test_add_policy_with_too_long_description(self):"},{"line_number":612,"context_line":"        qos \u003d self.create_qos_policy("},{"line_number":613,"context_line":"            name\u003ddata_utils.rand_name(\u0027test-policy\u0027),"},{"line_number":614,"context_line":"            description\u003d_long_description_ng, shared\u003dFalse"},{"line_number":615,"context_line":"        )"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, qos.status_int)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    @test.idempotent_id(\u0027328b1f70-d424-11e5-a57f-54ee756c66df\u0027)"},{"line_number":620,"context_line":"    def test_net_bound_shared_policy_wildcard_and_tenant_id_wild_remove(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a8bc5a2_417f77df","line":617,"range":{"start_line":601,"start_character":0,"end_line":617,"end_character":71},"updated":"2016-09-27 09:16:01.000000000","message":"This negative test should be placed in test_qos_negative.py. And you must use assertRaises() instead of assertEqual.","commit_id":"2bd2e0e73b0d40d3feb3d60c3229ae508c919ea3"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"a7261e479fd6dd8153c644bbd874113591fd6a52","unresolved":false,"context_lines":[{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        return rbac_for_client_tenant, rbac_wildcard"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"},{"line_number":602,"context_line":"    def test_add_policy_with_too_long_name(self):"},{"line_number":603,"context_line":"        qos \u003d self.create_qos_policy("},{"line_number":604,"context_line":"            name\u003d_long_name_ng,"},{"line_number":605,"context_line":"            description\u003d\u0027test-shared-policy\u0027, shared\u003dFalse"},{"line_number":606,"context_line":"        )"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, qos.status_int)"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    @test.idempotent_id(\u0027b9dce444-d3b3-11e5-950a-54ee747c99db\u0027)"},{"line_number":611,"context_line":"    def test_add_policy_with_too_long_description(self):"},{"line_number":612,"context_line":"        qos \u003d self.create_qos_policy("},{"line_number":613,"context_line":"            name\u003ddata_utils.rand_name(\u0027test-policy\u0027),"},{"line_number":614,"context_line":"            description\u003d_long_description_ng, shared\u003dFalse"},{"line_number":615,"context_line":"        )"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, qos.status_int)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    @test.idempotent_id(\u0027328b1f70-d424-11e5-a57f-54ee756c66df\u0027)"},{"line_number":620,"context_line":"    def test_net_bound_shared_policy_wildcard_and_tenant_id_wild_remove(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a98d1f4_15f3a29f","line":617,"range":{"start_line":601,"start_character":0,"end_line":617,"end_character":71},"in_reply_to":"3a98d1f4_1925bcaa","updated":"2016-09-29 01:25:29.000000000","message":"Wow.. Many thanks for your help. Ichihara-san :)","commit_id":"2bd2e0e73b0d40d3feb3d60c3229ae508c919ea3"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"e489d411b58b4dcc63fdc8ac5efe6e14285de890","unresolved":false,"context_lines":[{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        return rbac_for_client_tenant, rbac_wildcard"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"},{"line_number":602,"context_line":"    def test_add_policy_with_too_long_name(self):"},{"line_number":603,"context_line":"        qos \u003d self.create_qos_policy("},{"line_number":604,"context_line":"            name\u003d_long_name_ng,"},{"line_number":605,"context_line":"            description\u003d\u0027test-shared-policy\u0027, shared\u003dFalse"},{"line_number":606,"context_line":"        )"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, qos.status_int)"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    @test.idempotent_id(\u0027b9dce444-d3b3-11e5-950a-54ee747c99db\u0027)"},{"line_number":611,"context_line":"    def test_add_policy_with_too_long_description(self):"},{"line_number":612,"context_line":"        qos \u003d self.create_qos_policy("},{"line_number":613,"context_line":"            name\u003ddata_utils.rand_name(\u0027test-policy\u0027),"},{"line_number":614,"context_line":"            description\u003d_long_description_ng, shared\u003dFalse"},{"line_number":615,"context_line":"        )"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, qos.status_int)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    @test.idempotent_id(\u0027328b1f70-d424-11e5-a57f-54ee756c66df\u0027)"},{"line_number":620,"context_line":"    def test_net_bound_shared_policy_wildcard_and_tenant_id_wild_remove(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"5a8bc5a2_e07206b0","line":617,"range":{"start_line":601,"start_character":0,"end_line":617,"end_character":71},"in_reply_to":"5a8bc5a2_417f77df","updated":"2016-09-28 04:18:42.000000000","message":"Thanks for your comment.\n\n\u003e This negative test should be placed in test_qos_negative.py.\n\nLast time, I created a new file for this but I could not pass pep8, it\u0027s releated the structure of folder.\n\n\u003e And you must use assertRaises() instead of assertEqual. \n\nBecause Ihar suggested me writing unit-test for this patch set in tempest test, but I cannot install my server for running the tempest-test, that\u0027s why I made a stupid mistake :) Would you mind helping me update this unit-test. :)","commit_id":"2bd2e0e73b0d40d3feb3d60c3229ae508c919ea3"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"27a76a0971a3732a0f8adf2c756b9c0815c80df4","unresolved":false,"context_lines":[{"line_number":598,"context_line":""},{"line_number":599,"context_line":"        return rbac_for_client_tenant, rbac_wildcard"},{"line_number":600,"context_line":""},{"line_number":601,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"},{"line_number":602,"context_line":"    def test_add_policy_with_too_long_name(self):"},{"line_number":603,"context_line":"        qos \u003d self.create_qos_policy("},{"line_number":604,"context_line":"            name\u003d_long_name_ng,"},{"line_number":605,"context_line":"            description\u003d\u0027test-shared-policy\u0027, shared\u003dFalse"},{"line_number":606,"context_line":"        )"},{"line_number":607,"context_line":""},{"line_number":608,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, qos.status_int)"},{"line_number":609,"context_line":""},{"line_number":610,"context_line":"    @test.idempotent_id(\u0027b9dce444-d3b3-11e5-950a-54ee747c99db\u0027)"},{"line_number":611,"context_line":"    def test_add_policy_with_too_long_description(self):"},{"line_number":612,"context_line":"        qos \u003d self.create_qos_policy("},{"line_number":613,"context_line":"            name\u003ddata_utils.rand_name(\u0027test-policy\u0027),"},{"line_number":614,"context_line":"            description\u003d_long_description_ng, shared\u003dFalse"},{"line_number":615,"context_line":"        )"},{"line_number":616,"context_line":""},{"line_number":617,"context_line":"        self.assertEqual(webob.exc.HTTPBadRequest.code, qos.status_int)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    @test.idempotent_id(\u0027328b1f70-d424-11e5-a57f-54ee756c66df\u0027)"},{"line_number":620,"context_line":"    def test_net_bound_shared_policy_wildcard_and_tenant_id_wild_remove(self):"}],"source_content_type":"text/x-python","patch_set":10,"id":"3a98d1f4_1925bcaa","line":617,"range":{"start_line":601,"start_character":0,"end_line":617,"end_character":71},"in_reply_to":"5a8bc5a2_e07206b0","updated":"2016-09-28 14:50:00.000000000","message":"you should setup your env with tempest! Well, I help you for now.","commit_id":"2bd2e0e73b0d40d3feb3d60c3229ae508c919ea3"}],"neutron/tests/tempest/api/test_qos_negative.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"d19810aad22b289a7fdca496ed0828bf54656794","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    @test.idempotent_id(\u0027b9dce444-d3b3-11e5-950a-54ee747c99db\u0027)"},{"line_number":33,"context_line":"    def test_add_policy_with_too_long_description(self):"},{"line_number":34,"context_line":"        self.assertRaises(lib_exc.BadRequest, self.create_qos_policy,"},{"line_number":35,"context_line":"                          \u0027test-policy\u0027, LONG_DESCRIPTION_NG, False)"}],"source_content_type":"text/x-python","patch_set":11,"id":"1a95cdbc_d3bef363","line":35,"updated":"2016-10-10 13:50:05.000000000","message":"What about the test case where it sends a long tenant_id as an argument?","commit_id":"5c23d4e8937b15f3ce101d297fd8c632cc70e967"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"a0b64d15c48b7d99fee132540a043fcf9d0a7f37","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    @test.idempotent_id(\u0027b9dce444-d3b3-11e5-950a-54ee747c99db\u0027)"},{"line_number":33,"context_line":"    def test_add_policy_with_too_long_description(self):"},{"line_number":34,"context_line":"        self.assertRaises(lib_exc.BadRequest, self.create_qos_policy,"},{"line_number":35,"context_line":"                          \u0027test-policy\u0027, LONG_DESCRIPTION_NG, False)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa6399be_933b2bd1","line":35,"in_reply_to":"1a95cdbc_d3bef363","updated":"2016-10-12 10:31:06.000000000","message":"+","commit_id":"5c23d4e8937b15f3ce101d297fd8c632cc70e967"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"52a0c87bdbb0ad9390a2111c0a60652f8599b568","unresolved":false,"context_lines":[{"line_number":32,"context_line":"    @test.idempotent_id(\u0027b9dce444-d3b3-11e5-950a-54ee747c99db\u0027)"},{"line_number":33,"context_line":"    def test_add_policy_with_too_long_description(self):"},{"line_number":34,"context_line":"        self.assertRaises(lib_exc.BadRequest, self.create_qos_policy,"},{"line_number":35,"context_line":"                          \u0027test-policy\u0027, LONG_DESCRIPTION_NG, False)"}],"source_content_type":"text/x-python","patch_set":11,"id":"fa6399be_c1e3add7","line":35,"in_reply_to":"1a95cdbc_d3bef363","updated":"2016-10-14 02:32:33.000000000","message":"Sorry for my reply late. I will update the unit-test right now. :)","commit_id":"5c23d4e8937b15f3ce101d297fd8c632cc70e967"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"c770866ad183810ad0edf2af327cc7999c37cb49","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LONG_TENANT_ID_NG \u003d \u0027z\u0027 * (attr.TENANT_ID_MAX_LEN + 1)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class QosNegativeTestJSON(test_qos.QosTestJSON):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @test.attr(type\u003d\u0027negative\u0027)"},{"line_number":27,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa6399be_a698766b","line":24,"updated":"2016-10-14 14:24:07.000000000","message":"Wait, so you inherit all test cases from the parent class? I don\u0027t think it\u0027s correct.","commit_id":"0cb771772a41906ce770736ad90b294341762fad"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"ffd9bce2ca17bca5bf27e0c987f3615ab3f748bb","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LONG_TENANT_ID_NG \u003d \u0027z\u0027 * (attr.TENANT_ID_MAX_LEN + 1)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class QosNegativeTestJSON(test_qos.QosTestJSON):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @test.attr(type\u003d\u0027negative\u0027)"},{"line_number":27,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a77a97e_d52d56a9","line":24,"in_reply_to":"7a77a97e_21d1f357","updated":"2016-11-17 04:00:09.000000000","message":"I think we no need inherit all test cases from the parent class. It should be:\n\nclass QosNegativeTestJSON(base.BaseAdminNetworkTest):\n    @classmethod\n    @test.requires_ext(extension\u003d\"qos\", service\u003d\"network\")\n    def resource_setup(cls):\n        super(QosNegativeTestJSON, cls).resource_setup()\n\nHow do you think?","commit_id":"0cb771772a41906ce770736ad90b294341762fad"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"f515f509d5f8afd0c5d5daeba66a5a021b1e8063","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LONG_TENANT_ID_NG \u003d \u0027z\u0027 * (attr.TENANT_ID_MAX_LEN + 1)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class QosNegativeTestJSON(test_qos.QosTestJSON):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @test.attr(type\u003d\u0027negative\u0027)"},{"line_number":27,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a77a97e_09fb2748","line":24,"in_reply_to":"7a77a97e_d52d56a9","updated":"2016-11-17 12:11:17.000000000","message":"@An\n\nThank you so much for your suggestion. I think you are right so I have updated my patch as yours. :)","commit_id":"0cb771772a41906ce770736ad90b294341762fad"},{"author":{"_account_id":17776,"name":"Reedip","email":"reedip.banerjee@gmail.com","username":"Reedip"},"change_message_id":"95629135f801dab09ca21c6d8fa526ee23fff766","unresolved":false,"context_lines":[{"line_number":21,"context_line":"LONG_TENANT_ID_NG \u003d \u0027z\u0027 * (attr.TENANT_ID_MAX_LEN + 1)"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class QosNegativeTestJSON(test_qos.QosTestJSON):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @test.attr(type\u003d\u0027negative\u0027)"},{"line_number":27,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"7a77a97e_21d1f357","line":24,"in_reply_to":"fa6399be_a698766b","updated":"2016-11-16 23:38:04.000000000","message":"Do we need all the parent test cases?","commit_id":"0cb771772a41906ce770736ad90b294341762fad"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"5e4052cdbfbd7dcc6e3a2eb9ea80673fce537c9f","unresolved":false,"context_lines":[{"line_number":22,"context_line":"LONG_TENANT_ID_NG \u003d \u0027z\u0027 * (attr.TENANT_ID_MAX_LEN + 1)"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class QosNegativeTestJSON(test_qos.QosTestJSON,"},{"line_number":26,"context_line":"                          base.BaseAdminNetworkTest):"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"    @test.attr(type\u003d\u0027negative\u0027)"},{"line_number":29,"context_line":"    @test.idempotent_id(\u0027b9dce555-d3b3-11e5-950a-54ee757c77da\u0027)"}],"source_content_type":"text/x-python","patch_set":13,"id":"7a77a97e_60075e18","line":26,"range":{"start_line":25,"start_character":0,"end_line":26,"end_character":53},"updated":"2016-11-17 04:01:34.000000000","message":"Please consider my comment in patch-set 12. :)","commit_id":"7abfec55615afbd53a97f5e35c39fae5f36ae419"}],"neutron/tests/unit/services/qos/test_qos_plugin.py":[{"author":{"_account_id":8726,"name":"Victor Morales","email":"chipahuac@hotmail.com","username":"electrocucaracha"},"change_message_id":"0741ed1913f0137efc3845c99f9474c79752a9f4","unresolved":false,"context_lines":[{"line_number":348,"context_line":"                             sorted(type_[\u0027type\u0027] for type_ in types))"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"class QosPluginDbTestCaseMixin(object):"},{"line_number":352,"context_line":"    def _create_policy(self, fmt, name, description, **kwargs):"},{"line_number":353,"context_line":"        data \u003d {\u0027policy\u0027: {\u0027name\u0027: name,"},{"line_number":354,"context_line":"                           \u0027tenant_id\u0027: kwargs.get(\u0027tenant_id\u0027, \u0027test-tenant\u0027),"},{"line_number":355,"context_line":"                           \u0027shared\u0027: kwargs.get(\u0027shared\u0027, False),"},{"line_number":356,"context_line":"                           \u0027description\u0027: description}}"},{"line_number":357,"context_line":"        req \u003d self.new_create_request(\u0027policies\u0027, data, fmt)"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        if kwargs.get(\u0027set_context\u0027) and \u0027tenant_id\u0027 in kwargs:"},{"line_number":360,"context_line":"            # create a specific auth context for this request"},{"line_number":361,"context_line":"            req.environ[\u0027neutron.context\u0027] \u003d ("},{"line_number":362,"context_line":"                context.Context(\u0027\u0027, kwargs[\u0027tenant_id\u0027],"},{"line_number":363,"context_line":"                                is_admin\u003dkwargs.get(\u0027is_admin\u0027, True)))"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"        return req.get_response(self.ext_api)"},{"line_number":366,"context_line":""},{"line_number":367,"context_line":""},{"line_number":368,"context_line":"class QosPluginTestCase(test_db.NeutronDbPluginV2TestCase,"}],"source_content_type":"text/x-python","patch_set":3,"id":"9ad45d7e_66e4b9ab","line":365,"range":{"start_line":351,"start_character":0,"end_line":365,"end_character":45},"updated":"2016-08-10 17:49:04.000000000","message":"The only place that I see that this class is used is in line 369.  So, _create_policy method can belong to TestQos class.","commit_id":"a0583bec26f9bf5636b17ef8f8870b9c46249ec6"},{"author":{"_account_id":15471,"name":"Nguyen Phuong An","email":"annp.cs51@gmail.com","username":"An-FVL"},"change_message_id":"62f0ff9465203f39ff859cf084234263aad7d28d","unresolved":false,"context_lines":[{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"class TestQos(QosPluginTestCase):"},{"line_number":380,"context_line":"    def _create_policy(self, fmt, name, description, **kwargs):"},{"line_number":381,"context_line":"        data \u003d {\u0027policy\u0027: {\u0027name\u0027: name,"},{"line_number":382,"context_line":"                           \u0027tenant_id\u0027: kwargs.get(\u0027tenant_id\u0027, \u0027test-tenant\u0027),"},{"line_number":383,"context_line":"                           \u0027shared\u0027: kwargs.get(\u0027shared\u0027, False),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_a8b14949","line":380,"updated":"2016-08-11 03:14:51.000000000","message":"Looks good! But it looks better if new blank line is added.","commit_id":"b23dbd97f6d87dbc217e7d94120f33f7bfd86126"},{"author":{"_account_id":19554,"name":"Nam","email":"namnh68@fsoft.com.vn","username":"namnh"},"change_message_id":"d01a81f4332ade7e7e4d8e62402b4aef2b1bee14","unresolved":false,"context_lines":[{"line_number":377,"context_line":""},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"class TestQos(QosPluginTestCase):"},{"line_number":380,"context_line":"    def _create_policy(self, fmt, name, description, **kwargs):"},{"line_number":381,"context_line":"        data \u003d {\u0027policy\u0027: {\u0027name\u0027: name,"},{"line_number":382,"context_line":"                           \u0027tenant_id\u0027: kwargs.get(\u0027tenant_id\u0027, \u0027test-tenant\u0027),"},{"line_number":383,"context_line":"                           \u0027shared\u0027: kwargs.get(\u0027shared\u0027, False),"}],"source_content_type":"text/x-python","patch_set":4,"id":"9ad45d7e_887ba527","line":380,"in_reply_to":"9ad45d7e_a8b14949","updated":"2016-08-11 03:26:24.000000000","message":"Done","commit_id":"b23dbd97f6d87dbc217e7d94120f33f7bfd86126"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"dab1ba1a292d7e8dceea765534e6a282797b37d0","unresolved":false,"context_lines":[{"line_number":348,"context_line":"                             sorted(type_[\u0027type\u0027] for type_ in types))"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":""},{"line_number":351,"context_line":"class QosPluginTestCase(test_db.NeutronDbPluginV2TestCase,"},{"line_number":352,"context_line":"                        base.BaseQosTestCase):"},{"line_number":353,"context_line":"    fmt \u003d \u0027json\u0027"},{"line_number":354,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"fa7ab95a_d591e19a","line":351,"updated":"2016-08-29 09:33:54.000000000","message":"I don\u0027t agree with the testing strategy taken here. We have API tests (-api job) to validate API layer behaviour. The tests are also misplaced since the code to support this validation is not located in qos_plugin.py module.\n\nI suggest to drop those tests from here and implement them for tempest in-tree.","commit_id":"e43e77181e05da38164279a9adfe530609475d12"}]}
