github.com/jbronn/packer@v0.1.6-0.20140120165540-8a1364dbd817/provisioner/ansible-local/provisioner_test.go (about) 1 package ansiblelocal 2 3 import ( 4 "github.com/mitchellh/packer/packer" 5 "io/ioutil" 6 "os" 7 "testing" 8 ) 9 10 func testConfig() map[string]interface{} { 11 m := make(map[string]interface{}) 12 return m 13 } 14 15 func TestProvisioner_Impl(t *testing.T) { 16 var raw interface{} 17 raw = &Provisioner{} 18 if _, ok := raw.(packer.Provisioner); !ok { 19 t.Fatalf("must be a Provisioner") 20 } 21 } 22 23 func TestProvisionerPrepare_Defaults(t *testing.T) { 24 var p Provisioner 25 config := testConfig() 26 27 playbook_file, err := ioutil.TempFile("", "playbook") 28 if err != nil { 29 t.Fatalf("err: %s", err) 30 } 31 defer os.Remove(playbook_file.Name()) 32 33 config["playbook_file"] = playbook_file.Name() 34 err = p.Prepare(config) 35 if err != nil { 36 t.Fatalf("err: %s", err) 37 } 38 39 if p.config.StagingDir != DefaultStagingDir { 40 t.Fatalf("unexpected staging dir %s, expected %s", 41 p.config.StagingDir, DefaultStagingDir) 42 } 43 } 44 45 func TestProvisionerPrepare_PlaybookFile(t *testing.T) { 46 var p Provisioner 47 config := testConfig() 48 49 err := p.Prepare(config) 50 if err == nil { 51 t.Fatal("should have error") 52 } 53 54 config["playbook_file"] = "" 55 err = p.Prepare(config) 56 if err == nil { 57 t.Fatal("should have error") 58 } 59 60 playbook_file, err := ioutil.TempFile("", "playbook") 61 if err != nil { 62 t.Fatalf("err: %s", err) 63 } 64 defer os.Remove(playbook_file.Name()) 65 66 config["playbook_file"] = playbook_file.Name() 67 err = p.Prepare(config) 68 if err != nil { 69 t.Fatalf("err: %s", err) 70 } 71 } 72 73 func TestProvisionerPrepare_Dirs(t *testing.T) { 74 var p Provisioner 75 config := testConfig() 76 77 err := p.Prepare(config) 78 if err == nil { 79 t.Fatal("should have error") 80 } 81 82 config["playbook_file"] = "" 83 err = p.Prepare(config) 84 if err == nil { 85 t.Fatal("should have error") 86 } 87 88 playbook_file, err := ioutil.TempFile("", "playbook") 89 if err != nil { 90 t.Fatalf("err: %s", err) 91 } 92 defer os.Remove(playbook_file.Name()) 93 94 config["playbook_file"] = playbook_file.Name() 95 err = p.Prepare(config) 96 if err != nil { 97 t.Fatalf("err: %s", err) 98 } 99 100 config["playbook_paths"] = []string{playbook_file.Name()} 101 err = p.Prepare(config) 102 if err == nil { 103 t.Fatal("should error if playbook paths is not a dir") 104 } 105 106 config["playbook_paths"] = []string{os.TempDir()} 107 err = p.Prepare(config) 108 if err != nil { 109 t.Fatalf("err: %s", err) 110 } 111 112 config["role_paths"] = []string{playbook_file.Name()} 113 err = p.Prepare(config) 114 if err == nil { 115 t.Fatal("should error if role paths is not a dir") 116 } 117 118 config["role_paths"] = []string{os.TempDir()} 119 err = p.Prepare(config) 120 if err != nil { 121 t.Fatalf("err: %s", err) 122 } 123 }