diff options
Diffstat (limited to 'modules/git/repo_compare_test.go')
-rw-r--r-- | modules/git/repo_compare_test.go | 76 |
1 files changed, 61 insertions, 15 deletions
diff --git a/modules/git/repo_compare_test.go b/modules/git/repo_compare_test.go index 301e085aae..82d3257c0f 100644 --- a/modules/git/repo_compare_test.go +++ b/modules/git/repo_compare_test.go @@ -17,17 +17,33 @@ import ( func TestGetFormatPatch(t *testing.T) { bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") - clonedPath, err := cloneRepo(bareRepo1Path, testReposDir, "repo1_TestGetFormatPatch") + clonedPath, err := cloneRepo(bareRepo1Path, "repo1_TestGetFormatPatch") + if err != nil { + assert.NoError(t, err) + return + } defer util.RemoveAll(clonedPath) - assert.NoError(t, err) + repo, err := OpenRepository(clonedPath) + if err != nil { + assert.NoError(t, err) + return + } defer repo.Close() - assert.NoError(t, err) + rd := &bytes.Buffer{} err = repo.GetPatch("8d92fc95^", "8d92fc95", rd) - assert.NoError(t, err) + if err != nil { + assert.NoError(t, err) + return + } + patchb, err := io.ReadAll(rd) - assert.NoError(t, err) + if err != nil { + assert.NoError(t, err) + return + } + patch := string(patchb) assert.Regexp(t, "^From 8d92fc95", patch) assert.Contains(t, patch, "Subject: [PATCH] Add file2.txt") @@ -37,17 +53,25 @@ func TestReadPatch(t *testing.T) { // Ensure we can read the patch files bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") repo, err := OpenRepository(bareRepo1Path) + if err != nil { + assert.NoError(t, err) + return + } defer repo.Close() - assert.NoError(t, err) // This patch doesn't exist noFile, err := repo.ReadPatchCommit(0) assert.Error(t, err) + // This patch is an empty one (sometimes it's a 404) noCommit, err := repo.ReadPatchCommit(1) assert.Error(t, err) + // This patch is legit and should return a commit oldCommit, err := repo.ReadPatchCommit(2) - assert.NoError(t, err) + if err != nil { + assert.NoError(t, err) + return + } assert.Empty(t, noFile) assert.Empty(t, noCommit) @@ -58,23 +82,45 @@ func TestReadPatch(t *testing.T) { func TestReadWritePullHead(t *testing.T) { // Ensure we can write SHA1 head corresponding to PR and open them bareRepo1Path := filepath.Join(testReposDir, "repo1_bare") - repo, err := OpenRepository(bareRepo1Path) - assert.NoError(t, err) + + // As we are writing we should clone the repository first + clonedPath, err := cloneRepo(bareRepo1Path, "TestReadWritePullHead") + if err != nil { + assert.NoError(t, err) + return + } + defer util.RemoveAll(clonedPath) + + repo, err := OpenRepository(clonedPath) + if err != nil { + assert.NoError(t, err) + return + } defer repo.Close() + // Try to open non-existing Pull _, err = repo.GetRefCommitID(PullPrefix + "0/head") assert.Error(t, err) + // Write a fake sha1 with only 40 zeros newCommit := "feaf4ba6bc635fec442f46ddd4512416ec43c2c2" err = repo.SetReference(PullPrefix+"1/head", newCommit) - assert.NoError(t, err) - // Remove file after the test - defer func() { - _ = repo.RemoveReference(PullPrefix + "1/head") - }() + if err != nil { + assert.NoError(t, err) + return + } + // Read the file created headContents, err := repo.GetRefCommitID(PullPrefix + "1/head") - assert.NoError(t, err) + if err != nil { + assert.NoError(t, err) + return + } + assert.Len(t, string(headContents), 40) assert.True(t, string(headContents) == newCommit) + + // Remove file after the test + err = repo.RemoveReference(PullPrefix + "1/head") + assert.NoError(t, err) } |