)]}'
{"watcher/api/controllers/v1/audit.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5e09be43cf53128bbcd706f81c28ac155ac854e5","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                          \u0027invalid\u0027))"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        audit_dict \u003d audit.as_dict()"},{"line_number":344,"context_line":"        if audit_dict[\u0027type\u0027] not in obj_utils.class_attr_value_list("},{"line_number":345,"context_line":"                objects.audit.AuditType):"},{"line_number":346,"context_line":"            raise exception.AuditTypeNotFound(audit_type\u003daudit_dict[\u0027type\u0027])"},{"line_number":347,"context_line":"        if audit_dict.get(\u0027state\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_227aa1bd","line":344,"range":{"start_line":344,"start_character":37,"end_line":344,"end_character":68},"updated":"2016-04-06 15:26:10.000000000","message":"Instead of doing obj_utils.class_attr_value_list(objects.audit.AuditType), I would actually make objects.audit.AuditType inherit from enum.Enum (import enum) and then do:\n\naudit_dict[\u0027type\u0027] not in [val for val in objects.audit.AuditType]","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"f3476cd844602627cdfc1cfd0759eff4632d1f12","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                          \u0027invalid\u0027))"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        audit_dict \u003d audit.as_dict()"},{"line_number":344,"context_line":"        if audit_dict[\u0027type\u0027] not in obj_utils.class_attr_value_list("},{"line_number":345,"context_line":"                objects.audit.AuditType):"},{"line_number":346,"context_line":"            raise exception.AuditTypeNotFound(audit_type\u003daudit_dict[\u0027type\u0027])"},{"line_number":347,"context_line":"        if audit_dict.get(\u0027state\u0027):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_e72433c6","line":344,"range":{"start_line":344,"start_character":37,"end_line":344,"end_character":68},"in_reply_to":"9a061dce_227aa1bd","updated":"2016-04-13 09:28:03.000000000","message":"Done","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5e09be43cf53128bbcd706f81c28ac155ac854e5","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                          \u0027invalid\u0027))"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        audit_dict \u003d audit.as_dict()"},{"line_number":344,"context_line":"        if audit_dict[\u0027type\u0027] not in obj_utils.class_attr_value_list("},{"line_number":345,"context_line":"                objects.audit.AuditType):"},{"line_number":346,"context_line":"            raise exception.AuditTypeNotFound(audit_type\u003daudit_dict[\u0027type\u0027])"},{"line_number":347,"context_line":"        if audit_dict.get(\u0027state\u0027):"},{"line_number":348,"context_line":"            if audit_dict[\u0027state\u0027] !\u003d objects.audit.State.PENDING:"},{"line_number":349,"context_line":"                raise exception.AuditStateCreateState()"},{"line_number":350,"context_line":"        context \u003d pecan.request.context"},{"line_number":351,"context_line":"        new_audit \u003d objects.Audit(context, **audit_dict)"},{"line_number":352,"context_line":"        new_audit.create(context)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_eed37502","line":349,"range":{"start_line":344,"start_character":0,"end_line":349,"end_character":55},"updated":"2016-04-06 15:26:10.000000000","message":"Although what you did is good, I would argue that we should move all data validation logic outside of the post() method like I did in https://review.openstack.org/#/c/282395/. What to you think?","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"f3476cd844602627cdfc1cfd0759eff4632d1f12","unresolved":false,"context_lines":[{"line_number":341,"context_line":"                          \u0027invalid\u0027))"},{"line_number":342,"context_line":""},{"line_number":343,"context_line":"        audit_dict \u003d audit.as_dict()"},{"line_number":344,"context_line":"        if audit_dict[\u0027type\u0027] not in obj_utils.class_attr_value_list("},{"line_number":345,"context_line":"                objects.audit.AuditType):"},{"line_number":346,"context_line":"            raise exception.AuditTypeNotFound(audit_type\u003daudit_dict[\u0027type\u0027])"},{"line_number":347,"context_line":"        if audit_dict.get(\u0027state\u0027):"},{"line_number":348,"context_line":"            if audit_dict[\u0027state\u0027] !\u003d objects.audit.State.PENDING:"},{"line_number":349,"context_line":"                raise exception.AuditStateCreateState()"},{"line_number":350,"context_line":"        context \u003d pecan.request.context"},{"line_number":351,"context_line":"        new_audit \u003d objects.Audit(context, **audit_dict)"},{"line_number":352,"context_line":"        new_audit.create(context)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_0b30a49d","line":349,"range":{"start_line":344,"start_character":0,"end_line":349,"end_character":55},"in_reply_to":"9a061dce_eed37502","updated":"2016-04-13 09:28:03.000000000","message":"Done","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"ffb2797599467fb9ddf142a959634b3a407a12e8","unresolved":false,"context_lines":[{"line_number":51,"context_line":""},{"line_number":52,"context_line":"class AuditPostType(wtypes.Base):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    audit_template \u003d wtypes.wsattr(types.uuidorname, mandatory\u003dTrue)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    type \u003d wtypes.wsattr(wtypes.text, mandatory\u003dTrue)"},{"line_number":57,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_c0ee828a","line":54,"range":{"start_line":54,"start_character":4,"end_line":54,"end_character":18},"updated":"2016-04-13 11:58:51.000000000","message":"To make it more restful, I would still call it  audit_template_uuid. I mean, someone willing to create an audit would expect to POST the fields exposed in the sample.\n\nBTW, I would also put a \u0027uuid\u0027 field here as optional.\n\nAnd then maybe at the python-watcherclient level, we can name the CLI argument as \u0027--audit-template\u0027 so it can accept both. What do you think?","commit_id":"784e0a53483dd1c85887bd88b36175027ee61204"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"3b42f36b53e339f126d89ca54d5f6c7c466590c3","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return Audit("},{"line_number":69,"context_line":"            uuid\u003dutils.generate_uuid(),"},{"line_number":70,"context_line":"            audit_template_id\u003dself.audit_template,"},{"line_number":71,"context_line":"            type\u003dself.type,"},{"line_number":72,"context_line":"            deadline\u003dself.deadline)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_4b7d7b1b","line":70,"range":{"start_line":70,"start_character":12,"end_line":70,"end_character":49},"updated":"2016-04-13 09:42:17.000000000","message":"Shouldn\u0027t you check here whether or not this is a UUID or a name?\n\nif utils.is_uuid_like(audit_template):\n    audit_template_id\u003dself.audit_template\nelse:\n    at \u003d objects.AuditTemplate.get_by_name(context, audit_template)\n    audit_template_id \u003d at.id\n\n\nBTW, you have no test covering the case where you create your audit using the name of audit template instead of the UUID.","commit_id":"784e0a53483dd1c85887bd88b36175027ee61204"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"c19bd9a5e190e93d260182cdb305933a47fe2739","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"        return Audit("},{"line_number":69,"context_line":"            uuid\u003dutils.generate_uuid(),"},{"line_number":70,"context_line":"            audit_template_id\u003dself.audit_template,"},{"line_number":71,"context_line":"            type\u003dself.type,"},{"line_number":72,"context_line":"            deadline\u003dself.deadline)"},{"line_number":73,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"5a18252c_659b4073","line":70,"range":{"start_line":70,"start_character":12,"end_line":70,"end_character":49},"in_reply_to":"5a18252c_4b7d7b1b","updated":"2016-04-13 11:25:22.000000000","message":"We check it later, in _get_audit_template() function. That function is called by _set_audit_template_uuid() and _set_audit_template_name, that are called by Audit constructor:\n\nfields.append(\u0027audit_template_uuid\u0027)\nsetattr(self, \u0027audit_template_uuid\u0027, kwargs.get(\u0027audit_template_id\u0027,\n            wtypes.Unset))\nfields.append(\u0027audit_template_name\u0027)\nsetattr(self, \u0027audit_template_name\u0027, kwargs.get(\u0027audit_template_id\u0027,\n            wtypes.Unset))\n\nI agree with you about new test, thx.","commit_id":"784e0a53483dd1c85887bd88b36175027ee61204"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"cd471dafb60481d4cfc0d1e2bcafab8642389889","unresolved":false,"context_lines":[{"line_number":52,"context_line":"class AuditPostType(wtypes.Base):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    audit_template_uuid \u003d wtypes.wsattr(types.uuid, mandatory\u003dTrue)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    type \u003d wtypes.wsattr(wtypes.text, mandatory\u003dTrue)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    deadline \u003d wtypes.wsattr(datetime.datetime, mandatory\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_76d2a05d","line":55,"updated":"2016-04-14 09:52:30.000000000","message":"Can you add the following field please:\n\nuuid \u003d wtypes.wsattr(types.uuid, mandatory\u003dFalse)\n\nThis uuid field could be provided by the user but would otherwise be generated upon creation.","commit_id":"8ccb77d633399df59b7338b7afe98901f72cc5c0"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"0e89597266b86c5761e33132f24fa3a815d93d3d","unresolved":false,"context_lines":[{"line_number":52,"context_line":"class AuditPostType(wtypes.Base):"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    audit_template_uuid \u003d wtypes.wsattr(types.uuid, mandatory\u003dTrue)"},{"line_number":55,"context_line":""},{"line_number":56,"context_line":"    type \u003d wtypes.wsattr(wtypes.text, mandatory\u003dTrue)"},{"line_number":57,"context_line":""},{"line_number":58,"context_line":"    deadline \u003d wtypes.wsattr(datetime.datetime, mandatory\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":5,"id":"5a18252c_017f9715","line":55,"in_reply_to":"5a18252c_76d2a05d","updated":"2016-04-14 12:56:26.000000000","message":"Done","commit_id":"8ccb77d633399df59b7338b7afe98901f72cc5c0"}],"watcher/common/exception.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5e09be43cf53128bbcd706f81c28ac155ac854e5","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    msg_fmt \u003d _(\"Audit type %(audit_type)s could not be found\")"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"class AuditStateCreateState(Invalid):"},{"line_number":188,"context_line":"    msg_fmt \u003d _(\"Audit is to be in PENDING state when creating\")"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_2ee44daa","line":187,"range":{"start_line":187,"start_character":6,"end_line":187,"end_character":27},"updated":"2016-04-06 15:26:10.000000000","message":"How about making this a bit more generic like AuditInvalidState or even AuditInvalidStateTransition.\nIf so, I would also make the error message more generic.","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"f3476cd844602627cdfc1cfd0759eff4632d1f12","unresolved":false,"context_lines":[{"line_number":184,"context_line":"    msg_fmt \u003d _(\"Audit type %(audit_type)s could not be found\")"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"class AuditStateCreateState(Invalid):"},{"line_number":188,"context_line":"    msg_fmt \u003d _(\"Audit is to be in PENDING state when creating\")"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_6bacb8a0","line":187,"range":{"start_line":187,"start_character":6,"end_line":187,"end_character":27},"in_reply_to":"9a061dce_2ee44daa","updated":"2016-04-13 09:28:03.000000000","message":"We don\u0027t need it anymore, has been deleted.","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5e09be43cf53128bbcd706f81c28ac155ac854e5","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"class AuditStateCreateState(Invalid):"},{"line_number":188,"context_line":"    msg_fmt \u003d _(\"Audit is to be in PENDING state when creating\")"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"class AuditNotFound(ResourceNotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_0ea6a952","line":188,"range":{"start_line":188,"start_character":35,"end_line":188,"end_character":42},"updated":"2016-04-06 15:26:10.000000000","message":"IMHO, this should be a %(state)s variable.","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"f3476cd844602627cdfc1cfd0759eff4632d1f12","unresolved":false,"context_lines":[{"line_number":185,"context_line":""},{"line_number":186,"context_line":""},{"line_number":187,"context_line":"class AuditStateCreateState(Invalid):"},{"line_number":188,"context_line":"    msg_fmt \u003d _(\"Audit is to be in PENDING state when creating\")"},{"line_number":189,"context_line":""},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"class AuditNotFound(ResourceNotFound):"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_0b8c2434","line":188,"range":{"start_line":188,"start_character":35,"end_line":188,"end_character":42},"in_reply_to":"9a061dce_0ea6a952","updated":"2016-04-13 09:28:03.000000000","message":"ditto","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"}],"watcher/tests/api/v1/test_audits.py":[{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5e09be43cf53128bbcd706f81c28ac155ac854e5","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        test_time \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":433,"context_line":"        mock_utcnow.return_value \u003d test_time"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"        audit_dict \u003d post_get_test_audit(state\u003d\u0027PENDING\u0027)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        response \u003d self.post_json(\u0027/audits\u0027, audit_dict)"},{"line_number":438,"context_line":"        self.assertEqual(\u0027application/json\u0027, response.content_type)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_8589f777","line":435,"range":{"start_line":435,"start_character":47,"end_line":435,"end_character":56},"updated":"2016-04-06 15:26:10.000000000","message":"nit: I would replace it by objects.audit.State.PENDING.value to ease any refactoring","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"f3476cd844602627cdfc1cfd0759eff4632d1f12","unresolved":false,"context_lines":[{"line_number":432,"context_line":"        test_time \u003d datetime.datetime(2000, 1, 1, 0, 0)"},{"line_number":433,"context_line":"        mock_utcnow.return_value \u003d test_time"},{"line_number":434,"context_line":""},{"line_number":435,"context_line":"        audit_dict \u003d post_get_test_audit(state\u003d\u0027PENDING\u0027)"},{"line_number":436,"context_line":""},{"line_number":437,"context_line":"        response \u003d self.post_json(\u0027/audits\u0027, audit_dict)"},{"line_number":438,"context_line":"        self.assertEqual(\u0027application/json\u0027, response.content_type)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_8b78342d","line":435,"range":{"start_line":435,"start_character":47,"end_line":435,"end_character":56},"in_reply_to":"9a061dce_8589f777","updated":"2016-04-13 09:28:03.000000000","message":"Done","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5e09be43cf53128bbcd706f81c28ac155ac854e5","unresolved":false,"context_lines":[{"line_number":473,"context_line":"    def test_create_audit_doesnt_contain_id(self, mock_trigger_audit):"},{"line_number":474,"context_line":"        mock_trigger_audit.return_value \u003d mock.ANY"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        audit_dict \u003d post_get_test_audit(state\u003d\u0027PENDING\u0027)"},{"line_number":477,"context_line":"        with mock.patch.object(self.dbapi, \u0027create_audit\u0027,"},{"line_number":478,"context_line":"                               wraps\u003dself.dbapi.create_audit) as cn_mock:"},{"line_number":479,"context_line":"            response \u003d self.post_json(\u0027/audits\u0027, audit_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_25e0eb28","line":476,"range":{"start_line":476,"start_character":48,"end_line":476,"end_character":55},"updated":"2016-04-06 15:26:10.000000000","message":"ditto","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"f3476cd844602627cdfc1cfd0759eff4632d1f12","unresolved":false,"context_lines":[{"line_number":473,"context_line":"    def test_create_audit_doesnt_contain_id(self, mock_trigger_audit):"},{"line_number":474,"context_line":"        mock_trigger_audit.return_value \u003d mock.ANY"},{"line_number":475,"context_line":""},{"line_number":476,"context_line":"        audit_dict \u003d post_get_test_audit(state\u003d\u0027PENDING\u0027)"},{"line_number":477,"context_line":"        with mock.patch.object(self.dbapi, \u0027create_audit\u0027,"},{"line_number":478,"context_line":"                               wraps\u003dself.dbapi.create_audit) as cn_mock:"},{"line_number":479,"context_line":"            response \u003d self.post_json(\u0027/audits\u0027, audit_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_eb772838","line":476,"range":{"start_line":476,"start_character":48,"end_line":476,"end_character":55},"in_reply_to":"9a061dce_25e0eb28","updated":"2016-04-13 09:28:03.000000000","message":"Done","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5e09be43cf53128bbcd706f81c28ac155ac854e5","unresolved":false,"context_lines":[{"line_number":486,"context_line":"    def test_create_audit_generate_uuid(self, mock_trigger_audit):"},{"line_number":487,"context_line":"        mock_trigger_audit.return_value \u003d mock.ANY"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"        audit_dict \u003d post_get_test_audit(state\u003d\u0027PENDING\u0027)"},{"line_number":490,"context_line":"        del audit_dict[\u0027uuid\u0027]"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        response \u003d self.post_json(\u0027/audits\u0027, audit_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_a5d23b5a","line":489,"range":{"start_line":489,"start_character":48,"end_line":489,"end_character":55},"updated":"2016-04-06 15:26:10.000000000","message":"ditto","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"f3476cd844602627cdfc1cfd0759eff4632d1f12","unresolved":false,"context_lines":[{"line_number":486,"context_line":"    def test_create_audit_generate_uuid(self, mock_trigger_audit):"},{"line_number":487,"context_line":"        mock_trigger_audit.return_value \u003d mock.ANY"},{"line_number":488,"context_line":""},{"line_number":489,"context_line":"        audit_dict \u003d post_get_test_audit(state\u003d\u0027PENDING\u0027)"},{"line_number":490,"context_line":"        del audit_dict[\u0027uuid\u0027]"},{"line_number":491,"context_line":""},{"line_number":492,"context_line":"        response \u003d self.post_json(\u0027/audits\u0027, audit_dict)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_cb722c49","line":489,"range":{"start_line":489,"start_character":48,"end_line":489,"end_character":55},"in_reply_to":"9a061dce_a5d23b5a","updated":"2016-04-13 09:28:03.000000000","message":"Done","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"5e09be43cf53128bbcd706f81c28ac155ac854e5","unresolved":false,"context_lines":[{"line_number":499,"context_line":"    def test_create_audit_trigger_decision_engine(self):"},{"line_number":500,"context_line":"        with mock.patch.object(deapi.DecisionEngineAPI,"},{"line_number":501,"context_line":"                               \u0027trigger_audit\u0027) as de_mock:"},{"line_number":502,"context_line":"            audit_dict \u003d post_get_test_audit(state\u003d\u0027PENDING\u0027)"},{"line_number":503,"context_line":"            self.post_json(\u0027/audits\u0027, audit_dict)"},{"line_number":504,"context_line":"            de_mock.assert_called_once_with(mock.ANY, audit_dict[\u0027uuid\u0027])"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"9a061dce_e5c8b3aa","line":502,"range":{"start_line":502,"start_character":52,"end_line":502,"end_character":59},"updated":"2016-04-06 15:26:10.000000000","message":"ditto","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"},{"author":{"_account_id":19055,"name":"Alexander Chadin","email":"joker946@gmail.com","username":"joker946"},"change_message_id":"f3476cd844602627cdfc1cfd0759eff4632d1f12","unresolved":false,"context_lines":[{"line_number":499,"context_line":"    def test_create_audit_trigger_decision_engine(self):"},{"line_number":500,"context_line":"        with mock.patch.object(deapi.DecisionEngineAPI,"},{"line_number":501,"context_line":"                               \u0027trigger_audit\u0027) as de_mock:"},{"line_number":502,"context_line":"            audit_dict \u003d post_get_test_audit(state\u003d\u0027PENDING\u0027)"},{"line_number":503,"context_line":"            self.post_json(\u0027/audits\u0027, audit_dict)"},{"line_number":504,"context_line":"            de_mock.assert_called_once_with(mock.ANY, audit_dict[\u0027uuid\u0027])"},{"line_number":505,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5a18252c_2b900043","line":502,"range":{"start_line":502,"start_character":52,"end_line":502,"end_character":59},"in_reply_to":"9a061dce_e5c8b3aa","updated":"2016-04-13 09:28:03.000000000","message":"Done","commit_id":"240beeed977db3f109a10e71f1495ca53084e8f2"}]}
