)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":21414,"name":"Yujun Zhang","email":"zhang.yujunz@zte.com.cn","username":"yujunz"},"change_message_id":"88fe1a030fc413ed42c546e9f46194643479defd","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ifat Afek \u003cifat.afek@nokia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-06-26 15:10:53 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor the Vitrage template validators and their tests."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The motivations is that adding a new validator (e.g. for the new execute-mistral action) will be done in a separate and independent file."},{"line_number":10,"context_line":"As part of the refactoring, I moved the validation of the existence of the \u0027action_target\u0027 block from the syntax validator to the content validator, since in the execute-mistral action it won\u0027t be a mandatory field."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f201791_59376c4e","line":7,"updated":"2017-06-27 09:29:15.000000000","message":"It seems the main changes are splitting the single content validator into separated modules?","commit_id":"2bc7d7a1e09ca33ab82a1ca5bb7e46c6b730018d"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"22b5eb297e8e2c1431b928a99c0c66d19468bf86","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Ifat Afek \u003cifat.afek@nokia.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-06-26 15:10:53 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Refactor the Vitrage template validators and their tests."},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"The motivations is that adding a new validator (e.g. for the new execute-mistral action) will be done in a separate and independent file."},{"line_number":10,"context_line":"As part of the refactoring, I moved the validation of the existence of the \u0027action_target\u0027 block from the syntax validator to the content validator, since in the execute-mistral action it won\u0027t be a mandatory field."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"5f201791_ef51c6da","line":7,"in_reply_to":"5f201791_59376c4e","updated":"2017-06-27 10:16:45.000000000","message":"Right, splitting the content validator and the content validator tests","commit_id":"2bc7d7a1e09ca33ab82a1ca5bb7e46c6b730018d"}],"vitrage/evaluator/template_validation/content/template_content_validator.py":[{"author":{"_account_id":19134,"name":"Eyal","email":"eyalb1@gmail.com","username":"eyalb"},"change_message_id":"bf75da58d3065b5570805d8823bff122afaccdda","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        ActionType.MARK_DOWN: MarkDownValidator(),"},{"line_number":236,"context_line":"    }"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    if action_type not in action_validators.keys():"},{"line_number":239,"context_line":"        LOG.error(\u0027%s status code: %s\u0027 % (status_msgs[120], 120))"},{"line_number":240,"context_line":"        return get_content_fault_result(120)"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_747b4f7a","line":238,"range":{"start_line":238,"start_character":43,"end_line":238,"end_character":51},"updated":"2017-06-27 09:46:26.000000000","message":"no need for keys\nby default the iteration is on keys\nso the check will also work","commit_id":"2bc7d7a1e09ca33ab82a1ca5bb7e46c6b730018d"},{"author":{"_account_id":19159,"name":"Ifat Afek","email":"ifat.afek@nokia.com","username":"ifat_afek"},"change_message_id":"dc7743c3f45d50c87f632606b4b0ee342543f476","unresolved":false,"context_lines":[{"line_number":235,"context_line":"        ActionType.MARK_DOWN: MarkDownValidator(),"},{"line_number":236,"context_line":"    }"},{"line_number":237,"context_line":""},{"line_number":238,"context_line":"    if action_type not in action_validators.keys():"},{"line_number":239,"context_line":"        LOG.error(\u0027%s status code: %s\u0027 % (status_msgs[120], 120))"},{"line_number":240,"context_line":"        return get_content_fault_result(120)"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"5f201791_4f5e7a76","line":238,"range":{"start_line":238,"start_character":43,"end_line":238,"end_character":51},"in_reply_to":"5f201791_747b4f7a","updated":"2017-06-27 10:32:21.000000000","message":"Done","commit_id":"2bc7d7a1e09ca33ab82a1ca5bb7e46c6b730018d"}],"vitrage/tests/unit/evaluator/template_validation/content/base.py":[{"author":{"_account_id":19122,"name":"Alexey Weyl","email":"aloshaweyl@gmail.com","username":"alexey_weyl"},"change_message_id":"f96f66f648d6595fbb637cb623bb4bef92d6830c","unresolved":false,"context_lines":[{"line_number":35,"context_line":""},{"line_number":36,"context_line":"class ValidatorTest(base.BaseTest):"},{"line_number":37,"context_line":""},{"line_number":38,"context_line":"    def _test_assert_with_correct_result(self, result):"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        self.assertTrue(result.is_valid_config)"},{"line_number":41,"context_line":"        self.assertEqual(result.comment, status_msgs[0])"}],"source_content_type":"text/x-python","patch_set":4,"id":"5f201791_9fd49149","line":38,"range":{"start_line":38,"start_character":8,"end_line":38,"end_character":13},"updated":"2017-06-28 13:14:06.000000000","message":"methods which aren\u0027t tests shouldn\u0027t start with test","commit_id":"6d9f295b61c01aae5093d3a0b30dae31bb3e8b76"}]}
