)]}'
{"rally/benchmark/engine.py":[{"author":{"_account_id":9180,"name":"Olga Kopylova","email":"olkonami@gmail.com","username":"olkonami"},"change_message_id":"533b975f64d2736d8bee27bc6b680e1acbaab017","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                key \u003d {\u0027name\u0027: name, \u0027pos\u0027: n, \u0027kw\u0027: kw}"},{"line_number":190,"context_line":"                LOG.info(\"Running benchmark with key: %s\" % key)"},{"line_number":191,"context_line":"                result_queue \u003d collections.deque()"},{"line_number":192,"context_line":"                runner \u003d self._get_runner(kw, result_queue)"},{"line_number":193,"context_line":"                is_done \u003d threading.Event()"},{"line_number":194,"context_line":"                consumer \u003d threading.Thread("},{"line_number":195,"context_line":"                    target\u003dself.consume_results,"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_998225c7","line":192,"updated":"2014-07-08 20:37:46.000000000","message":"I think it\u0027s better to make result_query an attribute of base.ScenarioRunner than pass it as parameter","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":12124,"name":"Artem Borzilov","email":"helendile@gmail.com","username":"uppi"},"change_message_id":"c7cee27da6ebc79f451277fb275a9574bb9ac93b","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                key \u003d {\u0027name\u0027: name, \u0027pos\u0027: n, \u0027kw\u0027: kw}"},{"line_number":190,"context_line":"                LOG.info(\"Running benchmark with key: %s\" % key)"},{"line_number":191,"context_line":"                result_queue \u003d collections.deque()"},{"line_number":192,"context_line":"                runner \u003d self._get_runner(kw, result_queue)"},{"line_number":193,"context_line":"                is_done \u003d threading.Event()"},{"line_number":194,"context_line":"                consumer \u003d threading.Thread("},{"line_number":195,"context_line":"                    target\u003dself.consume_results,"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_54a92f23","line":192,"in_reply_to":"baada198_998225c7","updated":"2014-07-08 21:41:58.000000000","message":"Sure. It seems to be an artifact from the previous solution.","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":9180,"name":"Olga Kopylova","email":"olkonami@gmail.com","username":"olkonami"},"change_message_id":"533b975f64d2736d8bee27bc6b680e1acbaab017","unresolved":false,"context_lines":[{"line_number":190,"context_line":"                LOG.info(\"Running benchmark with key: %s\" % key)"},{"line_number":191,"context_line":"                result_queue \u003d collections.deque()"},{"line_number":192,"context_line":"                runner \u003d self._get_runner(kw, result_queue)"},{"line_number":193,"context_line":"                is_done \u003d threading.Event()"},{"line_number":194,"context_line":"                consumer \u003d threading.Thread("},{"line_number":195,"context_line":"                    target\u003dself.consume_results,"},{"line_number":196,"context_line":"                    args\u003d(key, self.task, result_queue, is_done))"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_84cb9c1d","line":193,"updated":"2014-07-08 20:37:46.000000000","message":"\"finished\" or \"complete\" looks better for me","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":9180,"name":"Olga Kopylova","email":"olkonami@gmail.com","username":"olkonami"},"change_message_id":"533b975f64d2736d8bee27bc6b680e1acbaab017","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        runner finishes it\u0027s work"},{"line_number":228,"context_line":"        \"\"\""},{"line_number":229,"context_line":"        results \u003d []"},{"line_number":230,"context_line":"        while True:"},{"line_number":231,"context_line":"            if result_queue:"},{"line_number":232,"context_line":"                result \u003d result_queue.popleft()"},{"line_number":233,"context_line":"                results.append(result)"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_9ffda571","line":230,"updated":"2014-07-08 20:37:46.000000000","message":"I prefere to rewrite this loop as\n\nwhile not is_done.isSet():\n\n    while not result_queue:\n\n        time.sleep(0.1)\n    \n     result \u003d result_queue.popleft()\n\n     results.append(result)","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":9180,"name":"Olga Kopylova","email":"olkonami@gmail.com","username":"olkonami"},"change_message_id":"26a369adbc898c3e2f234c7876bc99c15909e809","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        runner finishes it\u0027s work"},{"line_number":228,"context_line":"        \"\"\""},{"line_number":229,"context_line":"        results \u003d []"},{"line_number":230,"context_line":"        while True:"},{"line_number":231,"context_line":"            if result_queue:"},{"line_number":232,"context_line":"                result \u003d result_queue.popleft()"},{"line_number":233,"context_line":"                results.append(result)"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_a57df7e9","line":230,"in_reply_to":"baada198_7472b34a","updated":"2014-07-08 23:31:59.000000000","message":"oops, I missed possibility of this situation","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":12124,"name":"Artem Borzilov","email":"helendile@gmail.com","username":"uppi"},"change_message_id":"c7cee27da6ebc79f451277fb275a9574bb9ac93b","unresolved":false,"context_lines":[{"line_number":227,"context_line":"        runner finishes it\u0027s work"},{"line_number":228,"context_line":"        \"\"\""},{"line_number":229,"context_line":"        results \u003d []"},{"line_number":230,"context_line":"        while True:"},{"line_number":231,"context_line":"            if result_queue:"},{"line_number":232,"context_line":"                result \u003d result_queue.popleft()"},{"line_number":233,"context_line":"                results.append(result)"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_7472b34a","line":230,"in_reply_to":"baada198_9ffda571","updated":"2014-07-08 21:41:58.000000000","message":"This solution makes us lose all results that are still in the queue at the moment when the runner stops.","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":9180,"name":"Olga Kopylova","email":"olkonami@gmail.com","username":"olkonami"},"change_message_id":"533b975f64d2736d8bee27bc6b680e1acbaab017","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                break"},{"line_number":236,"context_line":"            else:"},{"line_number":237,"context_line":"                time.sleep(0.1)"},{"line_number":238,"context_line":"        task.append_results(key, {\"raw\": results})"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_1f48b5cb","line":238,"updated":"2014-07-08 20:37:46.000000000","message":"I don\u0027t see handling of results here, results just are stored in new place, we still have the full list here.\nAs I understend this task, we need to save it to database partly to decrease usage of RAM, etc.\nOr is it just preparation for further patches? If yes, please clarify it in the commit message.","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":12124,"name":"Artem Borzilov","email":"helendile@gmail.com","username":"uppi"},"change_message_id":"c7cee27da6ebc79f451277fb275a9574bb9ac93b","unresolved":false,"context_lines":[{"line_number":235,"context_line":"                break"},{"line_number":236,"context_line":"            else:"},{"line_number":237,"context_line":"                time.sleep(0.1)"},{"line_number":238,"context_line":"        task.append_results(key, {\"raw\": results})"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_941107b2","line":238,"in_reply_to":"baada198_1f48b5cb","updated":"2014-07-08 21:41:58.000000000","message":"Sure, it\u0027s just the first step on a long way. But you are right, clarifying the commit message is a good idea.","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":7369,"name":"Sergey Skripnick","email":"sskripnick@mirantis.com","username":"redixin"},"change_message_id":"893243bcd76a9ff882f5380adfa5d2c0c2bea746","unresolved":false,"context_lines":[{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    @staticmethod"},{"line_number":220,"context_line":"    def consume_results(key, task, result_queue, is_done):"},{"line_number":221,"context_line":"        \"\"\"Consume scenario runner results from queue and send them to db."},{"line_number":222,"context_line":"        Has to be run from different thread simultaneously with the runner.run"},{"line_number":223,"context_line":"        method."},{"line_number":224,"context_line":""}],"source_content_type":"text/x-python","patch_set":10,"id":"baada198_0926abba","line":221,"updated":"2014-07-09 13:56:50.000000000","message":"newline required","commit_id":"265deb891ff415c33a8f422a3a80391b2d1d5a62"}],"rally/benchmark/runners/base.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":16,"context_line":"import abc"},{"line_number":17,"context_line":"import collections"},{"line_number":18,"context_line":"import copy"},{"line_number":19,"context_line":"import jsonschema"},{"line_number":20,"context_line":"import multiprocessing"},{"line_number":21,"context_line":"import random"},{"line_number":22,"context_line":"import threading"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_ca1a4fc5","line":19,"updated":"2014-07-06 20:55:29.000000000","message":"we should move jsonschema to from oslo.config group (as it\u0027s third party lib)","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":137,"context_line":"        jsonschema.validate(result_list, self.RESULT_SCHEMA)"},{"line_number":138,"context_line":""},{"line_number":139,"context_line":""},{"line_number":140,"context_line":"class PipeTransport(object):"},{"line_number":141,"context_line":"    def __init__(self):"},{"line_number":142,"context_line":"        self.parent_conn \u003d None"},{"line_number":143,"context_line":"        self.child_conn \u003d None"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_2a44ab72","line":140,"updated":"2014-07-06 20:55:29.000000000","message":"So if we remove all magic that you add, there is no difference between \n\nPipeTransport() and multiprocessing.Pipe() so you didn\u0027t make it simpler to use multiprocessing.Pipe() and you added complexity which is not nice..","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":165,"context_line":""},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"class DummyTransport(object):"},{"line_number":168,"context_line":"    def __init__(self):"},{"line_number":169,"context_line":"        self._q \u003d collections.deque()"},{"line_number":170,"context_line":""},{"line_number":171,"context_line":"    def init(self):"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_ca8defd4","line":168,"updated":"2014-07-06 20:55:29.000000000","message":"We don\u0027t need this type of transport at all, end users of rally won\u0027t care what transport is used to publish/consumre results, and whole goal of this work is to use Pipe way. \u003d\u003e so getting rid of this method will make code simpler and shorter.","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            raise EOFError"},{"line_number":194,"context_line":""},{"line_number":195,"context_line":""},{"line_number":196,"context_line":"def run_simple(runner, name, context, args):"},{"line_number":197,"context_line":"    runner._run_worker(name, context, args)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_aa927bf3","line":196,"updated":"2014-07-06 20:55:29.000000000","message":"End user of rally doesn\u0027t care about how main benchmark process is run, it cares only about that everything works fine.\n\nIn our case, we need to use run_process, cause we must not block main process by long running benchmarking process.\n\nAs well we shouldn\u0027t use thread in this case (cause if we are using thread, sender \u0026 consumer will be in same process which may produce issues when consumer doesn\u0027t have enough cpu time to process results)","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":197,"context_line":"    runner._run_worker(name, context, args)"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":""},{"line_number":200,"context_line":"def run_in_process(runner, name, context, args):"},{"line_number":201,"context_line":"    process \u003d multiprocessing.Process("},{"line_number":202,"context_line":"        target\u003drun_simple, args\u003d(runner, name, context, args))"},{"line_number":203,"context_line":"    process.start()"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_ea4d539b","line":200,"updated":"2014-07-06 20:55:29.000000000","message":"In your approach in production we have to use separated thread for scenario runner, which is bad, cause it makes debugging of Scnearios super complex, and requires a lot of magic.\n\nWe should make vise versa, and keep consumer (of results, in separated process, cause usually we don\u0027t need to debug it, e.g. it\u0027s one time written and forgotten thing)","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    CONFIG_SCHEMA \u003d {}"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def __init__(self, task, endpoints, config,"},{"line_number":227,"context_line":"                 run_method\u003drun_in_process, transport_cls\u003dPipeTransport):"},{"line_number":228,"context_line":"        self.task \u003d task"},{"line_number":229,"context_line":"        self.endpoints \u003d endpoints"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_8aae972c","line":226,"updated":"2014-07-06 20:55:29.000000000","message":"So after my comments, you don\u0027t need these 2 arguments run_method, and transport_cls","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":224,"context_line":"    CONFIG_SCHEMA \u003d {}"},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"    def __init__(self, task, endpoints, config,"},{"line_number":227,"context_line":"                 run_method\u003drun_in_process, transport_cls\u003dPipeTransport):"},{"line_number":228,"context_line":"        self.task \u003d task"},{"line_number":229,"context_line":"        self.endpoints \u003d endpoints"},{"line_number":230,"context_line":"        # NOTE(msdubov): Passing predefined user endpoints hasn\u0027t been"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_2a83cbcc","line":227,"updated":"2014-07-06 20:55:29.000000000","message":"Never use complex types / instance as a default values. Because some day you can shit bricks during debug. E.g.\n\n  def test(lst\u003d[]):\n     lst.append(1)\n     print lst\n\n(Try to call it couple of times)","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":232,"context_line":"        #                a single admin endpoint here."},{"line_number":233,"context_line":"        self.admin_user \u003d endpoints[0]"},{"line_number":234,"context_line":"        self.config \u003d config"},{"line_number":235,"context_line":"        self._run_method \u003d run_method"},{"line_number":236,"context_line":"        self._transport \u003d transport_cls()"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    @staticmethod"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_aaa99b25","line":235,"updated":"2014-07-06 20:55:29.000000000","message":"These changes are as well not required","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":268,"context_line":"                  where each result is a dictionary"},{"line_number":269,"context_line":"        \"\"\""},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def send_result(self, value):"},{"line_number":272,"context_line":"        \"\"\"Send partial result to the listener.\"\"\""},{"line_number":273,"context_line":"        self.send_results([value])"},{"line_number":274,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_ea63933f","line":271,"updated":"2014-07-06 20:55:29.000000000","message":"This should be \"_send_result\" cause it\u0027s private method\n\n\nBtw WTF, send_result is calling send_results?? maybe vise versa?","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":269,"context_line":"        \"\"\""},{"line_number":270,"context_line":""},{"line_number":271,"context_line":"    def send_result(self, value):"},{"line_number":272,"context_line":"        \"\"\"Send partial result to the listener.\"\"\""},{"line_number":273,"context_line":"        self.send_results([value])"},{"line_number":274,"context_line":""},{"line_number":275,"context_line":"    def send_results(self, values):"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_0a67e74d","line":272,"updated":"2014-07-06 20:55:29.000000000","message":"it\u0027s better to add docstring e.g.:\n\n:param value: wtf is value here","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":277,"context_line":"        self.send_raw(ScenarioRunnerResult(values))"},{"line_number":278,"context_line":""},{"line_number":279,"context_line":"    def send_raw(self, raw_value):"},{"line_number":280,"context_line":"        self._transport.send(raw_value)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    def _results(self):"},{"line_number":283,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_2a5aeb82","line":280,"updated":"2014-07-06 20:55:29.000000000","message":"Sooo, \n\nsend_result, send_results, send_raw instead of just 1 simple method that does everything:\n\n  def _push_results(self, results):\n     self._transport.send(ScenarioRunnerResult(results))","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":279,"context_line":"    def send_raw(self, raw_value):"},{"line_number":280,"context_line":"        self._transport.send(raw_value)"},{"line_number":281,"context_line":""},{"line_number":282,"context_line":"    def _results(self):"},{"line_number":283,"context_line":"        try:"},{"line_number":284,"context_line":"            while True:"},{"line_number":285,"context_line":"                next_results \u003d self._transport.receive()"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_aa80bb8b","line":282,"updated":"2014-07-06 20:55:29.000000000","message":"def _iter_results(self) \n\nis better name.","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":289,"context_line":"        except EOFError:"},{"line_number":290,"context_line":"            self._transport.close_at_host()"},{"line_number":291,"context_line":"            raise StopIteration"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def _run_worker(self, name, context, args):"},{"line_number":294,"context_line":"        try:"},{"line_number":295,"context_line":"            self._transport.prepare_at_worker()"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_eacab319","line":292,"updated":"2014-07-06 20:55:29.000000000","message":"Sooo KISS approach says, to be able to send results you need 1 method, send_result not 4 (send_result, send_results, send_raw, and _results). \n\nI won\u0027t merge this unitl there will be only 1 method (send result)","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f4792db621a4bd5be4752689c3841d042eb904be","unresolved":false,"context_lines":[{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    def _run_worker(self, name, context, args):"},{"line_number":294,"context_line":"        try:"},{"line_number":295,"context_line":"            self._transport.prepare_at_worker()"},{"line_number":296,"context_line":""},{"line_number":297,"context_line":"            cls_name, method_name \u003d name.split(\".\", 1)"},{"line_number":298,"context_line":"            cls \u003d base.Scenario.get_by_name(cls_name)"}],"source_content_type":"text/x-python","patch_set":6,"id":"baada198_2ad10bcd","line":295,"updated":"2014-07-06 20:55:29.000000000","message":"This is why in python there is \"with\" statement..","commit_id":"9b60a550451d0bd282f99bf27b21f37963e5e7d0"},{"author":{"_account_id":9180,"name":"Olga Kopylova","email":"olkonami@gmail.com","username":"olkonami"},"change_message_id":"533b975f64d2736d8bee27bc6b680e1acbaab017","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        #                a single admin endpoint here."},{"line_number":152,"context_line":"        self.admin_user \u003d endpoints[0]"},{"line_number":153,"context_line":"        self.config \u003d config"},{"line_number":154,"context_line":"        self.result_queue \u003d result_queue"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @staticmethod"},{"line_number":157,"context_line":"    def _get_cls(runner_type):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_842abc7c","line":154,"updated":"2014-07-08 20:37:46.000000000","message":"we can init queue here and then get it as attribute of runner if it is needed","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":12124,"name":"Artem Borzilov","email":"helendile@gmail.com","username":"uppi"},"change_message_id":"c7cee27da6ebc79f451277fb275a9574bb9ac93b","unresolved":false,"context_lines":[{"line_number":151,"context_line":"        #                a single admin endpoint here."},{"line_number":152,"context_line":"        self.admin_user \u003d endpoints[0]"},{"line_number":153,"context_line":"        self.config \u003d config"},{"line_number":154,"context_line":"        self.result_queue \u003d result_queue"},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"    @staticmethod"},{"line_number":157,"context_line":"    def _get_cls(runner_type):"}],"source_content_type":"text/x-python","patch_set":8,"id":"baada198_747d53b1","line":154,"in_reply_to":"baada198_842abc7c","updated":"2014-07-08 21:41:58.000000000","message":"Done","commit_id":"64898d7ef1ae41d3a9031a5b017b4eecdef11ac8"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a936740211b89f825cf5dd71ad0580e147ea46f2","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    def _send_result(self, result):"},{"line_number":214,"context_line":"        \"\"\"Send partial result to consumer."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        :param result: Result dict to be sent"},{"line_number":217,"context_line":"        \"\"\""},{"line_number":218,"context_line":"        self.result_queue.append(ScenarioRunnerResult(result))"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_4acdf85c","line":216,"updated":"2014-07-09 12:27:16.000000000","message":"you should be more verbose here, and say what is it expecting (e.g. that result is input for ScenarioRunnerResult)","commit_id":"7b6161ff79620b483c6e5805b0aa6818531a85f1"},{"author":{"_account_id":12124,"name":"Artem Borzilov","email":"helendile@gmail.com","username":"uppi"},"change_message_id":"85504cfadcd062c78290437322c545e304a2d183","unresolved":false,"context_lines":[{"line_number":213,"context_line":"    def _send_result(self, result):"},{"line_number":214,"context_line":"        \"\"\"Send partial result to consumer."},{"line_number":215,"context_line":""},{"line_number":216,"context_line":"        :param result: Result dict to be sent"},{"line_number":217,"context_line":"        \"\"\""},{"line_number":218,"context_line":"        self.result_queue.append(ScenarioRunnerResult(result))"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_e598bd6c","line":216,"in_reply_to":"baada198_4acdf85c","updated":"2014-07-09 13:20:51.000000000","message":"Done","commit_id":"7b6161ff79620b483c6e5805b0aa6818531a85f1"}],"tests/benchmark/runners/test_base.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a936740211b89f825cf5dd71ad0580e147ea46f2","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        mock_ctx_manager.run.assert_called_once_with(*expected)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @mock.patch(\"rally.benchmark.runners.base.base_ctx.ContextManager\")"},{"line_number":238,"context_line":"    def test_run_scenario_runner_results_exception(self, mock_ctx_manager):"},{"line_number":239,"context_line":"        pass"},{"line_number":240,"context_line":"        # This test won\u0027t pass, cause mock input won\u0027t cause runner"},{"line_number":241,"context_line":"        # to generate any results."}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_aa1134b1","line":238,"updated":"2014-07-09 12:27:16.000000000","message":"You should make equal test, not just put pass","commit_id":"7b6161ff79620b483c6e5805b0aa6818531a85f1"},{"author":{"_account_id":12124,"name":"Artem Borzilov","email":"helendile@gmail.com","username":"uppi"},"change_message_id":"85504cfadcd062c78290437322c545e304a2d183","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        mock_ctx_manager.run.assert_called_once_with(*expected)"},{"line_number":236,"context_line":""},{"line_number":237,"context_line":"    @mock.patch(\"rally.benchmark.runners.base.base_ctx.ContextManager\")"},{"line_number":238,"context_line":"    def test_run_scenario_runner_results_exception(self, mock_ctx_manager):"},{"line_number":239,"context_line":"        pass"},{"line_number":240,"context_line":"        # This test won\u0027t pass, cause mock input won\u0027t cause runner"},{"line_number":241,"context_line":"        # to generate any results."}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_a0bb1374","line":238,"in_reply_to":"baada198_aa1134b1","updated":"2014-07-09 13:20:51.000000000","message":"Done","commit_id":"7b6161ff79620b483c6e5805b0aa6818531a85f1"}],"tests/benchmark/test_engine.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"a936740211b89f825cf5dd71ad0580e147ea46f2","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @mock.patch(\"rally.benchmark.engine.BenchmarkEngine.consume_results\")"},{"line_number":262,"context_line":"    @mock.patch(\"rally.benchmark.engine.base_runner.ScenarioRunner\")"},{"line_number":263,"context_line":"    @mock.patch(\"rally.benchmark.engine.osclients\")"},{"line_number":264,"context_line":"    @mock.patch(\"rally.benchmark.engine.endpoint.Endpoint\")"},{"line_number":265,"context_line":"    def test_run__config_has_context(self, mock_endpoint, mock_osclients,"},{"line_number":266,"context_line":"                                     mock_runner, mock_consume):"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_aa5f7474","line":263,"updated":"2014-07-09 12:27:16.000000000","message":"why it\u0027s required ?","commit_id":"7b6161ff79620b483c6e5805b0aa6818531a85f1"},{"author":{"_account_id":12124,"name":"Artem Borzilov","email":"helendile@gmail.com","username":"uppi"},"change_message_id":"85504cfadcd062c78290437322c545e304a2d183","unresolved":false,"context_lines":[{"line_number":260,"context_line":""},{"line_number":261,"context_line":"    @mock.patch(\"rally.benchmark.engine.BenchmarkEngine.consume_results\")"},{"line_number":262,"context_line":"    @mock.patch(\"rally.benchmark.engine.base_runner.ScenarioRunner\")"},{"line_number":263,"context_line":"    @mock.patch(\"rally.benchmark.engine.osclients\")"},{"line_number":264,"context_line":"    @mock.patch(\"rally.benchmark.engine.endpoint.Endpoint\")"},{"line_number":265,"context_line":"    def test_run__config_has_context(self, mock_endpoint, mock_osclients,"},{"line_number":266,"context_line":"                                     mock_runner, mock_consume):"}],"source_content_type":"text/x-python","patch_set":9,"id":"baada198_a5a085a6","line":263,"in_reply_to":"baada198_aa5f7474","updated":"2014-07-09 13:20:51.000000000","message":"I\u0027ve just swapped already existent mocks, cause they didn\u0027t match the args.","commit_id":"7b6161ff79620b483c6e5805b0aa6818531a85f1"}]}
