MCPcopy Index your code
hub / github.com/ddev/ddev / TestWebserverPostgresDBClient

Function TestWebserverPostgresDBClient

pkg/ddevapp/ddevapp_test.go:2289–2388  ·  view source on GitHub ↗

TestWebserverPostgresDBClient tests functionality of Postgres database clients in the ddev-webserver

(t *testing.T)

Source from the content-addressed store, hash-verified

2287// TestWebserverPostgresDBClient tests functionality of Postgres
2288// database clients in the ddev-webserver
2289func TestWebserverPostgresDBClient(t *testing.T) {
2290 assert := asrt.New(t)
2291
2292 serverVersions := []string{"postgres:18", "postgres:17", "postgres:16"}
2293
2294 app := &ddevapp.DdevApp{}
2295 origDir, _ := os.Getwd()
2296
2297 site := TestSites[0]
2298 runTime := util.TimeTrackC(fmt.Sprintf("%s %s", site.Name, t.Name()))
2299
2300 testcommon.ClearDockerEnv()
2301 err := app.Init(site.Dir)
2302 assert.NoError(err)
2303
2304 err = app.Stop(true, false)
2305 require.NoError(t, err)
2306
2307 // Existing DB type in volume should be empty
2308 dbType, err := app.GetExistingDBType()
2309 assert.NoError(err)
2310 assert.Equal("", strings.Trim(dbType, " \n\r\t"))
2311
2312 // Make sure there isn't an old database volume laying around
2313 _ = dockerutil.RemoveVolume(app.Name + "-postgres")
2314 t.Cleanup(func() {
2315 err = app.Stop(true, false)
2316 assert.NoError(err)
2317 err = os.RemoveAll(app.GetConfigPath("db_snapshots"))
2318 assert.NoError(err)
2319 _ = os.RemoveAll(filepath.Join(app.AppRoot, "users.sql"))
2320 _ = os.RemoveAll(filepath.Join(app.AppRoot, "dbdump.sql"))
2321 // Make sure we leave the config.yaml in expected state
2322 app.Database.Type = nodeps.MariaDB
2323 app.Database.Version = nodeps.MariaDBDefaultVersion
2324 err = app.WriteConfig()
2325 assert.NoError(err)
2326 err = os.Chdir(origDir)
2327 assert.NoError(err)
2328 })
2329
2330 for _, dbTypeVersion := range serverVersions {
2331 t.Logf("Testing postgres client functionality of %s", dbTypeVersion)
2332 parts := strings.Split(dbTypeVersion, ":")
2333 dbType := parts[0]
2334 dbVersion := parts[1]
2335 require.Len(t, parts, 2)
2336
2337 err = app.Stop(true, false)
2338 require.NoError(t, err)
2339 app.Database.Type = dbType
2340 app.Database.Version = dbVersion
2341 err = app.WriteConfig()
2342 require.NoError(t, err)
2343
2344 startErr := app.Start()
2345 require.NoError(t, startErr)
2346

Callers

nothing calls this directly

Calls 14

InitMethod · 0.95
StopMethod · 0.95
GetExistingDBTypeMethod · 0.95
GetConfigPathMethod · 0.95
WriteConfigMethod · 0.95
StartMethod · 0.95
ExecMethod · 0.95
MutagenSyncFlushMethod · 0.95
TimeTrackCFunction · 0.92
ClearDockerEnvFunction · 0.92
RemoveVolumeFunction · 0.92
CopyFileFunction · 0.92

Tested by

no test coverage detected