mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	[TESTS] tests.AddFixtures helper loads additional per-test fixtures
(cherry picked from commit93a844dd13) (cherry picked from commit6d6d1a121c) (cherry picked from commit8b101f2860) (cherry picked from commit3e56212d6d) (cherry picked from commit4f619bc585) (cherry picked from commit06a47ea56e) (cherry picked from commit5a4d56e77b) (cherry picked from commit84b9d3a0c3)
This commit is contained in:
		
					parent
					
						
							
								40d49b5107
							
						
					
				
			
			
				commit
				
					
						1eb2eca71c
					
				
			
		
					 3 changed files with 30 additions and 0 deletions
				
			
		|  | @ -7,6 +7,7 @@ package unittest | |||
| import ( | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"path/filepath" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"code.gitea.io/gitea/models/db" | ||||
|  | @ -28,6 +29,16 @@ func GetXORMEngine(engine ...*xorm.Engine) (x *xorm.Engine) { | |||
| 	return db.DefaultContext.(*db.Context).Engine().(*xorm.Engine) | ||||
| } | ||||
| 
 | ||||
| func OverrideFixtures(opts FixturesOptions, engine ...*xorm.Engine) func() { | ||||
| 	old := fixturesLoader | ||||
| 	if err := InitFixtures(opts, engine...); err != nil { | ||||
| 		panic(err) | ||||
| 	} | ||||
| 	return func() { | ||||
| 		fixturesLoader = old | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // InitFixtures initialize test fixtures for a test database | ||||
| func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) { | ||||
| 	e := GetXORMEngine(engine...) | ||||
|  | @ -37,6 +48,12 @@ func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) { | |||
| 	} else { | ||||
| 		fixtureOptionFiles = testfixtures.Files(opts.Files...) | ||||
| 	} | ||||
| 	var fixtureOptionDirs []func(*testfixtures.Loader) error | ||||
| 	if opts.Dirs != nil { | ||||
| 		for _, dir := range opts.Dirs { | ||||
| 			fixtureOptionDirs = append(fixtureOptionDirs, testfixtures.Directory(filepath.Join(opts.Base, dir))) | ||||
| 		} | ||||
| 	} | ||||
| 	dialect := "unknown" | ||||
| 	switch e.Dialect().URI().DBType { | ||||
| 	case schemas.POSTGRES: | ||||
|  | @ -57,6 +74,7 @@ func InitFixtures(opts FixturesOptions, engine ...*xorm.Engine) (err error) { | |||
| 		testfixtures.DangerousSkipTestDatabaseCheck(), | ||||
| 		fixtureOptionFiles, | ||||
| 	} | ||||
| 	loaderOptions = append(loaderOptions, fixtureOptionDirs...) | ||||
| 
 | ||||
| 	if e.Dialect().URI().DBType == schemas.POSTGRES { | ||||
| 		loaderOptions = append(loaderOptions, testfixtures.SkipResetSequences()) | ||||
|  |  | |||
|  | @ -208,6 +208,8 @@ func MainTest(m *testing.M, testOpts ...*TestOptions) { | |||
| type FixturesOptions struct { | ||||
| 	Dir   string | ||||
| 	Files []string | ||||
| 	Dirs  []string | ||||
| 	Base  string | ||||
| } | ||||
| 
 | ||||
| // CreateTestEngine creates a memory database and loads the fixture data from fixturesDir | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue