def test_get_user_for_authors_simple(self): user = User.objects.create(email="*****@*****.**") project = self.create_project() self.create_member(user=user, organization=project.organization) users = get_users_for_authors(organization_id=project.organization_id, authors=[user]) assert len(users) == 1 assert users[str(user.id)]["email"] == user.email
def test_get_user_for_authors_no_user(self): user = User(email="*****@*****.**") project = self.create_project() users = get_users_for_authors(organization_id=project.organization_id, authors=[user]) assert len(users) == 1 assert users[str(user.id)]["email"] == user.email
def get_users_for_pull_requests(item_list, user=None): authors = list( CommitAuthor.objects.filter(id__in=[i.author_id for i in item_list if i.author_id]) ) if authors: org_ids = set(item.organization_id for item in item_list) if len(org_ids) == 1: return get_users_for_authors(organization_id=org_ids.pop(), authors=authors, user=user) return {}
def get_users_for_commits(item_list, user=None): authors = list( CommitAuthor.objects.get_many_from_cache([i.author_id for i in item_list if i.author_id]) ) if authors: org_ids = set(item.organization_id for item in item_list) if len(org_ids) == 1: return get_users_for_authors(organization_id=org_ids.pop(), authors=authors, user=user) return {}
def get_users_for_commits(item_list, user=None): authors = list(i.author for i in item_list if i.author_id) if authors: org_ids = set(item.organization_id for item in item_list) if len(org_ids) == 1: return get_users_for_authors( organization_id=org_ids.pop(), authors=authors, user=user, ) return {}
def test_get_user_for_authors_caching(self, patched_serialize_base): # Ensure the fetched/miss caching logic works. user = User.objects.create(email="*****@*****.**") user2 = User.objects.create(email="*****@*****.**") project = self.create_project() self.create_member(user=user, organization=project.organization) self.create_member(user=user2, organization=project.organization) commit_author = CommitAuthor.objects.create( email="*****@*****.**", name="Chrib", organization_id=project.organization_id ) commit_author2 = CommitAuthor.objects.create( email="*****@*****.**", name="Also Chrib", organization_id=project.organization_id ) users = get_users_for_authors( organization_id=project.organization_id, authors=[commit_author] ) assert len(users) == 1 assert users[str(commit_author.id)]["email"] == user.email patched_serialize_base.call_count = 1 users = get_users_for_authors( organization_id=project.organization_id, authors=[commit_author] ) assert len(users) == 1 assert users[str(commit_author.id)]["email"] == user.email patched_serialize_base.call_count = 1 users = get_users_for_authors( organization_id=project.organization_id, authors=[commit_author, commit_author2] ) assert len(users) == 2 assert users[str(commit_author.id)]["email"] == user.email assert users[str(commit_author2.id)]["email"] == user2.email patched_serialize_base.call_count = 2 users = get_users_for_authors( organization_id=project.organization_id, authors=[commit_author, commit_author2] ) assert len(users) == 2 assert users[str(commit_author.id)]["email"] == user.email assert users[str(commit_author2.id)]["email"] == user2.email patched_serialize_base.call_count = 2
def get_users_for_pull_requests(item_list, user=None): authors = list( CommitAuthor.objects.filter(id__in=[i.author_id for i in item_list if i.author_id]) ) if authors: org_ids = set(item.organization_id for item in item_list) if len(org_ids) == 1: return get_users_for_authors( organization_id=org_ids.pop(), authors=authors, user=user, ) return {}