diff --git a/prepare_database.go b/prepare_database.go index 8e5920d..3287422 100644 --- a/prepare_database.go +++ b/prepare_database.go @@ -7,6 +7,7 @@ import ( "fmt" "io" "io/ioutil" + "os" "os/exec" "path/filepath" @@ -42,6 +43,10 @@ func defaultInitDatabase(binaryExtractLocation, username, password, locale strin return fmt.Errorf("unable to init database using: %s", postgresInitDbProcess.String()) } + if err = os.Remove(passwordFile); err != nil { + return fmt.Errorf("unable to remove password file '%v': %v", passwordFile, err) + } + return nil } diff --git a/prepare_database_test.go b/prepare_database_test.go index f48bcba..c06f919 100644 --- a/prepare_database_test.go +++ b/prepare_database_test.go @@ -57,6 +57,35 @@ func Test_defaultInitDatabase_ErrorInvalidLocaleSetting(t *testing.T) { tempDir)) } +func Test_defaultInitDatabase_PwFileRemoved(t *testing.T) { + tempDir, err := ioutil.TempDir("", "prepare_database_test") + if err != nil { + panic(err) + } + + defer func() { + if err := os.RemoveAll(tempDir); err != nil { + panic(err) + } + }() + + database := NewDatabase(DefaultConfig().RuntimePath(tempDir)) + if err := database.Start(); err != nil { + t.Fatal(err) + } + + defer func() { + if err := database.Stop(); err != nil { + t.Fatal(err) + } + }() + + pwFile := filepath.Join(tempDir, "pwfile") + _, err = os.Stat(pwFile) + + assert.True(t, os.IsNotExist(err), "pwfile (%v) still exists after starting the db", pwFile) +} + func Test_defaultCreateDatabase_ErrorWhenSQLOpenError(t *testing.T) { err := defaultCreateDatabase(1234, "user client_encoding=lol", "password", "database")