)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6a7bdeeb951759d9d58d48daddaed1d682bb8521","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-09-01 15:20:15 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Port all Senlin, Swift, Tempest, VMTasks, Watcher and Zaqar scenarios to new style"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since current scenario implementation transforms method to class at runtime,"},{"line_number":10,"context_line":"it is reasonable to have class-based scenario implementation which will be"},{"line_number":11,"context_line":"much simpler to use behind the scenes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"fa7ab95a_8add8144","line":8,"updated":"2016-09-01 13:13:01.000000000","message":"The title shouldn\u0027t be more than 50 chars and in actual msg line lengths shouldn\u0027t be more then 79","commit_id":"4f5c58264264dfbffcdbe54f88db2a6296841355"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-09-12 15:43:13 +0300"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Port Senlin and others scenarios to new style"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Since current scenario implementation transforms method to class at runtime,"},{"line_number":10,"context_line":"it is reasonable to have class-based scenario implementation which will be"},{"line_number":11,"context_line":"much simpler to use behind the scenes."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"9a89bdaa_830b9e23","line":8,"updated":"2016-09-12 15:12:25.000000000","message":"Please give a list of plugin groups (Tempest, VMTask ...) that have been changed","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"63fdc32f2d1d4d6b43b5689e90a68d959d04d212","unresolved":false,"context_lines":[{"line_number":25,"context_line":""},{"line_number":26,"context_line":"rally/plugins/openstack/context/vm/custom_image.py"},{"line_number":27,"context_line":"tests/unit/test_docstrings.py"},{"line_number":28,"context_line":""},{"line_number":29,"context_line":"Change-Id: Ia7f33d7c279991232286b34abe199d125b92f023"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":11,"id":"7a8ec9b2_a2463a21","line":28,"updated":"2016-09-14 08:46:53.000000000","message":"Implements blueprint class-based-scenarios","commit_id":"eb6613608568e65199c5a61395c6d22f6bd7e851"}],"rally/plugins/openstack/context/vm/custom_image.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6a7bdeeb951759d9d58d48daddaed1d682bb8521","unresolved":false,"context_lines":[{"line_number":153,"context_line":"        flavor_id \u003d types.Flavor.transform("},{"line_number":154,"context_line":"            clients\u003dclients, resource_config\u003dself.config[\"flavor\"])"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"        vm_scenario \u003d vmtasks.BootRuncommandDeleteCustomImage("},{"line_number":157,"context_line":"            self.context,"},{"line_number":158,"context_line":"            clients\u003dclients)"},{"line_number":159,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_6a3afd99","line":156,"updated":"2016-09-01 13:13:01.000000000","message":"I can\u0027t find this class here https://github.com/openstack/rally/blob/master/rally/plugins/openstack/scenarios/vm/vmtasks.py","commit_id":"4f5c58264264dfbffcdbe54f88db2a6296841355"}],"rally/plugins/openstack/scenarios/senlin/clusters.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"6a7bdeeb951759d9d58d48daddaed1d682bb8521","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    Measure the \"senlin profile-create\", \"senlin profile-delete\","},{"line_number":30,"context_line":"    \"senlin cluster-create\" and \"senlin cluster-delete\" commands"},{"line_number":31,"context_line":"    performance."},{"line_number":32,"context_line":"    \"\"\""},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def run(self, profile_spec, desired_capacity\u003d0, min_size\u003d0,"},{"line_number":35,"context_line":"            max_size\u003d-1, timeout\u003d3600, metadata\u003dNone):"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa7ab95a_2a8c757e","line":32,"updated":"2016-09-01 13:13:01.000000000","message":"We have discussed that the goal is to have absent docstring in the class and normal(old) docsting in the run()","commit_id":"4f5c58264264dfbffcdbe54f88db2a6296841355"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"8f7cbe71e4f2a0ebffa26a09e1214529f70cea68","unresolved":false,"context_lines":[{"line_number":28,"context_line":""},{"line_number":29,"context_line":"    def run(self, desired_capacity\u003d0, min_size\u003d0,"},{"line_number":30,"context_line":"            max_size\u003d-1, timeout\u003d3600, metadata\u003dNone):"},{"line_number":31,"context_line":"        \"\"\"Create a profile and a cluster and then delete them."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        Measure the \"senlin cluster-create\" and \"senlin cluster-delete\""},{"line_number":34,"context_line":"        commands performance."}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_58552fc4","line":31,"updated":"2016-09-12 11:59:40.000000000","message":"Scenario itself isn\u0027t create profile. It was created by profile context","commit_id":"5f7a79fb8c23482277c0af010c5026c30c5e85ca"}],"tests/unit/plugins/openstack/context/vm/test_custom_image.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"bdbe4799bbf291bf6563fcd357afbed0309192d5","unresolved":false,"context_lines":[{"line_number":62,"context_line":"            }"},{"line_number":63,"context_line":"        })"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"    @mock.patch(\"%s.vmtasks.VMTasks\" % BASE)"},{"line_number":66,"context_line":"    @mock.patch(\"%s.osclients.Clients\" % BASE)"},{"line_number":67,"context_line":"    @mock.patch(\"%s.types.GlanceImage.transform\" % BASE, return_value\u003d\"image\")"},{"line_number":68,"context_line":"    @mock.patch(\"%s.types.Flavor.transform\" % BASE, return_value\u003d\"flavor\")"}],"source_content_type":"text/x-python","patch_set":5,"id":"9a89bdaa_fded3ef0","side":"PARENT","line":65,"updated":"2016-09-09 13:27:02.000000000","message":"Why?","commit_id":"b6bedc5b7807f024a76e38f29318d1c140692b7f"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    @mock.patch(\"rally.plugins.openstack.wrappers.glance.wrap\")"},{"line_number":69,"context_line":"    @mock.patch(\"%s.vmtasks.BootRuncommandDeleteCustomImage\" % BASE)"},{"line_number":70,"context_line":"    def test_create_one_image("},{"line_number":71,"context_line":"            self, mock_vmtask, mock_glance_wrap, mock_flavor_transform,"},{"line_number":72,"context_line":"            mock_glance_image_transform, mock_clients"},{"line_number":73,"context_line":"    ):"},{"line_number":74,"context_line":"        ip \u003d {\"ip\": \"foo_ip\", \"id\": \"foo_id\", \"is_floating\": True}"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_78eacaad","line":71,"updated":"2016-09-12 15:12:25.000000000","message":"mock_vmtask is a strange name for mock\u0027ed scenario class, it would be better to name it `mock_scenario\u0027 or `mock_workload\u0027 or `mock_wload\u0027","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":68,"context_line":"    @mock.patch(\"rally.plugins.openstack.wrappers.glance.wrap\")"},{"line_number":69,"context_line":"    @mock.patch(\"%s.vmtasks.BootRuncommandDeleteCustomImage\" % BASE)"},{"line_number":70,"context_line":"    def test_create_one_image("},{"line_number":71,"context_line":"            self, mock_vmtask, mock_glance_wrap, mock_flavor_transform,"},{"line_number":72,"context_line":"            mock_glance_image_transform, mock_clients"},{"line_number":73,"context_line":"    ):"},{"line_number":74,"context_line":"        ip \u003d {\"ip\": \"foo_ip\", \"id\": \"foo_id\", \"is_floating\": True}"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_c5790afe","line":71,"in_reply_to":"9a89bdaa_78eacaad","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            fake_server, ip, user)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        mock_vm_scenario._create_image.assert_called_once_with(fake_server)"},{"line_number":121,"context_line":"        wrapped_value \u003d mock_glance_wrap.return_value"},{"line_number":122,"context_line":"        wrapped_value.set_visibility.assert_called_once_with(fake_image)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        mock_vm_scenario._delete_server_with_fip.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_38ca021b","line":121,"updated":"2016-09-12 15:12:25.000000000","message":"mock_wrapper (wrapper is not a value but helper instance)","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":118,"context_line":"            fake_server, ip, user)"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"        mock_vm_scenario._create_image.assert_called_once_with(fake_server)"},{"line_number":121,"context_line":"        wrapped_value \u003d mock_glance_wrap.return_value"},{"line_number":122,"context_line":"        wrapped_value.set_visibility.assert_called_once_with(fake_image)"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        mock_vm_scenario._delete_server_with_fip.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_65d91ef3","line":121,"in_reply_to":"9a89bdaa_38ca021b","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    @mock.patch(\"rally.plugins.openstack.wrappers.glance.wrap\")"},{"line_number":135,"context_line":"    @mock.patch(\"%s.vmtasks.BootRuncommandDeleteCustomImage\" % BASE)"},{"line_number":136,"context_line":"    def test_create_one_image_cleanup("},{"line_number":137,"context_line":"            self, mock_vmtask, mock_glance_wrap, mock_flavor_transform,"},{"line_number":138,"context_line":"            mock_glance_image_transform, mock_clients"},{"line_number":139,"context_line":"    ):"},{"line_number":140,"context_line":"        ip \u003d {\"ip\": \"foo_ip\", \"id\": \"foo_id\", \"is_floating\": True}"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_38bf6261","line":137,"updated":"2016-09-12 15:12:25.000000000","message":"same here, name is strange","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":134,"context_line":"    @mock.patch(\"rally.plugins.openstack.wrappers.glance.wrap\")"},{"line_number":135,"context_line":"    @mock.patch(\"%s.vmtasks.BootRuncommandDeleteCustomImage\" % BASE)"},{"line_number":136,"context_line":"    def test_create_one_image_cleanup("},{"line_number":137,"context_line":"            self, mock_vmtask, mock_glance_wrap, mock_flavor_transform,"},{"line_number":138,"context_line":"            mock_glance_image_transform, mock_clients"},{"line_number":139,"context_line":"    ):"},{"line_number":140,"context_line":"        ip \u003d {\"ip\": \"foo_ip\", \"id\": \"foo_id\", \"is_floating\": True}"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_85e2a29e","line":137,"in_reply_to":"9a89bdaa_38bf6261","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"}],"tests/unit/plugins/openstack/scenarios/tempest/test_utils.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        context \u003d test.get_test_context()"},{"line_number":34,"context_line":"        context.update({\"tmp_results_dir\": \"/tmp/dir\", \"verifier\": verifier})"},{"line_number":35,"context_line":"#        self.scenario \u003d tempest.TempestScenario(context)"},{"line_number":36,"context_line":"        self.scenario \u003d tempest.SingleTest(context)"},{"line_number":37,"context_line":"        self.scenario._add_atomic_actions \u003d mock.MagicMock()"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_f32fdd85","line":35,"updated":"2016-09-12 15:12:25.000000000","message":"remove this line","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":32,"context_line":""},{"line_number":33,"context_line":"        context \u003d test.get_test_context()"},{"line_number":34,"context_line":"        context.update({\"tmp_results_dir\": \"/tmp/dir\", \"verifier\": verifier})"},{"line_number":35,"context_line":"#        self.scenario \u003d tempest.TempestScenario(context)"},{"line_number":36,"context_line":"        self.scenario \u003d tempest.SingleTest(context)"},{"line_number":37,"context_line":"        self.scenario._add_atomic_actions \u003d mock.MagicMock()"},{"line_number":38,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_406968bd","line":35,"in_reply_to":"9a89bdaa_f32fdd85","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            total\u003d{\"time\": \"0.1\"}, tests\u003d{})"},{"line_number":67,"context_line":"        context \u003d test.get_test_context()"},{"line_number":68,"context_line":"        context.update({\"tmp_results_dir\": \"/tmp/dir\", \"verifier\": verifier})"},{"line_number":69,"context_line":"#        scenario \u003d tempest.TempestScenario(context)"},{"line_number":70,"context_line":"        scenario \u003d tempest.SingleTest(context)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        target_func \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_134d2172","line":69,"updated":"2016-09-12 15:12:25.000000000","message":"remove this line","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            total\u003d{\"time\": \"0.1\"}, tests\u003d{})"},{"line_number":67,"context_line":"        context \u003d test.get_test_context()"},{"line_number":68,"context_line":"        context.update({\"tmp_results_dir\": \"/tmp/dir\", \"verifier\": verifier})"},{"line_number":69,"context_line":"#        scenario \u003d tempest.TempestScenario(context)"},{"line_number":70,"context_line":"        scenario \u003d tempest.SingleTest(context)"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        target_func \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_60666cee","line":69,"in_reply_to":"9a89bdaa_134d2172","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"}],"tests/unit/plugins/openstack/scenarios/vm/test_vmtasks.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.context.update({\"user\": {\"keypair\": {\"name\": \"keypair_name\"},"},{"line_number":33,"context_line":"                                      \"credential\": mock.MagicMock()}})"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def prepare_env(self, scenario):"},{"line_number":36,"context_line":"        self.ip \u003d {\"id\": \"foo_id\", \"ip\": \"foo_ip\", \"is_floating\": True}"},{"line_number":37,"context_line":"        scenario._boot_server_with_fip \u003d mock.Mock("},{"line_number":38,"context_line":"            return_value\u003d(\"foo_server\", self.ip))"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_af3de92c","line":35,"updated":"2016-09-12 15:12:25.000000000","message":"This does implicit change, which is not good.\n\nI would recommend to have scenario_cls argument which represents class, and a return value of ready--to-use scenario instance.\n\nIn this case L48-49 will look:\n\n scenario \u003d self.prepare_env(vmtasks.BootRuncommandDelete)","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":32,"context_line":"        self.context.update({\"user\": {\"keypair\": {\"name\": \"keypair_name\"},"},{"line_number":33,"context_line":"                                      \"credential\": mock.MagicMock()}})"},{"line_number":34,"context_line":""},{"line_number":35,"context_line":"    def prepare_env(self, scenario):"},{"line_number":36,"context_line":"        self.ip \u003d {\"id\": \"foo_id\", \"ip\": \"foo_ip\", \"is_floating\": True}"},{"line_number":37,"context_line":"        scenario._boot_server_with_fip \u003d mock.Mock("},{"line_number":38,"context_line":"            return_value\u003d(\"foo_server\", self.ip))"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_f4587d33","line":35,"in_reply_to":"9a89bdaa_af3de92c","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"#    @mock.patch(\"rally.plugins.openstack.scenarios.vm.vmtasks.BootRuncommandDelete.run\")"},{"line_number":187,"context_line":"    def test_boot_runcommand_delete_custom_image(self):"},{"line_number":188,"context_line":"        # ,"},{"line_number":189,"context_line":"        #                                          mock_boot_runcommand_delete_run,"},{"line_number":190,"context_line":"        #                                          ):"},{"line_number":191,"context_line":"        TEST_TARGET \u003d \"BootRuncommandDelete\""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_0f7a55f1","line":188,"updated":"2016-09-12 15:12:25.000000000","message":"same here","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":"#    @mock.patch(\"rally.plugins.openstack.scenarios.vm.vmtasks.BootRuncommandDelete.run\")"},{"line_number":187,"context_line":"    def test_boot_runcommand_delete_custom_image(self):"},{"line_number":188,"context_line":"        # ,"},{"line_number":189,"context_line":"        #                                          mock_boot_runcommand_delete_run,"},{"line_number":190,"context_line":"        #                                          ):"},{"line_number":191,"context_line":"        TEST_TARGET \u003d \"BootRuncommandDelete\""}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_343f45b5","line":188,"in_reply_to":"9a89bdaa_0f7a55f1","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        #                                          mock_boot_runcommand_delete_run,"},{"line_number":190,"context_line":"        #                                          ):"},{"line_number":191,"context_line":"        TEST_TARGET \u003d \"BootRuncommandDelete\""},{"line_number":192,"context_line":"        run_module \u003d (\"{}.{}.{}\").format(BASE,"},{"line_number":193,"context_line":"                                         TEST_TARGET,"},{"line_number":194,"context_line":"                                         \"run\")"},{"line_number":195,"context_line":"        with mock.patch(run_module) as mock_run:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_18a299ae","line":192,"updated":"2016-09-12 15:12:25.000000000","message":"1) `run\u0027 is not a method, not module\n2) Why not mock this by decorator @mock.patch ?\n\n @mock.patch(\"rally.plugins.openstack.scenarios.vm.vmtasks.BootRuncommandDelete\")\n def test_boot_runcommand_delete_custom_image(self, mock_runcommand):\n\n mock_runcommand_run \u003d mock_runcommand.return_value.run\n ...","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":189,"context_line":"        #                                          mock_boot_runcommand_delete_run,"},{"line_number":190,"context_line":"        #                                          ):"},{"line_number":191,"context_line":"        TEST_TARGET \u003d \"BootRuncommandDelete\""},{"line_number":192,"context_line":"        run_module \u003d (\"{}.{}.{}\").format(BASE,"},{"line_number":193,"context_line":"                                         TEST_TARGET,"},{"line_number":194,"context_line":"                                         \"run\")"},{"line_number":195,"context_line":"        with mock.patch(run_module) as mock_run:"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_74454d41","line":192,"in_reply_to":"9a89bdaa_18a299ae","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"}],"tests/unit/plugins/openstack/scenarios/zaqar/test_basic.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ZaqarBasicTestCase(test.ScenarioTestCase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @mock.patch(BASIC + \"generate_random_name\", return_value\u003d\"fizbit\")"},{"line_number":27,"context_line":"    def test_create_queue(self, mock_generate_random_name):"},{"line_number":28,"context_line":"        scenario \u003d basic.ZaqarBasic(self.context)"},{"line_number":29,"context_line":"        scenario._queue_create \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_78b80576","side":"PARENT","line":26,"updated":"2016-09-12 15:12:25.000000000","message":"Why it is removed?","commit_id":"c10c5f9c88922a7fa2f9cfdc018dcf648824c5a2"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":23,"context_line":""},{"line_number":24,"context_line":"class ZaqarBasicTestCase(test.ScenarioTestCase):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    @mock.patch(BASIC + \"generate_random_name\", return_value\u003d\"fizbit\")"},{"line_number":27,"context_line":"    def test_create_queue(self, mock_generate_random_name):"},{"line_number":28,"context_line":"        scenario \u003d basic.ZaqarBasic(self.context)"},{"line_number":29,"context_line":"        scenario._queue_create \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_7400ed02","side":"PARENT","line":26,"in_reply_to":"9a89bdaa_78b80576","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"c10c5f9c88922a7fa2f9cfdc018dcf648824c5a2"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        random_name_module \u003d (\"{}.{}.{}\").format(BASE,"},{"line_number":28,"context_line":"                                                 TEST_TARGET,"},{"line_number":29,"context_line":"                                                 \"generate_random_name\")"},{"line_number":30,"context_line":"        with mock.patch(random_name_module) as mock_random_name:"},{"line_number":31,"context_line":"            mock_random_name.return_value \u003d \"fizbit\""},{"line_number":32,"context_line":"            scenario \u003d basic.CreateQueue(self.context)"},{"line_number":33,"context_line":"            scenario._queue_create \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_18645920","line":30,"updated":"2016-09-12 15:12:25.000000000","message":"use @mock.patch(...) instead","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":27,"context_line":"        random_name_module \u003d (\"{}.{}.{}\").format(BASE,"},{"line_number":28,"context_line":"                                                 TEST_TARGET,"},{"line_number":29,"context_line":"                                                 \"generate_random_name\")"},{"line_number":30,"context_line":"        with mock.patch(random_name_module) as mock_random_name:"},{"line_number":31,"context_line":"            mock_random_name.return_value \u003d \"fizbit\""},{"line_number":32,"context_line":"            scenario \u003d basic.CreateQueue(self.context)"},{"line_number":33,"context_line":"            scenario._queue_create \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_340ae526","line":30,"in_reply_to":"9a89bdaa_18645920","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"}],"tests/unit/test_docstrings.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"1db5e98871ab78a3b030e29d9b3d03eb03543fa4","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def test_all_scenarios_have_docstrings(self):"},{"line_number":44,"context_line":"        ignored_params \u003d [\"self\", \"scenario_obj\"]"},{"line_number":45,"context_line":"        for scenario_inst in scenario.Scenario.get_all():"},{"line_number":46,"context_line":"            # self.assertIsNotNone(scenario_inst.__doc__,"},{"line_number":47,"context_line":"            #                      \"%s doensn\u0027t have a docstring.\" %"},{"line_number":48,"context_line":"            #                      scenario_inst.get_name())"},{"line_number":49,"context_line":"            doc \u003d info.parse_docstring(scenario_inst.__doc__)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_f8525534","line":46,"updated":"2016-09-12 15:12:25.000000000","message":"Maybe check scenario_inst.run.__doc__ ?","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"},{"author":{"_account_id":23094,"name":"Staroverov Anton","email":"avstaroverov@gmail.com","username":"astaroverov"},"change_message_id":"9635763338dd859e538a2d2b5ec44b2384ddeac1","unresolved":false,"context_lines":[{"line_number":43,"context_line":"    def test_all_scenarios_have_docstrings(self):"},{"line_number":44,"context_line":"        ignored_params \u003d [\"self\", \"scenario_obj\"]"},{"line_number":45,"context_line":"        for scenario_inst in scenario.Scenario.get_all():"},{"line_number":46,"context_line":"            # self.assertIsNotNone(scenario_inst.__doc__,"},{"line_number":47,"context_line":"            #                      \"%s doensn\u0027t have a docstring.\" %"},{"line_number":48,"context_line":"            #                      scenario_inst.get_name())"},{"line_number":49,"context_line":"            doc \u003d info.parse_docstring(scenario_inst.__doc__)"}],"source_content_type":"text/x-python","patch_set":6,"id":"9a89bdaa_2a0a7e26","line":46,"in_reply_to":"9a89bdaa_f8525534","updated":"2016-09-13 09:07:42.000000000","message":"Done","commit_id":"79ad70e5b6762914fdfd7b154c68232815f4e1bd"}]}
