restic/src/restic/backend/s3/s3_test.go

74 lines
1.2 KiB
Go
Raw Normal View History

2016-01-23 17:46:04 +00:00
package s3_test
2016-01-02 13:38:45 +00:00
2016-01-23 17:46:04 +00:00
import (
"fmt"
"net/url"
"os"
2016-08-31 20:51:35 +00:00
"restic"
2016-01-02 13:38:45 +00:00
2016-09-01 20:17:37 +00:00
"restic/errors"
"restic/backend/s3"
"restic/backend/test"
. "restic/test"
2016-01-23 17:46:04 +00:00
)
2016-01-02 13:38:45 +00:00
2016-01-23 17:46:04 +00:00
//go:generate go run ../test/generate_backend_tests.go
func init() {
if TestS3Server == "" {
SkipMessage = "s3 test server not available"
return
}
url, err := url.Parse(TestS3Server)
if err != nil {
fmt.Fprintf(os.Stderr, "invalid url: %v\n", err)
return
}
cfg := s3.Config{
Endpoint: url.Host,
Bucket: "restictestbucket",
KeyID: os.Getenv("AWS_ACCESS_KEY_ID"),
Secret: os.Getenv("AWS_SECRET_ACCESS_KEY"),
}
if url.Scheme == "http" {
cfg.UseHTTP = true
}
2016-08-31 20:51:35 +00:00
test.CreateFn = func() (restic.Backend, error) {
2016-01-23 17:46:04 +00:00
be, err := s3.Open(cfg)
if err != nil {
return nil, err
}
exists, err := be.Test(restic.Handle{Type: restic.ConfigFile})
2016-01-23 17:46:04 +00:00
if err != nil {
return nil, err
}
if exists {
return nil, errors.New("config already exists")
}
return be, nil
}
2016-08-31 20:51:35 +00:00
test.OpenFn = func() (restic.Backend, error) {
2016-01-23 17:46:04 +00:00
return s3.Open(cfg)
}
// test.CleanupFn = func() error {
// if tempBackendDir == "" {
// return nil
// }
// fmt.Printf("removing test backend at %v\n", tempBackendDir)
// err := os.RemoveAll(tempBackendDir)
// tempBackendDir = ""
// return err
// }
2016-01-02 13:38:45 +00:00
}