Esempio n. 1
0
    def test_map_custom_field(self):

        """Test that all the fields are correctly mapped"""

        page = read_file('data/jira/jira_issues_page_1.json')

        page_json = json.loads(page)

        issues = page_json['issues']

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

        fields_json = json.loads(fields)

        custom_fields = filter_custom_fields(fields_json)

        for issue in issues:
            mapping = map_custom_field(custom_fields, issue['fields'])
            for k, v in mapping.items():
                issue['fields'][k] = v

        self.assertEqual(issues[0]['fields']['customfield_10301']['id'],
                         custom_fields['customfield_10301']['id'])
        self.assertEqual(issues[0]['fields']['customfield_10301']['name'],
                         custom_fields['customfield_10301']['name'])
        self.assertEqual(issues[0]['fields']['customfield_10400']['id'],
                         custom_fields['customfield_10400']['id'])
        self.assertEqual(issues[0]['fields']['customfield_10400']['name'],
                         custom_fields['customfield_10400']['name'])
        self.assertEqual(issues[0]['fields']['customfield_10600']['id'],
                         custom_fields['customfield_10600']['id'])
        self.assertEqual(issues[0]['fields']['customfield_10600']['name'],
                         custom_fields['customfield_10600']['name'])
        self.assertEqual(issues[0]['fields']['customfield_10603']['id'],
                         custom_fields['customfield_10603']['id'])
        self.assertEqual(issues[0]['fields']['customfield_10603']['name'],
                         custom_fields['customfield_10603']['name'])

        self.assertEqual(issues[1]['fields']['customfield_10301']['id'],
                         custom_fields['customfield_10301']['id'])
        self.assertEqual(issues[1]['fields']['customfield_10301']['name'],
                         custom_fields['customfield_10301']['name'])
        self.assertEqual(issues[1]['fields']['customfield_10400']['id'],
                         custom_fields['customfield_10400']['id'])
        self.assertEqual(issues[1]['fields']['customfield_10400']['name'],
                         custom_fields['customfield_10400']['name'])
        self.assertEqual(issues[1]['fields']['customfield_10600']['id'],
                         custom_fields['customfield_10600']['id'])
        self.assertEqual(issues[1]['fields']['customfield_10600']['name'],
                         custom_fields['customfield_10600']['name'])
        self.assertEqual(issues[1]['fields']['customfield_10603']['id'],
                         custom_fields['customfield_10603']['id'])
        self.assertEqual(issues[1]['fields']['customfield_10603']['name'],
                         custom_fields['customfield_10603']['name'])
Esempio n. 2
0
    def test_filter_custom_fields(self):
        """Test that all the fields returned are just custom"""
        body = read_file('data/jira/jira_fields.json')

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

        body_json = json.loads(body)

        custom_fields = filter_custom_fields(body_json)

        for key in custom_fields.keys():
            self.assertEqual(custom_fields[key]['custom'], True)
