import_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package diskv_test
  2. import (
  3. "bytes"
  4. "io/ioutil"
  5. "os"
  6. "github.com/peterbourgon/diskv"
  7. "testing"
  8. )
  9. func TestImportMove(t *testing.T) {
  10. b := []byte(`0123456789`)
  11. f, err := ioutil.TempFile("", "temp-test")
  12. if err != nil {
  13. t.Fatal(err)
  14. }
  15. if _, err := f.Write(b); err != nil {
  16. t.Fatal(err)
  17. }
  18. f.Close()
  19. d := diskv.New(diskv.Options{
  20. BasePath: "test-import-move",
  21. })
  22. defer d.EraseAll()
  23. key := "key"
  24. if err := d.Write(key, []byte(`TBD`)); err != nil {
  25. t.Fatal(err)
  26. }
  27. if err := d.Import(f.Name(), key, true); err != nil {
  28. t.Fatal(err)
  29. }
  30. if _, err := os.Stat(f.Name()); err == nil || !os.IsNotExist(err) {
  31. t.Errorf("expected temp file to be gone, but err = %v", err)
  32. }
  33. if !d.Has(key) {
  34. t.Errorf("%q not present", key)
  35. }
  36. if buf, err := d.Read(key); err != nil || bytes.Compare(b, buf) != 0 {
  37. t.Errorf("want %q, have %q (err = %v)", string(b), string(buf), err)
  38. }
  39. }
  40. func TestImportCopy(t *testing.T) {
  41. b := []byte(`¡åéîòü!`)
  42. f, err := ioutil.TempFile("", "temp-test")
  43. if err != nil {
  44. t.Fatal(err)
  45. }
  46. if _, err := f.Write(b); err != nil {
  47. t.Fatal(err)
  48. }
  49. f.Close()
  50. d := diskv.New(diskv.Options{
  51. BasePath: "test-import-copy",
  52. })
  53. defer d.EraseAll()
  54. if err := d.Import(f.Name(), "key", false); err != nil {
  55. t.Fatal(err)
  56. }
  57. if _, err := os.Stat(f.Name()); err != nil {
  58. t.Errorf("expected temp file to remain, but got err = %v", err)
  59. }
  60. }