45 lines
902 B
Go
45 lines
902 B
Go
package config_test
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"src.dualinventive.com/go/lib/config"
|
|
)
|
|
|
|
type testConfig struct {
|
|
config.Config `yaml:",inline"`
|
|
TestItem string
|
|
}
|
|
|
|
func TestLoadFullPath(t *testing.T) {
|
|
f, err := ioutil.TempFile("", t.Name())
|
|
assert.Nil(t, err)
|
|
assert.True(t, strings.ContainsRune(f.Name(), os.PathSeparator))
|
|
|
|
_, err = f.WriteString(`testitem: boembats
|
|
logfile: jemoeder.txt
|
|
loglevel: error
|
|
`)
|
|
assert.Nil(t, err)
|
|
assert.Nil(t, f.Sync())
|
|
assert.Nil(t, f.Close())
|
|
|
|
cfg := testConfig{}
|
|
_, err = config.Load(f.Name(), &cfg)
|
|
assert.Nil(t, err)
|
|
|
|
assert.Equal(t, "error", cfg.GetLoglevel())
|
|
assert.Equal(t, "jemoeder.txt", cfg.GetLogfile())
|
|
assert.Equal(t, "boembats", cfg.TestItem)
|
|
|
|
assert.Nil(t, os.Remove(f.Name()))
|
|
logrus.SetOutput(os.Stdout)
|
|
os.Remove("jemoeder.txt")
|
|
}
|