github.com/fluxrad/terraform@v0.6.4-0.20150906191316-06627ccf39fa/config/module/detect_bitbucket_test.go (about) 1 package module 2 3 import ( 4 "net/http" 5 "strings" 6 "testing" 7 ) 8 9 const testBBUrl = "https://bitbucket.org/hashicorp/tf-test-git" 10 11 func TestBitBucketDetector(t *testing.T) { 12 t.Parallel() 13 14 if _, err := http.Get(testBBUrl); err != nil { 15 t.Log("internet may not be working, skipping BB tests") 16 t.Skip() 17 } 18 19 cases := []struct { 20 Input string 21 Output string 22 }{ 23 // HTTP 24 { 25 "bitbucket.org/hashicorp/tf-test-git", 26 "git::https://bitbucket.org/hashicorp/tf-test-git.git", 27 }, 28 { 29 "bitbucket.org/hashicorp/tf-test-git.git", 30 "git::https://bitbucket.org/hashicorp/tf-test-git.git", 31 }, 32 { 33 "bitbucket.org/hashicorp/tf-test-hg", 34 "hg::https://bitbucket.org/hashicorp/tf-test-hg", 35 }, 36 } 37 38 pwd := "/pwd" 39 f := new(BitBucketDetector) 40 for i, tc := range cases { 41 var err error 42 for i := 0; i < 3; i++ { 43 var output string 44 var ok bool 45 output, ok, err = f.Detect(tc.Input, pwd) 46 if err != nil { 47 if strings.Contains(err.Error(), "invalid character") { 48 continue 49 } 50 51 t.Fatalf("err: %s", err) 52 } 53 if !ok { 54 t.Fatal("not ok") 55 } 56 57 if output != tc.Output { 58 t.Fatalf("%d: bad: %#v", i, output) 59 } 60 61 break 62 } 63 if i >= 3 { 64 t.Fatalf("failure from bitbucket: %s", err) 65 } 66 } 67 }