def get_user_field(client: JIRA, hosting_type: str, jira_username: str, user_email: str) -> dict: """Returns correct Jira user field based on Jira hosting type.""" if hosting_type == "server": username = get_email_username(user_email) users = client.search_users(user=username) for user in users: if user.name == username: return {"name": user.name} # we default to the Jira user we use for managing issues # if we can't find the user in Jira return {"name": jira_username} if hosting_type == "cloud": username = get_email_username(user_email) user = next( client._fetch_pages( User, None, "user/search", startAt=0, maxResults=1, params={"query": username}, )) return {"id": user.accountId}
def get_user(client: JIRA, username: str) -> User: """Helper method to fetch object from JIRA.""" user = next( client._fetch_pages( User, None, "user/search", startAt=0, maxResults=1, params={"query": username}, )) return user
def get_user_field(client: JIRA, user_email) -> dict: """Returns correct Jira user field based on Jira hosting type.""" if JIRA_HOSTING_TYPE == "Server": user = client.search_users(user_email, maxResults=1)[0] return {"name": user.name} if JIRA_HOSTING_TYPE == "Cloud": username = get_email_username(user_email) user = next( client._fetch_pages( User, None, "user/search", startAt=0, maxResults=1, params={"query": username}, )) return {"id": user.accountId}
class AsyncTests(JiraTestCase): def setUp(self): self.jira = JIRA( "https://jira.atlassian.com", logging=False, async_=True, validate=False, get_server_info=False, ) def test_fetch_pages(self): """Tests that the JIRA._fetch_pages method works as expected.""" params = {"startAt": 0} total = 26 expected_results = [] for i in range(0, total): result = _create_issue_result_json(i, "summary %s" % i, key="KEY-%s" % i) expected_results.append(result) result_one = _create_issue_search_results_json(expected_results[:10], max_results=10, total=total) result_two = _create_issue_search_results_json(expected_results[10:20], max_results=10, total=total) result_three = _create_issue_search_results_json(expected_results[20:], max_results=6, total=total) mock_session = mock.Mock(name="mock_session") responses = mock.Mock(name="responses") responses.content = "_filler_" responses.json.side_effect = [result_one, result_two, result_three] responses.status_code = 200 mock_session.request.return_value = responses mock_session.get.return_value = responses self.jira._session.close() self.jira._session = mock_session items = self.jira._fetch_pages(Issue, "issues", "search", 0, False, params) self.assertEqual(len(items), total) self.assertEqual( set(item.key for item in items), set(expected_r["key"] for expected_r in expected_results), )