)]}'
{"rally/task/engine.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4bc39c70597d96d3f4c3e8cfe1d34a490f722822","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            if self.runner.result_queue:"},{"line_number":84,"context_line":"                results \u003d self.runner.result_queue.popleft()"},{"line_number":85,"context_line":"                self.results.extend(results)"},{"line_number":86,"context_line":"            elif self.runner.sla_queue:"},{"line_number":87,"context_line":"                sla \u003d pickle.loads(self.runner.sla_queue.popleft())"},{"line_number":88,"context_line":"                success \u003d self.sla_checker.merge(sla)"},{"line_number":89,"context_line":"                if self.abort_on_sla_failure and not success:"}],"source_content_type":"text/x-python","patch_set":18,"id":"da6ed579_98566105","line":86,"updated":"2016-01-12 00:43:32.000000000","message":"Is it normal that we add results to results OR merge sla? Here must be AND. Why we don\u0027t need to merge sla when result_queue is not None?","commit_id":"463d10879a015a4c57d8d15c07652935124aebea"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a027f233f96527dfa05bff90a2f8469f7467e8ea","unresolved":false,"context_lines":[{"line_number":83,"context_line":"            if self.runner.result_queue:"},{"line_number":84,"context_line":"                results \u003d self.runner.result_queue.popleft()"},{"line_number":85,"context_line":"                self.results.extend(results)"},{"line_number":86,"context_line":"            elif self.runner.sla_queue:"},{"line_number":87,"context_line":"                sla \u003d pickle.loads(self.runner.sla_queue.popleft())"},{"line_number":88,"context_line":"                success \u003d self.sla_checker.merge(sla)"},{"line_number":89,"context_line":"                if self.abort_on_sla_failure and not success:"}],"source_content_type":"text/x-python","patch_set":18,"id":"da6ed579_5968d8f5","line":86,"in_reply_to":"da6ed579_98566105","updated":"2016-01-12 11:18:07.000000000","message":"It\u0027s like \"we don\u0027t really need RIGHT now, we gonna get back to it in the next iteration\". And we could only \u0027sleep\u0027 if we haven\u0027t done anything useful.\nBut that\u0027s for pointing this out. With \u0027OR\u0027 logic there still some corner cases could be missed. I\u0027ll make it \u0027AND\u0027","commit_id":"463d10879a015a4c57d8d15c07652935124aebea"}],"rally/task/runner.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"d04bdfccfe3c0f23185dce2e280a5730b1f4e962","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import multiprocessing"},{"line_number":19,"context_line":"import pickle"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import jsonschema"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_cc47d549","line":19,"updated":"2015-12-16 14:51:32.000000000","message":"why not to try import cPicle?","commit_id":"4f8f4b73fdf348b7cf4704ebfd4269999dac8860"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"eff4fae9acc9174970e1b91779ac60a3dce4ae54","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import multiprocessing"},{"line_number":19,"context_line":"import pickle"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"import jsonschema"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_542ccb01","line":19,"in_reply_to":"5a710552_cc47d549","updated":"2015-12-16 14:55:08.000000000","message":"Thanks, just missed that","commit_id":"4f8f4b73fdf348b7cf4704ebfd4269999dac8860"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"d04bdfccfe3c0f23185dce2e280a5730b1f4e962","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        :param task: Instance of objects.Task"},{"line_number":175,"context_line":"        :param config: Dict with runner section from benchmark configuration"},{"line_number":176,"context_line":"        \"\"\""},{"line_number":177,"context_line":"        self.task \u003d task"},{"line_number":178,"context_line":"        self.config \u003d config"},{"line_number":179,"context_line":"        self.result_queue \u003d collections.deque()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_592724b6","line":176,"updated":"2015-12-16 14:51:32.000000000","message":"Missing :param ...: for sla, sla_timeout and batch_size","commit_id":"4f8f4b73fdf348b7cf4704ebfd4269999dac8860"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"eff4fae9acc9174970e1b91779ac60a3dce4ae54","unresolved":false,"context_lines":[{"line_number":173,"context_line":""},{"line_number":174,"context_line":"        :param task: Instance of objects.Task"},{"line_number":175,"context_line":"        :param config: Dict with runner section from benchmark configuration"},{"line_number":176,"context_line":"        \"\"\""},{"line_number":177,"context_line":"        self.task \u003d task"},{"line_number":178,"context_line":"        self.config \u003d config"},{"line_number":179,"context_line":"        self.result_queue \u003d collections.deque()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_f4cdb75d","line":176,"in_reply_to":"5a710552_592724b6","updated":"2015-12-16 14:55:08.000000000","message":"will do","commit_id":"4f8f4b73fdf348b7cf4704ebfd4269999dac8860"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"d04bdfccfe3c0f23185dce2e280a5730b1f4e962","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        self.batch_size \u003d batch_size"},{"line_number":183,"context_line":"        self.result_batch \u003d []"},{"line_number":184,"context_line":"        self.sla_config \u003d sla"},{"line_number":185,"context_line":"        self.sla_timeout \u003d 0"},{"line_number":186,"context_line":"        self.last_result_timestamp \u003d 0"},{"line_number":187,"context_line":"        self.sla_checker \u003d None"},{"line_number":188,"context_line":"        self.sla_queue \u003d collections.deque()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_d6552350","line":185,"updated":"2015-12-16 14:51:32.000000000","message":"Probably: self.sla_timeout \u003d sla_timeout","commit_id":"4f8f4b73fdf348b7cf4704ebfd4269999dac8860"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"eff4fae9acc9174970e1b91779ac60a3dce4ae54","unresolved":false,"context_lines":[{"line_number":182,"context_line":"        self.batch_size \u003d batch_size"},{"line_number":183,"context_line":"        self.result_batch \u003d []"},{"line_number":184,"context_line":"        self.sla_config \u003d sla"},{"line_number":185,"context_line":"        self.sla_timeout \u003d 0"},{"line_number":186,"context_line":"        self.last_result_timestamp \u003d 0"},{"line_number":187,"context_line":"        self.sla_checker \u003d None"},{"line_number":188,"context_line":"        self.sla_queue \u003d collections.deque()"}],"source_content_type":"text/x-python","patch_set":7,"id":"5a710552_34eb3fb2","line":185,"in_reply_to":"5a710552_d6552350","updated":"2015-12-16 14:55:08.000000000","message":"Oh, my! Thanks man","commit_id":"4f8f4b73fdf348b7cf4704ebfd4269999dac8860"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"bf4e2f20ebd1fdb683b4967ee617aa1e7a7705f4","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    CONFIG_SCHEMA \u003d {}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def __init__(self, task, config, sla, batch_size\u003d0, sla_timeout\u003d0):"},{"line_number":174,"context_line":"        \"\"\"Runner constructor."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        It sets task and config to local variables. Also initialize"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_a24ad181","line":173,"updated":"2015-12-17 13:23:13.000000000","message":"Not critical but can be considered as bad style: argument `sla\u0027 clashes with imported module `sla\u0027 so this 1) may cause confusion and 2) module can not be used within this method. I recommend to rename argument (for example, to `sla_config\u0027)","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"601f5140ac77d22481128a554668c899ad668b6a","unresolved":false,"context_lines":[{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    CONFIG_SCHEMA \u003d {}"},{"line_number":172,"context_line":""},{"line_number":173,"context_line":"    def __init__(self, task, config, sla, batch_size\u003d0, sla_timeout\u003d0):"},{"line_number":174,"context_line":"        \"\"\"Runner constructor."},{"line_number":175,"context_line":""},{"line_number":176,"context_line":"        It sets task and config to local variables. Also initialize"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_ad787d2c","line":173,"in_reply_to":"3a7e1126_a24ad181","updated":"2015-12-17 14:13:18.000000000","message":"Done","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4bc39c70597d96d3f4c3e8cfe1d34a490f722822","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                    (below \"sla\" key)"},{"line_number":189,"context_line":"        :param batch_size: Number of task results in returned batch"},{"line_number":190,"context_line":"        :param sla_timeout: Timeout in seconds after which SLAChecker instance"},{"line_number":191,"context_line":"                            is enqueued into sla_queue"},{"line_number":192,"context_line":"        \"\"\""},{"line_number":193,"context_line":"        self.task \u003d task"},{"line_number":194,"context_line":"        self.config \u003d config"}],"source_content_type":"text/x-python","patch_set":18,"id":"da6ed579_fde18fd1","line":191,"updated":"2016-01-12 00:43:32.000000000","message":"Nit: Not all parameters are documented","commit_id":"463d10879a015a4c57d8d15c07652935124aebea"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a027f233f96527dfa05bff90a2f8469f7467e8ea","unresolved":false,"context_lines":[{"line_number":188,"context_line":"                    (below \"sla\" key)"},{"line_number":189,"context_line":"        :param batch_size: Number of task results in returned batch"},{"line_number":190,"context_line":"        :param sla_timeout: Timeout in seconds after which SLAChecker instance"},{"line_number":191,"context_line":"                            is enqueued into sla_queue"},{"line_number":192,"context_line":"        \"\"\""},{"line_number":193,"context_line":"        self.task \u003d task"},{"line_number":194,"context_line":"        self.config \u003d config"}],"source_content_type":"text/x-python","patch_set":18,"id":"da6ed579_365e53ea","line":191,"in_reply_to":"da6ed579_fde18fd1","updated":"2016-01-12 11:18:07.000000000","message":"I may be on a slow side a bit, but I just can\u0027t see what I missed. Could u pls point me more directly?","commit_id":"463d10879a015a4c57d8d15c07652935124aebea"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"4bc39c70597d96d3f4c3e8cfe1d34a490f722822","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            self.sla_queue.append(pickle.dumps(self.sla_checker))"},{"line_number":314,"context_line":"            self.sla_checker \u003d None"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        self.last_result_timestamp \u003d now"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        self.result_batch.append(r)"},{"line_number":319,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"da6ed579_b8b805e7","line":316,"updated":"2016-01-12 00:43:32.000000000","message":"Isn\u0027t this should be in if statement? Its strange that we append sla_checker(with many results) if previous result was gotten too long ago. Maybe more logicaly to send sla_checker to sla_queue when we don\u0027t send it too long? In the main I don\u0027t undestand what are the purpose of sla_timeout) Could you explain?","commit_id":"463d10879a015a4c57d8d15c07652935124aebea"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"a027f233f96527dfa05bff90a2f8469f7467e8ea","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            self.sla_queue.append(pickle.dumps(self.sla_checker))"},{"line_number":314,"context_line":"            self.sla_checker \u003d None"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        self.last_result_timestamp \u003d now"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        self.result_batch.append(r)"},{"line_number":319,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"da6ed579_567e67e5","line":316,"in_reply_to":"da6ed579_58f8e97c","updated":"2016-01-12 11:18:07.000000000","message":"Well, the whole idea is to send sla_checker (more or less) each \u0027sla_timeout\u0027. In fact we now report sla_checker each \u0027sla_timeout\u0027 + duration of scenario run. I plan to make this more precise a bit later.\nAs for line 316, I think you\u0027re right. Looks like there\u0027s an issue.","commit_id":"463d10879a015a4c57d8d15c07652935124aebea"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"d90eedf36278ecbc6d9300e0f25bb753436631fa","unresolved":false,"context_lines":[{"line_number":313,"context_line":"            self.sla_queue.append(pickle.dumps(self.sla_checker))"},{"line_number":314,"context_line":"            self.sla_checker \u003d None"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":"        self.last_result_timestamp \u003d now"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"        self.result_batch.append(r)"},{"line_number":319,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"da6ed579_58f8e97c","line":316,"in_reply_to":"da6ed579_b8b805e7","updated":"2016-01-12 00:46:30.000000000","message":"Reading \"Timeout in seconds after which SLAChecker instance is enqueued into sla_queue\" I think it should. Am I right?","commit_id":"463d10879a015a4c57d8d15c07652935124aebea"}],"tests/unit/task/test_runner.py":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"bf4e2f20ebd1fdb683b4967ee617aa1e7a7705f4","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        result_count \u003d 3"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        for x in xrange(result_count):"},{"line_number":274,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        self.assertIsNotNone(runner_obj.sla_checker)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_9d63761a","line":273,"updated":"2015-12-17 13:23:13.000000000","message":"range or six.moves.range","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"601f5140ac77d22481128a554668c899ad668b6a","unresolved":false,"context_lines":[{"line_number":270,"context_line":""},{"line_number":271,"context_line":"        result_count \u003d 3"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"        for x in xrange(result_count):"},{"line_number":274,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        self.assertIsNotNone(runner_obj.sla_checker)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_ed9c455f","line":273,"in_reply_to":"3a7e1126_9d63761a","updated":"2015-12-17 14:13:18.000000000","message":"Done","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"bf4e2f20ebd1fdb683b4967ee617aa1e7a7705f4","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @mock.patch(\"jsonschema.validate\")"},{"line_number":288,"context_line":"    @mock.patch(\"rally.task.sla.SLAChecker\")"},{"line_number":289,"context_line":"    def test_runner_with_sla_timeout_flush_results("},{"line_number":290,"context_line":"            self, mock_sla_checker, mock_validate):"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        mock_sla_checker.return_value \u003d FakeSLAChecker()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_b87e80e2","line":289,"updated":"2015-12-17 13:23:13.000000000","message":"We do not have hacking rule for that however I would recommend to use same naming rule as is used for others unit tests - `test_\u0027 + \u003cname of tested callable\u003e + \u003coptional case comment\u003e - this notation gives immediate info what is actually tested\n\nSo in this case test name should be `test__flush_results_runner_with_sla_timeout\u0027\n\nSame recommendation for other tests","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"601f5140ac77d22481128a554668c899ad668b6a","unresolved":false,"context_lines":[{"line_number":286,"context_line":""},{"line_number":287,"context_line":"    @mock.patch(\"jsonschema.validate\")"},{"line_number":288,"context_line":"    @mock.patch(\"rally.task.sla.SLAChecker\")"},{"line_number":289,"context_line":"    def test_runner_with_sla_timeout_flush_results("},{"line_number":290,"context_line":"            self, mock_sla_checker, mock_validate):"},{"line_number":291,"context_line":""},{"line_number":292,"context_line":"        mock_sla_checker.return_value \u003d FakeSLAChecker()"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_4daeb986","line":289,"in_reply_to":"3a7e1126_b87e80e2","updated":"2015-12-17 14:13:18.000000000","message":"Done","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"bf4e2f20ebd1fdb683b4967ee617aa1e7a7705f4","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                                mock.MagicMock(), 0, sla_timeout)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        result_count \u003d 3"},{"line_number":300,"context_line":"        for x in xrange(result_count):"},{"line_number":301,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        self.assertIsNotNone(runner_obj.sla_checker)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_3dae022f","line":300,"updated":"2015-12-17 13:23:13.000000000","message":"ditto","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"601f5140ac77d22481128a554668c899ad668b6a","unresolved":false,"context_lines":[{"line_number":297,"context_line":"                                mock.MagicMock(), 0, sla_timeout)"},{"line_number":298,"context_line":""},{"line_number":299,"context_line":"        result_count \u003d 3"},{"line_number":300,"context_line":"        for x in xrange(result_count):"},{"line_number":301,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"},{"line_number":302,"context_line":""},{"line_number":303,"context_line":"        self.assertIsNotNone(runner_obj.sla_checker)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_6da9357b","line":300,"in_reply_to":"3a7e1126_3dae022f","updated":"2015-12-17 14:13:18.000000000","message":"Done","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"bf4e2f20ebd1fdb683b4967ee617aa1e7a7705f4","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        runner_obj \u003d FakeRunner(mock.MagicMock(), mock.MagicMock(),"},{"line_number":323,"context_line":"                                mock.MagicMock(), batch_size)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        for x in xrange(batch_size - 1):"},{"line_number":326,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        self.assertEqual(batch_size - 1, len(runner_obj.result_batch))"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_bd1d1275","line":325,"updated":"2015-12-17 13:23:13.000000000","message":"ditto","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"601f5140ac77d22481128a554668c899ad668b6a","unresolved":false,"context_lines":[{"line_number":322,"context_line":"        runner_obj \u003d FakeRunner(mock.MagicMock(), mock.MagicMock(),"},{"line_number":323,"context_line":"                                mock.MagicMock(), batch_size)"},{"line_number":324,"context_line":""},{"line_number":325,"context_line":"        for x in xrange(batch_size - 1):"},{"line_number":326,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"        self.assertEqual(batch_size - 1, len(runner_obj.result_batch))"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_cdb069e0","line":325,"in_reply_to":"3a7e1126_bd1d1275","updated":"2015-12-17 14:13:18.000000000","message":"Done","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"bf4e2f20ebd1fdb683b4967ee617aa1e7a7705f4","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        runner_obj \u003d FakeRunner(mock.MagicMock(), mock.MagicMock(),"},{"line_number":348,"context_line":"                                mock.MagicMock(), batch_size)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        for x in xrange(batch_size - 1):"},{"line_number":351,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        self.assertEqual(batch_size - 1, len(runner_obj.result_batch))"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_7d17aa51","line":350,"updated":"2015-12-17 13:23:13.000000000","message":"ditto","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"601f5140ac77d22481128a554668c899ad668b6a","unresolved":false,"context_lines":[{"line_number":347,"context_line":"        runner_obj \u003d FakeRunner(mock.MagicMock(), mock.MagicMock(),"},{"line_number":348,"context_line":"                                mock.MagicMock(), batch_size)"},{"line_number":349,"context_line":""},{"line_number":350,"context_line":"        for x in xrange(batch_size - 1):"},{"line_number":351,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"        self.assertEqual(batch_size - 1, len(runner_obj.result_batch))"}],"source_content_type":"text/x-python","patch_set":9,"id":"3a7e1126_edb3e5e7","line":350,"in_reply_to":"3a7e1126_7d17aa51","updated":"2015-12-17 14:13:18.000000000","message":"Done","commit_id":"a5d0593b19ca03425a17a6dadf5bd387405428fd"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"aea9843eba5d4b814cd3bfccf843dd7d2e7c5399","unresolved":false,"context_lines":[{"line_number":21,"context_line":"except ImportError:"},{"line_number":22,"context_line":"    import pickle"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import time"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import jsonschema"},{"line_number":27,"context_line":"import mock"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a7e1126_ae271011","line":24,"updated":"2015-12-17 15:17:25.000000000","message":"Just recommendation - imho the best practice is mock\u0027ing rally.task.runner.time with giving this mock required behavior (side_effect or return_value) so we would 100% guarantee that time() will return required values inside specific test","commit_id":"00aac5ee9619a636f7c77f790dfea03d9eeedca1"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"95edb09ee397ccaac857977484fe1a21d2c888f9","unresolved":false,"context_lines":[{"line_number":21,"context_line":"except ImportError:"},{"line_number":22,"context_line":"    import pickle"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"import time"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"import jsonschema"},{"line_number":27,"context_line":"import mock"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a7e1126_7155754e","line":24,"in_reply_to":"3a7e1126_ae271011","updated":"2015-12-17 20:24:27.000000000","message":"Done","commit_id":"00aac5ee9619a636f7c77f790dfea03d9eeedca1"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"aea9843eba5d4b814cd3bfccf843dd7d2e7c5399","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        runner_obj \u003d FakeRunner(mock.MagicMock(), mock.MagicMock(),"},{"line_number":298,"context_line":"                                mock.MagicMock(), 0, sla_timeout)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        result_count \u003d 3"},{"line_number":301,"context_line":"        for x in six.moves.range(result_count):"},{"line_number":302,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a7e1126_eb6d0a05","line":299,"updated":"2015-12-17 15:17:25.000000000","message":"Just a recommendation (since passed arguments are positional):\n self.assertEqual(sla_timeout, runner_obj.sla_timeout)","commit_id":"00aac5ee9619a636f7c77f790dfea03d9eeedca1"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"95edb09ee397ccaac857977484fe1a21d2c888f9","unresolved":false,"context_lines":[{"line_number":296,"context_line":""},{"line_number":297,"context_line":"        runner_obj \u003d FakeRunner(mock.MagicMock(), mock.MagicMock(),"},{"line_number":298,"context_line":"                                mock.MagicMock(), 0, sla_timeout)"},{"line_number":299,"context_line":""},{"line_number":300,"context_line":"        result_count \u003d 3"},{"line_number":301,"context_line":"        for x in six.moves.range(result_count):"},{"line_number":302,"context_line":"            runner_obj._send_result({\"timestamp\": time.time()})"}],"source_content_type":"text/x-python","patch_set":11,"id":"3a7e1126_b15afd81","line":299,"in_reply_to":"3a7e1126_eb6d0a05","updated":"2015-12-17 20:24:27.000000000","message":"Done","commit_id":"00aac5ee9619a636f7c77f790dfea03d9eeedca1"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"aea9843eba5d4b814cd3bfccf843dd7d2e7c5399","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        self.assertEqual(0, len(runner_obj.result_batch))"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"class FakeSLAChecker():"},{"line_number":366,"context_line":"    def __init__(self):"},{"line_number":367,"context_line":"        self.count \u003d 0"},{"line_number":368,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a7e1126_6bfd9a39","line":365,"updated":"2015-12-17 15:17:25.000000000","message":"All Fake\u003csmth\u003e should be placed in tests.unit.fakes","commit_id":"00aac5ee9619a636f7c77f790dfea03d9eeedca1"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"95edb09ee397ccaac857977484fe1a21d2c888f9","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        self.assertEqual(0, len(runner_obj.result_batch))"},{"line_number":363,"context_line":""},{"line_number":364,"context_line":""},{"line_number":365,"context_line":"class FakeSLAChecker():"},{"line_number":366,"context_line":"    def __init__(self):"},{"line_number":367,"context_line":"        self.count \u003d 0"},{"line_number":368,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a7e1126_d1d469be","line":365,"in_reply_to":"3a7e1126_6bfd9a39","updated":"2015-12-17 20:24:27.000000000","message":"Done","commit_id":"00aac5ee9619a636f7c77f790dfea03d9eeedca1"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"aea9843eba5d4b814cd3bfccf843dd7d2e7c5399","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        self.count +\u003d 1"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"class FakeRunner(runner.ScenarioRunner):"},{"line_number":374,"context_line":"    def __init__(self, task, config, sla,"},{"line_number":375,"context_line":"                 batch_size\u003d0, sla_timeout\u003d0):"},{"line_number":376,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a7e1126_6b4fdabd","line":373,"updated":"2015-12-17 15:17:25.000000000","message":"This class should be moved to fakes.py, and FakeRunner already there: https://github.com/openstack/rally/blob/master/tests/unit/fakes.py#L1567","commit_id":"00aac5ee9619a636f7c77f790dfea03d9eeedca1"},{"author":{"_account_id":8491,"name":"Illia Khudoshyn","email":"ikhudoshyn@mirantis.com","username":"ikhudoshyn"},"change_message_id":"95edb09ee397ccaac857977484fe1a21d2c888f9","unresolved":false,"context_lines":[{"line_number":370,"context_line":"        self.count +\u003d 1"},{"line_number":371,"context_line":""},{"line_number":372,"context_line":""},{"line_number":373,"context_line":"class FakeRunner(runner.ScenarioRunner):"},{"line_number":374,"context_line":"    def __init__(self, task, config, sla,"},{"line_number":375,"context_line":"                 batch_size\u003d0, sla_timeout\u003d0):"},{"line_number":376,"context_line":""}],"source_content_type":"text/x-python","patch_set":11,"id":"3a7e1126_11cbd11f","line":373,"in_reply_to":"3a7e1126_6b4fdabd","updated":"2015-12-17 20:24:27.000000000","message":"Done","commit_id":"00aac5ee9619a636f7c77f790dfea03d9eeedca1"}]}
