)]}'
{"watcher/decision_engine/sync.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        self._find_stale_action_plans_due_to_strategy()"},{"line_number":195,"context_line":"        self._find_stale_action_plans_due_to_audit()"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        # Then we handle the case where an audit template becomes"},{"line_number":198,"context_line":"        # stale because its related goal does not exist anymore."},{"line_number":199,"context_line":"        self._soft_delete_removed_goals()"},{"line_number":200,"context_line":"        # Then we handle the case where an audit template becomes"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_eec47760","line":197,"range":{"start_line":197,"start_character":58,"end_line":197,"end_character":65},"updated":"2016-08-19 09:13:49.000000000","message":", an audit or an action plan becomes","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":194,"context_line":"        self._find_stale_action_plans_due_to_strategy()"},{"line_number":195,"context_line":"        self._find_stale_action_plans_due_to_audit()"},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"        # Then we handle the case where an audit template becomes"},{"line_number":198,"context_line":"        # stale because its related goal does not exist anymore."},{"line_number":199,"context_line":"        self._soft_delete_removed_goals()"},{"line_number":200,"context_line":"        # Then we handle the case where an audit template becomes"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_3820ad49","line":197,"range":{"start_line":197,"start_character":58,"end_line":197,"end_character":65},"in_reply_to":"3ac371cc_eec47760","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        # Then we handle the case where an audit template becomes"},{"line_number":198,"context_line":"        # stale because its related goal does not exist anymore."},{"line_number":199,"context_line":"        self._soft_delete_removed_goals()"},{"line_number":200,"context_line":"        # Then we handle the case where an audit template becomes"},{"line_number":201,"context_line":"        # stale because its related strategy does not exist anymore."},{"line_number":202,"context_line":"        self._soft_delete_removed_strategies()"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_2ea5efb4","line":200,"range":{"start_line":200,"start_character":58,"end_line":200,"end_character":65},"updated":"2016-08-19 09:13:49.000000000","message":"ditto","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        # Then we handle the case where an audit template becomes"},{"line_number":198,"context_line":"        # stale because its related goal does not exist anymore."},{"line_number":199,"context_line":"        self._soft_delete_removed_goals()"},{"line_number":200,"context_line":"        # Then we handle the case where an audit template becomes"},{"line_number":201,"context_line":"        # stale because its related strategy does not exist anymore."},{"line_number":202,"context_line":"        self._soft_delete_removed_strategies()"},{"line_number":203,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_38e70d14","line":200,"range":{"start_line":200,"start_character":58,"end_line":200,"end_character":65},"in_reply_to":"3ac371cc_2ea5efb4","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":369,"context_line":"            for audit in stale_audits:"},{"line_number":370,"context_line":"                LOG.warning("},{"line_number":371,"context_line":"                    _LW(\"Audit \u0027%(audit)s\u0027 references a \""},{"line_number":372,"context_line":"                        \"goal that does not exist\"), audit\u003daudit.uuid)"},{"line_number":373,"context_line":"                if audit.id not in self.stale_audits_map:"},{"line_number":374,"context_line":"                    audit.state \u003d auditobjects.State.CANCELLED"},{"line_number":375,"context_line":"                    self.stale_audits_map[audit.id] \u003d audit"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_0edbd31c","line":372,"range":{"start_line":372,"start_character":25,"end_line":372,"end_character":29},"updated":"2016-08-19 09:13:49.000000000","message":"s/goal/strategy","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":369,"context_line":"            for audit in stale_audits:"},{"line_number":370,"context_line":"                LOG.warning("},{"line_number":371,"context_line":"                    _LW(\"Audit \u0027%(audit)s\u0027 references a \""},{"line_number":372,"context_line":"                        \"goal that does not exist\"), audit\u003daudit.uuid)"},{"line_number":373,"context_line":"                if audit.id not in self.stale_audits_map:"},{"line_number":374,"context_line":"                    audit.state \u003d auditobjects.State.CANCELLED"},{"line_number":375,"context_line":"                    self.stale_audits_map[audit.id] \u003d audit"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_78f185cd","line":372,"range":{"start_line":372,"start_character":25,"end_line":372,"end_character":29},"in_reply_to":"3ac371cc_0edbd31c","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":382,"context_line":"            for action_plan in stale_action_plans:"},{"line_number":383,"context_line":"                LOG.warning("},{"line_number":384,"context_line":"                    _LW(\"Action Plan \u0027%(action_plan)s\u0027 references a \""},{"line_number":385,"context_line":"                        \"goal that does not exist\"),"},{"line_number":386,"context_line":"                    action_plan\u003daction_plan.uuid)"},{"line_number":387,"context_line":"                if action_plan.id not in self.stale_action_plans_map:"},{"line_number":388,"context_line":"                    action_plan.state \u003d apobjects.State.CANCELLED"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_7ceb1db1","line":385,"range":{"start_line":385,"start_character":25,"end_line":385,"end_character":29},"updated":"2016-08-19 09:13:49.000000000","message":"s/goal/strategy","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":382,"context_line":"            for action_plan in stale_action_plans:"},{"line_number":383,"context_line":"                LOG.warning("},{"line_number":384,"context_line":"                    _LW(\"Action Plan \u0027%(action_plan)s\u0027 references a \""},{"line_number":385,"context_line":"                        \"goal that does not exist\"),"},{"line_number":386,"context_line":"                    action_plan\u003daction_plan.uuid)"},{"line_number":387,"context_line":"                if action_plan.id not in self.stale_action_plans_map:"},{"line_number":388,"context_line":"                    action_plan.state \u003d apobjects.State.CANCELLED"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_58ee49ed","line":385,"range":{"start_line":385,"start_character":25,"end_line":385,"end_character":29},"in_reply_to":"3ac371cc_7ceb1db1","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"}],"watcher/tests/decision_engine/test_sync.py":[{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":329,"context_line":"            self.ctx, id\u003d1, uuid\u003dutils.generate_uuid(),"},{"line_number":330,"context_line":"            goal_id\u003dgoal1.id, strategy_id\u003dstrategy1.id)"},{"line_number":331,"context_line":"        # Should be modified by the sync() because its associated goal"},{"line_number":332,"context_line":"        # has been modified"},{"line_number":333,"context_line":"        audit2 \u003d objects.Audit("},{"line_number":334,"context_line":"            self.ctx, id\u003d2, uuid\u003dutils.generate_uuid(),"},{"line_number":335,"context_line":"            goal_id\u003dgoal2.id, strategy_id\u003dstrategy2.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_5d045bc5","line":332,"range":{"start_line":332,"start_character":10,"end_line":332,"end_character":27},"updated":"2016-08-19 09:13:49.000000000","message":"Please add this annotation, in order to be more understanding for reviewers :\n\u0027has been modified (by comparing to the defined fake goals)\u0027","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":329,"context_line":"            self.ctx, id\u003d1, uuid\u003dutils.generate_uuid(),"},{"line_number":330,"context_line":"            goal_id\u003dgoal1.id, strategy_id\u003dstrategy1.id)"},{"line_number":331,"context_line":"        # Should be modified by the sync() because its associated goal"},{"line_number":332,"context_line":"        # has been modified"},{"line_number":333,"context_line":"        audit2 \u003d objects.Audit("},{"line_number":334,"context_line":"            self.ctx, id\u003d2, uuid\u003dutils.generate_uuid(),"},{"line_number":335,"context_line":"            goal_id\u003dgoal2.id, strategy_id\u003dstrategy2.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_9893a14f","line":332,"range":{"start_line":332,"start_character":10,"end_line":332,"end_character":27},"in_reply_to":"3ac371cc_5d045bc5","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":334,"context_line":"            self.ctx, id\u003d2, uuid\u003dutils.generate_uuid(),"},{"line_number":335,"context_line":"            goal_id\u003dgoal2.id, strategy_id\u003dstrategy2.id)"},{"line_number":336,"context_line":"        # Should be modified by the sync() because its associated strategy"},{"line_number":337,"context_line":"        # has been modified"},{"line_number":338,"context_line":"        audit3 \u003d objects.Audit("},{"line_number":339,"context_line":"            self.ctx, id\u003d3, uuid\u003dutils.generate_uuid(),"},{"line_number":340,"context_line":"            goal_id\u003dgoal1.id, strategy_id\u003dstrategy3.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_9d25335e","line":337,"range":{"start_line":337,"start_character":10,"end_line":337,"end_character":27},"updated":"2016-08-19 09:13:49.000000000","message":"ditto","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":334,"context_line":"            self.ctx, id\u003d2, uuid\u003dutils.generate_uuid(),"},{"line_number":335,"context_line":"            goal_id\u003dgoal2.id, strategy_id\u003dstrategy2.id)"},{"line_number":336,"context_line":"        # Should be modified by the sync() because its associated strategy"},{"line_number":337,"context_line":"        # has been modified"},{"line_number":338,"context_line":"        audit3 \u003d objects.Audit("},{"line_number":339,"context_line":"            self.ctx, id\u003d3, uuid\u003dutils.generate_uuid(),"},{"line_number":340,"context_line":"            goal_id\u003dgoal1.id, strategy_id\u003dstrategy3.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_78f2259c","line":337,"range":{"start_line":337,"start_character":10,"end_line":337,"end_character":27},"in_reply_to":"3ac371cc_9d25335e","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            self.ctx, id\u003d3, uuid\u003dutils.generate_uuid(),"},{"line_number":340,"context_line":"            goal_id\u003dgoal1.id, strategy_id\u003dstrategy3.id)"},{"line_number":341,"context_line":"        # Modified because of both because its associated goal and associated"},{"line_number":342,"context_line":"        # strategy should be modified"},{"line_number":343,"context_line":"        audit4 \u003d objects.Audit("},{"line_number":344,"context_line":"            self.ctx, id\u003d4, uuid\u003dutils.generate_uuid(),"},{"line_number":345,"context_line":"            goal_id\u003dgoal2.id, strategy_id\u003dstrategy4.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_bd1c6f14","line":342,"range":{"start_line":342,"start_character":19,"end_line":342,"end_character":37},"updated":"2016-08-19 09:13:49.000000000","message":"ditto","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":339,"context_line":"            self.ctx, id\u003d3, uuid\u003dutils.generate_uuid(),"},{"line_number":340,"context_line":"            goal_id\u003dgoal1.id, strategy_id\u003dstrategy3.id)"},{"line_number":341,"context_line":"        # Modified because of both because its associated goal and associated"},{"line_number":342,"context_line":"        # strategy should be modified"},{"line_number":343,"context_line":"        audit4 \u003d objects.Audit("},{"line_number":344,"context_line":"            self.ctx, id\u003d4, uuid\u003dutils.generate_uuid(),"},{"line_number":345,"context_line":"            goal_id\u003dgoal2.id, strategy_id\u003dstrategy4.id)"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_58ef69b0","line":342,"range":{"start_line":342,"start_character":19,"end_line":342,"end_character":37},"in_reply_to":"3ac371cc_bd1c6f14","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":355,"context_line":"            audit_id\u003daudit1.id, strategy_id\u003dstrategy1.id,"},{"line_number":356,"context_line":"            first_action_id\u003dNone, state\u003d\u0027DOESNOTMATTER\u0027,"},{"line_number":357,"context_line":"            global_efficacy\u003d{})"},{"line_number":358,"context_line":"        # Stale after syncing because the goal of the audit has been modified"},{"line_number":359,"context_line":"        action_plan2 \u003d objects.ActionPlan("},{"line_number":360,"context_line":"            self.ctx, id\u003d2, uuid\u003dutils.generate_uuid(),"},{"line_number":361,"context_line":"            audit_id\u003daudit2.id, strategy_id\u003dstrategy2.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_7de157fe","line":358,"range":{"start_line":358,"start_character":60,"end_line":358,"end_character":77},"updated":"2016-08-19 09:13:49.000000000","message":"ditto","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":355,"context_line":"            audit_id\u003daudit1.id, strategy_id\u003dstrategy1.id,"},{"line_number":356,"context_line":"            first_action_id\u003dNone, state\u003d\u0027DOESNOTMATTER\u0027,"},{"line_number":357,"context_line":"            global_efficacy\u003d{})"},{"line_number":358,"context_line":"        # Stale after syncing because the goal of the audit has been modified"},{"line_number":359,"context_line":"        action_plan2 \u003d objects.ActionPlan("},{"line_number":360,"context_line":"            self.ctx, id\u003d2, uuid\u003dutils.generate_uuid(),"},{"line_number":361,"context_line":"            audit_id\u003daudit2.id, strategy_id\u003dstrategy2.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_9864414a","line":358,"range":{"start_line":358,"start_character":60,"end_line":358,"end_character":77},"in_reply_to":"3ac371cc_7de157fe","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":361,"context_line":"            audit_id\u003daudit2.id, strategy_id\u003dstrategy2.id,"},{"line_number":362,"context_line":"            first_action_id\u003dNone, state\u003d\u0027DOESNOTMATTER\u0027,"},{"line_number":363,"context_line":"            global_efficacy\u003d{})"},{"line_number":364,"context_line":"        # Stale after syncing because the strategy has been modified"},{"line_number":365,"context_line":"        action_plan3 \u003d objects.ActionPlan("},{"line_number":366,"context_line":"            self.ctx, id\u003d3, uuid\u003dutils.generate_uuid(),"},{"line_number":367,"context_line":"            audit_id\u003daudit3.id, strategy_id\u003dstrategy3.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_bde3cf04","line":364,"range":{"start_line":364,"start_character":51,"end_line":364,"end_character":68},"updated":"2016-08-19 09:13:49.000000000","message":"ditto","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":361,"context_line":"            audit_id\u003daudit2.id, strategy_id\u003dstrategy2.id,"},{"line_number":362,"context_line":"            first_action_id\u003dNone, state\u003d\u0027DOESNOTMATTER\u0027,"},{"line_number":363,"context_line":"            global_efficacy\u003d{})"},{"line_number":364,"context_line":"        # Stale after syncing because the strategy has been modified"},{"line_number":365,"context_line":"        action_plan3 \u003d objects.ActionPlan("},{"line_number":366,"context_line":"            self.ctx, id\u003d3, uuid\u003dutils.generate_uuid(),"},{"line_number":367,"context_line":"            audit_id\u003daudit3.id, strategy_id\u003dstrategy3.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_f859f58f","line":364,"range":{"start_line":364,"start_character":51,"end_line":364,"end_character":68},"in_reply_to":"3ac371cc_bde3cf04","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":368,"context_line":"            first_action_id\u003dNone, state\u003d\u0027DOESNOTMATTER\u0027,"},{"line_number":369,"context_line":"            global_efficacy\u003d{})"},{"line_number":370,"context_line":"        # Stale after syncing because both the strategy and the related audit"},{"line_number":371,"context_line":"        # have been modified"},{"line_number":372,"context_line":"        action_plan4 \u003d objects.ActionPlan("},{"line_number":373,"context_line":"            self.ctx, id\u003d4, uuid\u003dutils.generate_uuid(),"},{"line_number":374,"context_line":"            audit_id\u003daudit4.id, strategy_id\u003dstrategy4.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_fded47f0","line":371,"range":{"start_line":371,"start_character":10,"end_line":371,"end_character":28},"updated":"2016-08-19 09:13:49.000000000","message":"ditto","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"0137ef5d0452565992e5b1e19a8a55978d5f19c5","unresolved":false,"context_lines":[{"line_number":368,"context_line":"            first_action_id\u003dNone, state\u003d\u0027DOESNOTMATTER\u0027,"},{"line_number":369,"context_line":"            global_efficacy\u003d{})"},{"line_number":370,"context_line":"        # Stale after syncing because both the strategy and the related audit"},{"line_number":371,"context_line":"        # have been modified"},{"line_number":372,"context_line":"        action_plan4 \u003d objects.ActionPlan("},{"line_number":373,"context_line":"            self.ctx, id\u003d4, uuid\u003dutils.generate_uuid(),"},{"line_number":374,"context_line":"            audit_id\u003daudit4.id, strategy_id\u003dstrategy4.id,"}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_d85eb975","line":371,"range":{"start_line":371,"start_character":10,"end_line":371,"end_character":28},"in_reply_to":"3ac371cc_fded47f0","updated":"2016-08-19 12:28:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            set([action_plan2.id, action_plan3.id, action_plan4.id]),"},{"line_number":478,"context_line":"            modified_action_plans)"},{"line_number":479,"context_line":"        self.assertEqual(set([action_plan1.id]), unmodified_action_plans)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    def test_end2end_sync_goals_with_removed_goal_and_strategy(self):"},{"line_number":482,"context_line":"        # ### Setup ### #"},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"3ac371cc_9d98936c","line":480,"updated":"2016-08-19 09:13:49.000000000","message":"IMHO, you should also test audit and action-plan state (CANCELLED)","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"43ace24dfb15d1f06dea3769d89306fe8fc93720","unresolved":false,"context_lines":[{"line_number":477,"context_line":"            set([action_plan2.id, action_plan3.id, action_plan4.id]),"},{"line_number":478,"context_line":"            modified_action_plans)"},{"line_number":479,"context_line":"        self.assertEqual(set([action_plan1.id]), unmodified_action_plans)"},{"line_number":480,"context_line":""},{"line_number":481,"context_line":"    def test_end2end_sync_goals_with_removed_goal_and_strategy(self):"},{"line_number":482,"context_line":"        # ### Setup ### #"},{"line_number":483,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"1ac06dbe_2f1d0410","line":480,"in_reply_to":"3ac371cc_9d98936c","updated":"2016-08-19 12:29:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":12394,"name":"David TARDIVEL","email":"David.TARDIVEL@b-com.com","username":"David.T"},"change_message_id":"a2ae18804c06f83cf31bb94b7555d36033c896b2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"3ac371cc_9d0b737d","line":645,"updated":"2016-08-19 09:13:49.000000000","message":"IMHO, you should also test audit and action-plan state (CANCELLED)","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"},{"author":{"_account_id":18971,"name":"Vincent Françoise","email":"Vincent.FRANCOISE@b-com.com","username":"v-francoise"},"change_message_id":"43ace24dfb15d1f06dea3769d89306fe8fc93720","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1ac06dbe_afd73422","line":645,"in_reply_to":"3ac371cc_9d0b737d","updated":"2016-08-19 12:29:17.000000000","message":"Done","commit_id":"86ff9273f2ac8d9f58c599819117b5699ba4b6a0"}]}
