)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"acd3b4c48700cd86454c02fd7272e4b7fd9f010d","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Marc Koderer \u003cmarc@koderer.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2015-12-20 18:54:49 +0100"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Introduce data driven testing"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"DDT can ease up error tracing and autogenerates tests on basis of"},{"line_number":10,"context_line":"different input data."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3a7e1126_c1df6267","line":7,"updated":"2015-12-21 01:06:58.000000000","message":"I think the title\n  [WIP] Introduce....\nor\n  [DO NOT MERGE] Introduce...\nwould be good for reviewers :)","commit_id":"5c11da0e535aee19abc48165e44698c02ebbd03c"}],"tempest/api/compute/servers/test_server_actions.py":[{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"88c3ca691e444b980de23b84896b13f84533dbcb","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import ddt"},{"line_number":17,"context_line":"import logging"},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"from six.moves.urllib import parse as urlparse"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_bf58cb57","line":16,"updated":"2016-01-12 14:12:16.000000000","message":"This import should go after \u0027logging\u0027 next to \u0027six\u0027, \u0027tempest_lib\u0027 and \u0027testtools\u0027 because it is a third-party library.","commit_id":"505508d8e91aad773ff576a3a941e1fcb8ac595d"}],"tempest/api/network/test_security_groups.py":[{"author":{"_account_id":97,"name":"Daryl Walleck","email":"daryl.walleck@rackspace.com","username":"dwalleck"},"change_message_id":"dc5ce90584b63cb289a2a4f12d0613b4146909ff","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                                                port_range_max)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @test.idempotent_id(\u0027c9463db8-b44d-4f52-b6c0-8dbda99f26ce\u0027)"},{"line_number":165,"context_line":"    @ddt.data((3, 2), (3, 0), (8, 0), (0, 0), (11, None))"},{"line_number":166,"context_line":"    def test_create_security_group_rule_with_icmp_type_code(self, type_codes):"},{"line_number":167,"context_line":"        \"\"\"Verify security group rule for icmp protocol works."},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_d5beadfe","line":165,"range":{"start_line":165,"start_character":0,"end_line":165,"end_character":4},"updated":"2016-01-12 19:47:16.000000000","message":"+1 to using unpack to make it more clear. The only other issue I see is that it\u0027s not clear what test case each tuple represents. It would be verbose to explicitly name each tuple, but it would make what is being tested clearer and more explicit","commit_id":"505508d8e91aad773ff576a3a941e1fcb8ac595d"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"942f5633c7893cdc5265b0e8a90646f34167394e","unresolved":false,"context_lines":[{"line_number":162,"context_line":"                                                port_range_max)"},{"line_number":163,"context_line":""},{"line_number":164,"context_line":"    @test.idempotent_id(\u0027c9463db8-b44d-4f52-b6c0-8dbda99f26ce\u0027)"},{"line_number":165,"context_line":"    @ddt.data((3, 2), (3, 0), (8, 0), (0, 0), (11, None))"},{"line_number":166,"context_line":"    def test_create_security_group_rule_with_icmp_type_code(self, type_codes):"},{"line_number":167,"context_line":"        \"\"\"Verify security group rule for icmp protocol works."},{"line_number":168,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_f25d39ed","line":165,"updated":"2016-01-12 02:43:16.000000000","message":"How about using @ddt.unpack here?","commit_id":"505508d8e91aad773ff576a3a941e1fcb8ac595d"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"68abb4ca792bfef464b987648b3f25ef41a10d6c","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        protocol \u003d \u0027icmp\u0027"},{"line_number":179,"context_line":"        self._create_verify_security_group_rule(sg_id, direction,"},{"line_number":180,"context_line":"                                                self.ethertype, protocol,"},{"line_number":181,"context_line":"                                                type_codes[0], type_codes[1])"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    @test.idempotent_id(\u0027c2ed2deb-7a0c-44d8-8b4c-a5825b5c310b\u0027)"},{"line_number":184,"context_line":"    def test_create_security_group_rule_with_remote_group_id(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_dd5feb73","line":181,"updated":"2016-01-12 00:10:55.000000000","message":"Here seems a little bit difficult to understand than before because of the magic numbers(0: icmp_type, 1: icmp_code).\n\nBut I don\u0027t want to declare TYPE\u003d0 and CODE\u003d1. So I think OK to leave this if you can\u0027t think of a better solution.","commit_id":"505508d8e91aad773ff576a3a941e1fcb8ac595d"},{"author":{"_account_id":5689,"name":"Masayuki Igawa","email":"masayuki@igawa.io","username":"igawa"},"change_message_id":"942f5633c7893cdc5265b0e8a90646f34167394e","unresolved":false,"context_lines":[{"line_number":178,"context_line":"        protocol \u003d \u0027icmp\u0027"},{"line_number":179,"context_line":"        self._create_verify_security_group_rule(sg_id, direction,"},{"line_number":180,"context_line":"                                                self.ethertype, protocol,"},{"line_number":181,"context_line":"                                                type_codes[0], type_codes[1])"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":"    @test.idempotent_id(\u0027c2ed2deb-7a0c-44d8-8b4c-a5825b5c310b\u0027)"},{"line_number":184,"context_line":"    def test_create_security_group_rule_with_remote_group_id(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6ed579_326c319c","line":181,"in_reply_to":"da6ed579_dd5feb73","updated":"2016-01-12 02:43:16.000000000","message":"I have one possibility against this. See above.","commit_id":"505508d8e91aad773ff576a3a941e1fcb8ac595d"}]}
