)]}'
{"nova/tests/compute/test_compute.py":[{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"cefb3958044b40fb1e44d1e023fd915f77c63c7e","unresolved":false,"context_lines":[{"line_number":1283,"context_line":"        self.compute.terminate_instance(self.context, instance\u003dinstance)"},{"line_number":1284,"context_line":""},{"line_number":1285,"context_line":"    def test_snapshot_fails(self):"},{"line_number":1286,"context_line":"        \"\"\"Ensure task_state is set to None if snapshot fails.\"\"\""},{"line_number":1287,"context_line":"        def fake_snapshot(*args, **kwargs):"},{"line_number":1288,"context_line":"            raise test.TestingException()"},{"line_number":1289,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FVQE%3D","line":1286,"updated":"2013-01-28 18:10:26.000000000","message":"Why did you revert this change?","commit_id":"8f6a2df897fafc9a6c1346d6a9e1615131f07289"}],"nova/tests/test_xenapi.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"bc850219fdf5b242ea9901d54135f62a439ccda9","unresolved":false,"context_lines":[{"line_number":104,"context_line":"}"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"class FakeImageHandler():"},{"line_number":108,"context_line":"    def upload_image(*_args, **_kwargs):"},{"line_number":109,"context_line":"        pass"},{"line_number":110,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXLc%3D","line":107,"updated":"2013-01-25 15:27:42.000000000","message":"It seems a little heavyweight to created this fake class and then immediately stub out its only method.  Is there a reason you couldn\u0027t just stub out upload_image in nova/virt/xenapi/imageupload/glance.py?","commit_id":"ed81b836c40a34f387ab8927076ff6c54e7a2527"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f3a3039a451466519aa23acd64f0286560aecd06","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        self.fake_upload_called \u003d False"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        def fake_upload_image(*_args, **_kwargs):"},{"line_number":450,"context_line":"            self.fake_upload_called \u003d True"},{"line_number":451,"context_line":"        self.stubs.Set(FakeImageHandler, \u0027upload_image\u0027,"},{"line_number":452,"context_line":"                       fake_upload_image)"},{"line_number":453,"context_line":"        instance \u003d self._create_instance()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXDs%3D","line":450,"updated":"2013-01-25 16:49:14.000000000","message":"myself, I would check the arguments using mox.","commit_id":"ed81b836c40a34f387ab8927076ff6c54e7a2527"},{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"991f213e0f694f8b816918bb3f943ad24a7fb33f","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        self.fake_upload_called \u003d False"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        def fake_upload_image(*_args, **_kwargs):"},{"line_number":450,"context_line":"            self.fake_upload_called \u003d True"},{"line_number":451,"context_line":"        self.stubs.Set(FakeImageHandler, \u0027upload_image\u0027,"},{"line_number":452,"context_line":"                       fake_upload_image)"},{"line_number":453,"context_line":"        instance \u003d self._create_instance()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FWuQ%3D","line":450,"in_reply_to":"AAAAM3%2F%2FW8I%3D","updated":"2013-01-25 20:16:56.000000000","message":"Wouldn\u0027t you do it just like VMOps.inject_instance_metadata is done on line 335?","commit_id":"ed81b836c40a34f387ab8927076ff6c54e7a2527"},{"author":{"_account_id":177,"name":"Alex Meade","email":"mr.alex.meade@gmail.com","username":"alex-meade"},"change_message_id":"12b033561b7290d9ab8978355c7168bcb817183f","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        self.fake_upload_called \u003d False"},{"line_number":448,"context_line":""},{"line_number":449,"context_line":"        def fake_upload_image(*_args, **_kwargs):"},{"line_number":450,"context_line":"            self.fake_upload_called \u003d True"},{"line_number":451,"context_line":"        self.stubs.Set(FakeImageHandler, \u0027upload_image\u0027,"},{"line_number":452,"context_line":"                       fake_upload_image)"},{"line_number":453,"context_line":"        instance \u003d self._create_instance()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FW8I%3D","line":450,"in_reply_to":"AAAAM3%2F%2FXDs%3D","updated":"2013-01-25 18:04:47.000000000","message":"I can either keep the dependency injection and use mox to verify calls or I can stub out glance.GlanceStore.upload_image and manually validate the arguments in the fake method I create.\n\nI can\u0027t find a way to mock out a class method with mox without having an instance of the object first.","commit_id":"ed81b836c40a34f387ab8927076ff6c54e7a2527"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"b252a1707397b8caf7533d051e78ced109ee40b4","unresolved":false,"context_lines":[{"line_number":450,"context_line":"            self.assertEqual(ctx, self.context)"},{"line_number":451,"context_line":"            self.assertEqual(inst, instance)"},{"line_number":452,"context_line":"            self.assertTrue(isinstance(vdi_uuids, list))"},{"line_number":453,"context_line":"            self.assertEqual(img_id, image_id)"},{"line_number":454,"context_line":""},{"line_number":455,"context_line":"        self.stubs.Set(glance.GlanceStore, \u0027upload_image\u0027,"},{"line_number":456,"context_line":"                       fake_image_upload)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAM3%2F%2FVRE%3D","line":453,"updated":"2013-01-28 17:52:44.000000000","message":":-)","commit_id":"8f6a2df897fafc9a6c1346d6a9e1615131f07289"},{"author":{"_account_id":679,"name":"Kevin L. Mitchell","email":"klmitch@mit.edu","username":"klmitch"},"change_message_id":"1c5aad10356eeaeb72818346e7fb5964b7ae3d18","unresolved":false,"context_lines":[{"line_number":2607,"context_line":"        self.stubs.Set(db, \"instance_system_metadata_get\","},{"line_number":2608,"context_line":"                                             fake_instance_system_metadata_get)"},{"line_number":2609,"context_line":"        self.stubs.Set(vm_utils, \"get_sr_path\", fake_get_sr_path)"},{"line_number":2610,"context_line":"        self.stubs.Set(pickle, \"dumps\", fake_dumps)"},{"line_number":2611,"context_line":""},{"line_number":2612,"context_line":"        ctx \u003d context.get_admin_context()"},{"line_number":2613,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAM3%2F%2FThI%3D","side":"PARENT","line":2610,"updated":"2013-01-29 17:46:19.000000000","message":"You need to remove the import for \u0027pickle\u0027.","commit_id":"0364b173f9c2638b99619c29ada704a483626e4b"}],"nova/tests/virt/xenapi/imageupload/test_glance.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f3a3039a451466519aa23acd64f0286560aecd06","unresolved":false,"context_lines":[{"line_number":52,"context_line":""},{"line_number":53,"context_line":"        params \u003d {\u0027vdi_uuids\u0027: vdi_uuids,"},{"line_number":54,"context_line":"                  \u0027image_id\u0027: image_id,"},{"line_number":55,"context_line":"                  \u0027glance_host\u0027: mox.IgnoreArg(),"},{"line_number":56,"context_line":"                  \u0027glance_port\u0027: mox.IgnoreArg(),"},{"line_number":57,"context_line":"                  \u0027glance_use_ssl\u0027: mox.IgnoreArg(),"},{"line_number":58,"context_line":"                  \u0027sr_path\u0027: mox.IgnoreArg(),"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXGw%3D","line":55,"updated":"2013-01-25 16:49:14.000000000","message":"myself I like to check all the data flows in these kinds of test, just to make sure I didn\u0027t get something the wrong way around.","commit_id":"ed81b836c40a34f387ab8927076ff6c54e7a2527"},{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f3a3039a451466519aa23acd64f0286560aecd06","unresolved":false,"context_lines":[{"line_number":55,"context_line":"                  \u0027glance_host\u0027: mox.IgnoreArg(),"},{"line_number":56,"context_line":"                  \u0027glance_port\u0027: mox.IgnoreArg(),"},{"line_number":57,"context_line":"                  \u0027glance_use_ssl\u0027: mox.IgnoreArg(),"},{"line_number":58,"context_line":"                  \u0027sr_path\u0027: mox.IgnoreArg(),"},{"line_number":59,"context_line":"                  \u0027auth_token\u0027: \u0027foobar\u0027,"},{"line_number":60,"context_line":"                  \u0027properties\u0027: properties}"},{"line_number":61,"context_line":"        session \u003d self.mox.CreateMockAnything()"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXEI%3D","line":58,"updated":"2013-01-25 16:49:14.000000000","message":"e.g. you have control of this value in your fake, but might be worth choosing something that isn\u0027t None though.","commit_id":"ed81b836c40a34f387ab8927076ff6c54e7a2527"}],"nova/virt/xenapi/driver.py":[{"author":{"_account_id":5441,"name":"Andrew Laski","email":"andrew@lascii.com","username":"alaski"},"change_message_id":"bc850219fdf5b242ea9901d54135f62a439ccda9","unresolved":false,"context_lines":[{"line_number":123,"context_line":"class XenAPIDriver(driver.ComputeDriver):"},{"line_number":124,"context_line":"    \"\"\"A connection to XenServer or Xen Cloud Platform.\"\"\""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"    def __init__(self, virtapi, read_only\u003dFalse, image_upload_handler\u003dNone):"},{"line_number":127,"context_line":"        super(XenAPIDriver, self).__init__(virtapi)"},{"line_number":128,"context_line":""},{"line_number":129,"context_line":"        url \u003d CONF.xenapi_connection_url"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXKI%3D","line":126,"updated":"2013-01-25 15:27:42.000000000","message":"As far as I can tell, there\u0027s no way to set this outside of tests, and I think you can accomplish your goal through different means.  I would prefer that you left this off unless there\u0027s something I\u0027m overlooking.","commit_id":"ed81b836c40a34f387ab8927076ff6c54e7a2527"}],"nova/virt/xenapi/vmops.py":[{"author":{"_account_id":782,"name":"John Garbutt","email":"john@johngarbutt.com","username":"johngarbutt"},"change_message_id":"f3a3039a451466519aa23acd64f0286560aecd06","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        self.default_root_dev \u003d \u0027/dev/sda\u0027"},{"line_number":166,"context_line":"        self.image_upload_handler \u003d image_upload_handler"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"        if not self.image_upload_handler:"},{"line_number":169,"context_line":"            msg \u003d _(\"Importing image upload handler: %s\")"},{"line_number":170,"context_line":"            LOG.debug(msg % CONF.xenapi_image_upload_handler)"},{"line_number":171,"context_line":"            self.image_upload_handler \u003d importutils.import_object("}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAM3%2F%2FXE8%3D","line":168,"updated":"2013-01-25 16:49:14.000000000","message":"This looks odd. I guess it would be removed as part of Andrew\u0027s comment.","commit_id":"ed81b836c40a34f387ab8927076ff6c54e7a2527"}]}
