Add database export test
This commit is contained in:
parent
83598f4013
commit
5d1cc211b0
@ -385,6 +385,7 @@ func TestAll(t *testing.T) {
|
|||||||
test_HistoryUniqueness(t)
|
test_HistoryUniqueness(t)
|
||||||
test_HistoryError(t)
|
test_HistoryError(t)
|
||||||
test_ReadOnlyMode(t)
|
test_ReadOnlyMode(t)
|
||||||
|
test_DumpExport(t)
|
||||||
|
|
||||||
teardownClient()
|
teardownClient()
|
||||||
teardown()
|
teardown()
|
||||||
|
42
pkg/client/dump_test.go
Normal file
42
pkg/client/dump_test.go
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
package client
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func test_DumpExport(t *testing.T) {
|
||||||
|
url := fmt.Sprintf("postgres://%s@%s:%s/%s?sslmode=disable", serverUser, serverHost, serverPort, serverDatabase)
|
||||||
|
|
||||||
|
savePath := "/tmp/dump.sql.gz"
|
||||||
|
os.Remove(savePath)
|
||||||
|
|
||||||
|
saveFile, err := os.Create(savePath)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
defer func() {
|
||||||
|
saveFile.Close()
|
||||||
|
os.Remove(savePath)
|
||||||
|
}()
|
||||||
|
|
||||||
|
// Test full db dump
|
||||||
|
dump := Dump{}
|
||||||
|
err = dump.Export(url, saveFile)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
// Test nonexistent database
|
||||||
|
invalidUrl := fmt.Sprintf("postgres://%s@%s:%s/%s?sslmode=disable", serverUser, serverHost, serverPort, "foobar")
|
||||||
|
err = dump.Export(invalidUrl, saveFile)
|
||||||
|
assert.Contains(t, err.Error(), `database "foobar" does not exist`)
|
||||||
|
|
||||||
|
// Test dump of non existent db
|
||||||
|
dump = Dump{Table: "foobar"}
|
||||||
|
err = dump.Export(url, saveFile)
|
||||||
|
assert.NotNil(t, err)
|
||||||
|
assert.Contains(t, err.Error(), "pg_dump: no matching tables were found")
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user