MCPcopy
hub / github.com/mudler/LocalAI / SetupTestDB

Function SetupTestDB

core/services/testutil/testdb.go:21–42  ·  view source on GitHub ↗

SetupTestDB creates a fresh PostgreSQL 16 container and returns a gorm.DB. The container is cleaned up via DeferCleanup when the test completes.

()

Source from the content-addressed store, hash-verified

19// SetupTestDB creates a fresh PostgreSQL 16 container and returns a gorm.DB.
20// The container is cleaned up via DeferCleanup when the test completes.
21func SetupTestDB() *gorm.DB {
22 if runtime.GOOS == "darwin" {
23 Skip("testcontainers requires Docker, not available on macOS CI")
24 }
25 ctx := context.Background()
26 pgC, err := tcpostgres.Run(ctx, "postgres:16",
27 tcpostgres.WithDatabase("testdb"),
28 tcpostgres.WithUsername("test"),
29 tcpostgres.WithPassword("test"),
30 testcontainers.WithWaitStrategyAndDeadline(60*time.Second,
31 wait.ForLog("database system is ready to accept connections").WithOccurrence(2)),
32 )
33 Expect(err).ToNot(HaveOccurred())
34 DeferCleanup(func() { pgC.Terminate(context.Background()) })
35 connStr, err := pgC.ConnectionString(ctx, "sslmode=disable")
36 Expect(err).ToNot(HaveOccurred())
37 db, err := gorm.Open(postgres.Open(connStr), &gorm.Config{
38 Logger: logger.Default.LogMode(logger.Silent),
39 })
40 Expect(err).ToNot(HaveOccurred())
41 return db
42}

Callers 15

nodes_test.goFile · 0.92
quant_test.goFile · 0.92
finetune_test.goFile · 0.92
dispatcher_test.goFile · 0.92
store_test.goFile · 0.92
reconciler_test.goFile · 0.92

Calls 1

RunMethod · 0.45

Tested by

no test coverage detected