diff options
author | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-07-27 10:47:27 +0300 |
---|---|---|
committer | Patrick Steinhardt <psteinhardt@gitlab.com> | 2022-08-02 09:27:02 +0300 |
commit | 6937fda9ca556e7efb56c83019045c1dfdb794e1 (patch) | |
tree | fd4a3540ac022768b39c21c29258457a4b653353 | |
parent | 3d33bcaaf471495788b539d2c01f0e775d99304b (diff) |
gittest: Deduplicate CommitAuthor information
Lots of our tests verify `GitCommit`s of commits that have been written
via the `WriteCommit()` test helper and thus need to compare whether the
`CommitAuthor` matches the default commit author. This is quite verbose
and duplicates information across lots of our tests.
Provide a global structure as part of the `gittest` package that holds
this information to reduce the duplication. Note that this requires us
to change some locations to use `testhelper.ProtoEqual()` instead of the
previous `require.Equal()` because Protobuf messages cannot necessarily
be directly compared with each other.
-rw-r--r-- | internal/git/gittest/commit.go | 9 | ||||
-rw-r--r-- | internal/gitaly/service/commit/find_commit_test.go | 23 | ||||
-rw-r--r-- | internal/gitaly/service/commit/list_all_commits_test.go | 25 | ||||
-rw-r--r-- | internal/gitaly/service/operations/rebase_test.go | 7 | ||||
-rw-r--r-- | internal/gitaly/service/ref/find_all_tags_test.go | 72 | ||||
-rw-r--r-- | internal/gitaly/service/ref/find_tag_test.go | 37 |
6 files changed, 42 insertions, 131 deletions
diff --git a/internal/git/gittest/commit.go b/internal/git/gittest/commit.go index 3ffc1035a..fe0b0a914 100644 --- a/internal/git/gittest/commit.go +++ b/internal/git/gittest/commit.go @@ -13,6 +13,7 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/gitaly/config" "gitlab.com/gitlab-org/gitaly/v15/internal/helper/text" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" + "google.golang.org/protobuf/types/known/timestamppb" ) var ( @@ -29,6 +30,14 @@ var ( DefaultCommitterSignature = fmt.Sprintf( "%s <%s> %d %s", DefaultCommitterName, DefaultCommitterMail, DefaultCommitTime.Unix(), DefaultCommitTime.Format("-0700"), ) + // DefaultCommitAuthor is the Protobuf message representation of the default committer and + // author used to create commits. + DefaultCommitAuthor = &gitalypb.CommitAuthor{ + Name: []byte(DefaultCommitterName), + Email: []byte(DefaultCommitterMail), + Date: timestamppb.New(DefaultCommitTime), + Timezone: []byte("+0100"), + } ) type writeCommitConfig struct { diff --git a/internal/gitaly/service/commit/find_commit_test.go b/internal/gitaly/service/commit/find_commit_test.go index 42470db91..583c5f755 100644 --- a/internal/gitaly/service/commit/find_commit_test.go +++ b/internal/gitaly/service/commit/find_commit_test.go @@ -10,7 +10,6 @@ import ( "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" - "gitlab.com/gitlab-org/gitaly/v15/internal/git/localrepo" "gitlab.com/gitlab-org/gitaly/v15/internal/helper" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" @@ -27,15 +26,11 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { ctx := testhelper.Context(t) cfg, repoProto, repoPath, client := setupCommitServiceWithRepo(ctx, t) - repo := localrepo.NewTestRepo(t, cfg, repoProto) - bigMessage := "An empty commit with REALLY BIG message\n\n" + strings.Repeat("MOAR!\n", 20*1024) bigCommitID := gittest.WriteCommit(t, cfg, repoPath, gittest.WithBranch("local-big-commits"), gittest.WithMessage(bigMessage), gittest.WithParents("60ecb67744cb56576c30214ff52294f8ce2def98"), ) - bigCommit, err := repo.ReadCommit(ctx, git.Revision(bigCommitID)) - require.NoError(t, err) testCases := []struct { description string @@ -200,20 +195,10 @@ func TestSuccessfulFindCommitRequest(t *testing.T) { description: "with a very large message", revision: bigCommitID.String(), commit: &gitalypb.GitCommit{ - Id: bigCommitID.String(), - Subject: []byte("An empty commit with REALLY BIG message"), - Author: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: ×tamppb.Timestamp{Seconds: bigCommit.Author.Date.Seconds}, - Timezone: []byte("+0100"), - }, - Committer: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: ×tamppb.Timestamp{Seconds: bigCommit.Committer.Date.Seconds}, - Timezone: []byte("+0100"), - }, + Id: bigCommitID.String(), + Subject: []byte("An empty commit with REALLY BIG message"), + Author: gittest.DefaultCommitAuthor, + Committer: gittest.DefaultCommitAuthor, ParentIds: []string{"60ecb67744cb56576c30214ff52294f8ce2def98"}, Body: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]), BodySize: int64(len(bigMessage)), diff --git a/internal/gitaly/service/commit/list_all_commits_test.go b/internal/gitaly/service/commit/list_all_commits_test.go index c0af3db84..ae30a7fa3 100644 --- a/internal/gitaly/service/commit/list_all_commits_test.go +++ b/internal/gitaly/service/commit/list_all_commits_test.go @@ -13,7 +13,6 @@ import ( "gitlab.com/gitlab-org/gitaly/v15/internal/git/gittest" "gitlab.com/gitlab-org/gitaly/v15/internal/testhelper" "gitlab.com/gitlab-org/gitaly/v15/proto/go/gitalypb" - "google.golang.org/protobuf/types/known/timestamppb" ) func TestListAllCommits(t *testing.T) { @@ -126,23 +125,13 @@ func TestListAllCommits(t *testing.T) { require.NoError(t, err) require.Equal(t, []*gitalypb.GitCommit{{ - Id: commitID.String(), - Subject: []byte("message"), - Body: []byte("message"), - BodySize: 7, - TreeId: "4b825dc642cb6eb9a060e54bf8d69288fbee4904", - Author: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: ×tamppb.Timestamp{Seconds: 1572776879}, - Timezone: []byte("+0100"), - }, - Committer: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: ×tamppb.Timestamp{Seconds: 1572776879}, - Timezone: []byte("+0100"), - }, + Id: commitID.String(), + Subject: []byte("message"), + Body: []byte("message"), + BodySize: 7, + TreeId: "4b825dc642cb6eb9a060e54bf8d69288fbee4904", + Author: gittest.DefaultCommitAuthor, + Committer: gittest.DefaultCommitAuthor, }}, receiveCommits(t, stream)) }) } diff --git a/internal/gitaly/service/operations/rebase_test.go b/internal/gitaly/service/operations/rebase_test.go index 7bfbf37d6..8f7742c25 100644 --- a/internal/gitaly/service/operations/rebase_test.go +++ b/internal/gitaly/service/operations/rebase_test.go @@ -173,12 +173,7 @@ func TestUserRebaseConfirmable_skipEmptyCommits(t *testing.T) { Id: "ef7f98be1f753f1a9fa895d999a855611d691629", ParentIds: []string{theirs.String()}, TreeId: "b68aeb18813d7f2e180f2cc0bccc128511438b29", - Author: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Author: gittest.DefaultCommitAuthor, Committer: &gitalypb.CommitAuthor{ Name: gittest.TestUser.Name, Email: gittest.TestUser.Email, diff --git a/internal/gitaly/service/ref/find_all_tags_test.go b/internal/gitaly/service/ref/find_all_tags_test.go index 6ae5ec5fe..d270ad956 100644 --- a/internal/gitaly/service/ref/find_all_tags_test.go +++ b/internal/gitaly/service/ref/find_all_tags_test.go @@ -11,7 +11,6 @@ import ( "testing" "time" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "gitlab.com/gitlab-org/gitaly/v15/internal/git" "gitlab.com/gitlab-org/gitaly/v15/internal/git/catfile" @@ -97,12 +96,7 @@ func TestFindAllTags_successful(t *testing.T) { TargetCommit: gitCommit, Message: []byte("commit tag with a commit sha as the name"), MessageSize: 40, - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, }, { Name: []byte("tag-of-tag"), @@ -110,12 +104,7 @@ func TestFindAllTags_successful(t *testing.T) { TargetCommit: gitCommit, Message: []byte("tag of a tag"), MessageSize: 12, - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, }, { Name: []byte("v1.0.0"), @@ -176,12 +165,7 @@ func TestFindAllTags_successful(t *testing.T) { Id: annotatedTagID.String(), Message: []byte("Blob tag"), MessageSize: 8, - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, }, { Name: []byte("v1.3.0"), @@ -208,12 +192,7 @@ func TestFindAllTags_successful(t *testing.T) { Message: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]), MessageSize: int64(len(bigMessage)), TargetCommit: gitCommit, - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, }, } @@ -242,23 +221,13 @@ func TestFindAllTags_simpleNestedTags(t *testing.T) { Name: []byte("my/nested/tag"), Id: tagID.String(), TargetCommit: &gitalypb.GitCommit{ - Id: commitID.String(), - Body: []byte("message"), - BodySize: 7, - Subject: []byte("message"), - TreeId: git.ObjectHashSHA1.EmptyTreeOID.String(), - Author: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, - Committer: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Id: commitID.String(), + Body: []byte("message"), + BodySize: 7, + Subject: []byte("message"), + TreeId: git.ObjectHashSHA1.EmptyTreeOID.String(), + Author: gittest.DefaultCommitAuthor, + Committer: gittest.DefaultCommitAuthor, }, }, }, @@ -303,20 +272,14 @@ func TestFindAllTags_duplicateAnnotatedTags(t *testing.T) { receivedTags = append(receivedTags, r.GetTags()...) } - commitAuthor := &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - } commit := &gitalypb.GitCommit{ Id: commitID.String(), TreeId: "4b825dc642cb6eb9a060e54bf8d69288fbee4904", Body: []byte("message"), BodySize: 7, Subject: []byte("message"), - Author: commitAuthor, - Committer: commitAuthor, + Author: gittest.DefaultCommitAuthor, + Committer: gittest.DefaultCommitAuthor, } testhelper.ProtoEqual(t, []*gitalypb.Tag{ @@ -426,12 +389,7 @@ func TestFindAllTags_nestedTags(t *testing.T) { Id: tagID.String(), Message: []byte(tagMessage), MessageSize: int64(len([]byte(tagMessage))), - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, } if info.Type == "commit" { @@ -460,7 +418,7 @@ func TestFindAllTags_nestedTags(t *testing.T) { require.Len(t, receivedTags, len(expectedTags)) for _, receivedTag := range receivedTags { - assert.Equal(t, expectedTags[string(receivedTag.Name)], receivedTag) + testhelper.ProtoEqual(t, expectedTags[string(receivedTag.Name)], receivedTag) } }) } diff --git a/internal/gitaly/service/ref/find_tag_test.go b/internal/gitaly/service/ref/find_tag_test.go index 6461e9e77..d9359a31b 100644 --- a/internal/gitaly/service/ref/find_tag_test.go +++ b/internal/gitaly/service/ref/find_tag_test.go @@ -69,12 +69,7 @@ func TestFindTag_successful(t *testing.T) { TargetCommit: gitCommit, Message: []byte("commit tag with a commit sha as the name"), MessageSize: 40, - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, }, { Name: []byte("tag-of-tag"), @@ -82,12 +77,7 @@ func TestFindTag_successful(t *testing.T) { TargetCommit: gitCommit, Message: []byte("tag of a tag"), MessageSize: 12, - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, }, { Name: []byte("v1.0.0"), @@ -135,12 +125,7 @@ func TestFindTag_successful(t *testing.T) { Id: annotatedTagID.String(), Message: []byte("Blob tag"), MessageSize: 8, - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, }, { Name: []byte("v1.3.0"), @@ -167,12 +152,7 @@ func TestFindTag_successful(t *testing.T) { Message: []byte(bigMessage[:helper.MaxCommitOrTagMessageSize]), MessageSize: int64(len(bigMessage)), TargetCommit: gitCommit, - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, }, } @@ -263,12 +243,7 @@ func TestFindTag_nestedTag(t *testing.T) { Id: tagID.String(), Message: []byte(tagMessage), MessageSize: int64(len([]byte(tagMessage))), - Tagger: &gitalypb.CommitAuthor{ - Name: []byte(gittest.DefaultCommitterName), - Email: []byte(gittest.DefaultCommitterMail), - Date: timestamppb.New(gittest.DefaultCommitTime), - Timezone: []byte("+0100"), - }, + Tagger: gittest.DefaultCommitAuthor, } if info.Type == "commit" { commit, err := catfile.GetCommit(ctx, objectReader, git.Revision(tc.originalOid)) @@ -279,7 +254,7 @@ func TestFindTag_nestedTag(t *testing.T) { resp, err := client.FindTag(ctx, rpcRequest) require.NoError(t, err) - require.Equal(t, expectedTag, resp.GetTag()) + testhelper.ProtoEqual(t, expectedTag, resp.GetTag()) }) } } |