)]}'
{"novaclient/tests/unit/v2/test_migrations.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"eb49e493ead8cf9023bb7ff4245c252526a21af9","unresolved":false,"context_lines":[{"line_number":39,"context_line":"            self.assertIsInstance(m, migrations.Migration)"},{"line_number":40,"context_line":"            self.assertEqual(m.migration_type, \u0027live-migration\u0027)"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    @mock.patch(\u0027novaclient.v2.migrations.warnings\u0027)"},{"line_number":43,"context_line":"    def test_list_migrations_with_cell_name(self, mock_warnings):"},{"line_number":44,"context_line":"        ml \u003d self.cs.migrations.list(cell_name\u003d\"abc\")"},{"line_number":45,"context_line":"        self.assert_request_id(ml, fakes.FAKE_REQUEST_ID_LIST)"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f044301_d6a4abbb","line":42,"updated":"2017-05-09 21:56:46.000000000","message":"I\u0027d rather see the function mocked out, rather than the module.","commit_id":"4532a89d2697534211d0fe0d1b8668f43d246a4c"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f96966656a9a9abcd1d778a705c2709f3fbbbcf0","unresolved":false,"context_lines":[{"line_number":10,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":11,"context_line":"#    under the License."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"import mock"},{"line_number":14,"context_line":"from novaclient import api_versions"},{"line_number":15,"context_line":"from novaclient.tests.unit import utils"},{"line_number":16,"context_line":"from novaclient.tests.unit.v2 import fakes"}],"source_content_type":"text/x-python","patch_set":4,"id":"df140735_adae7e95","line":13,"updated":"2017-06-01 15:31:56.000000000","message":"\"mock\" is a third-party import and needs to be separated from the novaclient imports by a blank line.","commit_id":"2599d8e4edf7bd160ca96f1137209644d4a95478"}],"novaclient/v2/client.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"f96966656a9a9abcd1d778a705c2709f3fbbbcf0","unresolved":false,"context_lines":[{"line_number":183,"context_line":"        self.server_external_events \u003d \\"},{"line_number":184,"context_line":"            server_external_events.ServerExternalEventManager(self)"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"        if logger is None:"},{"line_number":187,"context_line":"            logger \u003d logging.getLogger(__name__)"},{"line_number":188,"context_line":"            if not logger.handlers:"},{"line_number":189,"context_line":"                logger.addHandler(logging.StreamHandler())"}],"source_content_type":"text/x-python","patch_set":4,"id":"df140735_ad879e0f","line":186,"updated":"2017-06-01 15:31:56.000000000","message":"I\u0027ll suggest \"if not logger:\" here, but that\u0027s just a suggestion.","commit_id":"2599d8e4edf7bd160ca96f1137209644d4a95478"}]}
