)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0181043cb000554eb196467bb9ef8182b70760cd","unresolved":false,"context_lines":[{"line_number":7,"context_line":"PowerVM resize and migrate test cases"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch introduces more test cases for resize/migrate functionality"},{"line_number":10,"context_line":"for the PowerVM driver and addresses Bug #1133058."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I9b46f092ebaab630fe80e0306ea32bda5a4c1d2f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAOn%2F%2F%2FY0%3D","line":10,"updated":"2013-04-08 23:29:35.000000000","message":"Personal opinion here - passive text like you have here is really odd to read in a commit log. Think about what you want \u0027git log\u0027 to show.\n\ne.g.\n\n\"\"\"PowerVM resize and migrate test cases.\n\nResize and migrate functionality for the PowerVM driver was landed without tests. Fixes bug #1133058.\n\"\"\"","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de798958bb436ad0f43f3db3f67796edceecd9a6","unresolved":false,"context_lines":[{"line_number":7,"context_line":"PowerVM resize and migrate test cases"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch introduces more test cases for resize/migrate functionality"},{"line_number":10,"context_line":"for the PowerVM driver and addresses Bug #1133058."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: I9b46f092ebaab630fe80e0306ea32bda5a4c1d2f"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"AAAAPn%2F%2Fq%2BU%3D","line":10,"in_reply_to":"AAAAOn%2F%2F%2FY0%3D","updated":"2013-06-25 15:33:05.000000000","message":"Done","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"}],"nova/tests/test_powervm.py":[{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0181043cb000554eb196467bb9ef8182b70760cd","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        def fake_deploy_from_migrated_file(lpar_obj, root_disk,"},{"line_number":432,"context_line":"                disk_size_bytes, *args, **kwargs):"},{"line_number":433,"context_line":"            exp_disk_size_bytes \u003d 21474836480"},{"line_number":434,"context_line":"            self.assertEqual(exp_disk_size_bytes, disk_size_bytes)"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.stubs.Set(self.powervm_connection._powervm,"},{"line_number":437,"context_line":"                            \u0027_create_lpar_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F%2FXQ%3D","line":434,"updated":"2013-04-08 23:29:35.000000000","message":"This would be simpler as a mock. The test as a whole is quite long to demonstrate one specific case; if you can make it shorter and clearer that would be really useful. Happy to offer specific suggestions for achieving that.","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de798958bb436ad0f43f3db3f67796edceecd9a6","unresolved":false,"context_lines":[{"line_number":431,"context_line":"        def fake_deploy_from_migrated_file(lpar_obj, root_disk,"},{"line_number":432,"context_line":"                disk_size_bytes, *args, **kwargs):"},{"line_number":433,"context_line":"            exp_disk_size_bytes \u003d 21474836480"},{"line_number":434,"context_line":"            self.assertEqual(exp_disk_size_bytes, disk_size_bytes)"},{"line_number":435,"context_line":""},{"line_number":436,"context_line":"        self.stubs.Set(self.powervm_connection._powervm,"},{"line_number":437,"context_line":"                            \u0027_create_lpar_instance\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fq%2BA%3D","line":434,"in_reply_to":"AAAAOn%2F%2F%2FXQ%3D","updated":"2013-06-25 15:33:05.000000000","message":"I\u0027m working on cleaning this up but I\u0027m not using mox to do it. Changes to come.","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d7c23f4ab93d97b048e9fc1afaf70428e7947130","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                       \u0027deploy_from_migrated_file\u0027,"},{"line_number":443,"context_line":"                       fake_deploy_from_migrated_file)"},{"line_number":444,"context_line":"        self.powervm_connection.finish_migration(context, migration, instance,"},{"line_number":445,"context_line":"                        disk_info, network_info, image_meta, resize_instance)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def test_check_host_resources_insufficient_memory(self):"},{"line_number":448,"context_line":"        instance \u003d self.instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOX%2F%2F7eA%3D","line":445,"updated":"2013-04-12 15:44:47.000000000","message":"I could replace this function in driver with\n\n  lambda *a: None\n\nand this test would pass. Can you use mox to verify that the methods are being called (with reasonable arguments) or at least verify that the stubs you\u0027re making are getting called with reasonable input and output?","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"4302e69614e5601b53b4d6aba9867c40b29a1e8a","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                       \u0027deploy_from_migrated_file\u0027,"},{"line_number":443,"context_line":"                       fake_deploy_from_migrated_file)"},{"line_number":444,"context_line":"        self.powervm_connection.finish_migration(context, migration, instance,"},{"line_number":445,"context_line":"                        disk_info, network_info, image_meta, resize_instance)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def test_check_host_resources_insufficient_memory(self):"},{"line_number":448,"context_line":"        instance \u003d self.instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOX%2F%2F6c8%3D","line":445,"updated":"2013-04-07 06:45:48.000000000","message":"Shouldn\u0027t there be some checks here to make sure things happened correctly?","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":5046,"name":"Lance Bragstad","email":"lbragstad@redhat.com","username":"ldbragst"},"change_message_id":"0f8157ff01d470efbe63933aa8640f022f815382","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                       \u0027deploy_from_migrated_file\u0027,"},{"line_number":443,"context_line":"                       fake_deploy_from_migrated_file)"},{"line_number":444,"context_line":"        self.powervm_connection.finish_migration(context, migration, instance,"},{"line_number":445,"context_line":"                        disk_info, network_info, image_meta, resize_instance)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def test_check_host_resources_insufficient_memory(self):"},{"line_number":448,"context_line":"        instance \u003d self.instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOX%2F%2F5fY%3D","line":445,"in_reply_to":"AAAAOX%2F%2F6c8%3D","updated":"2013-04-08 16:43:35.000000000","message":"Hey Michael, here I am using the \u0027deploy_from_migrated_file\u0027 method and stubbing it out as a hook to check the value of disk_size_bytes which has some logic performed on it.","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de798958bb436ad0f43f3db3f67796edceecd9a6","unresolved":false,"context_lines":[{"line_number":442,"context_line":"                       \u0027deploy_from_migrated_file\u0027,"},{"line_number":443,"context_line":"                       fake_deploy_from_migrated_file)"},{"line_number":444,"context_line":"        self.powervm_connection.finish_migration(context, migration, instance,"},{"line_number":445,"context_line":"                        disk_info, network_info, image_meta, resize_instance)"},{"line_number":446,"context_line":""},{"line_number":447,"context_line":"    def test_check_host_resources_insufficient_memory(self):"},{"line_number":448,"context_line":"        instance \u003d self.instance"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fq98%3D","line":445,"in_reply_to":"AAAAOX%2F%2F7eA%3D","updated":"2013-06-25 15:33:05.000000000","message":"I\u0027m working on adding more assertions to the tests especially around asserting what gets into the stubbed methods and that they are actually used.","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":4190,"name":"lifeless","email":"robertc@robertcollins.net","username":"lifeless"},"change_message_id":"0181043cb000554eb196467bb9ef8182b70760cd","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                                                  instance,"},{"line_number":504,"context_line":"                                                  network_info)"},{"line_number":505,"context_line":"        # Make sure the resized LPAR still exists"},{"line_number":506,"context_line":"        self.assertTrue(self.powervm_connection.instance_exists(name))"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    def test_get_host_stats(self):"},{"line_number":509,"context_line":"        host_stats \u003d self.powervm_connection.get_host_stats(True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOn%2F%2F%2FXE%3D","line":506,"updated":"2013-04-08 23:29:35.000000000","message":"Note that assertTrue does *not* check for \u0027True\u0027, it checks for truthy, which is entirely different. You might prefer assertEqual(True, ...)","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"d7c23f4ab93d97b048e9fc1afaf70428e7947130","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                                                  instance,"},{"line_number":504,"context_line":"                                                  network_info)"},{"line_number":505,"context_line":"        # Make sure the resized LPAR still exists"},{"line_number":506,"context_line":"        self.assertTrue(self.powervm_connection.instance_exists(name))"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    def test_get_host_stats(self):"},{"line_number":509,"context_line":"        host_stats \u003d self.powervm_connection.get_host_stats(True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAOX%2F%2F7d8%3D","line":506,"updated":"2013-04-12 15:44:47.000000000","message":"Same argument here. Replacing the function being tested with a no-op doesn\u0027t change the result of this test.","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"de798958bb436ad0f43f3db3f67796edceecd9a6","unresolved":false,"context_lines":[{"line_number":503,"context_line":"                                                  instance,"},{"line_number":504,"context_line":"                                                  network_info)"},{"line_number":505,"context_line":"        # Make sure the resized LPAR still exists"},{"line_number":506,"context_line":"        self.assertTrue(self.powervm_connection.instance_exists(name))"},{"line_number":507,"context_line":""},{"line_number":508,"context_line":"    def test_get_host_stats(self):"},{"line_number":509,"context_line":"        host_stats \u003d self.powervm_connection.get_host_stats(True)"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAPn%2F%2Fq8Y%3D","line":506,"in_reply_to":"AAAAOX%2F%2F7d8%3D","updated":"2013-06-25 15:33:05.000000000","message":"Working on cleaning this up.  I did realize that this check is busted anyway because we stub out the get_lpar method on line 54 where we create a fake lpar because we can\u0027t go to the backing IVM (it uses an ssh to another box in the live code). So this test would always return True b/c we\u0027re always returning a fake lpar.","commit_id":"cdd177f9a31b7d2c3aba5da9388649c278f70648"}],"nova/tests/virt/powervm/test_powervm.py":[{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"ab9d4c8df9b3e00839517b0dca13a9b9bdbd819f","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def fake_create_lpar_instance(self, instance, network_info,"},{"line_number":201,"context_line":"                                  host_stats\u003dNone):"},{"line_number":202,"context_line":"        \"\"\"Stub for the _create_lpar_instance method. This stub assumes"},{"line_number":203,"context_line":"        that \u0027instance\u0027 is the one created in the test case setUp method"},{"line_number":204,"context_line":"        and \u0027network_info\u0027 is equal to self.fake_network_info."},{"line_number":205,"context_line":"        @return: fake LPAR based on instance parameter where the name of the"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FcFo%3D","line":202,"updated":"2013-07-01 22:19:26.000000000","message":"There should be a blank line after the first sentence. i.e. the rest should be in a different paragraph inside the doc comment.","commit_id":"f5ffb98ce1f93f95e6626fa22149a8dc313d1ef5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76b89a60a7e00a692a12439e89ce08ef1505296d","unresolved":false,"context_lines":[{"line_number":199,"context_line":""},{"line_number":200,"context_line":"    def fake_create_lpar_instance(self, instance, network_info,"},{"line_number":201,"context_line":"                                  host_stats\u003dNone):"},{"line_number":202,"context_line":"        \"\"\"Stub for the _create_lpar_instance method. This stub assumes"},{"line_number":203,"context_line":"        that \u0027instance\u0027 is the one created in the test case setUp method"},{"line_number":204,"context_line":"        and \u0027network_info\u0027 is equal to self.fake_network_info."},{"line_number":205,"context_line":"        @return: fake LPAR based on instance parameter where the name of the"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2Faro%3D","line":202,"in_reply_to":"AAAAPn%2F%2FcFo%3D","updated":"2013-07-02 12:48:16.000000000","message":"Done","commit_id":"f5ffb98ce1f93f95e6626fa22149a8dc313d1ef5"},{"author":{"_account_id":2271,"name":"Michael Still","email":"mikal@stillhq.com","username":"mikalstill"},"change_message_id":"ab9d4c8df9b3e00839517b0dca13a9b9bdbd819f","unresolved":false,"context_lines":[{"line_number":616,"context_line":"        \"\"\""},{"line_number":617,"context_line":"        Tests that the finish_migration method will raise an exception"},{"line_number":618,"context_line":"        if the \u0027root_disk_file\u0027 key is not found in the disk_info parameter."},{"line_number":619,"context_line":"        \"\"\""},{"line_number":620,"context_line":"        self.stubs.Set(self.powervm_connection._powervm,"},{"line_number":621,"context_line":"                       \u0027_create_lpar_instance\u0027, self.fake_create_lpar_instance)"},{"line_number":622,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2FcFg%3D","line":619,"updated":"2013-07-01 22:19:26.000000000","message":"Please don\u0027t use doc comments for tests... In our test runner this masks the name of the failing test which makes it much harder to find. Instead use a block comment for these please.","commit_id":"f5ffb98ce1f93f95e6626fa22149a8dc313d1ef5"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"76b89a60a7e00a692a12439e89ce08ef1505296d","unresolved":false,"context_lines":[{"line_number":616,"context_line":"        \"\"\""},{"line_number":617,"context_line":"        Tests that the finish_migration method will raise an exception"},{"line_number":618,"context_line":"        if the \u0027root_disk_file\u0027 key is not found in the disk_info parameter."},{"line_number":619,"context_line":"        \"\"\""},{"line_number":620,"context_line":"        self.stubs.Set(self.powervm_connection._powervm,"},{"line_number":621,"context_line":"                       \u0027_create_lpar_instance\u0027, self.fake_create_lpar_instance)"},{"line_number":622,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAAPn%2F%2Fark%3D","line":619,"in_reply_to":"AAAAPn%2F%2FcFg%3D","updated":"2013-07-02 12:48:16.000000000","message":"Done","commit_id":"f5ffb98ce1f93f95e6626fa22149a8dc313d1ef5"}]}
