make function ReadDockerConfigFile more flexible
rename the variable make parameter more flexible handle docker config file path use a single set of paths delete debug print gofmt delete the empty line comment is not correct move the comment to the correct place keep original signature godoc
This commit is contained in:
@@ -18,10 +18,51 @@ package credentialprovider
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestReadDockerConfigFile(t *testing.T) {
|
||||
configJsonFileName := "config.json"
|
||||
var fileInfo *os.File
|
||||
preferredPaths := []string{}
|
||||
|
||||
//test dockerconfig json
|
||||
inputDockerconfigJsonFile := "{ \"auths\": { \"http://foo.example.com\":{\"auth\":\"Zm9vOmJhcgo=\",\"email\":\"foo@example.com\"}}}"
|
||||
|
||||
preferredPath, err := ioutil.TempDir("", "test_foo_bar_dockerconfigjson_")
|
||||
if err != nil {
|
||||
t.Fatalf("Creating tmp dir fail: %v", err)
|
||||
return
|
||||
}
|
||||
defer os.RemoveAll(preferredPath)
|
||||
preferredPaths = append(preferredPaths, preferredPath)
|
||||
absDockerConfigFileLocation, err := filepath.Abs(filepath.Join(preferredPath, configJsonFileName))
|
||||
if err != nil {
|
||||
t.Fatalf("While trying to canonicalize %s: %v", preferredPath, err)
|
||||
}
|
||||
|
||||
if _, err := os.Stat(absDockerConfigFileLocation); os.IsNotExist(err) {
|
||||
//create test cfg file
|
||||
fileInfo, err = os.OpenFile(absDockerConfigFileLocation, os.O_CREATE|os.O_RDWR, 0664)
|
||||
if err != nil {
|
||||
t.Fatalf("While trying to create file %s: %v", absDockerConfigFileLocation, err)
|
||||
}
|
||||
defer fileInfo.Close()
|
||||
}
|
||||
|
||||
fileInfo.WriteString(inputDockerconfigJsonFile)
|
||||
|
||||
orgPreferredPath := GetPreferredDockercfgPath()
|
||||
SetPreferredDockercfgPath(preferredPath)
|
||||
defer SetPreferredDockercfgPath(orgPreferredPath)
|
||||
if _, err := ReadDockerConfigFile(); err != nil {
|
||||
t.Errorf("Getting docker config file fail : %v preferredPath : %q", err, preferredPath)
|
||||
}
|
||||
}
|
||||
func TestDockerConfigJsonJSONDecode(t *testing.T) {
|
||||
input := []byte(`{"auths": {"http://foo.example.com":{"username": "foo", "password": "bar", "email": "foo@example.com"}, "http://bar.example.com":{"username": "bar", "password": "baz", "email": "bar@example.com"}}}`)
|
||||
|
||||
|
Reference in New Issue
Block a user