github.com/remind101/go-getter@v0.0.0-20180809191950-4bda8fa99001/get_hg_test.go (about) 1 package getter 2 3 import ( 4 "os" 5 "os/exec" 6 "path/filepath" 7 "testing" 8 ) 9 10 var testHasHg bool 11 12 func init() { 13 if _, err := exec.LookPath("hg"); err == nil { 14 testHasHg = true 15 } 16 } 17 18 func TestHgGetter_impl(t *testing.T) { 19 var _ Getter = new(HgGetter) 20 } 21 22 func TestHgGetter(t *testing.T) { 23 if !testHasHg { 24 t.Log("hg not found, skipping") 25 t.Skip() 26 } 27 28 g := new(HgGetter) 29 dst := tempDir(t) 30 31 // With a dir that doesn't exist 32 if err := g.Get(dst, testModuleURL("basic-hg")); err != nil { 33 t.Fatalf("err: %s", err) 34 } 35 36 // Verify the main file exists 37 mainPath := filepath.Join(dst, "main.tf") 38 if _, err := os.Stat(mainPath); err != nil { 39 t.Fatalf("err: %s", err) 40 } 41 } 42 43 func TestHgGetter_branch(t *testing.T) { 44 if !testHasHg { 45 t.Log("hg not found, skipping") 46 t.Skip() 47 } 48 49 g := new(HgGetter) 50 dst := tempDir(t) 51 52 url := testModuleURL("basic-hg") 53 q := url.Query() 54 q.Add("rev", "test-branch") 55 url.RawQuery = q.Encode() 56 57 if err := g.Get(dst, url); err != nil { 58 t.Fatalf("err: %s", err) 59 } 60 61 // Verify the main file exists 62 mainPath := filepath.Join(dst, "main_branch.tf") 63 if _, err := os.Stat(mainPath); err != nil { 64 t.Fatalf("err: %s", err) 65 } 66 67 // Get again should work 68 if err := g.Get(dst, url); err != nil { 69 t.Fatalf("err: %s", err) 70 } 71 72 // Verify the main file exists 73 mainPath = filepath.Join(dst, "main_branch.tf") 74 if _, err := os.Stat(mainPath); err != nil { 75 t.Fatalf("err: %s", err) 76 } 77 } 78 79 func TestHgGetter_GetFile(t *testing.T) { 80 if !testHasHg { 81 t.Log("hg not found, skipping") 82 t.Skip() 83 } 84 85 g := new(HgGetter) 86 dst := tempFile(t) 87 88 // Download 89 if err := g.GetFile(dst, testModuleURL("basic-hg/foo.txt")); err != nil { 90 t.Fatalf("err: %s", err) 91 } 92 93 // Verify the main file exists 94 if _, err := os.Stat(dst); err != nil { 95 t.Fatalf("err: %s", err) 96 } 97 assertContents(t, dst, "Hello\n") 98 }