)]}'
{"rally/benchmark/scenarios/cinder/volumes.py":[{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ce6c9ceb93e9804757c4ed43451d801610e32412","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        between volume creation and deletion (of random duration from"},{"line_number":92,"context_line":"        [min_sleep, max_sleep])."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        :param size: dictionary, contains two values:"},{"line_number":95,"context_line":"                         min - minimum size volumes will be created as;"},{"line_number":96,"context_line":"                         max - maximum size volumes will be created as."},{"line_number":97,"context_line":"        :param image: image to be used to create volume"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_488d827a","line":94,"updated":"2015-04-28 20:50:37.000000000","message":"Not \u0027contains\u0027. You have no idea what it *contains* when it is passed before you have checked the content.\n\nThe right sentence is \u0027Must contain\".","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"873c2d0247bd0314cac0174f75592307fe322e53","unresolved":false,"context_lines":[{"line_number":91,"context_line":"        between volume creation and deletion (of random duration from"},{"line_number":92,"context_line":"        [min_sleep, max_sleep])."},{"line_number":93,"context_line":""},{"line_number":94,"context_line":"        :param size: dictionary, contains two values:"},{"line_number":95,"context_line":"                         min - minimum size volumes will be created as;"},{"line_number":96,"context_line":"                         max - maximum size volumes will be created as."},{"line_number":97,"context_line":"        :param image: image to be used to create volume"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_fbb40cd2","line":94,"in_reply_to":"5ad0253b_488d827a","updated":"2015-04-29 08:36:25.000000000","message":"Done","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a16a81d666cebd1ce6fa893cefffff8dab270376","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        if image:"},{"line_number":105,"context_line":"            kwargs[\"imageRef\"] \u003d image"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        if not isinstance(size, dict):"},{"line_number":108,"context_line":"            import warnings"},{"line_number":109,"context_line":"            warnings.warn(\"\u0027size\u0027 argument as integer value is deprecated.\""},{"line_number":110,"context_line":"                          \"You should use \u0027size\u0027 with keys \u0027min\u0027 and \u0027max\u0027 \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_72db911c","line":107,"updated":"2015-04-28 20:16:51.000000000","message":"I would prefer to support evertyhing\n\nIf it is int -\u003e then it pass it directly (which is actually default behavior of cinder client) \n\nif it is dict it should have min/max values that are used to generate random value (which is useful for testing value) \n\nBy the way, I would like to see this run in gates (change rally-neutron.yaml to run it in gates)","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"873c2d0247bd0314cac0174f75592307fe322e53","unresolved":false,"context_lines":[{"line_number":104,"context_line":"        if image:"},{"line_number":105,"context_line":"            kwargs[\"imageRef\"] \u003d image"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"        if not isinstance(size, dict):"},{"line_number":108,"context_line":"            import warnings"},{"line_number":109,"context_line":"            warnings.warn(\"\u0027size\u0027 argument as integer value is deprecated.\""},{"line_number":110,"context_line":"                          \"You should use \u0027size\u0027 with keys \u0027min\u0027 and \u0027max\u0027 \""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_bb233405","line":107,"in_reply_to":"5ad0253b_72db911c","updated":"2015-04-29 08:36:25.000000000","message":"Done","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"}],"tests/unit/benchmark/scenarios/cinder/test_volumes.py":[{"author":{"_account_id":13555,"name":"Pradeep K Surisetty","username":"pradeepkumars","inactive":true},"change_message_id":"68452f1ba7294f5a13ad542e8a883e528d9e7edf","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        scenario.sleep_between \u003d mock.MagicMock()"},{"line_number":66,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        scenario.create_and_delete_volume(size\u003d{\u0027min\u0027: 2, \u0027max\u0027: 2})"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        scenario._create_volume.assert_called_once_with(2)"},{"line_number":71,"context_line":"        scenario.sleep_between.assert_called_once_with(0, 0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_d5259dc2","line":68,"updated":"2015-04-28 08:03:16.000000000","message":"why min and max are same?","commit_id":"f9c98fb73a918e062c7f60e1127a49df14d94760"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"dc99ba62586a9d172b771b7973a4732c16db1fd2","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        scenario.sleep_between \u003d mock.MagicMock()"},{"line_number":66,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        scenario.create_and_delete_volume(size\u003d{\u0027min\u0027: 2, \u0027max\u0027: 2})"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        scenario._create_volume.assert_called_once_with(2)"},{"line_number":71,"context_line":"        scenario.sleep_between.assert_called_once_with(0, 0)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7ad32947_105a0384","line":68,"in_reply_to":"7ad32947_d5259dc2","updated":"2015-04-28 08:24:13.000000000","message":"It is simple test for check create_volume method called with range as input, AFAIK mock doesn\u0027t have assert called for arg from range, so to be sure create_volume called with specific arg - one value range used.","commit_id":"f9c98fb73a918e062c7f60e1127a49df14d94760"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"4467f7176d2e5e59f74c4029e9a7e4001205ed30","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        scenario.sleep_between \u003d mock.MagicMock()"},{"line_number":66,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        scenario.create_and_delete_volume(size\u003d{\"min\": 2, \"max\": 2})"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        scenario._create_volume.assert_called_once_with(2)"},{"line_number":71,"context_line":"        scenario.sleep_between.assert_called_once_with(0, 0)"}],"source_content_type":"text/x-python","patch_set":2,"id":"7ad32947_b4e9fc1c","line":68,"updated":"2015-04-28 11:19:25.000000000","message":"\"min\" and \"max\" must differ - use mock for that:\n\n @mock.patch(\"rally.benchmark.scenarios.cinder.volumes.random\")\n test_create_and_delete_volume_with_range(self, mock_random):\n     mock_random.randint.return_value \u003d 3\n     ...\n     scenario.create_and_delete_volume(size\u003d{\"min\": 2, \"max\": 5}) # size will be `3\u0027\n     ...\n     scenario._create_volume.assert_called_once_with(3)\n     ...\n     mock_random.randint.assert_called_once_with(2, 5)","commit_id":"c19e5859446f5df8258d908ca32e75b3c208ea16"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ce6c9ceb93e9804757c4ed43451d801610e32412","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @mock.patch(\"rally.benchmark.scenarios.cinder.volumes.random\")"},{"line_number":61,"context_line":"    def test_create_and_delete_volume_with_range(self, mock_random):"},{"line_number":62,"context_line":"        mock_random.randint.return_value \u003d 3"},{"line_number":63,"context_line":"        fake_volume \u003d mock.MagicMock()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        scenario \u003d volumes.CinderVolumes()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_c85cf2ef","line":62,"updated":"2015-04-28 20:50:37.000000000","message":"JFF: https://xkcd.com/221/","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"873c2d0247bd0314cac0174f75592307fe322e53","unresolved":false,"context_lines":[{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    @mock.patch(\"rally.benchmark.scenarios.cinder.volumes.random\")"},{"line_number":61,"context_line":"    def test_create_and_delete_volume_with_range(self, mock_random):"},{"line_number":62,"context_line":"        mock_random.randint.return_value \u003d 3"},{"line_number":63,"context_line":"        fake_volume \u003d mock.MagicMock()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        scenario \u003d volumes.CinderVolumes()"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_dbdb90ec","line":62,"in_reply_to":"5ad0253b_c85cf2ef","updated":"2015-04-29 08:36:25.000000000","message":":)","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ce6c9ceb93e9804757c4ed43451d801610e32412","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    @mock.patch(\"rally.benchmark.scenarios.cinder.volumes.random\")"},{"line_number":61,"context_line":"    def test_create_and_delete_volume_with_range(self, mock_random):"},{"line_number":62,"context_line":"        mock_random.randint.return_value \u003d 3"},{"line_number":63,"context_line":"        fake_volume \u003d mock.MagicMock()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        scenario \u003d volumes.CinderVolumes()"},{"line_number":66,"context_line":"        scenario._create_volume \u003d mock.MagicMock(return_value\u003dfake_volume)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_48bb420f","line":63,"updated":"2015-04-28 20:50:37.000000000","message":"Just Mock()","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"873c2d0247bd0314cac0174f75592307fe322e53","unresolved":false,"context_lines":[{"line_number":60,"context_line":"    @mock.patch(\"rally.benchmark.scenarios.cinder.volumes.random\")"},{"line_number":61,"context_line":"    def test_create_and_delete_volume_with_range(self, mock_random):"},{"line_number":62,"context_line":"        mock_random.randint.return_value \u003d 3"},{"line_number":63,"context_line":"        fake_volume \u003d mock.MagicMock()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        scenario \u003d volumes.CinderVolumes()"},{"line_number":66,"context_line":"        scenario._create_volume \u003d mock.MagicMock(return_value\u003dfake_volume)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_f65b032d","line":63,"in_reply_to":"5ad0253b_48bb420f","updated":"2015-04-29 08:36:25.000000000","message":"Agree, but I tried to keep consistency with other code, if change it I think it should be done all over the file, and  in separate patch.","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ce6c9ceb93e9804757c4ed43451d801610e32412","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        fake_volume \u003d mock.MagicMock()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        scenario \u003d volumes.CinderVolumes()"},{"line_number":66,"context_line":"        scenario._create_volume \u003d mock.MagicMock(return_value\u003dfake_volume)"},{"line_number":67,"context_line":"        scenario.sleep_between \u003d mock.MagicMock()"},{"line_number":68,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_88483a2f","line":66,"updated":"2015-04-28 20:50:37.000000000","message":"Don\u0027t overuse MagicMock, use Mock instead as much as possible.","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"873c2d0247bd0314cac0174f75592307fe322e53","unresolved":false,"context_lines":[{"line_number":63,"context_line":"        fake_volume \u003d mock.MagicMock()"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"        scenario \u003d volumes.CinderVolumes()"},{"line_number":66,"context_line":"        scenario._create_volume \u003d mock.MagicMock(return_value\u003dfake_volume)"},{"line_number":67,"context_line":"        scenario.sleep_between \u003d mock.MagicMock()"},{"line_number":68,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_f672e3ac","line":66,"in_reply_to":"5ad0253b_88483a2f","updated":"2015-04-29 08:36:25.000000000","message":"comment above","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"ce6c9ceb93e9804757c4ed43451d801610e32412","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        scenario.sleep_between \u003d mock.MagicMock()"},{"line_number":68,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        scenario.create_and_delete_volume(size\u003d{\"min\": 1, \"max\": 5})"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        scenario._create_volume.assert_called_once_with(3)"},{"line_number":73,"context_line":"        scenario.sleep_between.assert_called_once_with(0, 0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_080aead2","line":70,"updated":"2015-04-28 20:50:37.000000000","message":"I see no test for warning being issued and no test for that codepath.","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"},{"author":{"_account_id":13636,"name":"aarefiev","display_name":"Anton","email":"arefyevanton@gmail.com","username":"aarefiev"},"change_message_id":"873c2d0247bd0314cac0174f75592307fe322e53","unresolved":false,"context_lines":[{"line_number":67,"context_line":"        scenario.sleep_between \u003d mock.MagicMock()"},{"line_number":68,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"        scenario.create_and_delete_volume(size\u003d{\"min\": 1, \"max\": 5})"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        scenario._create_volume.assert_called_once_with(3)"},{"line_number":73,"context_line":"        scenario.sleep_between.assert_called_once_with(0, 0)"}],"source_content_type":"text/x-python","patch_set":3,"id":"5ad0253b_76b6d33e","line":70,"in_reply_to":"5ad0253b_080aead2","updated":"2015-04-29 08:36:25.000000000","message":"Delete warning, and test case test_create_and_delete_volume for codepath you mean","commit_id":"7c513386cdd82721d57817d9595afffa283993eb"}]}
