Ver Fonte

setting: add tests for windows

Daniel Lee há 8 anos atrás
pai
commit
8973b48f96
3 ficheiros alterados com 72 adições e 28 exclusões
  1. 1 0
      .gitignore
  2. 68 28
      pkg/setting/setting_test.go
  3. 3 0
      tests/config-files/override_windows.ini

+ 1 - 0
.gitignore

@@ -9,6 +9,7 @@ awsconfig
 /public/vendor/npm
 /tmp
 vendor/phantomjs/phantomjs
+vendor/phantomjs/phantomjs.exe
 
 docs/AWS_S3_BUCKET
 docs/GIT_BRANCH

+ 68 - 28
pkg/setting/setting_test.go

@@ -3,6 +3,7 @@ package setting
 import (
 	"os"
 	"path/filepath"
+	"runtime"
 	"testing"
 
 	. "github.com/smartystreets/goconvey/convey"
@@ -52,13 +53,22 @@ func TestLoadingSettings(t *testing.T) {
 		})
 
 		Convey("Should be able to override via command line", func() {
-			NewConfigContext(&CommandLineArgs{
-				HomePath: "../../",
-				Args:     []string{"cfg:paths.data=/tmp/data", "cfg:paths.logs=/tmp/logs"},
-			})
-
-			So(DataPath, ShouldEqual, "/tmp/data")
-			So(LogsPath, ShouldEqual, "/tmp/logs")
+			if runtime.GOOS == "windows" {
+				NewConfigContext(&CommandLineArgs{
+					HomePath: "../../",
+					Args:     []string{`cfg:paths.data=c:\tmp\data`, `cfg:paths.logs=c:\tmp\logs`},
+				})
+				So(DataPath, ShouldEqual, `c:\tmp\data`)
+				So(LogsPath, ShouldEqual, `c:\tmp\logs`)
+			} else {
+				NewConfigContext(&CommandLineArgs{
+					HomePath: "../../",
+					Args:     []string{"cfg:paths.data=/tmp/data", "cfg:paths.logs=/tmp/logs"},
+				})
+
+				So(DataPath, ShouldEqual, "/tmp/data")
+				So(LogsPath, ShouldEqual, "/tmp/logs")
+			}
 		})
 
 		Convey("Should be able to override defaults via command line", func() {
@@ -74,33 +84,63 @@ func TestLoadingSettings(t *testing.T) {
 		})
 
 		Convey("Defaults can be overridden in specified config file", func() {
-			NewConfigContext(&CommandLineArgs{
-				HomePath: "../../",
-				Config:   filepath.Join(HomePath, "tests/config-files/override.ini"),
-				Args:     []string{"cfg:default.paths.data=/tmp/data"},
-			})
-
-			So(DataPath, ShouldEqual, "/tmp/override")
+			if runtime.GOOS == "windows" {
+				NewConfigContext(&CommandLineArgs{
+					HomePath: "../../",
+					Config:   filepath.Join(HomePath, "tests/config-files/override_windows.ini"),
+					Args:     []string{`cfg:default.paths.data=c:\tmp\data`},
+				})
+
+				So(DataPath, ShouldEqual, `c:\tmp\override`)
+			} else {
+				NewConfigContext(&CommandLineArgs{
+					HomePath: "../../",
+					Config:   filepath.Join(HomePath, "tests/config-files/override.ini"),
+					Args:     []string{"cfg:default.paths.data=/tmp/data"},
+				})
+
+				So(DataPath, ShouldEqual, "/tmp/override")
+			}
 		})
 
 		Convey("Command line overrides specified config file", func() {
-			NewConfigContext(&CommandLineArgs{
-				HomePath: "../../",
-				Config:   filepath.Join(HomePath, "tests/config-files/override.ini"),
-				Args:     []string{"cfg:paths.data=/tmp/data"},
-			})
-
-			So(DataPath, ShouldEqual, "/tmp/data")
+			if runtime.GOOS == "windows" {
+				NewConfigContext(&CommandLineArgs{
+					HomePath: "../../",
+					Config:   filepath.Join(HomePath, "tests/config-files/override_windows.ini"),
+					Args:     []string{`cfg:paths.data=c:\tmp\data`},
+				})
+
+				So(DataPath, ShouldEqual, `c:\tmp\data`)
+			} else {
+				NewConfigContext(&CommandLineArgs{
+					HomePath: "../../",
+					Config:   filepath.Join(HomePath, "tests/config-files/override.ini"),
+					Args:     []string{"cfg:paths.data=/tmp/data"},
+				})
+
+				So(DataPath, ShouldEqual, "/tmp/data")
+			}
 		})
 
 		Convey("Can use environment variables in config values", func() {
-			os.Setenv("GF_DATA_PATH", "/tmp/env_override")
-			NewConfigContext(&CommandLineArgs{
-				HomePath: "../../",
-				Args:     []string{"cfg:paths.data=${GF_DATA_PATH}"},
-			})
-
-			So(DataPath, ShouldEqual, "/tmp/env_override")
+			if runtime.GOOS == "windows" {
+				os.Setenv("GF_DATA_PATH", `c:\tmp\env_override`)
+				NewConfigContext(&CommandLineArgs{
+					HomePath: "../../",
+					Args:     []string{"cfg:paths.data=${GF_DATA_PATH}"},
+				})
+
+				So(DataPath, ShouldEqual, `c:\tmp\env_override`)
+			} else {
+				os.Setenv("GF_DATA_PATH", "/tmp/env_override")
+				NewConfigContext(&CommandLineArgs{
+					HomePath: "../../",
+					Args:     []string{"cfg:paths.data=${GF_DATA_PATH}"},
+				})
+
+				So(DataPath, ShouldEqual, "/tmp/env_override")
+			}
 		})
 
 		Convey("instance_name default to hostname even if hostname env is empty", func() {

+ 3 - 0
tests/config-files/override_windows.ini

@@ -0,0 +1,3 @@
+[paths]
+data = c:\tmp\override
+