github.com/alexissmirnov/terraform@v0.4.3-0.20150423153700-1ef9731a2f14/command/meta_test.go (about) 1 package command 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "reflect" 8 "testing" 9 10 "github.com/hashicorp/terraform/terraform" 11 ) 12 13 func TestMetaColorize(t *testing.T) { 14 var m *Meta 15 var args, args2 []string 16 17 // Test basic, color 18 m = new(Meta) 19 m.Color = true 20 args = []string{"foo", "bar"} 21 args2 = []string{"foo", "bar"} 22 args = m.process(args, false) 23 if !reflect.DeepEqual(args, args2) { 24 t.Fatalf("bad: %#v", args) 25 } 26 if m.Colorize().Disable { 27 t.Fatal("should not be disabled") 28 } 29 30 // Test basic, no change 31 m = new(Meta) 32 args = []string{"foo", "bar"} 33 args2 = []string{"foo", "bar"} 34 args = m.process(args, false) 35 if !reflect.DeepEqual(args, args2) { 36 t.Fatalf("bad: %#v", args) 37 } 38 if !m.Colorize().Disable { 39 t.Fatal("should be disabled") 40 } 41 42 // Test disable #1 43 m = new(Meta) 44 m.Color = true 45 args = []string{"foo", "-no-color", "bar"} 46 args2 = []string{"foo", "bar"} 47 args = m.process(args, false) 48 if !reflect.DeepEqual(args, args2) { 49 t.Fatalf("bad: %#v", args) 50 } 51 if !m.Colorize().Disable { 52 t.Fatal("should be disabled") 53 } 54 } 55 56 func TestMetaInputMode(t *testing.T) { 57 test = false 58 defer func() { test = true }() 59 60 m := new(Meta) 61 args := []string{} 62 63 fs := m.flagSet("foo") 64 if err := fs.Parse(args); err != nil { 65 t.Fatalf("err: %s", err) 66 } 67 68 if m.InputMode() != terraform.InputModeStd|terraform.InputModeVarUnset { 69 t.Fatalf("bad: %#v", m.InputMode()) 70 } 71 } 72 73 func TestMetaInputMode_disable(t *testing.T) { 74 test = false 75 defer func() { test = true }() 76 77 m := new(Meta) 78 args := []string{"-input=false"} 79 80 fs := m.flagSet("foo") 81 if err := fs.Parse(args); err != nil { 82 t.Fatalf("err: %s", err) 83 } 84 85 if m.InputMode() > 0 { 86 t.Fatalf("bad: %#v", m.InputMode()) 87 } 88 } 89 90 func TestMetaInputMode_defaultVars(t *testing.T) { 91 test = false 92 defer func() { test = true }() 93 94 // Create a temporary directory for our cwd 95 d := tempDir(t) 96 if err := os.MkdirAll(d, 0755); err != nil { 97 t.Fatalf("err: %s", err) 98 } 99 cwd, err := os.Getwd() 100 if err != nil { 101 t.Fatalf("err: %s", err) 102 } 103 if err := os.Chdir(d); err != nil { 104 t.Fatalf("err: %s", err) 105 } 106 defer os.Chdir(cwd) 107 108 // Create the default vars file 109 err = ioutil.WriteFile( 110 filepath.Join(d, DefaultVarsFilename), 111 []byte(""), 112 0644) 113 if err != nil { 114 t.Fatalf("err: %s", err) 115 } 116 117 m := new(Meta) 118 args := []string{} 119 args = m.process(args, true) 120 121 fs := m.flagSet("foo") 122 if err := fs.Parse(args); err != nil { 123 t.Fatalf("err: %s", err) 124 } 125 126 if m.InputMode()&terraform.InputModeVar != 0 { 127 t.Fatalf("bad: %#v", m.InputMode()) 128 } 129 } 130 131 func TestMetaInputMode_vars(t *testing.T) { 132 test = false 133 defer func() { test = true }() 134 135 m := new(Meta) 136 args := []string{"-var", "foo=bar"} 137 138 fs := m.flagSet("foo") 139 if err := fs.Parse(args); err != nil { 140 t.Fatalf("err: %s", err) 141 } 142 143 if m.InputMode()&terraform.InputModeVar != 0 { 144 t.Fatalf("bad: %#v", m.InputMode()) 145 } 146 } 147 148 func TestMeta_initStatePaths(t *testing.T) { 149 m := new(Meta) 150 m.initStatePaths() 151 152 if m.statePath != DefaultStateFilename { 153 t.Fatalf("bad: %#v", m) 154 } 155 if m.stateOutPath != DefaultStateFilename { 156 t.Fatalf("bad: %#v", m) 157 } 158 if m.backupPath != DefaultStateFilename+DefaultBackupExtention { 159 t.Fatalf("bad: %#v", m) 160 } 161 162 m = new(Meta) 163 m.statePath = "foo" 164 m.initStatePaths() 165 166 if m.stateOutPath != "foo" { 167 t.Fatalf("bad: %#v", m) 168 } 169 if m.backupPath != "foo"+DefaultBackupExtention { 170 t.Fatalf("bad: %#v", m) 171 } 172 173 m = new(Meta) 174 m.stateOutPath = "foo" 175 m.initStatePaths() 176 177 if m.statePath != DefaultStateFilename { 178 t.Fatalf("bad: %#v", m) 179 } 180 if m.backupPath != "foo"+DefaultBackupExtention { 181 t.Fatalf("bad: %#v", m) 182 } 183 }