)]}'
{"watcher/hacking/checks.py":[{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    # Some files in the tree are not meant to be run from inside Neutron"},{"line_number":90,"context_line":"    # itself, so we should not complain about them not using jsonutils"},{"line_number":91,"context_line":"    json_check_skipped_patterns \u003d ["},{"line_number":92,"context_line":"        \"neutron/plugins/ml2/drivers/openvswitch/agent/xenapi/etc/xapi.d/\""},{"line_number":93,"context_line":"        \"plugins/netwrap\","},{"line_number":94,"context_line":"    ]"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_29d02053","line":92,"updated":"2016-07-25 07:14:16.000000000","message":"IMO, we should remove any references to neutron.","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":89,"context_line":"    # Some files in the tree are not meant to be run from inside Neutron"},{"line_number":90,"context_line":"    # itself, so we should not complain about them not using jsonutils"},{"line_number":91,"context_line":"    json_check_skipped_patterns \u003d ["},{"line_number":92,"context_line":"        \"neutron/plugins/ml2/drivers/openvswitch/agent/xenapi/etc/xapi.d/\""},{"line_number":93,"context_line":"        \"plugins/netwrap\","},{"line_number":94,"context_line":"    ]"},{"line_number":95,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_a85520c7","line":92,"in_reply_to":"dada55a8_29d02053","updated":"2016-07-25 11:41:22.000000000","message":"Yeah, totally.  Sorry for missing this!","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    #    assertCalledOnceWith"},{"line_number":129,"context_line":"    #    assert_has_called"},{"line_number":130,"context_line":"    #    called_once_with"},{"line_number":131,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":132,"context_line":"        if \u0027.assert_called_once_with(\u0027 in logical_line:"},{"line_number":133,"context_line":"            return"},{"line_number":134,"context_line":"        uncased_line \u003d logical_line.lower().replace(\u0027_\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_c4fe8bad","line":131,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":128,"context_line":"    #    assertCalledOnceWith"},{"line_number":129,"context_line":"    #    assert_has_called"},{"line_number":130,"context_line":"    #    called_once_with"},{"line_number":131,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":132,"context_line":"        if \u0027.assert_called_once_with(\u0027 in logical_line:"},{"line_number":133,"context_line":"            return"},{"line_number":134,"context_line":"        uncased_line \u003d logical_line.lower().replace(\u0027_\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_a86c009d","line":131,"in_reply_to":"dada55a8_c4fe8bad","updated":"2016-07-25 11:41:22.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"@flake8ext"},{"line_number":171,"context_line":"def check_asserttrue(logical_line, filename):"},{"line_number":172,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":173,"context_line":"        if re.search(r\"assertEqual\\(\\s*True,[^,]*(,[^,]*)?\\)\", logical_line):"},{"line_number":174,"context_line":"            msg \u003d (\"N328: Use assertTrue(observed) instead of \""},{"line_number":175,"context_line":"                   \"assertEqual(True, observed)\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_042f033f","line":172,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":169,"context_line":""},{"line_number":170,"context_line":"@flake8ext"},{"line_number":171,"context_line":"def check_asserttrue(logical_line, filename):"},{"line_number":172,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":173,"context_line":"        if re.search(r\"assertEqual\\(\\s*True,[^,]*(,[^,]*)?\\)\", logical_line):"},{"line_number":174,"context_line":"            msg \u003d (\"N328: Use assertTrue(observed) instead of \""},{"line_number":175,"context_line":"                   \"assertEqual(True, observed)\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_e80438c7","line":172,"in_reply_to":"dada55a8_042f033f","updated":"2016-07-25 11:41:22.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"@flake8ext"},{"line_number":184,"context_line":"def check_assertfalse(logical_line, filename):"},{"line_number":185,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":186,"context_line":"        if re.search(r\"assertEqual\\(\\s*False,[^,]*(,[^,]*)?\\)\", logical_line):"},{"line_number":187,"context_line":"            msg \u003d (\"N328: Use assertFalse(observed) instead of \""},{"line_number":188,"context_line":"                   \"assertEqual(False, observed)\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_6426bf69","line":185,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":182,"context_line":""},{"line_number":183,"context_line":"@flake8ext"},{"line_number":184,"context_line":"def check_assertfalse(logical_line, filename):"},{"line_number":185,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":186,"context_line":"        if re.search(r\"assertEqual\\(\\s*False,[^,]*(,[^,]*)?\\)\", logical_line):"},{"line_number":187,"context_line":"            msg \u003d (\"N328: Use assertFalse(observed) instead of \""},{"line_number":188,"context_line":"                   \"assertEqual(False, observed)\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_c807b4c7","line":185,"in_reply_to":"dada55a8_6426bf69","updated":"2016-07-25 11:41:22.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"@flake8ext"},{"line_number":197,"context_line":"def check_assertempty(logical_line, filename):"},{"line_number":198,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":199,"context_line":"        msg \u003d (\"N330: Use assertEqual(*empty*, observed) instead of \""},{"line_number":200,"context_line":"               \"assertEqual(observed, *empty*). *empty* contains \""},{"line_number":201,"context_line":"               \"{}, [], (), set(), \u0027\u0027, \\\"\\\"\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_a420b74a","line":198,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":195,"context_line":""},{"line_number":196,"context_line":"@flake8ext"},{"line_number":197,"context_line":"def check_assertempty(logical_line, filename):"},{"line_number":198,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":199,"context_line":"        msg \u003d (\"N330: Use assertEqual(*empty*, observed) instead of \""},{"line_number":200,"context_line":"               \"assertEqual(observed, *empty*). *empty* contains \""},{"line_number":201,"context_line":"               \"{}, [], (), set(), \u0027\u0027, \\\"\\\"\")"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_68f968c8","line":198,"in_reply_to":"dada55a8_a420b74a","updated":"2016-07-25 11:41:22.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"@flake8ext"},{"line_number":209,"context_line":"def check_assertisinstance(logical_line, filename):"},{"line_number":210,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":211,"context_line":"        if re.search(r\"assertTrue\\(\\s*isinstance\\(\\s*[^,]*,\\s*[^,]*\\)\\)\","},{"line_number":212,"context_line":"                     logical_line):"},{"line_number":213,"context_line":"            msg \u003d (\"N331: Use assertIsInstance(observed, type) instead \""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_841bf31b","line":210,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":207,"context_line":""},{"line_number":208,"context_line":"@flake8ext"},{"line_number":209,"context_line":"def check_assertisinstance(logical_line, filename):"},{"line_number":210,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":211,"context_line":"        if re.search(r\"assertTrue\\(\\s*isinstance\\(\\s*[^,]*,\\s*[^,]*\\)\\)\","},{"line_number":212,"context_line":"                     logical_line):"},{"line_number":213,"context_line":"            msg \u003d (\"N331: Use assertIsInstance(observed, type) instead \""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_48f464ce","line":210,"in_reply_to":"dada55a8_841bf31b","updated":"2016-07-25 11:41:22.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":219,"context_line":"def check_assertequal_for_httpcode(logical_line, filename):"},{"line_number":220,"context_line":"    msg \u003d (\"N332: Use assertEqual(expected_http_code, observed_http_code) \""},{"line_number":221,"context_line":"           \"instead of assertEqual(observed_http_code, expected_http_code)\")"},{"line_number":222,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":223,"context_line":"        if re.search(r\"assertEqual\\(\\s*[^,]*,[^,]*HTTP[^\\.]*\\.code\\s*\\)\","},{"line_number":224,"context_line":"                     logical_line):"},{"line_number":225,"context_line":"            yield (0, msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_c415ebe5","line":222,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":219,"context_line":"def check_assertequal_for_httpcode(logical_line, filename):"},{"line_number":220,"context_line":"    msg \u003d (\"N332: Use assertEqual(expected_http_code, observed_http_code) \""},{"line_number":221,"context_line":"           \"instead of assertEqual(observed_http_code, expected_http_code)\")"},{"line_number":222,"context_line":"    if \u0027neutron/tests/\u0027 in filename:"},{"line_number":223,"context_line":"        if re.search(r\"assertEqual\\(\\s*[^,]*,[^,]*HTTP[^\\.]*\\.code\\s*\\)\","},{"line_number":224,"context_line":"                     logical_line):"},{"line_number":225,"context_line":"            yield (0, msg)"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_a80360b7","line":222,"in_reply_to":"dada55a8_c415ebe5","updated":"2016-07-25 11:41:22.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    Okay(neutron/foo/bar.py): from neutron._i18n import _"},{"line_number":240,"context_line":"    Okay(neutron_lbaas/foo/bar.py): from neutron_lbaas._i18n import _"},{"line_number":241,"context_line":"    N340(neutron/foo/bar.py): from neutron.i18n import _"},{"line_number":242,"context_line":"    N340(neutron_lbaas/foo/bar.py): from neutron_lbaas.i18n import _"},{"line_number":243,"context_line":"    N340(neutron_lbaas/foo/bar.py): from neutron.i18n import _"},{"line_number":244,"context_line":"    N340(neutron_lbaas/foo/bar.py): from neutron._i18n import _"},{"line_number":245,"context_line":"    Okay(neutron/foo/bar.py): from neutron.i18n import _  # noqa"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_24d3273a","line":242,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":239,"context_line":"    Okay(neutron/foo/bar.py): from neutron._i18n import _"},{"line_number":240,"context_line":"    Okay(neutron_lbaas/foo/bar.py): from neutron_lbaas._i18n import _"},{"line_number":241,"context_line":"    N340(neutron/foo/bar.py): from neutron.i18n import _"},{"line_number":242,"context_line":"    N340(neutron_lbaas/foo/bar.py): from neutron_lbaas.i18n import _"},{"line_number":243,"context_line":"    N340(neutron_lbaas/foo/bar.py): from neutron.i18n import _"},{"line_number":244,"context_line":"    N340(neutron_lbaas/foo/bar.py): from neutron._i18n import _"},{"line_number":245,"context_line":"    Okay(neutron/foo/bar.py): from neutron.i18n import _  # noqa"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_a8ad208a","line":242,"in_reply_to":"dada55a8_24d3273a","updated":"2016-07-25 11:41:22.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    if (len(split_line) \u003e 1 and split_line[0] in (\u0027import\u0027, \u0027from\u0027)):"},{"line_number":256,"context_line":"        if (split_line[1] \u003d\u003d bad_i18n_module or"},{"line_number":257,"context_line":"            modulename !\u003d \u0027neutron\u0027 and split_line[1] in (\u0027neutron.i18n\u0027,"},{"line_number":258,"context_line":"                                                          \u0027neutron._i18n\u0027)):"},{"line_number":259,"context_line":"            msg \u003d (\"N340: %(found)s is found. Use %(module)s._i18n instead.\""},{"line_number":260,"context_line":"                   % {\u0027found\u0027: split_line[1], \u0027module\u0027: modulename})"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_04d6e326","line":257,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"3069e51c3514296280242137ebe5d9681aeb319c","unresolved":false,"context_lines":[{"line_number":254,"context_line":""},{"line_number":255,"context_line":"    if (len(split_line) \u003e 1 and split_line[0] in (\u0027import\u0027, \u0027from\u0027)):"},{"line_number":256,"context_line":"        if (split_line[1] \u003d\u003d bad_i18n_module or"},{"line_number":257,"context_line":"            modulename !\u003d \u0027neutron\u0027 and split_line[1] in (\u0027neutron.i18n\u0027,"},{"line_number":258,"context_line":"                                                          \u0027neutron._i18n\u0027)):"},{"line_number":259,"context_line":"            msg \u003d (\"N340: %(found)s is found. Use %(module)s._i18n instead.\""},{"line_number":260,"context_line":"                   % {\u0027found\u0027: split_line[1], \u0027module\u0027: modulename})"}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_88a81c79","line":257,"in_reply_to":"dada55a8_04d6e326","updated":"2016-07-25 11:41:22.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":16495,"name":"Jean-Emile DARTOIS","email":"jean-emile.dartois@b-com.com","username":"JeD"},"change_message_id":"b8404be13029e72917a32773b3550ae49c605f83","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    Okay(neutron/foo.py): from neutron._i18n import _\\n_(\u0027foo\u0027)"},{"line_number":269,"context_line":"    N341(neutron/foo.py): _(\u0027foo\u0027)"},{"line_number":270,"context_line":"    Okay(neutron/_i18n.py): _(\u0027foo\u0027)"},{"line_number":271,"context_line":"    Okay(neutron/i18n.py): _(\u0027foo\u0027)"},{"line_number":272,"context_line":"    Okay(neutron/foo.py): _(\u0027foo\u0027)  # noqa"},{"line_number":273,"context_line":"    \"\"\""},{"line_number":274,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_44e0dbfa","line":271,"updated":"2016-07-25 07:14:16.000000000","message":"ditto","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"},{"author":{"_account_id":8190,"name":"Drew Thorstensen (thorst)","email":"thorst@us.ibm.com","username":"thorst"},"change_message_id":"36004cb97a6bda4dd8a64e8ee4643f10998534d0","unresolved":false,"context_lines":[{"line_number":268,"context_line":"    Okay(neutron/foo.py): from neutron._i18n import _\\n_(\u0027foo\u0027)"},{"line_number":269,"context_line":"    N341(neutron/foo.py): _(\u0027foo\u0027)"},{"line_number":270,"context_line":"    Okay(neutron/_i18n.py): _(\u0027foo\u0027)"},{"line_number":271,"context_line":"    Okay(neutron/i18n.py): _(\u0027foo\u0027)"},{"line_number":272,"context_line":"    Okay(neutron/foo.py): _(\u0027foo\u0027)  # noqa"},{"line_number":273,"context_line":"    \"\"\""},{"line_number":274,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"dada55a8_4b0e1e33","line":271,"in_reply_to":"dada55a8_44e0dbfa","updated":"2016-07-25 11:52:33.000000000","message":"Done","commit_id":"10e4fd2bd9ec944331588f6e752fdf5a7275c758"}]}
