)]}'
{"nova/tests/unit/virt/xenapi/test_xenapi.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5c58537b121dd94ad340022593f879a943eb2fc","unresolved":false,"context_lines":[{"line_number":2413,"context_line":""},{"line_number":2414,"context_line":"    @stub_vm_utils_with_vdi_attached"},{"line_number":2415,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2416,"context_line":"                       retrun_value\u003d[(1, 0, 100, \u0027ext4\u0027, \"\", \"\"),"},{"line_number":2417,"context_line":"                                    (2, 100, 200, \u0027ext4\u0027 \"\", \"\")])"},{"line_number":2418,"context_line":"    def test_instance_auto_disk_config_fails_safe_two_partitions("},{"line_number":2419,"context_line":"            self, mock_get_partitions):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_0176d73f","line":2416,"range":{"start_line":2416,"start_character":23,"end_line":2416,"end_character":29},"updated":"2018-04-27 13:20:47.000000000","message":"return_value\n\nWhich means you didn\u0027t need to specify a return value at all.  Which means this test is probably not doing what is expected.  If you wouldn\u0027t mind, in addition to fixing the typo, please add a TODO to get to the bottom of that.","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"08a699605f683ffc2abf8bd1ca3557754a5859b3","unresolved":false,"context_lines":[{"line_number":2413,"context_line":""},{"line_number":2414,"context_line":"    @stub_vm_utils_with_vdi_attached"},{"line_number":2415,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2416,"context_line":"                       retrun_value\u003d[(1, 0, 100, \u0027ext4\u0027, \"\", \"\"),"},{"line_number":2417,"context_line":"                                    (2, 100, 200, \u0027ext4\u0027 \"\", \"\")])"},{"line_number":2418,"context_line":"    def test_instance_auto_disk_config_fails_safe_two_partitions("},{"line_number":2419,"context_line":"            self, mock_get_partitions):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_7c0dc833","line":2416,"range":{"start_line":2416,"start_character":23,"end_line":2416,"end_character":29},"in_reply_to":"9f6a8fd7_0176d73f","updated":"2018-05-01 05:26:13.000000000","message":"Done.\n\nIf a return value is not specified, len(partitions) is 0 and CannotResizeDisk is raised.\n\nhttps://github.com/openstack/nova/blob/644ac5ec37903b0a08891cc403c8b3b63fc2a91c/nova/virt/xenapi/vm_utils.py#L946-L950\n\nThe following test cases are cases that CannotResizeDisk is raised. The tests were successful by chance.\n\n* test_instance_auto_disk_config_fails_safe_two_partitions\n* test_instance_auto_disk_config_fails_safe_badly_numbered\n* test_instance_auto_disk_config_fails_safe_bad_fstype\n\nIt is worth specifying return value.","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7af09c75b40d818723ead1461adcf798e7d1db78","unresolved":false,"context_lines":[{"line_number":2413,"context_line":""},{"line_number":2414,"context_line":"    @stub_vm_utils_with_vdi_attached"},{"line_number":2415,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2416,"context_line":"                       retrun_value\u003d[(1, 0, 100, \u0027ext4\u0027, \"\", \"\"),"},{"line_number":2417,"context_line":"                                    (2, 100, 200, \u0027ext4\u0027 \"\", \"\")])"},{"line_number":2418,"context_line":"    def test_instance_auto_disk_config_fails_safe_two_partitions("},{"line_number":2419,"context_line":"            self, mock_get_partitions):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_77d15e57","line":2416,"range":{"start_line":2416,"start_character":23,"end_line":2416,"end_character":29},"in_reply_to":"9f6a8fd7_7c0dc833","updated":"2018-05-01 13:52:42.000000000","message":"\u003e If a return value is not specified, len(partitions) is 0 and\n \u003e CannotResizeDisk is raised.\n\nNo, it\u0027s not, because https://github.com/openstack/nova/blob/644ac5ec37903b0a08891cc403c8b3b63fc2a91c/nova/virt/xenapi/vm_utils.py#L966 traps that exception and logs a warning, essentially ignoring the condition.  (If that exception were actually raised, this test would have failed before.)  The assertion succeeds because it\u0027s just checking that _resize_part_and_fs isn\u0027t called - which it isn\u0027t, since that method shorts out.\n\nI hate to have unit tests scraping log messages to ensure the correct path is taken, but in this case that would be the only way to do it.  So never mind; what you\u0027ve got is fine.  (In any case you wouldn\u0027t want to fix it in this patch.)","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5c58537b121dd94ad340022593f879a943eb2fc","unresolved":false,"context_lines":[{"line_number":2424,"context_line":""},{"line_number":2425,"context_line":"    @stub_vm_utils_with_vdi_attached"},{"line_number":2426,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2427,"context_line":"                       retrun_value\u003d[(2, 100, 200, \u0027ext4\u0027, \"\", \"\")])"},{"line_number":2428,"context_line":"    def test_instance_auto_disk_config_fails_safe_badly_numbered("},{"line_number":2429,"context_line":"            self, mock_get_partitions):"},{"line_number":2430,"context_line":"        # Should not partition unless fail safes pass."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_c18d3f2b","line":2427,"range":{"start_line":2427,"start_character":23,"end_line":2427,"end_character":29},"updated":"2018-04-27 13:20:47.000000000","message":"ditto","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"08a699605f683ffc2abf8bd1ca3557754a5859b3","unresolved":false,"context_lines":[{"line_number":2424,"context_line":""},{"line_number":2425,"context_line":"    @stub_vm_utils_with_vdi_attached"},{"line_number":2426,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2427,"context_line":"                       retrun_value\u003d[(2, 100, 200, \u0027ext4\u0027, \"\", \"\")])"},{"line_number":2428,"context_line":"    def test_instance_auto_disk_config_fails_safe_badly_numbered("},{"line_number":2429,"context_line":"            self, mock_get_partitions):"},{"line_number":2430,"context_line":"        # Should not partition unless fail safes pass."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_218dedd2","line":2427,"range":{"start_line":2427,"start_character":23,"end_line":2427,"end_character":29},"in_reply_to":"9f6a8fd7_c18d3f2b","updated":"2018-05-01 05:26:13.000000000","message":"Done","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5c58537b121dd94ad340022593f879a943eb2fc","unresolved":false,"context_lines":[{"line_number":2433,"context_line":""},{"line_number":2434,"context_line":"    @stub_vm_utils_with_vdi_attached"},{"line_number":2435,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2436,"context_line":"                       retrun_value\u003d[(1, 100, 200, \u0027asdf\u0027, \"\", \"\")])"},{"line_number":2437,"context_line":"    def test_instance_auto_disk_config_fails_safe_bad_fstype("},{"line_number":2438,"context_line":"            self, mock_get_partitions):"},{"line_number":2439,"context_line":"        # Should not partition unless fail safes pass."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_e192c34b","line":2436,"range":{"start_line":2436,"start_character":23,"end_line":2436,"end_character":29},"updated":"2018-04-27 13:20:47.000000000","message":"ditto","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"08a699605f683ffc2abf8bd1ca3557754a5859b3","unresolved":false,"context_lines":[{"line_number":2433,"context_line":""},{"line_number":2434,"context_line":"    @stub_vm_utils_with_vdi_attached"},{"line_number":2435,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2436,"context_line":"                       retrun_value\u003d[(1, 100, 200, \u0027asdf\u0027, \"\", \"\")])"},{"line_number":2437,"context_line":"    def test_instance_auto_disk_config_fails_safe_bad_fstype("},{"line_number":2438,"context_line":"            self, mock_get_partitions):"},{"line_number":2439,"context_line":"        # Should not partition unless fail safes pass."}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_019229f7","line":2436,"range":{"start_line":2436,"start_character":23,"end_line":2436,"end_character":29},"in_reply_to":"9f6a8fd7_e192c34b","updated":"2018-05-01 05:26:13.000000000","message":"Done","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5c58537b121dd94ad340022593f879a943eb2fc","unresolved":false,"context_lines":[{"line_number":2505,"context_line":"        if disk_image_type \u003d\u003d vm_utils.ImageType.DISK_ISO:"},{"line_number":2506,"context_line":"            vdi_key \u003d \u0027iso\u0027"},{"line_number":2507,"context_line":"        vdis \u003d {vdi_key: {\u0027uuid\u0027: vdi_uuid, \u0027ref\u0027: vdi_ref}}"},{"line_number":2508,"context_line":"        # self.called \u003d False"},{"line_number":2509,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict("},{"line_number":2510,"context_line":"            {\u0027id\u0027: uuids.image_id,"},{"line_number":2511,"context_line":"             \u0027disk_format\u0027: \u0027vhd\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_c1b69fdd","line":2508,"range":{"start_line":2508,"start_character":8,"end_line":2508,"end_character":29},"updated":"2018-04-27 13:20:47.000000000","message":"This isn\u0027t good.","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"08a699605f683ffc2abf8bd1ca3557754a5859b3","unresolved":false,"context_lines":[{"line_number":2505,"context_line":"        if disk_image_type \u003d\u003d vm_utils.ImageType.DISK_ISO:"},{"line_number":2506,"context_line":"            vdi_key \u003d \u0027iso\u0027"},{"line_number":2507,"context_line":"        vdis \u003d {vdi_key: {\u0027uuid\u0027: vdi_uuid, \u0027ref\u0027: vdi_ref}}"},{"line_number":2508,"context_line":"        # self.called \u003d False"},{"line_number":2509,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict("},{"line_number":2510,"context_line":"            {\u0027id\u0027: uuids.image_id,"},{"line_number":2511,"context_line":"             \u0027disk_format\u0027: \u0027vhd\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_dc2734b6","line":2508,"range":{"start_line":2508,"start_character":8,"end_line":2508,"end_character":29},"in_reply_to":"9f6a8fd7_c1b69fdd","updated":"2018-05-01 05:26:13.000000000","message":"Done","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5c58537b121dd94ad340022593f879a943eb2fc","unresolved":false,"context_lines":[{"line_number":2513,"context_line":"        self.conn._vmops._attach_disks(self.context, instance, image_meta,"},{"line_number":2514,"context_line":"                    vm_ref, instance[\u0027name\u0027], vdis, disk_image_type,"},{"line_number":2515,"context_line":"                    \"fake_nw_inf\")"},{"line_number":2516,"context_line":"        # self.assertTrue(self.called)"},{"line_number":2517,"context_line":""},{"line_number":2518,"context_line":"    @mock.patch.object(vm_utils, \u0027generate_swap\u0027)"},{"line_number":2519,"context_line":"    def test_generate_swap(self, mock_generate_swap):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_e1bba3c1","line":2516,"range":{"start_line":2516,"start_character":8,"end_line":2516,"end_character":38},"updated":"2018-04-27 13:20:47.000000000","message":"ditto.","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"08a699605f683ffc2abf8bd1ca3557754a5859b3","unresolved":false,"context_lines":[{"line_number":2513,"context_line":"        self.conn._vmops._attach_disks(self.context, instance, image_meta,"},{"line_number":2514,"context_line":"                    vm_ref, instance[\u0027name\u0027], vdis, disk_image_type,"},{"line_number":2515,"context_line":"                    \"fake_nw_inf\")"},{"line_number":2516,"context_line":"        # self.assertTrue(self.called)"},{"line_number":2517,"context_line":""},{"line_number":2518,"context_line":"    @mock.patch.object(vm_utils, \u0027generate_swap\u0027)"},{"line_number":2519,"context_line":"    def test_generate_swap(self, mock_generate_swap):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_fc2a387c","line":2516,"range":{"start_line":2516,"start_character":8,"end_line":2516,"end_character":38},"in_reply_to":"9f6a8fd7_e1bba3c1","updated":"2018-05-01 05:26:13.000000000","message":"Done","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5c58537b121dd94ad340022593f879a943eb2fc","unresolved":false,"context_lines":[{"line_number":2615,"context_line":"                           bw_in\u003d231337,"},{"line_number":2616,"context_line":"                           bw_out\u003d221212121), result)"},{"line_number":2617,"context_line":""},{"line_number":2618,"context_line":"    @mock.patch.object(vm_utils, \u0027fetch_bandwidth\u0027, return_value\u003d{})"},{"line_number":2619,"context_line":"    def test_get_all_bw_counters_in_failure_case("},{"line_number":2620,"context_line":"            self, mock_fetch_bandwidth):"},{"line_number":2621,"context_line":"        \"\"\"Test that get_all_bw_conters returns an empty list when"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_a1ea8ba9","line":2618,"updated":"2018-04-27 13:20:47.000000000","message":"(optional) add new\u003dmock.Mock() and nix the extra param","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"08a699605f683ffc2abf8bd1ca3557754a5859b3","unresolved":false,"context_lines":[{"line_number":2615,"context_line":"                           bw_in\u003d231337,"},{"line_number":2616,"context_line":"                           bw_out\u003d221212121), result)"},{"line_number":2617,"context_line":""},{"line_number":2618,"context_line":"    @mock.patch.object(vm_utils, \u0027fetch_bandwidth\u0027, return_value\u003d{})"},{"line_number":2619,"context_line":"    def test_get_all_bw_counters_in_failure_case("},{"line_number":2620,"context_line":"            self, mock_fetch_bandwidth):"},{"line_number":2621,"context_line":"        \"\"\"Test that get_all_bw_conters returns an empty list when"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_217badbe","line":2618,"in_reply_to":"9f6a8fd7_a1ea8ba9","updated":"2018-05-01 05:26:13.000000000","message":"Done","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"a5c58537b121dd94ad340022593f879a943eb2fc","unresolved":false,"context_lines":[{"line_number":3208,"context_line":""},{"line_number":3209,"context_line":"    @mock.patch(\u0027nova.virt.xenapi.driver.XenAPIDriver.add_to_aggregate\u0027,"},{"line_number":3210,"context_line":"                side_effect\u003dexception.AggregateError("},{"line_number":3211,"context_line":"                    aggregate_id\u003d\u0027\u0027, action\u003d\u0027\u0027, reason\u003d\u0027\u0027))"},{"line_number":3212,"context_line":"    @mock.patch(\u0027nova.compute.utils.notify_about_aggregate_action\u0027)"},{"line_number":3213,"context_line":"    def test_add_aggregate_host_raise_err("},{"line_number":3214,"context_line":"            self, mock_notify, mock_add_to_aggregate):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_61f55383","line":3211,"updated":"2018-04-27 13:20:47.000000000","message":"ditto","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"08a699605f683ffc2abf8bd1ca3557754a5859b3","unresolved":false,"context_lines":[{"line_number":3208,"context_line":""},{"line_number":3209,"context_line":"    @mock.patch(\u0027nova.virt.xenapi.driver.XenAPIDriver.add_to_aggregate\u0027,"},{"line_number":3210,"context_line":"                side_effect\u003dexception.AggregateError("},{"line_number":3211,"context_line":"                    aggregate_id\u003d\u0027\u0027, action\u003d\u0027\u0027, reason\u003d\u0027\u0027))"},{"line_number":3212,"context_line":"    @mock.patch(\u0027nova.compute.utils.notify_about_aggregate_action\u0027)"},{"line_number":3213,"context_line":"    def test_add_aggregate_host_raise_err("},{"line_number":3214,"context_line":"            self, mock_notify, mock_add_to_aggregate):"}],"source_content_type":"text/x-python","patch_set":1,"id":"9f6a8fd7_fc01d805","line":3211,"in_reply_to":"9f6a8fd7_61f55383","updated":"2018-05-01 05:26:13.000000000","message":"Done","commit_id":"11512fab8c2362b53a93deba52fb3ad25cd1b63c"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7af09c75b40d818723ead1461adcf798e7d1db78","unresolved":false,"context_lines":[{"line_number":2526,"context_line":"        if disk_image_type \u003d\u003d vm_utils.ImageType.DISK_ISO:"},{"line_number":2527,"context_line":"            vdi_key \u003d \u0027iso\u0027"},{"line_number":2528,"context_line":"        vdis \u003d {vdi_key: {\u0027uuid\u0027: vdi_uuid, \u0027ref\u0027: vdi_ref}}"},{"line_number":2529,"context_line":"        self.called \u003d False"},{"line_number":2530,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict("},{"line_number":2531,"context_line":"            {\u0027id\u0027: uuids.image_id,"},{"line_number":2532,"context_line":"             \u0027disk_format\u0027: \u0027vhd\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_7704fec6","side":"PARENT","line":2529,"range":{"start_line":2529,"start_character":0,"end_line":2529,"end_character":27},"updated":"2018-05-01 13:52:42.000000000","message":"My complaint in PS1 was that this shouldn\u0027t be removed.  Now this method isn\u0027t asserting that anything is called; it\u0027s only really ensuring that _attach_disks doesn\u0027t raise an exception.","commit_id":"ecc9e505aac46cf1ff7a5a5d4c4fae62bf9f6571"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9b27da3bb6a803e3f4f611a4f11d560758d28b71","unresolved":false,"context_lines":[{"line_number":2526,"context_line":"        if disk_image_type \u003d\u003d vm_utils.ImageType.DISK_ISO:"},{"line_number":2527,"context_line":"            vdi_key \u003d \u0027iso\u0027"},{"line_number":2528,"context_line":"        vdis \u003d {vdi_key: {\u0027uuid\u0027: vdi_uuid, \u0027ref\u0027: vdi_ref}}"},{"line_number":2529,"context_line":"        self.called \u003d False"},{"line_number":2530,"context_line":"        image_meta \u003d objects.ImageMeta.from_dict("},{"line_number":2531,"context_line":"            {\u0027id\u0027: uuids.image_id,"},{"line_number":2532,"context_line":"             \u0027disk_format\u0027: \u0027vhd\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_c4942847","side":"PARENT","line":2529,"range":{"start_line":2529,"start_character":0,"end_line":2529,"end_character":27},"in_reply_to":"9f6a8fd7_7704fec6","updated":"2018-05-02 06:49:26.000000000","message":"I added self.assertTrue(mock_XXXXXX.called) instead of this.\nSee line 2523 in the new file.","commit_id":"ecc9e505aac46cf1ff7a5a5d4c4fae62bf9f6571"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"7af09c75b40d818723ead1461adcf798e7d1db78","unresolved":false,"context_lines":[{"line_number":2534,"context_line":"        self.conn._vmops._attach_disks(self.context, instance, image_meta,"},{"line_number":2535,"context_line":"                    vm_ref, instance[\u0027name\u0027], vdis, disk_image_type,"},{"line_number":2536,"context_line":"                    \"fake_nw_inf\")"},{"line_number":2537,"context_line":"        self.assertTrue(self.called)"},{"line_number":2538,"context_line":""},{"line_number":2539,"context_line":"    def test_generate_swap(self):"},{"line_number":2540,"context_line":"        # Test swap disk generation."}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_970752ca","side":"PARENT","line":2537,"range":{"start_line":2537,"start_character":0,"end_line":2537,"end_character":36},"updated":"2018-05-01 13:52:42.000000000","message":"see above.","commit_id":"ecc9e505aac46cf1ff7a5a5d4c4fae62bf9f6571"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"9b27da3bb6a803e3f4f611a4f11d560758d28b71","unresolved":false,"context_lines":[{"line_number":2520,"context_line":"        instance \u003d create_instance_with_system_metadata(self.context,"},{"line_number":2521,"context_line":"                                                        instance_values)"},{"line_number":2522,"context_line":"        self.assertCalled(instance)"},{"line_number":2523,"context_line":"        self.assertTrue(mock_generate_swap.called)"},{"line_number":2524,"context_line":""},{"line_number":2525,"context_line":"    @mock.patch.object(vm_utils, \u0027generate_ephemeral\u0027)"},{"line_number":2526,"context_line":"    def test_generate_ephemeral(self, mock_generate_ephemeral):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9f6a8fd7_e48fec2b","line":2523,"range":{"start_line":2523,"start_character":8,"end_line":2523,"end_character":50},"updated":"2018-05-02 06:49:26.000000000","message":"Here.","commit_id":"9d275c3b550135aa05c01fb4063f905e2cdda01e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f242f12f64fe16f52fa2016a62b0cddd81404395","unresolved":false,"context_lines":[{"line_number":2136,"context_line":"        # before introducing the stub which raises the error"},{"line_number":2137,"context_line":"        hs \u003d self.conn.host_state"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":"        with mock.patch.object("},{"line_number":2140,"context_line":"                vm_utils, \u0027safe_find_sr\u0027,"},{"line_number":2141,"context_line":"                side_effect\u003dexception.StorageRepositoryNotFound(\u0027not there\u0027)):"},{"line_number":2142,"context_line":"            self.assertRaises(exception.StorageRepositoryNotFound,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3b1a0d7d","line":2139,"range":{"start_line":2139,"start_character":0,"end_line":2139,"end_character":31},"updated":"2018-05-07 08:29:45.000000000","message":"i still prefer the mock as decorator which is more easy to read","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"afd2422864d9241d7f8d48d435f456e30b8fc0e2","unresolved":false,"context_lines":[{"line_number":2136,"context_line":"        # before introducing the stub which raises the error"},{"line_number":2137,"context_line":"        hs \u003d self.conn.host_state"},{"line_number":2138,"context_line":""},{"line_number":2139,"context_line":"        with mock.patch.object("},{"line_number":2140,"context_line":"                vm_utils, \u0027safe_find_sr\u0027,"},{"line_number":2141,"context_line":"                side_effect\u003dexception.StorageRepositoryNotFound(\u0027not there\u0027)):"},{"line_number":2142,"context_line":"            self.assertRaises(exception.StorageRepositoryNotFound,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_a6d4afbe","line":2139,"range":{"start_line":2139,"start_character":0,"end_line":2139,"end_character":31},"in_reply_to":"5f7c97a3_3b1a0d7d","updated":"2018-05-08 02:52:28.000000000","message":"See a comment in line 2135-2136.\nIt is required that \u0027safe_find_sr\u0027 is not mocked in line 2137.","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f242f12f64fe16f52fa2016a62b0cddd81404395","unresolved":false,"context_lines":[{"line_number":2201,"context_line":"    @mock.patch.object(host, \u0027to_supported_instances\u0027,"},{"line_number":2202,"context_line":"                       return_value\u003d\u0027SOMERETURNVALUE\u0027)"},{"line_number":2203,"context_line":"    def test_supported_instances_is_calculated_by_to_supported_instances("},{"line_number":2204,"context_line":"            self, mock_to_supported_instances):"},{"line_number":2205,"context_line":"        stats \u003d self.conn.host_state.get_host_stats(False)"},{"line_number":2206,"context_line":"        self.assertEqual(\"SOMERETURNVALUE\", stats[\u0027supported_instances\u0027])"},{"line_number":2207,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_bb0dbd3f","line":2204,"range":{"start_line":2204,"start_character":18,"end_line":2204,"end_character":45},"updated":"2018-05-07 08:29:45.000000000","message":"can you add call check for this with assert_called_once_with","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"afd2422864d9241d7f8d48d435f456e30b8fc0e2","unresolved":false,"context_lines":[{"line_number":2201,"context_line":"    @mock.patch.object(host, \u0027to_supported_instances\u0027,"},{"line_number":2202,"context_line":"                       return_value\u003d\u0027SOMERETURNVALUE\u0027)"},{"line_number":2203,"context_line":"    def test_supported_instances_is_calculated_by_to_supported_instances("},{"line_number":2204,"context_line":"            self, mock_to_supported_instances):"},{"line_number":2205,"context_line":"        stats \u003d self.conn.host_state.get_host_stats(False)"},{"line_number":2206,"context_line":"        self.assertEqual(\"SOMERETURNVALUE\", stats[\u0027supported_instances\u0027])"},{"line_number":2207,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_e6bb87c1","line":2204,"range":{"start_line":2204,"start_character":18,"end_line":2204,"end_character":45},"in_reply_to":"5f7c97a3_bb0dbd3f","updated":"2018-05-08 02:52:28.000000000","message":"Done","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f242f12f64fe16f52fa2016a62b0cddd81404395","unresolved":false,"context_lines":[{"line_number":2416,"context_line":"                       return_value\u003d[(1, 0, 100, \u0027ext4\u0027, \"\", \"\"),"},{"line_number":2417,"context_line":"                                     (2, 100, 200, \u0027ext4\u0027 \"\", \"\")])"},{"line_number":2418,"context_line":"    def test_instance_auto_disk_config_fails_safe_two_partitions("},{"line_number":2419,"context_line":"            self, mock_get_partitions):"},{"line_number":2420,"context_line":"        # Should not partition unless fail safes pass."},{"line_number":2421,"context_line":"        self.instance_values[\u0027auto_disk_config\u0027] \u003d True"},{"line_number":2422,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_160e0834","line":2419,"range":{"start_line":2419,"start_character":18,"end_line":2419,"end_character":37},"updated":"2018-05-07 08:29:45.000000000","message":"ditto","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"afd2422864d9241d7f8d48d435f456e30b8fc0e2","unresolved":false,"context_lines":[{"line_number":2416,"context_line":"                       return_value\u003d[(1, 0, 100, \u0027ext4\u0027, \"\", \"\"),"},{"line_number":2417,"context_line":"                                     (2, 100, 200, \u0027ext4\u0027 \"\", \"\")])"},{"line_number":2418,"context_line":"    def test_instance_auto_disk_config_fails_safe_two_partitions("},{"line_number":2419,"context_line":"            self, mock_get_partitions):"},{"line_number":2420,"context_line":"        # Should not partition unless fail safes pass."},{"line_number":2421,"context_line":"        self.instance_values[\u0027auto_disk_config\u0027] \u003d True"},{"line_number":2422,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_26c17f2f","line":2419,"range":{"start_line":2419,"start_character":18,"end_line":2419,"end_character":37},"in_reply_to":"5f7c97a3_160e0834","updated":"2018-05-08 02:52:28.000000000","message":"Done","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f242f12f64fe16f52fa2016a62b0cddd81404395","unresolved":false,"context_lines":[{"line_number":2426,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2427,"context_line":"                       return_value\u003d[(2, 100, 200, \u0027ext4\u0027, \"\", \"\")])"},{"line_number":2428,"context_line":"    def test_instance_auto_disk_config_fails_safe_badly_numbered("},{"line_number":2429,"context_line":"            self, mock_get_partitions):"},{"line_number":2430,"context_line":"        # Should not partition unless fail safes pass."},{"line_number":2431,"context_line":"        self.instance_values[\u0027auto_disk_config\u0027] \u003d True"},{"line_number":2432,"context_line":"        self.assertIsPartitionCalled(False)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_d60f302c","line":2429,"range":{"start_line":2429,"start_character":18,"end_line":2429,"end_character":37},"updated":"2018-05-07 08:29:45.000000000","message":"ditto","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"afd2422864d9241d7f8d48d435f456e30b8fc0e2","unresolved":false,"context_lines":[{"line_number":2426,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2427,"context_line":"                       return_value\u003d[(2, 100, 200, \u0027ext4\u0027, \"\", \"\")])"},{"line_number":2428,"context_line":"    def test_instance_auto_disk_config_fails_safe_badly_numbered("},{"line_number":2429,"context_line":"            self, mock_get_partitions):"},{"line_number":2430,"context_line":"        # Should not partition unless fail safes pass."},{"line_number":2431,"context_line":"        self.instance_values[\u0027auto_disk_config\u0027] \u003d True"},{"line_number":2432,"context_line":"        self.assertIsPartitionCalled(False)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_e6e067cf","line":2429,"range":{"start_line":2429,"start_character":18,"end_line":2429,"end_character":37},"in_reply_to":"5f7c97a3_d60f302c","updated":"2018-05-08 02:52:28.000000000","message":"Done","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f242f12f64fe16f52fa2016a62b0cddd81404395","unresolved":false,"context_lines":[{"line_number":2435,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2436,"context_line":"                       return_value\u003d[(1, 100, 200, \u0027asdf\u0027, \"\", \"\")])"},{"line_number":2437,"context_line":"    def test_instance_auto_disk_config_fails_safe_bad_fstype("},{"line_number":2438,"context_line":"            self, mock_get_partitions):"},{"line_number":2439,"context_line":"        # Should not partition unless fail safes pass."},{"line_number":2440,"context_line":"        self.instance_values[\u0027auto_disk_config\u0027] \u003d True"},{"line_number":2441,"context_line":"        self.assertIsPartitionCalled(False)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_3628e484","line":2438,"range":{"start_line":2438,"start_character":18,"end_line":2438,"end_character":37},"updated":"2018-05-07 08:29:45.000000000","message":"ditto","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"afd2422864d9241d7f8d48d435f456e30b8fc0e2","unresolved":false,"context_lines":[{"line_number":2435,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2436,"context_line":"                       return_value\u003d[(1, 100, 200, \u0027asdf\u0027, \"\", \"\")])"},{"line_number":2437,"context_line":"    def test_instance_auto_disk_config_fails_safe_bad_fstype("},{"line_number":2438,"context_line":"            self, mock_get_partitions):"},{"line_number":2439,"context_line":"        # Should not partition unless fail safes pass."},{"line_number":2440,"context_line":"        self.instance_values[\u0027auto_disk_config\u0027] \u003d True"},{"line_number":2441,"context_line":"        self.assertIsPartitionCalled(False)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_a6ea6fa9","line":2438,"range":{"start_line":2438,"start_character":18,"end_line":2438,"end_character":37},"in_reply_to":"5f7c97a3_3628e484","updated":"2018-05-08 02:52:28.000000000","message":"Done","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f242f12f64fe16f52fa2016a62b0cddd81404395","unresolved":false,"context_lines":[{"line_number":2444,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2445,"context_line":"                       return_value\u003d[(1, 0, 100, \u0027ext4\u0027, \"\", \"boot\")])"},{"line_number":2446,"context_line":"    def test_instance_auto_disk_config_passes_fail_safes("},{"line_number":2447,"context_line":"            self, mock_get_partitions):"},{"line_number":2448,"context_line":"        \"\"\"Should partition if instance is marked as auto_disk_config\u003dTrue and"},{"line_number":2449,"context_line":"        virt-layer specific fail-safe checks pass."},{"line_number":2450,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_562d6093","line":2447,"range":{"start_line":2447,"start_character":18,"end_line":2447,"end_character":37},"updated":"2018-05-07 08:29:45.000000000","message":"ditto","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"afd2422864d9241d7f8d48d435f456e30b8fc0e2","unresolved":false,"context_lines":[{"line_number":2444,"context_line":"    @mock.patch.object(vm_utils, \u0027_get_partitions\u0027,"},{"line_number":2445,"context_line":"                       return_value\u003d[(1, 0, 100, \u0027ext4\u0027, \"\", \"boot\")])"},{"line_number":2446,"context_line":"    def test_instance_auto_disk_config_passes_fail_safes("},{"line_number":2447,"context_line":"            self, mock_get_partitions):"},{"line_number":2448,"context_line":"        \"\"\"Should partition if instance is marked as auto_disk_config\u003dTrue and"},{"line_number":2449,"context_line":"        virt-layer specific fail-safe checks pass."},{"line_number":2450,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_46d11bfb","line":2447,"range":{"start_line":2447,"start_character":18,"end_line":2447,"end_character":37},"in_reply_to":"5f7c97a3_562d6093","updated":"2018-05-08 02:52:28.000000000","message":"Done","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f242f12f64fe16f52fa2016a62b0cddd81404395","unresolved":false,"context_lines":[{"line_number":2534,"context_line":"    @mock.patch.object(vm_utils, \u0027generate_iso_blank_root_disk\u0027)"},{"line_number":2535,"context_line":"    @mock.patch.object(vm_utils, \u0027generate_ephemeral\u0027)"},{"line_number":2536,"context_line":"    def test_generate_iso_blank_root_disk("},{"line_number":2537,"context_line":"            self, mock_generate_ephemeral, mock_generate_iso_blank_root_disk):"},{"line_number":2538,"context_line":"        instance_values \u003d dict(self.instance_values, instance_type_id\u003d4)"},{"line_number":2539,"context_line":"        instance_values.pop(\u0027kernel_id\u0027)"},{"line_number":2540,"context_line":"        instance_values.pop(\u0027ramdisk_id\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_d63df0bb","line":2537,"range":{"start_line":2537,"start_character":18,"end_line":2537,"end_character":41},"updated":"2018-05-07 08:29:45.000000000","message":"ditto","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"afd2422864d9241d7f8d48d435f456e30b8fc0e2","unresolved":false,"context_lines":[{"line_number":2534,"context_line":"    @mock.patch.object(vm_utils, \u0027generate_iso_blank_root_disk\u0027)"},{"line_number":2535,"context_line":"    @mock.patch.object(vm_utils, \u0027generate_ephemeral\u0027)"},{"line_number":2536,"context_line":"    def test_generate_iso_blank_root_disk("},{"line_number":2537,"context_line":"            self, mock_generate_ephemeral, mock_generate_iso_blank_root_disk):"},{"line_number":2538,"context_line":"        instance_values \u003d dict(self.instance_values, instance_type_id\u003d4)"},{"line_number":2539,"context_line":"        instance_values.pop(\u0027kernel_id\u0027)"},{"line_number":2540,"context_line":"        instance_values.pop(\u0027ramdisk_id\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_e665c746","line":2537,"range":{"start_line":2537,"start_character":18,"end_line":2537,"end_character":41},"in_reply_to":"5f7c97a3_d63df0bb","updated":"2018-05-08 02:52:28.000000000","message":"Done","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"f242f12f64fe16f52fa2016a62b0cddd81404395","unresolved":false,"context_lines":[{"line_number":2590,"context_line":"                           \u002712\u0027:"},{"line_number":2591,"context_line":"                                 {\u00270\u0027: {\u0027bw_in\u0027: 1024, \u0027bw_out\u0027: 2048},"},{"line_number":2592,"context_line":"                                  \u00271\u0027: {\u0027bw_in\u0027: 31337, \u0027bw_out\u0027: 21212121}}})"},{"line_number":2593,"context_line":"    def test_get_all_bw_counters(self, mock_fetch_bandwidth):"},{"line_number":2594,"context_line":"        instances \u003d [dict(name\u003d\u0027test1\u0027, uuid\u003d\u00271-2-3\u0027),"},{"line_number":2595,"context_line":"                     dict(name\u003d\u0027test2\u0027, uuid\u003d\u00274-5-6\u0027)]"},{"line_number":2596,"context_line":"        result \u003d self.conn.get_all_bw_counters(instances)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_764adc55","line":2593,"range":{"start_line":2593,"start_character":39,"end_line":2593,"end_character":59},"updated":"2018-05-07 08:29:45.000000000","message":"ditto","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"},{"author":{"_account_id":7634,"name":"Takashi Natsume","email":"takanattie@gmail.com","username":"natsumet"},"change_message_id":"afd2422864d9241d7f8d48d435f456e30b8fc0e2","unresolved":false,"context_lines":[{"line_number":2590,"context_line":"                           \u002712\u0027:"},{"line_number":2591,"context_line":"                                 {\u00270\u0027: {\u0027bw_in\u0027: 1024, \u0027bw_out\u0027: 2048},"},{"line_number":2592,"context_line":"                                  \u00271\u0027: {\u0027bw_in\u0027: 31337, \u0027bw_out\u0027: 21212121}}})"},{"line_number":2593,"context_line":"    def test_get_all_bw_counters(self, mock_fetch_bandwidth):"},{"line_number":2594,"context_line":"        instances \u003d [dict(name\u003d\u0027test1\u0027, uuid\u003d\u00271-2-3\u0027),"},{"line_number":2595,"context_line":"                     dict(name\u003d\u0027test2\u0027, uuid\u003d\u00274-5-6\u0027)]"},{"line_number":2596,"context_line":"        result \u003d self.conn.get_all_bw_counters(instances)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_c6c76b12","line":2593,"range":{"start_line":2593,"start_character":39,"end_line":2593,"end_character":59},"in_reply_to":"5f7c97a3_764adc55","updated":"2018-05-08 02:52:28.000000000","message":"Done","commit_id":"ef964b2885760ce0c3c1f19f33489b06ea603ab8"}]}
