)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"b93af11f254887865a1234419f832ada85689161","unresolved":false,"context_lines":[{"line_number":16,"context_line":""},{"line_number":17,"context_line":"The second is a formatted string in the error path for migration methods,"},{"line_number":18,"context_line":"which wants a dict mapping but is passed a string. When that happens,"},{"line_number":19,"context_line":"we explode."},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"I found these in the process of the previous patch, so decided to fix them"},{"line_number":22,"context_line":"after making that change, but these were present in the original code."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9aed3d3a_1a65ba44","line":19,"updated":"2016-02-26 01:01:54.000000000","message":"This would raise:\n\n \u003e\u003e\u003e print(\u0027foo %(bar)s\u0027 % \u0027bar\u0027) \n Traceback (most recent call last):\n   File \"\u003cstdin\u003e\", line 1, in \u003cmodule\u003e\n TypeError: format requires a mapping","commit_id":"665f4a568bb6f67a785f5ee9babce2a5371d1a09"}],"nova/cmd/manage.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"bba58b138216d1778ce362a5efe4437e02b5ee56","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            try:"},{"line_number":995,"context_line":"                found, done \u003d migration_meth(count)"},{"line_number":996,"context_line":"            except Exception:"},{"line_number":997,"context_line":"                print(\"Error attempting to run %(meth)s\" % migration_meth)"},{"line_number":998,"context_line":"                found \u003d done \u003d 0"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"            if found:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_4ddb734f","side":"PARENT","line":997,"range":{"start_line":997,"start_character":57,"end_line":997,"end_character":58},"updated":"2016-02-23 16:53:44.000000000","message":"Since presumably this one blows up - why not test this case as well?","commit_id":"16bb321f378f5de8fbbe6cadb2c7a74a230195d0"},{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"bba58b138216d1778ce362a5efe4437e02b5ee56","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            try:"},{"line_number":995,"context_line":"                found, done \u003d migration_meth(count)"},{"line_number":996,"context_line":"            except Exception:"},{"line_number":997,"context_line":"                print(\"Error attempting to run %(meth)s\" % migration_meth)"},{"line_number":998,"context_line":"                found \u003d done \u003d 0"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"            if found:"}],"source_content_type":"text/x-python","patch_set":1,"id":"bae84128_ed0b67d4","side":"PARENT","line":997,"updated":"2016-02-23 16:53:44.000000000","message":"We might want to add the translation here as well while we are at it?","commit_id":"16bb321f378f5de8fbbe6cadb2c7a74a230195d0"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"de7348ef3f47746c070c6d01cc4e6da9a945c479","unresolved":false,"context_lines":[{"line_number":994,"context_line":"            try:"},{"line_number":995,"context_line":"                found, done \u003d migration_meth(count)"},{"line_number":996,"context_line":"            except Exception:"},{"line_number":997,"context_line":"                print(\"Error attempting to run %s\" % migration_meth)"},{"line_number":998,"context_line":"                found \u003d done \u003d 0"},{"line_number":999,"context_line":""},{"line_number":1000,"context_line":"            if found:"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_78c9d358","line":997,"updated":"2016-02-23 17:15:06.000000000","message":"I guess we are still missing the translation here?","commit_id":"e86b34bbb46c785d345d09fea972a6a4727abc21"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"3635fe7915797e3d763acaf6f4f6399ace37de8b","unresolved":false,"context_lines":[{"line_number":1016,"context_line":"            max_count \u003d int(max_count)"},{"line_number":1017,"context_line":"            unlimited \u003d False"},{"line_number":1018,"context_line":"            if max_count \u003c 0:"},{"line_number":1019,"context_line":"                print(_(\u0027Must supply a positive value for max_number\u0027))"},{"line_number":1020,"context_line":"                return(1)"},{"line_number":1021,"context_line":"        else:"},{"line_number":1022,"context_line":"            unlimited \u003d True"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_ebe0652b","line":1019,"range":{"start_line":1019,"start_character":58,"end_line":1019,"end_character":68},"updated":"2016-02-23 20:47:07.000000000","message":"Should we fix this too while we\u0027re at it?","commit_id":"665f4a568bb6f67a785f5ee9babce2a5371d1a09"}],"nova/tests/unit/test_nova_manage.py":[{"author":{"_account_id":5511,"name":"Nikola Dipanov","email":"ndipanov@redhat.com","username":"ndipanov"},"change_message_id":"d487ff1c96e82a22aaaf7190dd8627326afb39cb","unresolved":false,"context_lines":[{"line_number":502,"context_line":"        fake_migration.side_effect \u003d Exception"},{"line_number":503,"context_line":"        command_cls \u003d self._fake_db_command((fake_migration,))"},{"line_number":504,"context_line":"        command \u003d command_cls()"},{"line_number":505,"context_line":"        command.online_data_migrations(None)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"class ApiDbCommandsTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_93df5868","line":505,"range":{"start_line":505,"start_character":8,"end_line":505,"end_character":44},"updated":"2016-02-23 17:25:58.000000000","message":"We may want to check the return values as well","commit_id":"e86b34bbb46c785d345d09fea972a6a4727abc21"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c273b4a621f6c481b9e2f40d709c884c43e3e8cc","unresolved":false,"context_lines":[{"line_number":502,"context_line":"        fake_migration.side_effect \u003d Exception"},{"line_number":503,"context_line":"        command_cls \u003d self._fake_db_command((fake_migration,))"},{"line_number":504,"context_line":"        command \u003d command_cls()"},{"line_number":505,"context_line":"        command.online_data_migrations(None)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"class ApiDbCommandsTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bae84128_8598afc1","line":505,"range":{"start_line":505,"start_character":8,"end_line":505,"end_character":44},"in_reply_to":"bae84128_93df5868","updated":"2016-02-23 17:43:40.000000000","message":"Which? This doesn\u0027t return anything...","commit_id":"e86b34bbb46c785d345d09fea972a6a4727abc21"},{"author":{"_account_id":1063,"name":"Ed Leafe","email":"ed@leafe.com","username":"ed-leafe"},"change_message_id":"0de83cb50337bb564269ff2db3ef5caadf04d521","unresolved":false,"context_lines":[{"line_number":502,"context_line":"        fake_migration.side_effect \u003d Exception"},{"line_number":503,"context_line":"        command_cls \u003d self._fake_db_command((fake_migration,))"},{"line_number":504,"context_line":"        command \u003d command_cls()"},{"line_number":505,"context_line":"        command.online_data_migrations(None)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"class ApiDbCommandsTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bae84128_b6d85254","line":505,"updated":"2016-02-24 15:00:56.000000000","message":"There doesn\u0027t seem to be a test here. Is the intention simply that it will run without throwing the side_effect exception? Maybe a comment to explain that, since there is no assertDoesn\u0027tRaise()?","commit_id":"665f4a568bb6f67a785f5ee9babce2a5371d1a09"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"61000ec7d464d5b6e46f1d699e577e28f3c85a00","unresolved":false,"context_lines":[{"line_number":502,"context_line":"        fake_migration.side_effect \u003d Exception"},{"line_number":503,"context_line":"        command_cls \u003d self._fake_db_command((fake_migration,))"},{"line_number":504,"context_line":"        command \u003d command_cls()"},{"line_number":505,"context_line":"        command.online_data_migrations(None)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"class ApiDbCommandsTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_9a238a05","line":505,"in_reply_to":"9aed3d3a_be03f00c","updated":"2016-02-26 01:00:28.000000000","message":"It\u0027s purely to make sure we executed the print statements. So, we just need something to raise so we\u0027ll run that code. If we explode, the test will fail, and if not, we tested what we wanted to test.","commit_id":"665f4a568bb6f67a785f5ee9babce2a5371d1a09"},{"author":{"_account_id":2750,"name":"Sean Dague","email":"sean@dague.net","username":"sdague"},"change_message_id":"13eefc96a8df1e9a0d3d12da2a612516f9f718f9","unresolved":false,"context_lines":[{"line_number":502,"context_line":"        fake_migration.side_effect \u003d Exception"},{"line_number":503,"context_line":"        command_cls \u003d self._fake_db_command((fake_migration,))"},{"line_number":504,"context_line":"        command \u003d command_cls()"},{"line_number":505,"context_line":"        command.online_data_migrations(None)"},{"line_number":506,"context_line":""},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"class ApiDbCommandsTestCase(test.NoDBTestCase):"}],"source_content_type":"text/x-python","patch_set":4,"id":"9aed3d3a_be03f00c","line":505,"in_reply_to":"bae84128_b6d85254","updated":"2016-02-25 19:27:22.000000000","message":"yeh, I feel like I need a road map about why this test verifies this code. It\u0027s not super jumping out at me.","commit_id":"665f4a568bb6f67a785f5ee9babce2a5371d1a09"}]}
