root_test.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package main
  2. import (
  3. "io/ioutil"
  4. "log"
  5. "os"
  6. "path/filepath"
  7. "runtime"
  8. "testing"
  9. "github.com/stretchr/testify/assert"
  10. "gopkg.in/src-d/go-billy.v4/osfs"
  11. "gopkg.in/src-d/go-git.v4"
  12. "gopkg.in/src-d/go-git.v4/plumbing/cache"
  13. "gopkg.in/src-d/go-git.v4/storage/filesystem"
  14. )
  15. func TestLoadRepository(t *testing.T) {
  16. repo := loadRepository("https://github.com/src-d/hercules", "", true, "")
  17. assert.NotNil(t, repo)
  18. log.Println("TestLoadRepository: 1/3")
  19. tempdir, err := ioutil.TempDir("", "hercules-")
  20. assert.Nil(t, err)
  21. if err != nil {
  22. assert.FailNow(t, "ioutil.TempDir")
  23. }
  24. defer os.RemoveAll(tempdir)
  25. backend := filesystem.NewStorage(osfs.New(tempdir), cache.NewObjectLRUDefault())
  26. cloneOptions := &git.CloneOptions{URL: "https://github.com/src-d/hercules"}
  27. _, err = git.Clone(backend, nil, cloneOptions)
  28. assert.Nil(t, err)
  29. if err != nil {
  30. assert.FailNow(t, "filesystem.NewStorage")
  31. }
  32. repo = loadRepository(tempdir, "", true, "")
  33. assert.NotNil(t, repo)
  34. log.Println("TestLoadRepository: 2/3")
  35. _, filename, _, _ := runtime.Caller(0)
  36. sivafile := filepath.Join(filepath.Dir(filename), "test_data", "hercules.siva")
  37. repo = loadRepository(sivafile, "", true, "")
  38. assert.NotNil(t, repo)
  39. log.Println("TestLoadRepository: 3/3")
  40. assert.Panics(t, func() { loadRepository("https://github.com/src-d/porn", "", true, "") })
  41. assert.Panics(t, func() { loadRepository(filepath.Dir(filename), "", true, "") })
  42. assert.Panics(t, func() { loadRepository("/xxx", "", true, "") })
  43. }