)]}'
{"nova/hacking/checks.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cfd67fed5da2d16c11b1b74bc7493bca087b631d","unresolved":false,"context_lines":[{"line_number":768,"context_line":"    \"\"\"Enforce use of assertTrue/assertFalse."},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"    Prevent use of assertEqual(A, True|False), assertEqual(True|False, A),"},{"line_number":771,"context_line":"    assertNotEqual(A, True|False), and assertNotEqual(True|False, A) uses."},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"    N353"},{"line_number":774,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a8bc5a2_669416e2","line":771,"updated":"2016-09-23 10:27:06.000000000","message":"nit: this last \" uses\" is redundant","commit_id":"4de2960b77bc3997c8024ac4742a5f46264c3c49"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a96820d5dff7e2daeb01893722a2cc4a0e2dec5","unresolved":false,"context_lines":[{"line_number":768,"context_line":"    \"\"\"Enforce use of assertTrue/assertFalse."},{"line_number":769,"context_line":""},{"line_number":770,"context_line":"    Prevent use of assertEqual(A, True|False), assertEqual(True|False, A),"},{"line_number":771,"context_line":"    assertNotEqual(A, True|False), and assertNotEqual(True|False, A) uses."},{"line_number":772,"context_line":""},{"line_number":773,"context_line":"    N353"},{"line_number":774,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a8bc5a2_42961d4d","line":771,"in_reply_to":"5a8bc5a2_669416e2","updated":"2016-09-23 13:06:45.000000000","message":"Done","commit_id":"4de2960b77bc3997c8024ac4742a5f46264c3c49"},{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cfd67fed5da2d16c11b1b74bc7493bca087b631d","unresolved":false,"context_lines":[{"line_number":792,"context_line":"    _re \u003d re.compile(r\u0027assert(True|False)\\(.+\\s+is\\s+(not\\s+)?.+\\)$\u0027)"},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"    if _re.search(logical_line):"},{"line_number":795,"context_line":"        yield (0, \"N353: assertTrue(A is|is not B) or \""},{"line_number":796,"context_line":"               \"assertFalse(A is|is not B) sentences must not be used. \""},{"line_number":797,"context_line":"               \"Use assertIs(A, B) or assertIsNot(A, B) instead\")"},{"line_number":798,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a8bc5a2_29149f42","line":795,"updated":"2016-09-23 10:27:06.000000000","message":"354?","commit_id":"4de2960b77bc3997c8024ac4742a5f46264c3c49"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a96820d5dff7e2daeb01893722a2cc4a0e2dec5","unresolved":false,"context_lines":[{"line_number":792,"context_line":"    _re \u003d re.compile(r\u0027assert(True|False)\\(.+\\s+is\\s+(not\\s+)?.+\\)$\u0027)"},{"line_number":793,"context_line":""},{"line_number":794,"context_line":"    if _re.search(logical_line):"},{"line_number":795,"context_line":"        yield (0, \"N353: assertTrue(A is|is not B) or \""},{"line_number":796,"context_line":"               \"assertFalse(A is|is not B) sentences must not be used. \""},{"line_number":797,"context_line":"               \"Use assertIs(A, B) or assertIsNot(A, B) instead\")"},{"line_number":798,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5a8bc5a2_82a025a1","line":795,"in_reply_to":"5a8bc5a2_29149f42","updated":"2016-09-23 13:06:45.000000000","message":"Done","commit_id":"4de2960b77bc3997c8024ac4742a5f46264c3c49"},{"author":{"_account_id":17973,"name":"Ludovic Beliveau","email":"lbeliveau@gmail.com","username":"lbeliveau"},"change_message_id":"860089f62e36a6312567b06a02a30474967b92ea","unresolved":false,"context_lines":[{"line_number":773,"context_line":"    N353"},{"line_number":774,"context_line":"    \"\"\""},{"line_number":775,"context_line":"    _start_re \u003d re.compile(r\u0027assert(Not)?Equal\\((True|False),\u0027)"},{"line_number":776,"context_line":"    _end_re \u003d re.compile(r\u0027assert(Not)?Equal\\(.*,\\s+(True|False)\\)$\u0027)"},{"line_number":777,"context_line":""},{"line_number":778,"context_line":"    if _start_re.search(logical_line) or _end_re.search(logical_line):"},{"line_number":779,"context_line":"        yield (0, \"N353: assertEqual(A, True|False), \""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a8bc5a2_404c5542","line":776,"updated":"2016-09-23 13:37:39.000000000","message":"Can you combine both regular expressions into one using nested OR statements ?\n\nSomething like (((True|False),)|(.*,\\s+(True|False))).\n\nI haven\u0027t tried it myself ...","commit_id":"3eaae0f1527f93ada96056acf6624ce000656753"}],"nova/tests/unit/test_hacking.py":[{"author":{"_account_id":11564,"name":"Chris Dent","email":"cdent@anticdent.org","username":"chdent"},"change_message_id":"cfd67fed5da2d16c11b1b74bc7493bca087b631d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5a8bc5a2_a9742f9c","updated":"2016-09-23 10:27:06.000000000","message":"Presumably one of these should be 354?","commit_id":"4de2960b77bc3997c8024ac4742a5f46264c3c49"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"7a96820d5dff7e2daeb01893722a2cc4a0e2dec5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5a8bc5a2_e2b9e9cc","in_reply_to":"5a8bc5a2_a9742f9c","updated":"2016-09-23 13:06:45.000000000","message":"Done","commit_id":"4de2960b77bc3997c8024ac4742a5f46264c3c49"}]}
