Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
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 {}
Beispiel #4
0
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 {}
Beispiel #5
0
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 {}
Beispiel #6
0
    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
Beispiel #7
0
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 {}