)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6835,"name":"Kun Huang","email":"gareth@openstacker.org","username":"academicgareth"},"change_message_id":"26184f5c1a42e42ed41b5eaec784aebd8e85959a","unresolved":false,"context_lines":[{"line_number":9,"context_line":"When generate JUnit report, add \u003cfailure/\u003e tag to failed tast case."},{"line_number":10,"context_line":"Criterion and detail from sla is also added as type and message with failure tag."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Closes-Bug : 1470286"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: I5def62501b419317eef18045e85626db692628b1"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"ba3cc151_a075cb98","line":12,"updated":"2015-07-01 02:26:33.000000000","message":"replace to:\n    Closes-Bug: #1470286","commit_id":"e7a4e428ce3a9d5c797321846b08f2825c6b9f25"}],"rally/cli/commands/task.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"0fd6eb7faeb1197753ce99d59a898e8443d31f95","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                    outcome \u003d junit.JUnit.SUCCESS"},{"line_number":595,"context_line":"                    criterion \u003d \"\""},{"line_number":596,"context_line":"                    detail \u003d \"\""},{"line_number":597,"context_line":"                test_suite.add_test(result[\"key\"][\"name\"],"},{"line_number":598,"context_line":"                                    result[\"full_duration\"],"},{"line_number":599,"context_line":"                                    outcome\u003doutcome,"},{"line_number":600,"context_line":"                                    criterion\u003dcriterion,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_6b29ca36","line":597,"updated":"2015-07-01 14:17:30.000000000","message":"I prefer to not  increase the number of arguments. Let\u0027s transmit full \"sla\" variable to `add_test` method.","commit_id":"7dc2ba38ca7c1ca8f4ab3224b62cc84db0df1a48"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"5441687bb8a79015bfc47ee9bfbd798432fb77b1","unresolved":false,"context_lines":[{"line_number":594,"context_line":"                    outcome \u003d junit.JUnit.SUCCESS"},{"line_number":595,"context_line":"                    criterion \u003d \"\""},{"line_number":596,"context_line":"                    detail \u003d \"\""},{"line_number":597,"context_line":"                test_suite.add_test(result[\"key\"][\"name\"],"},{"line_number":598,"context_line":"                                    result[\"full_duration\"],"},{"line_number":599,"context_line":"                                    outcome\u003doutcome,"},{"line_number":600,"context_line":"                                    criterion\u003dcriterion,"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_0e027a0b","line":597,"in_reply_to":"ba3cc151_6b29ca36","updated":"2015-07-01 20:31:33.000000000","message":"+1 I would as well prefer to avoid adding these new variables","commit_id":"7dc2ba38ca7c1ca8f4ab3224b62cc84db0df1a48"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"012d8e2f548b407848582422c68315bb43b2cc75","unresolved":false,"context_lines":[{"line_number":585,"context_line":"        elif out_format \u003d\u003d \"junit\":"},{"line_number":586,"context_line":"            test_suite \u003d junit.JUnit(\"Rally test suite\")"},{"line_number":587,"context_line":"            for result in results:"},{"line_number":588,"context_line":"                if (isinstance(result[\"sla\"], list) and"},{"line_number":589,"context_line":"                   not all([sla[\"success\"] for sla in result[\"sla\"]])):"},{"line_number":590,"context_line":"                    outcome \u003d junit.JUnit.FAILURE"},{"line_number":591,"context_line":"                else:"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba3cc151_73faf444","line":588,"updated":"2015-07-02 09:29:47.000000000","message":"I prefer to move L588-592 to `add_test` method, so there will be no reasons to transmit `outcome` variable:)","commit_id":"f3a28af3890c95ee879f78aa3adf60b0c0d83182"}],"rally/common/junit.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"92be7b110a2fb47742150f84953ad98361db05d5","unresolved":false,"context_lines":[{"line_number":41,"context_line":"            for sla in sla_list:"},{"line_number":42,"context_line":"                if not sla[\"success\"]:"},{"line_number":43,"context_line":"                    self.n_failures +\u003d 1"},{"line_number":44,"context_line":"                    self.test_cases[-1].update({"},{"line_number":45,"context_line":"                        \"criterion\": sla[\"criterion\"],"},{"line_number":46,"context_line":"                        \"detail\": sla[\"detail\"]"},{"line_number":47,"context_line":"                    })"}],"source_content_type":"text/x-python","patch_set":7,"id":"ba3cc151_3553bb18","line":44,"updated":"2015-07-03 09:37:51.000000000","message":"we can have several types of \"SLA\" failed, so, it would be nice to save it all(join all criteria name by \u0027;\u0027 or \u0027,\u0027 and detail by several \u0027\\n\u0027)","commit_id":"064559d20b329d443ffe38a5e268ab62cd05650b"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"23a46a2aaca0b9f5686b10f988c8d12fc3c1349f","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        self.n_errors \u003d 0"},{"line_number":30,"context_line":"        self.total_time \u003d 0.0"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def add_test(self, test_name, time, sla_list):"},{"line_number":33,"context_line":"        class_name, name \u003d test_name.split(\".\", 1)"},{"line_number":34,"context_line":"        criterion \u003d []"},{"line_number":35,"context_line":"        detail \u003d []"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_cc5ae550","line":32,"updated":"2015-07-06 03:29:09.000000000","message":"I would prefer to keep this equal to JUNIT report, so let\u0027s have here: \n\n   def add_test(self, test_name, time, type\u003dJunit.SUCCESS, message\u003d\"\"): \n       pass","commit_id":"47490a6274ab1cf0173cf6ba5d5407be4e7db8ba"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"23a46a2aaca0b9f5686b10f988c8d12fc3c1349f","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            \"time\": str(\"%.2f\" % time),"},{"line_number":40,"context_line":"        })"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"        if isinstance(sla_list, list):"},{"line_number":43,"context_line":"            for sla in sla_list:"},{"line_number":44,"context_line":"                if not sla[\"success\"]:"},{"line_number":45,"context_line":"                    self.n_failures +\u003d 1"}],"source_content_type":"text/x-python","patch_set":10,"id":"ba3cc151_27812a4e","line":42,"updated":"2015-07-06 03:29:09.000000000","message":"In future this class can be used by \"rally verify\" command not only for rally task. So I would prefer to calculate all this stuff outside (actually where it was calculated)","commit_id":"47490a6274ab1cf0173cf6ba5d5407be4e7db8ba"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"b97299553bc6fd7007cccd09c68e9a63cd2f9e78","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import xml.etree.ElementTree as ET"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"class JUnit(object):"},{"line_number":20,"context_line":"    SUCCESS \u003d 0"},{"line_number":21,"context_line":"    FAILURE \u003d 1"},{"line_number":22,"context_line":"    ERROR \u003d 2"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba3cc151_ae4400b7","line":19,"updated":"2015-07-07 05:21:33.000000000","message":"fix these constants: \n\n  SUCCESS \u003d \"success\" \n  FAILURE \u003d \"failure\" \n  ERROR \u003d \"error\"","commit_id":"6ef647fdcbcbd6d456817020f21f1de458d0137b"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"b97299553bc6fd7007cccd09c68e9a63cd2f9e78","unresolved":false,"context_lines":[{"line_number":34,"context_line":"        self.test_cases.append({"},{"line_number":35,"context_line":"            \"classname\": class_name,"},{"line_number":36,"context_line":"            \"name\": name,"},{"line_number":37,"context_line":"            \"time\": str(\"%.2f\" % time),"},{"line_number":38,"context_line":"        })"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if outcome \u003d\u003d JUnit.FAILURE:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba3cc151_35311f0c","line":37,"updated":"2015-07-07 05:21:33.000000000","message":"let\u0027s just put here \n\n   \"outcome\": outcome, \n   \"message\": message","commit_id":"6ef647fdcbcbd6d456817020f21f1de458d0137b"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"b97299553bc6fd7007cccd09c68e9a63cd2f9e78","unresolved":false,"context_lines":[{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        if outcome \u003d\u003d JUnit.FAILURE:"},{"line_number":41,"context_line":"            self.n_failures +\u003d 1"},{"line_number":42,"context_line":"            self.test_cases[-1].update({\"message\": message})"},{"line_number":43,"context_line":"        elif outcome \u003d\u003d JUnit.ERROR:"},{"line_number":44,"context_line":"            self.n_errors +\u003d 1"},{"line_number":45,"context_line":"        elif outcome !\u003d JUnit.SUCCESS:"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba3cc151_0ee72ce5","line":42,"updated":"2015-07-07 05:21:33.000000000","message":"we will be able to remove this","commit_id":"6ef647fdcbcbd6d456817020f21f1de458d0137b"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"b97299553bc6fd7007cccd09c68e9a63cd2f9e78","unresolved":false,"context_lines":[{"line_number":57,"context_line":"            \"errors\": str(self.n_errors),"},{"line_number":58,"context_line":"        })"},{"line_number":59,"context_line":"        for test_case in self.test_cases:"},{"line_number":60,"context_line":"            if \"message\" in test_case:"},{"line_number":61,"context_line":"                failure \u003d {\"message\": test_case.pop(\"message\")}"},{"line_number":62,"context_line":"                sub \u003d ET.SubElement(xml, \"testcase\", test_case)"},{"line_number":63,"context_line":"                sub.append(ET.Element(\"failure\", failure))"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba3cc151_eecc4863","line":60,"updated":"2015-07-07 05:21:33.000000000","message":"It will be more proper to do next thing: \n\n  if outcome in [JUnit.FAILURE, JUnit.ERROR]: \n    ....","commit_id":"6ef647fdcbcbd6d456817020f21f1de458d0137b"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"b97299553bc6fd7007cccd09c68e9a63cd2f9e78","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            if \"message\" in test_case:"},{"line_number":61,"context_line":"                failure \u003d {\"message\": test_case.pop(\"message\")}"},{"line_number":62,"context_line":"                sub \u003d ET.SubElement(xml, \"testcase\", test_case)"},{"line_number":63,"context_line":"                sub.append(ET.Element(\"failure\", failure))"},{"line_number":64,"context_line":"            else:"},{"line_number":65,"context_line":"                xml.append(ET.Element(\"testcase\", test_case))"},{"line_number":66,"context_line":"        return ET.tostring(xml, encoding\u003d\"utf-8\").decode(\"utf-8\")"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba3cc151_0e83accd","line":63,"updated":"2015-07-07 05:21:33.000000000","message":"sub.append(\n  ET.Element(outcome,\n            {\"message\": test_case.pop(\"message\")})\n)","commit_id":"6ef647fdcbcbd6d456817020f21f1de458d0137b"}],"tests/unit/common/test_junit.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"5441687bb8a79015bfc47ee9bfbd798432fb77b1","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\u003ctestsuite errors\u003d\"1\" failures\u003d\"1\" name\u003d\"test\" tests\u003d\"3\" time\u003d\"58.51\"\u003e"},{"line_number":29,"context_line":"\u003ctestcase classname\u003d\"Foo\" name\u003d\"Bar\" time\u003d\"3.14\" /\u003e"},{"line_number":30,"context_line":"\u003ctestcase classname\u003d\"Foo\" name\u003d\"Baz\" time\u003d\"13.37\"\u003e"},{"line_number":31,"context_line":"\u003cfailure message\u003d\"\" type\u003d\"\" /\u003e\u003c/testcase\u003e"},{"line_number":32,"context_line":"\u003ctestcase classname\u003d\"Eggs\" name\u003d\"Spam\" time\u003d\"42.00\" /\u003e"},{"line_number":33,"context_line":"\u003c/testsuite\u003e\"\"\""},{"line_number":34,"context_line":"        self.assertEqual(expected.replace(\"\\n\", \"\"), j.to_xml())"}],"source_content_type":"text/x-python","patch_set":5,"id":"ba3cc151_8c121356","line":31,"updated":"2015-07-01 20:31:33.000000000","message":"I would like to see as well test that will check that proper message and type is passed when we have sla failures","commit_id":"7dc2ba38ca7c1ca8f4ab3224b62cc84db0df1a48"}]}
