initial
This commit is contained in:
106
rclone/copy_test.go
Executable file
106
rclone/copy_test.go
Executable file
@@ -0,0 +1,106 @@
|
||||
package rclone
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io/ioutil"
|
||||
"local/logb"
|
||||
"local/sandbox/arlo-cleaner/config"
|
||||
"os"
|
||||
"strings"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestCopyFrom(t *testing.T) {
|
||||
logb.Set(logb.ERROR)
|
||||
rc, def := makeRC()
|
||||
defer def()
|
||||
|
||||
t.Log("making f")
|
||||
f, err := ioutil.TempFile(os.TempDir(), "remote*")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
f.Write([]byte(`hello`))
|
||||
f.Close()
|
||||
defer os.Remove(f.Name())
|
||||
|
||||
t.Log("reading f")
|
||||
b := bytes.NewBuffer(nil)
|
||||
if err := rc.CopyFrom(b, "local:"+f.Name()); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Log("result")
|
||||
if v := string(b.Bytes()); v != "hello" {
|
||||
t.Fatal(v)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCopyTo(t *testing.T) {
|
||||
rc, def := makeRC()
|
||||
defer def()
|
||||
logb.Set(logb.VERBOSE)
|
||||
|
||||
t.Log("making f")
|
||||
f, err := ioutil.TempFile(os.TempDir(), "remote*")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
f.Close()
|
||||
defer os.Remove(f.Name())
|
||||
|
||||
t.Logf("writing %s", f.Name())
|
||||
s := strings.NewReader("hello")
|
||||
|
||||
was := logb.Writer()
|
||||
b := bytes.NewBuffer(nil)
|
||||
logb.SetWriter(b)
|
||||
if err := rc.CopyTo(s, "local:"+f.Name()); err != nil {
|
||||
logb.SetWriter(was)
|
||||
t.Fatal(err)
|
||||
}
|
||||
logb.SetWriter(was)
|
||||
if !bytes.Contains(b.Bytes(), []byte("not re-uploading")) {
|
||||
t.Fatalf("%q", string(b.Bytes()))
|
||||
}
|
||||
if err := os.Remove(f.Name()); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := rc.CopyTo(s, "local:"+f.Name()); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
t.Log("reading f from", f.Name())
|
||||
if b, err := ioutil.ReadFile(f.Name()); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if string(b) != "hello" {
|
||||
t.Fatal(string(b))
|
||||
}
|
||||
}
|
||||
|
||||
func makeRC() (*RClone, func()) {
|
||||
logb.Set(logb.ERROR)
|
||||
f, err := ioutil.TempFile(os.TempDir(), "copy.config.*")
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
f.Write([]byte(`
|
||||
[local]
|
||||
type = local
|
||||
`))
|
||||
f.Close()
|
||||
os.Setenv("RCCONF", f.Name())
|
||||
|
||||
was := os.Args
|
||||
os.Args = []string{"foo"}
|
||||
config.Refresh()
|
||||
rc, err := New()
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return rc, func() {
|
||||
os.Args = was
|
||||
os.Remove(f.Name())
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user