def test_remove_flag_if_submitted_through_github(self):
        issue = {}
        r = c.remove_flag_if_submitted_through_github('drifty', 'ionic', issue, is_debug=True)
        self.assertEquals(r, False)

        issue = {
            'number': 123,
            'body': 'blah blah blah i dont get it',
        }
        r = c.remove_flag_if_submitted_through_github('drifty', 'ionic', issue, is_debug=True)
        self.assertEquals(r, False)

        issue = {
            'number': 123,
            'body': '''**Type**: <span ionic-type>docs</span>

                        **Platform**: <span ionic-platform>desktop</span>  <span ionic-webview>browser</span>

                        <span ionic-description>Remove use of :active and instead use classnames</span>

                        <span is-issue-template></span>''',
        }
        r = c.remove_flag_if_submitted_through_github('drifty', 'ionic', issue, issue_comments=[], is_debug=True)
        self.assertEquals(r, False)

        issue = {
            'number': 123,
            'body': 'blah blah blah i dont get it',
        }
        r = c.remove_flag_if_submitted_through_github('drifty', 'ionic', issue, issue_comments=[], is_debug=True)
        self.assertEquals(r, False)

        issue = {
            'number': 123,
            'body': '''**Type**: <span ionic-type>docs</span>

                        **Platform**: <span ionic-platform>desktop</span>  <span ionic-webview>browser</span>

                        <span ionic-description>Remove use of :active and instead use classnames</span>

                        <span is-issue-template></span>''',
        }
        issue_comments = [
            { 'body': '<span ionitron-issue-resubmit></span>' }
        ]
        r = c.remove_flag_if_submitted_through_github('drifty', 'ionic', issue, issue_comments=issue_comments, is_debug=True)
        self.assertEquals(r, True)
Ejemplo n.º 2
0
def issue_maintenance(repo_username, repo_id, issue):
    from tasks import old_issues, github_issue_submit, needs_reply, issue_scores
    data = {}
    number = 0

    try:
        if not issue:
            data['error'] = 'invalid issue'
            return data

        number = issue.get('number')
        if not number:
            data['error'] = 'invalid issue number'
            return data

        data['number'] = number

        if issue.get('closed_at') is not None:
            data['invalid'] = 'closed_at %s' % issue.get('closed_at')
            return data

        if issue.get('pull_request') is None:

            old_issue_data = old_issues.manage_old_issue(repo_username, repo_id, issue)
            if old_issue_data:
                data['closed_old_issue'] = True
                return data

            if github_issue_submit.remove_flag_if_submitted_through_github(repo_username, repo_id, issue):
                data['removed_submitted_through_github_flag'] = True

            elif github_issue_submit.remove_flag_if_not_updated(repo_username, repo_id, issue):
                data['removed_flag_if_not_resubmitted'] = True

            needs_reply_data = needs_reply.manage_needs_reply_issue(repo_username, repo_id, issue)
            if needs_reply_data:
                data['needs_reply_data'] = needs_reply_data
                if needs_reply_data.get('close_needs_reply_issue'):
                    return data

        data['issue_score'] = issue_scores.update_issue_score(repo_username, repo_id, number, data={
            'issue': issue
        })

    except Exception as ex:
        print 'issue_maintenance error, issue %s: %s' % (number, ex)
        data['error'] = 'issue %s, %s' % (number, ex)

    return data