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  }