Exemple #1
0
    def test_search_fields(self):
        """Test whether the search_fields is properly set"""

        bodies_json = [read_file('data/jira/jira_issues_page_1.json'),
                       read_file('data/jira/jira_issues_page_2.json')]
        comment_json = read_file('data/jira/jira_comments_issue_page_2.json')
        empty_comment = read_file('data/jira/jira_comments_issue_empty.json')

        body = read_file('data/jira/jira_fields.json')

        def request_callback(method, uri, headers):
            body = bodies_json.pop(0)
            return 200, headers, body

        httpretty.register_uri(httpretty.GET,
                               JIRA_SEARCH_URL,
                               responses=[httpretty.Response(body=request_callback)
                                          for _ in range(2)])

        httpretty.register_uri(httpretty.GET,
                               JIRA_ISSUE_1_COMMENTS_URL,
                               body=empty_comment,
                               status=200)

        httpretty.register_uri(httpretty.GET,
                               JIRA_ISSUE_2_COMMENTS_URL,
                               body=comment_json,
                               status=200)

        httpretty.register_uri(httpretty.GET,
                               JIRA_ISSUE_3_COMMENTS_URL,
                               body=empty_comment,
                               status=200)

        httpretty.register_uri(httpretty.GET,
                               JIRA_FIELDS_URL,
                               body=body, status=200)

        jira = Jira(JIRA_SERVER_URL)
        issues = [issue for issue in jira.fetch()]

        issue = issues[0]
        self.assertEqual(issue['origin'], 'http://example.com')
        self.assertEqual(issue['uuid'], '6a7ba2a01aee56603b9d8a5f6b40c843fc089b2f')
        self.assertEqual(issue['updated_on'], 1457015567)
        self.assertEqual(issue['category'], 'issue')
        self.assertEqual(issue['tag'], 'http://example.com')
        self.assertEqual(jira.metadata_id(issue['data']), issue['search_fields']['item_id'])
        self.assertEqual(issue['data']['fields']['project']['id'], '10841')
        self.assertEqual(issue['data']['fields']['project']['id'], issue['search_fields']['project_id'])
        self.assertEqual(issue['data']['fields']['project']['key'], 'HELP')
        self.assertEqual(issue['data']['fields']['project']['key'], issue['search_fields']['project_key'])
        self.assertEqual(issue['data']['fields']['project']['name'], 'Help-Desk')
        self.assertEqual(issue['data']['fields']['project']['name'], issue['search_fields']['project_name'])
        self.assertEqual(issue['data']['key'], 'HELP-6043')
        self.assertEqual(issue['data']['key'], issue['search_fields']['issue_key'])

        issue = issues[1]
        self.assertEqual(issue['origin'], 'http://example.com')
        self.assertEqual(issue['uuid'], '3c3d67925b108a37f88cc6663f7f7dd493fa818c')
        self.assertEqual(issue['updated_on'], 1457015417)
        self.assertEqual(issue['category'], 'issue')
        self.assertEqual(issue['tag'], 'http://example.com')
        self.assertEqual(jira.metadata_id(issue['data']), issue['search_fields']['item_id'])
        self.assertEqual(issue['data']['fields']['project']['id'], '10841')
        self.assertEqual(issue['data']['fields']['project']['id'], issue['search_fields']['project_id'])
        self.assertEqual(issue['data']['fields']['project']['key'], 'HELP')
        self.assertEqual(issue['data']['fields']['project']['key'], issue['search_fields']['project_key'])
        self.assertEqual(issue['data']['fields']['project']['name'], 'Help-Desk')
        self.assertEqual(issue['data']['fields']['project']['name'], issue['search_fields']['project_name'])
        self.assertEqual(issue['data']['key'], 'HELP-6042')
        self.assertEqual(issue['data']['key'], issue['search_fields']['issue_key'])

        issue = issues[2]
        self.assertEqual(issue['origin'], 'http://example.com')
        self.assertEqual(issue['uuid'], '1c7765e2a5d27495cf389f5f951c544693c4655f')
        self.assertEqual(issue['updated_on'], 1457006245)
        self.assertEqual(issue['category'], 'issue')
        self.assertEqual(issue['tag'], 'http://example.com')
        self.assertEqual(jira.metadata_id(issue['data']), issue['search_fields']['item_id'])
        self.assertEqual(issue['data']['fields']['project']['id'], '10843')
        self.assertEqual(issue['data']['fields']['project']['id'], issue['search_fields']['project_id'])
        self.assertEqual(issue['data']['fields']['project']['key'], 'HELP')
        self.assertEqual(issue['data']['fields']['project']['key'], issue['search_fields']['project_key'])
        self.assertEqual(issue['data']['fields']['project']['name'], 'Help-Desk')
        self.assertEqual(issue['data']['fields']['project']['name'], issue['search_fields']['project_name'])
        self.assertEqual(issue['data']['key'], 'HELP-6041')
        self.assertEqual(issue['data']['key'], issue['search_fields']['issue_key'])
Exemple #2
0
# print(jira)

oids = set()
for issue in jira.fetch(category=args.category, from_date=args.date_from):
    # print(issue.keys())
    # print(issue['data'].keys())
    # print(issue['data']['fields'].keys())
    # print(datetime.datetime.fromtimestamp(issue['data']['fields']['created']).strftime('%Y-%m-%d %H:%M:%S.%f'))
    # dtu = dateutil.parser.parse(issue['data']['fields']['updated'])
    dtu = utc.localize(
        datetime.datetime.fromtimestamp(jira.metadata_updated_on(
            issue['data'])))
    # print(dtu)
    if args.use_created_date:
        dtc = dateutil.parser.parse(issue['data']['fields']['created'])
        diff = (dtu - dtc) / datetime.timedelta(seconds=1)
        # print(diff)
        # print((dtc, dtu))
        if (args.updated_diff >= 0 and diff > args.updated_diff
            ) or dtc < args.date_from or dtc > args.date_to:
            # print("skip {0},{1}".format(dtc, dtu))
            continue
    elif dtu > args.date_to:
        # print("skip {0}".format(dtu))
        break
    oids.add(jira.metadata_id(issue['data']))
if args.project:
    print((args.project, len(oids)))
else:
    print(len(oids))