)]}'
{"rally/common/io/subunit_v2.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"21706e285d88da0dfc71c057a30eadf91b696415","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                        if self._expected_failures[id_]:"},{"line_number":98,"context_line":"                            self._tests[id_][\"reason\"] \u003d ("},{"line_number":99,"context_line":"                                self._expected_failures[id_])"},{"line_number":100,"context_line":"                    elif self._tests[id_][\"status\"] \u003d\u003d \"success\":"},{"line_number":101,"context_line":"                        self._tests[id_][\"status\"] \u003d \"uxsuccess\""},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"                if self._unknown_entities[test_id].get(\"reason\"):"},{"line_number":104,"context_line":"                    self._tests[id_][\"reason\"] \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"5a18252c_d16cd19e","line":101,"range":{"start_line":100,"start_character":20,"end_line":101,"end_character":64},"updated":"2016-04-12 13:05:04.000000000","message":"It is redundant. For successful TestCases we receive status calls for every tests.","commit_id":"59a19d90299460989b838b04ca9df2cf76f79152"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"f8e419f9c28562e069b5ea33879442a935f8662d","unresolved":false,"context_lines":[{"line_number":104,"context_line":"                elif self._unknown_entities[test_id].get(\"traceback\"):"},{"line_number":105,"context_line":"                    self._tests[id_][\"traceback\"] \u003d ("},{"line_number":106,"context_line":"                        self._unknown_entities[test_id][\"traceback\"])"},{"line_number":107,"context_line":""},{"line_number":108,"context_line":"        # decode data"},{"line_number":109,"context_line":"        for test_id in self._tests:"},{"line_number":110,"context_line":"            for file_name in [\"traceback\", \"reason\"]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_281b0f1d","line":107,"range":{"start_line":107,"start_character":0,"end_line":107,"end_character":0},"updated":"2016-04-12 14:35:54.000000000","message":"Instead of L93-L100, can we have a loop dedicated to self._expected_failures here like this? Then, we care self._expected_failures only in this loop (xfail related code in status() can be removed).\n\n    # (the same indent level as L83 and L110)\n    for id_ in self._expected_failures:\n        if self._tests[id_][\"status\"] \u003d\u003d \"fail\":\n            ...\n        elif self._tests[id_][\"status\"] \u003d\u003d \"success\":\n            ...","commit_id":"f540d96622b3a3127e12c2d7b4c76e2a4106a3e8"},{"author":{"_account_id":3068,"name":"Arata Notsu","email":"notsu@virtualtech.jp","username":"arata776"},"change_message_id":"f8e419f9c28562e069b5ea33879442a935f8662d","unresolved":false,"context_lines":[{"line_number":153,"context_line":"            elif test_status:"},{"line_number":154,"context_line":"                self._tests[test_id][\"time\"] \u003d total_seconds("},{"line_number":155,"context_line":"                    timestamp - self._timestamps[test_id])"},{"line_number":156,"context_line":"                if test_id in self._expected_failures:"},{"line_number":157,"context_line":"                    if test_status \u003d\u003d \"fail\":"},{"line_number":158,"context_line":"                        test_status \u003d \"xfail\""},{"line_number":159,"context_line":"                        if self._expected_failures[test_id]:"},{"line_number":160,"context_line":"                            self._tests[test_id][\"reason\"] \u003d ("},{"line_number":161,"context_line":"                                self._expected_failures[test_id])"},{"line_number":162,"context_line":"                    elif test_status \u003d\u003d \"success\":"},{"line_number":163,"context_line":"                        test_status \u003d \"uxsuccess\""},{"line_number":164,"context_line":"                self._tests[test_id][\"status\"] \u003d test_status"},{"line_number":165,"context_line":"            else:"},{"line_number":166,"context_line":"                if file_name in [\"traceback\", \"reason\"]:"}],"source_content_type":"text/x-python","patch_set":3,"id":"5a18252c_a8827ffe","line":163,"range":{"start_line":156,"start_character":0,"end_line":163,"end_character":49},"updated":"2016-04-12 14:35:54.000000000","message":"these lines can be removed","commit_id":"f540d96622b3a3127e12c2d7b4c76e2a4106a3e8"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"b33890020c737e4138c381a00880abaaf88c86ae","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            if self._tests.get(test_id):"},{"line_number":103,"context_line":"                if self._tests[test_id][\"status\"] \u003d\u003d \"fail\":"},{"line_number":104,"context_line":"                    self._tests[test_id][\"status\"] \u003d \"xfail\""},{"line_number":105,"context_line":"                    if self._expected_failures[test_id]:"},{"line_number":106,"context_line":"                        self._tests[test_id][\"reason\"] \u003d ("},{"line_number":107,"context_line":"                            self._expected_failures[test_id])"},{"line_number":108,"context_line":"                elif self._tests[test_id][\"status\"] \u003d\u003d \"success\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_627ee8af","line":105,"updated":"2016-04-15 11:39:28.000000000","message":"We iterate through expected_failures and then check one more time is it in expected_failures? Also I suggest to make code more compatible and simple http://ideone.com/hMiWQr","commit_id":"1002729a8c33c764adcd75b2c21866d0d697a271"},{"author":{"_account_id":7428,"name":"Yaroslav Lobankov","email":"lobankovyv@gmail.com","username":"ylobankov"},"change_message_id":"e087d8ac4f22d15f91d6d290a7df06af1c70a5d3","unresolved":false,"context_lines":[{"line_number":102,"context_line":"            if self._tests.get(test_id):"},{"line_number":103,"context_line":"                if self._tests[test_id][\"status\"] \u003d\u003d \"fail\":"},{"line_number":104,"context_line":"                    self._tests[test_id][\"status\"] \u003d \"xfail\""},{"line_number":105,"context_line":"                    if self._expected_failures[test_id]:"},{"line_number":106,"context_line":"                        self._tests[test_id][\"reason\"] \u003d ("},{"line_number":107,"context_line":"                            self._expected_failures[test_id])"},{"line_number":108,"context_line":"                elif self._tests[test_id][\"status\"] \u003d\u003d \"success\":"}],"source_content_type":"text/x-python","patch_set":6,"id":"1a122d0e_ada591b6","line":105,"in_reply_to":"1a122d0e_627ee8af","updated":"2016-04-15 11:52:49.000000000","message":"The thing is that user may not specify the reason of test failure in the file. \n\ntest1: reson1\ntest2: reson2\ntest3:\ntest4:\n\nSo we need to check whether the reason is present or not.","commit_id":"1002729a8c33c764adcd75b2c21866d0d697a271"}],"tests/unit/common/io/test_subunit_v2.py":[{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"23f3b4a58c5aa7392d89547bc90f6f164776cf81","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                         subunit_v2.SubunitV2StreamResult().total)"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":"    def test_parse_results_file_with_expected_failures(self):"},{"line_number":120,"context_line":"        xfails_file_path \u003d os.path.join("},{"line_number":121,"context_line":"            os.path.dirname(os.path.abspath(__file__)), \"xfails_file.yaml\")"},{"line_number":122,"context_line":"        with open(xfails_file_path, \"rb\") as f:"},{"line_number":123,"context_line":"            expected_failures \u003d yaml.load(f)"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":"        result \u003d subunit_v2.parse_results_file(self.fake_stream,"},{"line_number":126,"context_line":"                                               expected_failures)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1a122d0e_170478be","line":123,"range":{"start_line":120,"start_character":8,"end_line":123,"end_character":44},"updated":"2016-04-15 21:00:51.000000000","message":"Why we need separate file with test? Let\u0027s specify list of tests as a simple string.","commit_id":"8aafd9f127cd2adafd27605b2534d00efcbb9c4f"}]}
