)]}'
{"rally/api.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"f313ad425080519fe425e6d63a54525a1a09936f","unresolved":false,"context_lines":[{"line_number":440,"context_line":"        task_engine.validate()"},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"        LOG.info(\"Task %s input file is valid.\" % task[\"uuid\"])"},{"line_number":443,"context_line":"        task.update(title\u003dtask_engine.config.title,"},{"line_number":444,"context_line":"                    description\u003dtask_engine.config.description)"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        LOG.info(\"Run Task %s against Deployment %s\""}],"source_content_type":"text/x-python","patch_set":2,"id":"5f2577a7_64e34307","line":443,"updated":"2017-09-11 21:29:31.000000000","message":"this is one extra query to DB with no reason.\nWhy not storing this data when task is created.","commit_id":"3dd88193f04a1536566b8678beaa05b1d51ad4a5"},{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"2d44e340af26c98000e63aa3076c54bbfbb9ab45","unresolved":false,"context_lines":[{"line_number":440,"context_line":"            config \u003d engine.TaskConfig(config)"},{"line_number":441,"context_line":"        except Exception as e:"},{"line_number":442,"context_line":"            if logging.is_debug():"},{"line_number":443,"context_line":"                LOG.exception(e)"},{"line_number":444,"context_line":"            raise exceptions.InvalidTaskException(str(e))"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        if task is None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_0cea37ab","line":443,"updated":"2017-10-06 11:07:14.000000000","message":"LOG.exception(e) is wrong way to do things. \n\nLOG.exception printrs complete information about e \nrather you should write some message like \"Create TaskConfig failed\"","commit_id":"c567669d34a27ad5c0aedf550267beca0531c427"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"2dba2ced4a957dd9bad4912ee2bfecb69d4a8183","unresolved":false,"context_lines":[{"line_number":440,"context_line":"            config \u003d engine.TaskConfig(config)"},{"line_number":441,"context_line":"        except Exception as e:"},{"line_number":442,"context_line":"            if logging.is_debug():"},{"line_number":443,"context_line":"                LOG.exception(e)"},{"line_number":444,"context_line":"            raise exceptions.InvalidTaskException(str(e))"},{"line_number":445,"context_line":""},{"line_number":446,"context_line":"        if task is None:"}],"source_content_type":"text/x-python","patch_set":11,"id":"7f515b1d_59547021","line":443,"in_reply_to":"7f515b1d_0cea37ab","updated":"2017-10-06 12:56:36.000000000","message":"Done","commit_id":"c567669d34a27ad5c0aedf550267beca0531c427"}],"tests/unit/test_api.py":[{"author":{"_account_id":6172,"name":"Boris Pavlovic","email":"boris@pavlovic.me","username":"boris-42"},"change_message_id":"de569cae15b7bad84795ebaccbb90d0783aae3a1","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        #######################################################################"},{"line_number":148,"context_line":"        # The case #4 -- TaskConfig returns error"},{"line_number":149,"context_line":"        #######################################################################"},{"line_number":150,"context_line":"        mock_task_config.side_effect \u003d Exception(\"Who is a good boy?! Woof.\")"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        e \u003d self.assertRaises(exceptions.InvalidTaskException,"},{"line_number":153,"context_line":"                              self.task_inst.validate,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f515b1d_1af01b67","line":150,"updated":"2017-10-06 21:03:44.000000000","message":"I mean it\u0027s bad to have cases in test cases and don\u0027t use ddt or just seperated tests...","commit_id":"e4e105821ef1bcba5297539f1b4d9968cb6defd0"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"4a8fea797eb2c8e082660a5ff88f5c3ec602893d","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        #######################################################################"},{"line_number":148,"context_line":"        # The case #4 -- TaskConfig returns error"},{"line_number":149,"context_line":"        #######################################################################"},{"line_number":150,"context_line":"        mock_task_config.side_effect \u003d Exception(\"Who is a good boy?! Woof.\")"},{"line_number":151,"context_line":""},{"line_number":152,"context_line":"        e \u003d self.assertRaises(exceptions.InvalidTaskException,"},{"line_number":153,"context_line":"                              self.task_inst.validate,"}],"source_content_type":"text/x-python","patch_set":12,"id":"7f515b1d_95405c37","line":150,"in_reply_to":"7f515b1d_1af01b67","updated":"2017-10-06 21:17:48.000000000","message":"1) ddt suc*s in case of different cases. I mean it adds a lot of if..else blocks + it harder to read such test\n\n2) it is hard to come up with different names for all these cases.","commit_id":"e4e105821ef1bcba5297539f1b4d9968cb6defd0"}]}
