github.com/sneal/packer@v0.5.2/builder/openstack/run_config_test.go (about) 1 package openstack 2 3 import ( 4 "os" 5 "testing" 6 ) 7 8 func init() { 9 // Clear out the openstack env vars so they don't 10 // affect our tests. 11 os.Setenv("SDK_USERNAME", "") 12 os.Setenv("SDK_PASSWORD", "") 13 os.Setenv("SDK_PROVIDER", "") 14 } 15 16 func testRunConfig() *RunConfig { 17 return &RunConfig{ 18 SourceImage: "abcd", 19 Flavor: "m1.small", 20 SSHUsername: "root", 21 } 22 } 23 24 func TestRunConfigPrepare(t *testing.T) { 25 c := testRunConfig() 26 err := c.Prepare(nil) 27 if len(err) > 0 { 28 t.Fatalf("err: %s", err) 29 } 30 } 31 32 func TestRunConfigPrepare_InstanceType(t *testing.T) { 33 c := testRunConfig() 34 c.Flavor = "" 35 if err := c.Prepare(nil); len(err) != 1 { 36 t.Fatalf("err: %s", err) 37 } 38 } 39 40 func TestRunConfigPrepare_SourceImage(t *testing.T) { 41 c := testRunConfig() 42 c.SourceImage = "" 43 if err := c.Prepare(nil); len(err) != 1 { 44 t.Fatalf("err: %s", err) 45 } 46 } 47 48 func TestRunConfigPrepare_SSHPort(t *testing.T) { 49 c := testRunConfig() 50 c.SSHPort = 0 51 if err := c.Prepare(nil); len(err) != 0 { 52 t.Fatalf("err: %s", err) 53 } 54 55 if c.SSHPort != 22 { 56 t.Fatalf("invalid value: %d", c.SSHPort) 57 } 58 59 c.SSHPort = 44 60 if err := c.Prepare(nil); len(err) != 0 { 61 t.Fatalf("err: %s", err) 62 } 63 64 if c.SSHPort != 44 { 65 t.Fatalf("invalid value: %d", c.SSHPort) 66 } 67 } 68 69 func TestRunConfigPrepare_SSHTimeout(t *testing.T) { 70 c := testRunConfig() 71 c.RawSSHTimeout = "" 72 if err := c.Prepare(nil); len(err) != 0 { 73 t.Fatalf("err: %s", err) 74 } 75 76 c.RawSSHTimeout = "bad" 77 if err := c.Prepare(nil); len(err) != 1 { 78 t.Fatalf("err: %s", err) 79 } 80 } 81 82 func TestRunConfigPrepare_SSHUsername(t *testing.T) { 83 c := testRunConfig() 84 c.SSHUsername = "" 85 if err := c.Prepare(nil); len(err) != 0 { 86 t.Fatalf("err: %s", err) 87 } 88 }