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  }