Esempio n. 3
0
    def test_fetch(self):
        """Test whether a list of issues is returned"""

        requests = []

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

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

        def request_callback(method, uri, headers):
            body = bodies_json.pop(0)
            requests.append(httpretty.last_request())
            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_FIELDS_URL,
                               body=body, status=200)

        jira = Jira(JIRA_SERVER_URL)

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

        body_json = json.loads(body)

        custom_fields = filter_custom_fields(body_json)

        expected_req = [
            {
                'expand': ['renderedFields,transitions,operations,changelog'],
                'jql': ['updated > 0 order by updated asc'],
                'startAt': ['0'],
                'maxResults': ['100']
            },
            {
                'expand': ['renderedFields,transitions,operations,changelog'],
                'jql': ['updated > 0 order by updated asc'],
                'startAt': ['2'],
                'maxResults': ['100']
            }
        ]

        for i in range(len(expected_req)):
            self.assertEqual(requests[i].method, 'GET')
            self.assertRegex(requests[i].path, '/rest/api/2/search')
            self.assertDictEqual(requests[i].querystring, expected_req[i])

        self.assertEqual(len(issues), 3)

        self.assertEqual(issues[0]['origin'], 'http://example.com')
        self.assertEqual(issues[0]['uuid'], 'dfe008e19e2b720d1d377607680e90c250134164')
        self.assertEqual(issues[0]['updated_on'], 1457015567)
        self.assertEqual(issues[0]['category'], 'issue')
        self.assertEqual(issues[0]['tag'], 'http://example.com')
        self.assertEqual(issues[0]['data']['key'], 'HELP-6043')
        self.assertEqual(issues[0]['data']['fields']['issuetype']['name'], 'extRequest')
        self.assertEqual(issues[0]['data']['fields']['creator']['name'], 'user2')
        self.assertEqual(issues[0]['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issues[0]['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issues[0]['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issues[0]['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issues[0]['data']['fields']['customfield_10301']['id'],
                         custom_fields['customfield_10301']['id'])
        self.assertEqual(issues[0]['data']['fields']['customfield_10301']['name'],
                         custom_fields['customfield_10301']['name'])
        self.assertEqual(issues[0]['data']['fields']['customfield_10400']['id'],
                         custom_fields['customfield_10400']['id'])
        self.assertEqual(issues[0]['data']['fields']['customfield_10400']['name'],
                         custom_fields['customfield_10400']['name'])
        self.assertEqual(issues[0]['data']['fields']['customfield_10600']['id'],
                         custom_fields['customfield_10600']['id'])
        self.assertEqual(issues[0]['data']['fields']['customfield_10600']['name'],
                         custom_fields['customfield_10600']['name'])
        self.assertEqual(issues[0]['data']['fields']['customfield_10603']['id'],
                         custom_fields['customfield_10603']['id'])
        self.assertEqual(issues[0]['data']['fields']['customfield_10603']['name'],
                         custom_fields['customfield_10603']['name'])

        self.assertEqual(issues[1]['origin'], 'http://example.com')
        self.assertEqual(issues[1]['uuid'], '830747ed8cc9af800fcd6284e9dccfdb11daf15b')
        self.assertEqual(issues[1]['updated_on'], 1457015417)
        self.assertEqual(issues[1]['category'], 'issue')
        self.assertEqual(issues[1]['tag'], 'http://example.com')
        self.assertEqual(issues[1]['data']['key'], 'HELP-6042')
        self.assertEqual(issues[1]['data']['fields']['issuetype']['name'], 'extRequest')
        self.assertEqual(issues[1]['data']['fields']['creator']['name'], 'user2')
        self.assertEqual(issues[1]['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issues[1]['data']['fields']['customfield_10301']['id'],
                         custom_fields['customfield_10301']['id'])
        self.assertEqual(issues[1]['data']['fields']['customfield_10301']['name'],
                         custom_fields['customfield_10301']['name'])
        self.assertEqual(issues[1]['data']['fields']['customfield_10400']['id'],
                         custom_fields['customfield_10400']['id'])
        self.assertEqual(issues[1]['data']['fields']['customfield_10400']['name'],
                         custom_fields['customfield_10400']['name'])
        self.assertEqual(issues[1]['data']['fields']['customfield_10600']['id'],
                         custom_fields['customfield_10600']['id'])
        self.assertEqual(issues[1]['data']['fields']['customfield_10600']['name'],
                         custom_fields['customfield_10600']['name'])
        self.assertEqual(issues[1]['data']['fields']['customfield_10603']['id'],
                         custom_fields['customfield_10603']['id'])
        self.assertEqual(issues[1]['data']['fields']['customfield_10603']['name'],
                         custom_fields['customfield_10603']['name'])

        self.assertEqual(issues[2]['origin'], 'http://example.com')
        self.assertEqual(issues[2]['uuid'], '2e988d555915991228d81144b018c8321d628265')
        self.assertEqual(issues[2]['updated_on'], 1457006245)
        self.assertEqual(issues[2]['category'], 'issue')
        self.assertEqual(issues[2]['tag'], 'http://example.com')
        self.assertEqual(issues[2]['data']['key'], 'HELP-6041')
        self.assertEqual(issues[2]['data']['fields']['issuetype']['name'], 'extRequest')
        self.assertEqual(issues[2]['data']['fields']['creator']['name'], 'user2')
        self.assertEqual(issues[2]['data']['fields']['assignee']['name'], 'user3')
        self.assertEqual(issues[2]['data']['fields']['customfield_10301']['id'],
                         custom_fields['customfield_10301']['id'])
        self.assertEqual(issues[2]['data']['fields']['customfield_10301']['name'],
                         custom_fields['customfield_10301']['name'])
        self.assertEqual(issues[2]['data']['fields']['customfield_10400']['id'],
                         custom_fields['customfield_10400']['id'])
        self.assertEqual(issues[2]['data']['fields']['customfield_10400']['name'],
                         custom_fields['customfield_10400']['name'])
        self.assertEqual(issues[2]['data']['fields']['customfield_10600']['id'],
                         custom_fields['customfield_10600']['id'])
        self.assertEqual(issues[2]['data']['fields']['customfield_10600']['name'],
                         custom_fields['customfield_10600']['name'])
        self.assertEqual(issues[2]['data']['fields']['customfield_10603']['id'],
                         custom_fields['customfield_10603']['id'])
        self.assertEqual(issues[2]['data']['fields']['customfield_10603']['name'],
                         custom_fields['customfield_10603']['name'])
Esempio n. 4
0
    def test_fetch(self):
        """Test whether a list of issues is returned"""

        requests = []

        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)
            requests.append(httpretty.last_request())
            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()]

        body_json = json.loads(body)

        custom_fields = filter_custom_fields(body_json)

        expected_req = [
            {
                'expand': ['renderedFields,transitions,operations,changelog'],
                'jql': ['updated > 0 order by updated asc'],
                'startAt': ['0'],
                'maxResults': ['100']
            },
            {
                'expand': ['renderedFields,transitions,operations,changelog'],
                'jql': ['updated > 0 order by updated asc'],
                'startAt': ['2'],
                'maxResults': ['100']
            }
        ]

        for i in range(len(expected_req)):
            self.assertEqual(requests[i].method, 'GET')
            self.assertRegex(requests[i].path, '/rest/api/2/search')
            self.assertDictEqual(requests[i].querystring, expected_req[i])

        self.assertEqual(len(issues), 3)

        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(issue['data']['key'], 'HELP-6043')
        self.assertEqual(issue['data']['fields']['issuetype']['name'], 'extRequest')
        self.assertEqual(issue['data']['fields']['creator']['name'], 'user2')
        self.assertEqual(issue['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issue['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issue['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issue['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issue['data']['fields']['customfield_10301']['id'],
                         custom_fields['customfield_10301']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10301']['name'],
                         custom_fields['customfield_10301']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10400']['id'],
                         custom_fields['customfield_10400']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10400']['name'],
                         custom_fields['customfield_10400']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10600']['id'],
                         custom_fields['customfield_10600']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10600']['name'],
                         custom_fields['customfield_10600']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10603']['id'],
                         custom_fields['customfield_10603']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10603']['name'],
                         custom_fields['customfield_10603']['name'])
        self.assertEqual(issue['data']['comments_data'], [])

        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(issue['data']['key'], 'HELP-6042')
        self.assertEqual(issue['data']['fields']['issuetype']['name'], 'extRequest')
        self.assertEqual(issue['data']['fields']['creator']['name'], 'user2')
        self.assertEqual(issue['data']['fields']['assignee']['name'], 'user1')
        self.assertEqual(issue['data']['fields']['customfield_10301']['id'],
                         custom_fields['customfield_10301']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10301']['name'],
                         custom_fields['customfield_10301']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10400']['id'],
                         custom_fields['customfield_10400']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10400']['name'],
                         custom_fields['customfield_10400']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10600']['id'],
                         custom_fields['customfield_10600']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10600']['name'],
                         custom_fields['customfield_10600']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10603']['id'],
                         custom_fields['customfield_10603']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10603']['name'],
                         custom_fields['customfield_10603']['name'])
        self.assertEqual(len(issue['data']['comments_data']), 2)
        self.assertEqual(issue['data']['comments_data'][0]['author']['displayName'], 'Tim Monks')
        self.assertEqual(issue['data']['comments_data'][1]['author']['displayName'], 'Scott Monks')

        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(issue['data']['key'], 'HELP-6041')
        self.assertEqual(issue['data']['fields']['issuetype']['name'], 'extRequest')
        self.assertEqual(issue['data']['fields']['creator']['name'], 'user2')
        self.assertEqual(issue['data']['fields']['assignee']['name'], 'user3')
        self.assertEqual(issue['data']['fields']['customfield_10301']['id'],
                         custom_fields['customfield_10301']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10301']['name'],
                         custom_fields['customfield_10301']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10400']['id'],
                         custom_fields['customfield_10400']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10400']['name'],
                         custom_fields['customfield_10400']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10600']['id'],
                         custom_fields['customfield_10600']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10600']['name'],
                         custom_fields['customfield_10600']['name'])
        self.assertEqual(issue['data']['fields']['customfield_10603']['id'],
                         custom_fields['customfield_10603']['id'])
        self.assertEqual(issue['data']['fields']['customfield_10603']['name'],
                         custom_fields['customfield_10603']['name'])
        self.assertEqual(issue['data']['comments_data'], [])