)]}'
{"HACKING.rst":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"afbdbae0dce4b5ddbcff8fb29c4c76071d83922e","unresolved":false,"context_lines":[{"line_number":13,"context_line":"- [M313] Use assertTrue(...) rather than assertEqual(True, ...)."},{"line_number":14,"context_line":"- [M319] Validate that debug level logs are not translated."},{"line_number":15,"context_line":"- [M323] Ensure that the _() function is explicitly imported to ensure proper translations."},{"line_number":16,"context_line":"- [M325] str() and unicode() cannot be used on an exception.  Remove use or use"},{"line_number":17,"context_line":"  six.text_type()."},{"line_number":18,"context_line":"- [M326] Translated messages cannot be concatenated.  String should be"},{"line_number":19,"context_line":"  included in translated message."},{"line_number":20,"context_line":"- [M328] LOG.critical messages require translations _LC()!"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_39732f17","line":17,"range":{"start_line":16,"start_character":62,"end_line":17,"end_character":18},"updated":"2016-05-25 12:43:56.000000000","message":"remove use or use?","commit_id":"76f994bebdc06ef7fd1394762b07976d023cbced"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"050cd5997315dbdbd99b7697c801acf8ff6b09f2","unresolved":false,"context_lines":[{"line_number":13,"context_line":"- [M313] Use assertTrue(...) rather than assertEqual(True, ...)."},{"line_number":14,"context_line":"- [M319] Validate that debug level logs are not translated."},{"line_number":15,"context_line":"- [M323] Ensure that the _() function is explicitly imported to ensure proper translations."},{"line_number":16,"context_line":"- [M325] str() and unicode() cannot be used on an exception.  Remove use or use"},{"line_number":17,"context_line":"  six.text_type()."},{"line_number":18,"context_line":"- [M326] Translated messages cannot be concatenated.  String should be"},{"line_number":19,"context_line":"  included in translated message."},{"line_number":20,"context_line":"- [M328] LOG.critical messages require translations _LC()!"}],"source_content_type":"text/x-rst","patch_set":1,"id":"bab6814e_a1b085de","line":17,"range":{"start_line":16,"start_character":62,"end_line":17,"end_character":18},"in_reply_to":"bab6814e_39732f17","updated":"2016-05-25 13:26:34.000000000","message":"Yes, that wording is awkward, I\u0027ll fix.","commit_id":"76f994bebdc06ef7fd1394762b07976d023cbced"}],"manila/tests/test_hacking.py":[{"author":{"_account_id":8851,"name":"Valeriy Ponomaryov","email":"kiparis.kh@gmail.com","username":"vponomaryov"},"change_message_id":"afbdbae0dce4b5ddbcff8fb29c4c76071d83922e","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            \"assertIsNone(None)\"))))"},{"line_number":218,"context_line":"        self.assertEqual(1, len(list(checks.validate_assertIsNone("},{"line_number":219,"context_line":"            \"assertEqual(None, %s)\" % test_value))))"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def test_str_unicode_exception(self):"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        checker \u003d checks.CheckForStrUnicodeExc"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_f9cc0763","line":220,"updated":"2016-05-25 12:43:56.000000000","message":"What is the reason in moving it to the bottom? It is not obvious what exactly was changed in test.","commit_id":"76f994bebdc06ef7fd1394762b07976d023cbced"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"050cd5997315dbdbd99b7697c801acf8ff6b09f2","unresolved":false,"context_lines":[{"line_number":217,"context_line":"            \"assertIsNone(None)\"))))"},{"line_number":218,"context_line":"        self.assertEqual(1, len(list(checks.validate_assertIsNone("},{"line_number":219,"context_line":"            \"assertEqual(None, %s)\" % test_value))))"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def test_str_unicode_exception(self):"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        checker \u003d checks.CheckForStrUnicodeExc"}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_61ddfd13","line":220,"in_reply_to":"bab6814e_f9cc0763","updated":"2016-05-25 13:26:34.000000000","message":"Good point, I will fix.","commit_id":"76f994bebdc06ef7fd1394762b07976d023cbced"},{"author":{"_account_id":9003,"name":"Tom Barron","email":"tpb@dyncloud.net","username":"tbarron"},"change_message_id":"63b8aca69d372cd4944bb3377b000c82f55be58e","unresolved":false,"context_lines":[{"line_number":218,"context_line":"        self.assertEqual(1, len(list(checks.validate_assertIsNone("},{"line_number":219,"context_line":"            \"assertEqual(None, %s)\" % test_value))))"},{"line_number":220,"context_line":""},{"line_number":221,"context_line":"    def test_str_unicode_exception(self):"},{"line_number":222,"context_line":""},{"line_number":223,"context_line":"        checker \u003d checks.CheckForStrUnicodeExc"},{"line_number":224,"context_line":"        code \u003d \"\"\""}],"source_content_type":"text/x-python","patch_set":1,"id":"bab6814e_a499b370","line":221,"updated":"2016-05-25 13:39:45.000000000","message":"Need to break this up into individual tests.","commit_id":"76f994bebdc06ef7fd1394762b07976d023cbced"}]}
