def _handle_assessment_tmpl_put(sender, obj=None, src=None, service=None, initial_state=None): """Handles update event to AssessmentTemplate model.""" del sender, service, initial_state # Unused issue_tracker_info = src.get('issue_tracker') or {} integration_utils.validate_issue_tracker_info(issue_tracker_info) audit = all_models.Audit.query.join( all_models.Relationship, all_models.Relationship.source_id == all_models.Audit.id, ).filter(all_models.Relationship.source_type == 'Audit', all_models.Relationship.destination_type == 'AssessmentTemplate', all_models.Relationship.destination_id == obj.id).first() if not audit or not _is_issue_tracker_enabled(audit=audit): issue_tracker_info = { 'enabled': False, } if issue_tracker_info: all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)
def _handle_assessment_tmpl_put(sender, obj=None, src=None, service=None, initial_state=None): """Handles update event to AssessmentTemplate model.""" del sender, service, initial_state # Unused issue_tracker_info = src.get('issue_tracker') or {} integration_utils.validate_issue_tracker_info(issue_tracker_info) audit = all_models.Audit.query.join( all_models.Relationship, all_models.Relationship.source_id == all_models.Audit.id, ).filter( all_models.Relationship.source_type == 'Audit', all_models.Relationship.destination_type == 'AssessmentTemplate', all_models.Relationship.destination_id == obj.id ).first() if not audit or not _is_issue_tracker_enabled(audit=audit): issue_tracker_info = { 'enabled': False, } if issue_tracker_info: all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)
def _handle_audit_put(sender, obj=None, src=None, service=None): """Handles updating issue tracker related info.""" del sender, service # Unused issue_tracker_info = src.get('issue_tracker') if issue_tracker_info: integration_utils.validate_issue_tracker_info(issue_tracker_info) all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)
def _handle_audit_put(sender, obj=None, src=None, service=None): """Handles updating issue tracker related info.""" del sender, service # Unused issue_tracker_info = src.get('issue_tracker') if issue_tracker_info: integration_utils.validate_issue_tracker_info(issue_tracker_info) all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)
def _handle_audit_put(sender, obj=None, src=None, service=None): """Handles updating issue tracker related info.""" del sender, service # Unused issue_tracker_info = src.get('issue_tracker') if issue_tracker_info: _, issue_tracker_info["cc_list"] = _collect_audit_emails( src.get("access_control_list", [])) integration_utils.validate_issue_tracker_info(issue_tracker_info) all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)
def _handle_audit_post(sender, objects=None, sources=None): """Handles creating issue tracker related info.""" del sender # Unused for obj, src in itertools.izip(objects, sources): issue_tracker_info = src.get('issue_tracker') if not issue_tracker_info: continue integration_utils.validate_issue_tracker_info(issue_tracker_info) all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)
def _handle_audit_post(sender, objects=None, sources=None): """Handles creating issue tracker related info.""" del sender # Unused for obj, src in itertools.izip(objects, sources): issue_tracker_info = src.get('issue_tracker') if not issue_tracker_info: continue integration_utils.validate_issue_tracker_info(issue_tracker_info) all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)
def test_validate_info(self, info, expected_error): """Test _validate_issue_tracker_info function.""" initial_info = dict(info) # pylint: disable=protected-access if expected_error: with self.assertRaises(expected_error): integration_utils.validate_issue_tracker_info(info) else: integration_utils.validate_issue_tracker_info(info) self.assertEqual(info, initial_info)
def test_validate_info(self, info, expected_error): """Test _validate_issue_tracker_info function.""" initial_info = dict(info) # pylint: disable=protected-access if expected_error: with self.assertRaises(expected_error): integration_utils.validate_issue_tracker_info(info) else: integration_utils.validate_issue_tracker_info(info) self.assertEqual(info, initial_info)
def _handle_assessment_tmpl_post(sender, objects=None, sources=None): """Handles create event to AssessmentTemplate model.""" del sender # Unused for src in sources: integration_utils.validate_issue_tracker_info( src.get('issue_tracker') or {} ) db.session.flush() template_ids = { obj.id for obj in objects } if not template_ids: return # TODO(anushovan): use joined query to fetch audits or even # issuetracker_issues with one query. audit_map = { r.destination_id: r.source_id for r in all_models.Relationship.query.filter( all_models.Relationship.source_type == 'Audit', all_models.Relationship.destination_type == 'AssessmentTemplate', all_models.Relationship.destination_id.in_(template_ids)).all() } if not audit_map: return audits = { a.id: a for a in all_models.Audit.query.filter( all_models.Audit.id.in_(audit_map.values())).all() } for obj, src in itertools.izip(objects, sources): audit_id = audit_map.get(obj.id) audit = audits.get(audit_id) if audit_id else None if not audit or not _is_issue_tracker_enabled(audit=audit): issue_tracker_info = { 'enabled': False, } else: issue_tracker_info = src.get('issue_tracker') if not issue_tracker_info: continue all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)
def _handle_assessment_tmpl_post(sender, objects=None, sources=None): """Handles create event to AssessmentTemplate model.""" del sender # Unused for src in sources: integration_utils.validate_issue_tracker_info( src.get('issue_tracker') or {} ) db.session.flush() template_ids = { obj.id for obj in objects } if not template_ids: return # TODO(anushovan): use joined query to fetch audits or even # issuetracker_issues with one query. audit_map = { r.destination_id: r.source_id for r in all_models.Relationship.query.filter( all_models.Relationship.source_type == 'Audit', all_models.Relationship.destination_type == 'AssessmentTemplate', all_models.Relationship.destination_id.in_(template_ids)).all() } if not audit_map: return audits = { a.id: a for a in all_models.Audit.query.filter( all_models.Audit.id.in_(audit_map.values())).all() } for obj, src in itertools.izip(objects, sources): audit_id = audit_map.get(obj.id) audit = audits.get(audit_id) if audit_id else None if not audit or not _is_issue_tracker_enabled(audit=audit): issue_tracker_info = { 'enabled': False, } else: issue_tracker_info = src.get('issue_tracker') if not issue_tracker_info: continue all_models.IssuetrackerIssue.create_or_update_from_dict( obj, issue_tracker_info)