adds error test for config
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
All checks were successful
gitea-deepak/gogmagog/pipeline/head This commit looks good
This commit is contained in:
@@ -2,7 +2,6 @@ package config
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
"os"
|
|
||||||
|
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
@@ -49,7 +48,7 @@ func createDefaultConf() *Conf {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// GetConf returns config values
|
// GetConf returns config values
|
||||||
func GetConf(filename string) *Conf {
|
func GetConf(filename string) (*Conf, error) {
|
||||||
|
|
||||||
cnf := createDefaultConf()
|
cnf := createDefaultConf()
|
||||||
|
|
||||||
@@ -57,18 +56,17 @@ func GetConf(filename string) *Conf {
|
|||||||
vv.SetConfigName(filename)
|
vv.SetConfigName(filename)
|
||||||
vv.SetConfigType("yaml")
|
vv.SetConfigType("yaml")
|
||||||
vv.AddConfigPath(".")
|
vv.AddConfigPath(".")
|
||||||
log.Printf("Initialising config with filename %s", filename)
|
|
||||||
|
|
||||||
err := vv.ReadInConfig()
|
err := vv.ReadInConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Could not load config file: \n", err)
|
log.Print("Could not load config file: \n", err)
|
||||||
os.Exit(1)
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = vv.Unmarshal(&cnf)
|
err = vv.Unmarshal(&cnf)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal("Could not read config file into struct: \n", err)
|
log.Print("Could not read config file into struct: \n", err)
|
||||||
os.Exit(1)
|
return nil, err
|
||||||
}
|
}
|
||||||
return cnf
|
return cnf, nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,8 @@ import (
|
|||||||
func TestSample(t *testing.T) {
|
func TestSample(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
|
|
||||||
conf := config.GetConf("config-sample")
|
conf, err := config.GetConf("config-sample")
|
||||||
|
assert.Nil(err)
|
||||||
|
|
||||||
appConf := conf.App
|
appConf := conf.App
|
||||||
assert.Equal("devel", appConf.Environment)
|
assert.Equal("devel", appConf.Environment)
|
||||||
@@ -25,10 +26,11 @@ func TestSample(t *testing.T) {
|
|||||||
assert.Equal("g2", dbConf.Database)
|
assert.Equal("g2", dbConf.Database)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestMissing(t *testing.T) {
|
func TestDefault(t *testing.T) {
|
||||||
assert := assert.New(t)
|
assert := assert.New(t)
|
||||||
|
|
||||||
conf := config.GetConf("config-missing-fields")
|
conf, err := config.GetConf("config-missing-fields")
|
||||||
|
assert.Nil(err)
|
||||||
|
|
||||||
appConf := conf.App
|
appConf := conf.App
|
||||||
assert.Equal("missingfield", appConf.Environment)
|
assert.Equal("missingfield", appConf.Environment)
|
||||||
@@ -42,3 +44,11 @@ func TestMissing(t *testing.T) {
|
|||||||
assert.Equal("<password>", dbConf.Password)
|
assert.Equal("<password>", dbConf.Password)
|
||||||
assert.Equal("gogmagog", dbConf.Database)
|
assert.Equal("gogmagog", dbConf.Database)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestMissingFile(t *testing.T) {
|
||||||
|
assert := assert.New(t)
|
||||||
|
|
||||||
|
conf, err := config.GetConf("non-existent")
|
||||||
|
assert.Nil(conf)
|
||||||
|
assert.NotNil(err)
|
||||||
|
}
|
||||||
|
|||||||
7
main.go
7
main.go
@@ -5,11 +5,16 @@ import (
|
|||||||
"gitea.deepak.science/deepak/gogmagog/db"
|
"gitea.deepak.science/deepak/gogmagog/db"
|
||||||
"gitea.deepak.science/deepak/gogmagog/models"
|
"gitea.deepak.science/deepak/gogmagog/models"
|
||||||
"log"
|
"log"
|
||||||
|
"os"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
// Config
|
// Config
|
||||||
conf := config.GetConf("config")
|
conf, err := config.GetConf("config")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal("Could not get config", err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
appConf := conf.App
|
appConf := conf.App
|
||||||
port := appConf.Port
|
port := appConf.Port
|
||||||
|
|||||||
Reference in New Issue
Block a user