mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Remove outdated code about fixture generation (#32708)
This commit is contained in:
		@@ -1,80 +0,0 @@
 | 
			
		||||
// Copyright 2020 The Gitea Authors. All rights reserved.
 | 
			
		||||
// SPDX-License-Identifier: MIT
 | 
			
		||||
 | 
			
		||||
//nolint:forbidigo
 | 
			
		||||
package main
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models"
 | 
			
		||||
	"code.gitea.io/gitea/models/unittest"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// To generate derivative fixtures, execute the following from Gitea's repository base dir:
 | 
			
		||||
// go run -tags 'sqlite sqlite_unlock_notify' contrib/fixtures/fixture_generation.go [fixture...]
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	generators = []struct {
 | 
			
		||||
		gen  func(ctx context.Context) (string, error)
 | 
			
		||||
		name string
 | 
			
		||||
	}{
 | 
			
		||||
		{
 | 
			
		||||
			models.GetYamlFixturesAccess, "access",
 | 
			
		||||
		},
 | 
			
		||||
	}
 | 
			
		||||
	fixturesDir string
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
	pathToGiteaRoot := "."
 | 
			
		||||
	fixturesDir = filepath.Join(pathToGiteaRoot, "models", "fixtures")
 | 
			
		||||
	if err := unittest.CreateTestEngine(unittest.FixturesOptions{
 | 
			
		||||
		Dir: fixturesDir,
 | 
			
		||||
	}); err != nil {
 | 
			
		||||
		fmt.Printf("CreateTestEngine: %+v", err)
 | 
			
		||||
		os.Exit(1)
 | 
			
		||||
	}
 | 
			
		||||
	if err := unittest.PrepareTestDatabase(); err != nil {
 | 
			
		||||
		fmt.Printf("PrepareTestDatabase: %+v\n", err)
 | 
			
		||||
		os.Exit(1)
 | 
			
		||||
	}
 | 
			
		||||
	ctx := context.Background()
 | 
			
		||||
	if len(os.Args) == 0 {
 | 
			
		||||
		for _, r := range os.Args {
 | 
			
		||||
			if err := generate(ctx, r); err != nil {
 | 
			
		||||
				fmt.Printf("generate '%s': %+v\n", r, err)
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		for _, g := range generators {
 | 
			
		||||
			if err := generate(ctx, g.name); err != nil {
 | 
			
		||||
				fmt.Printf("generate '%s': %+v\n", g.name, err)
 | 
			
		||||
				os.Exit(1)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func generate(ctx context.Context, name string) error {
 | 
			
		||||
	for _, g := range generators {
 | 
			
		||||
		if g.name == name {
 | 
			
		||||
			data, err := g.gen(ctx)
 | 
			
		||||
			if err != nil {
 | 
			
		||||
				return err
 | 
			
		||||
			}
 | 
			
		||||
			path := filepath.Join(fixturesDir, name+".yml")
 | 
			
		||||
			if err := os.WriteFile(path, []byte(data), 0o644); err != nil {
 | 
			
		||||
				return fmt.Errorf("%s: %+v", path, err)
 | 
			
		||||
			}
 | 
			
		||||
			fmt.Printf("%s created.\n", path)
 | 
			
		||||
			return nil
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return fmt.Errorf("generator not found")
 | 
			
		||||
}
 | 
			
		||||
@@ -1,50 +0,0 @@
 | 
			
		||||
// Copyright 2020 The Gitea Authors. All rights reserved.
 | 
			
		||||
// SPDX-License-Identifier: MIT
 | 
			
		||||
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"strings"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/db"
 | 
			
		||||
	access_model "code.gitea.io/gitea/models/perm/access"
 | 
			
		||||
	repo_model "code.gitea.io/gitea/models/repo"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// GetYamlFixturesAccess returns a string containing the contents
 | 
			
		||||
// for the access table, as recalculated using repo.RecalculateAccesses()
 | 
			
		||||
func GetYamlFixturesAccess(ctx context.Context) (string, error) {
 | 
			
		||||
	repos := make([]*repo_model.Repository, 0, 50)
 | 
			
		||||
	if err := db.GetEngine(ctx).Find(&repos); err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for _, repo := range repos {
 | 
			
		||||
		repo.MustOwner(ctx)
 | 
			
		||||
		if err := access_model.RecalculateAccesses(ctx, repo); err != nil {
 | 
			
		||||
			return "", err
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	var b strings.Builder
 | 
			
		||||
 | 
			
		||||
	accesses := make([]*access_model.Access, 0, 200)
 | 
			
		||||
	if err := db.GetEngine(ctx).OrderBy("user_id, repo_id").Find(&accesses); err != nil {
 | 
			
		||||
		return "", err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	for i, a := range accesses {
 | 
			
		||||
		fmt.Fprintf(&b, "-\n")
 | 
			
		||||
		fmt.Fprintf(&b, "  id: %d\n", i+1)
 | 
			
		||||
		fmt.Fprintf(&b, "  user_id: %d\n", a.UserID)
 | 
			
		||||
		fmt.Fprintf(&b, "  repo_id: %d\n", a.RepoID)
 | 
			
		||||
		fmt.Fprintf(&b, "  mode: %d\n", a.Mode)
 | 
			
		||||
		if i < len(accesses)-1 {
 | 
			
		||||
			fmt.Fprintf(&b, "\n")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return b.String(), nil
 | 
			
		||||
}
 | 
			
		||||
@@ -1,37 +0,0 @@
 | 
			
		||||
// Copyright 2020 The Gitea Authors. All rights reserved.
 | 
			
		||||
// SPDX-License-Identifier: MIT
 | 
			
		||||
 | 
			
		||||
package models
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"context"
 | 
			
		||||
	"os"
 | 
			
		||||
	"path/filepath"
 | 
			
		||||
	"testing"
 | 
			
		||||
 | 
			
		||||
	"code.gitea.io/gitea/models/db"
 | 
			
		||||
	"code.gitea.io/gitea/models/unittest"
 | 
			
		||||
	"code.gitea.io/gitea/modules/util"
 | 
			
		||||
 | 
			
		||||
	"github.com/stretchr/testify/assert"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func TestFixtureGeneration(t *testing.T) {
 | 
			
		||||
	assert.NoError(t, unittest.PrepareTestDatabase())
 | 
			
		||||
 | 
			
		||||
	test := func(ctx context.Context, gen func(ctx context.Context) (string, error), name string) {
 | 
			
		||||
		expected, err := gen(ctx)
 | 
			
		||||
		if !assert.NoError(t, err) {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		p := filepath.Join(unittest.FixturesDir(), name+".yml")
 | 
			
		||||
		bytes, err := os.ReadFile(p)
 | 
			
		||||
		if !assert.NoError(t, err) {
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		data := string(util.NormalizeEOL(bytes))
 | 
			
		||||
		assert.EqualValues(t, expected, data, "Differences detected for %s", p)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	test(db.DefaultContext, GetYamlFixturesAccess, "access")
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user