)]}'
{"test/unit/cli/test_recon.py":[{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"f4622536edb0a414f1e83557c63f1afe46299dd9","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        for line in lines:"},{"line_number":377,"context_line":"            m \u003d r.match(line)"},{"line_number":378,"context_line":"            if m:"},{"line_number":379,"context_line":"                self.assertIn(line, expected)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def test_drive_audit_check(self):"},{"line_number":382,"context_line":"        hosts \u003d [(\u0027127.0.0.1\u0027, 6010), (\u0027127.0.0.1\u0027, 6020),"}],"source_content_type":"text/x-python","patch_set":1,"id":"7af24918_91c0637e","line":379,"range":{"start_line":379,"start_character":16,"end_line":379,"end_character":45},"updated":"2016-03-02 09:47:35.000000000","message":"I think we have to add more check to make sure that all expected lines are included in output. (See test_quarantine_check)","commit_id":"5bdc561c0849f2eebbfa0659bddd765cb7210f5d"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"5a23e4ff087485a9095dd73c8449d8055fdef8ed","unresolved":false,"context_lines":[{"line_number":376,"context_line":"        for line in lines:"},{"line_number":377,"context_line":"            m \u003d r.match(line)"},{"line_number":378,"context_line":"            if m:"},{"line_number":379,"context_line":"                self.assertIn(line, expected)"},{"line_number":380,"context_line":""},{"line_number":381,"context_line":"    def test_drive_audit_check(self):"},{"line_number":382,"context_line":"        hosts \u003d [(\u0027127.0.0.1\u0027, 6010), (\u0027127.0.0.1\u0027, 6020),"}],"source_content_type":"text/x-python","patch_set":1,"id":"5aef4532_0c575f03","line":379,"range":{"start_line":379,"start_character":16,"end_line":379,"end_character":45},"in_reply_to":"7af24918_91c0637e","updated":"2016-03-07 09:03:48.000000000","message":"Done","commit_id":"5bdc561c0849f2eebbfa0659bddd765cb7210f5d"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c1e8093bdf09cac59bf4ed1f1cf2f9e2d75a4cdc","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                self.assertEqual(m.group(2),"},{"line_number":342,"context_line":"                                 \" low: %s, high: %s, avg: %s, total: %s,\""},{"line_number":343,"context_line":"                                 \" Failed: %s%%, no_result: %s, reported: %s\""},{"line_number":344,"context_line":"                                 % expected)"},{"line_number":345,"context_line":""},{"line_number":346,"context_line":"    def test_umount_check(self):"},{"line_number":347,"context_line":"        hosts \u003d [(\u0027127.0.0.1\u0027, 6010), (\u0027127.0.0.1\u0027, 6020),"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_279c760e","line":344,"updated":"2016-03-09 11:18:14.000000000","message":"no verification that we saw *any* matching line, I suggest you construct an expected lines list as in test_umount_check and assert it is empty at end of test.","commit_id":"5dd56d36a8885ee39144b47528d846e67d7adc12"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c1e8093bdf09cac59bf4ed1f1cf2f9e2d75a4cdc","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        hosts \u003d [(\u0027127.0.0.1\u0027, 6010), (\u0027127.0.0.1\u0027, 6020),"},{"line_number":348,"context_line":"                 (\u0027127.0.0.1\u0027, 6030), (\u0027127.0.0.1\u0027, 6040)]"},{"line_number":349,"context_line":"        # sample json response from http://\u003chost\u003e:\u003cport\u003e/recon/unmounted"},{"line_number":350,"context_line":"        responses \u003d {6010: [{\u0027device\u0027: \u0027sdb1\u0027, \u0027mounted\u0027: False}],"},{"line_number":351,"context_line":"                     6020: [{\u0027device\u0027: \u0027sdb2\u0027, \u0027mounted\u0027: False}],"},{"line_number":352,"context_line":"                     6030: [{\u0027device\u0027: \u0027sdb3\u0027, \u0027mounted\u0027: False}],"},{"line_number":353,"context_line":"                     6040: [{\u0027device\u0027: \u0027sdb4\u0027, \u0027mounted\u0027: False}]}"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_22bd84b7","line":350,"updated":"2016-03-09 11:18:14.000000000","message":"maybe make one of these response generate a Device Errors line by setting mounted to a non-boolean - that will get more test coverage","commit_id":"5dd56d36a8885ee39144b47528d846e67d7adc12"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"c1e8093bdf09cac59bf4ed1f1cf2f9e2d75a4cdc","unresolved":false,"context_lines":[{"line_number":378,"context_line":"            if m:"},{"line_number":379,"context_line":"                self.assertIn(line, expected)"},{"line_number":380,"context_line":"                expected.remove(line)"},{"line_number":381,"context_line":"        self.assertFalse(expected)"},{"line_number":382,"context_line":""},{"line_number":383,"context_line":"    def test_drive_audit_check(self):"},{"line_number":384,"context_line":"        hosts \u003d [(\u0027127.0.0.1\u0027, 6010), (\u0027127.0.0.1\u0027, 6020),"}],"source_content_type":"text/x-python","patch_set":2,"id":"5aef4532_c7ddd2e1","line":381,"updated":"2016-03-09 11:18:14.000000000","message":"good, verifies we did see expected lines","commit_id":"5dd56d36a8885ee39144b47528d846e67d7adc12"},{"author":{"_account_id":9816,"name":"Takashi Kajinami","email":"kajinamit@oss.nttdata.com","username":"kajinamit"},"change_message_id":"4ce61c13a2fae9e200c53657daeb831c3bb2ef5c","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                                 \" low: %s, high: %s, avg: %s, total: %s,\""},{"line_number":383,"context_line":"                                 \" Failed: %s%%, no_result: %s, reported: %s\""},{"line_number":384,"context_line":"                                 % expected)"},{"line_number":385,"context_line":"                expected \u003d ()"},{"line_number":386,"context_line":"        self.assertFalse(expected)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def test_umount_check(self):"},{"line_number":389,"context_line":"        hosts \u003d [(\u0027127.0.0.1\u0027, 6010), (\u0027127.0.0.1\u0027, 6020),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_19004c33","line":386,"range":{"start_line":385,"start_character":0,"end_line":386,"end_character":34},"updated":"2016-03-11 01:09:21.000000000","message":"(nit) How about this?\n\n\n\nfor line in lines:\n    m \u003d r.match(line)\n    if m:\n        self.assertEqual(...)\n        return\n\nself.fail(\u0027The expected line is not found\u0027)","commit_id":"72efc4d0eb8d54264b37ae3a3e535da365930046"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"569d726a63078e689a58fd452432438354a1b3c9","unresolved":false,"context_lines":[{"line_number":382,"context_line":"                                 \" low: %s, high: %s, avg: %s, total: %s,\""},{"line_number":383,"context_line":"                                 \" Failed: %s%%, no_result: %s, reported: %s\""},{"line_number":384,"context_line":"                                 % expected)"},{"line_number":385,"context_line":"                expected \u003d ()"},{"line_number":386,"context_line":"        self.assertFalse(expected)"},{"line_number":387,"context_line":""},{"line_number":388,"context_line":"    def test_umount_check(self):"},{"line_number":389,"context_line":"        hosts \u003d [(\u0027127.0.0.1\u0027, 6010), (\u0027127.0.0.1\u0027, 6020),"}],"source_content_type":"text/x-python","patch_set":3,"id":"5aef4532_8647cb4a","line":386,"range":{"start_line":385,"start_character":0,"end_line":386,"end_character":34},"in_reply_to":"5aef4532_19004c33","updated":"2016-03-11 09:36:40.000000000","message":"nice idea, or:\n\nfor line in lines:\n    m \u003d r.match(line)\n    if m:\n        self.assertEqual(...)\n        break\nelse:\n    self.fail(\u0027The expected line is not found\u0027)","commit_id":"72efc4d0eb8d54264b37ae3a3e535da365930046"}]}
