Adding upstream version 3.10.8.
Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
parent
37e9b6d587
commit
03bfe4079e
356 changed files with 28857 additions and 0 deletions
125
tree/tests/f3/helpers_repository_test.go
Normal file
125
tree/tests/f3/helpers_repository_test.go
Normal file
|
@ -0,0 +1,125 @@
|
|||
// Copyright Earl Warren <contact@earl-warren.org>
|
||||
// Copyright Loïc Dachary <loic@dachary.org>
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
package f3
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
filesystem_options "code.forgejo.org/f3/gof3/v3/forges/filesystem/options"
|
||||
forgejo_options "code.forgejo.org/f3/gof3/v3/forges/forgejo/options"
|
||||
helpers_repository "code.forgejo.org/f3/gof3/v3/forges/helpers/repository"
|
||||
tests_repository "code.forgejo.org/f3/gof3/v3/forges/helpers/tests/repository"
|
||||
"code.forgejo.org/f3/gof3/v3/logger"
|
||||
f3_tree "code.forgejo.org/f3/gof3/v3/tree/f3"
|
||||
"code.forgejo.org/f3/gof3/v3/tree/generic"
|
||||
tests_forge "code.forgejo.org/f3/gof3/v3/tree/tests/f3/forge"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestNodeRepositoryDriverMirrorNoop(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
url := t.TempDir()
|
||||
repositoryHelper := tests_repository.NewTestHelper(t, url, nil)
|
||||
repositoryHelper.CreateRepositoryContent("").PushMirror()
|
||||
log := logger.NewCaptureLogger()
|
||||
log.SetLevel(logger.Trace)
|
||||
|
||||
log.Reset()
|
||||
helpers_repository.GitMirror(ctx, log, url, url, []string{})
|
||||
assert.Contains(t, log.String(), "do nothing")
|
||||
|
||||
log.Reset()
|
||||
helpers_repository.GitMirrorRef(ctx, log, url, "fakeref", url, "fakeref")
|
||||
assert.Contains(t, log.String(), "do nothing")
|
||||
}
|
||||
|
||||
func TestNodeRepositoryDriverMirrorForgejo(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
log := logger.NewCaptureLogger()
|
||||
log.SetLevel(logger.Trace)
|
||||
|
||||
testForgejo := tests_forge.GetFactory(forgejo_options.Name)()
|
||||
opts := testForgejo.NewOptions(t)
|
||||
forgeTree := generic.GetFactory("f3")(ctx, opts)
|
||||
|
||||
forgeTree.Trace("======= build fixture")
|
||||
fixtureTree := generic.GetFactory("f3")(ctx, tests_forge.GetFactory(filesystem_options.Name)().NewOptions(t))
|
||||
TreeBuildPartial(t, "F3", testForgejo.GetKindExceptions(), opts, fixtureTree)
|
||||
|
||||
forgeTree.Trace("======= mirror fixture to forge")
|
||||
|
||||
generic.TreeMirror(ctx, fixtureTree, forgeTree, generic.NewPathFromString(""), generic.NewMirrorOptions())
|
||||
|
||||
forgeTree.Trace("======= NodeRepositoryDriverMirror from a forgejo project to a directory")
|
||||
|
||||
repositoryPath := generic.TreePathRemap(ctx, fixtureTree, generic.NewPathFromString("/forge/users/10111/projects/74823/repositories/vcs"), forgeTree)
|
||||
require.False(t, repositoryPath.Empty())
|
||||
repository := forgeTree.Find(repositoryPath)
|
||||
repositoryURL := repository.GetDriver().(f3_tree.RepositoryNodeDriverProxyInterface).GetRepositoryURL()
|
||||
internalRefs := repository.GetDriver().(f3_tree.RepositoryNodeDriverProxyInterface).GetRepositoryInternalRefs()
|
||||
|
||||
log.Reset()
|
||||
destination := t.TempDir()
|
||||
tests_repository.NewTestHelper(t, destination, nil)
|
||||
helpers_repository.GitMirror(ctx, log, repositoryURL, destination, internalRefs)
|
||||
require.Contains(t, log.String(), "fetch fetchMirror")
|
||||
|
||||
forgeTree.Trace("======= NodeRepositoryDriverMirror from one forgejo project to another forgejo project")
|
||||
|
||||
otherRepositoryPath := generic.TreePathRemap(ctx, fixtureTree, generic.NewPathFromString("/forge/users/20222/projects/99099/repositories/vcs"), forgeTree)
|
||||
require.False(t, otherRepositoryPath.Empty())
|
||||
otherRepository := forgeTree.Find(otherRepositoryPath)
|
||||
otherRepositoryURL := otherRepository.GetDriver().(f3_tree.RepositoryNodeDriverProxyInterface).GetRepositoryURL()
|
||||
otherRepositoryPushURL := otherRepository.GetDriver().(f3_tree.RepositoryNodeDriverProxyInterface).GetRepositoryPushURL()
|
||||
otherInternalRefs := otherRepository.GetDriver().(f3_tree.RepositoryNodeDriverProxyInterface).GetRepositoryInternalRefs()
|
||||
|
||||
log.Reset()
|
||||
helpers_repository.GitMirror(ctx, log, repositoryURL, otherRepositoryPushURL, otherInternalRefs)
|
||||
require.Contains(t, log.String(), "+refs/")
|
||||
|
||||
forgeTree.Trace("======= NodeRepositoryDriverMirror from a directory to a forgejo project")
|
||||
|
||||
log.Reset()
|
||||
repositoryHelper := tests_repository.NewTestHelper(t, destination, nil)
|
||||
content := "SOMETHING DIFFERENT"
|
||||
repositoryHelper.CreateRepositoryContent(content).PushMirror()
|
||||
helpers_repository.GitMirror(ctx, log, destination, otherRepositoryPushURL, otherInternalRefs)
|
||||
require.Contains(t, log.String(), "+refs/")
|
||||
verificationDir := t.TempDir()
|
||||
repositoryHelper = tests_repository.NewTestHelper(t, verificationDir, nil)
|
||||
helpers_repository.GitMirror(ctx, log, otherRepositoryURL, verificationDir, []string{})
|
||||
repositoryHelper.AssertReadmeContains(content)
|
||||
|
||||
forgeTree.Trace("======= NodeRepositoryDriverMirrorRef from a forgejo project to a directory")
|
||||
|
||||
masterRef := "refs/heads/master"
|
||||
forgejoRef := "refs/forgejo/test"
|
||||
directoryRef := "refs/directory/test"
|
||||
|
||||
log.Reset()
|
||||
helpers_repository.GitMirrorRef(ctx, log, repositoryURL, masterRef, destination, directoryRef)
|
||||
require.Contains(t, log.String(), "new branch")
|
||||
directorySha := helpers_repository.GitGetSha(ctx, log, destination, directoryRef)
|
||||
|
||||
forgeTree.Trace("======= NodeRepositoryDriverMirrorRef from one forgejo project to another forgejo project")
|
||||
|
||||
log.Reset()
|
||||
otherForgejoRef := "refs/otherforgejo/test"
|
||||
otherDirectoryRef := "refs/otherdirectory/test"
|
||||
helpers_repository.GitMirrorRef(ctx, log, repositoryURL, masterRef, otherRepositoryPushURL, otherForgejoRef)
|
||||
helpers_repository.GitMirrorRef(ctx, log, otherRepositoryURL, otherForgejoRef, destination, otherDirectoryRef)
|
||||
assert.EqualValues(t, directorySha, helpers_repository.GitGetSha(ctx, log, destination, otherDirectoryRef))
|
||||
|
||||
forgeTree.Trace("======= NodeRepositoryDriverMirrorRef from a directory to a forgejo project")
|
||||
|
||||
log.Reset()
|
||||
helpers_repository.GitMirrorRef(ctx, log, verificationDir, masterRef, otherRepositoryPushURL, forgejoRef)
|
||||
masterSha := helpers_repository.GitGetSha(ctx, log, verificationDir, masterRef)
|
||||
helpers_repository.GitMirrorRef(ctx, log, otherRepositoryURL, forgejoRef, verificationDir, directoryRef)
|
||||
assert.EqualValues(t, masterSha, helpers_repository.GitGetSha(ctx, log, verificationDir, directoryRef))
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue