mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-07-26 13:47:40 +00:00
add test and improve config error messages
This commit is contained in:
@@ -84,6 +84,6 @@ func (s *AptlyContextSuite) TestGetPublishedStorageBadFS(c *C) {
|
|||||||
// storage never exists.
|
// storage never exists.
|
||||||
c.Assert(func() { s.context.GetPublishedStorage("filesystem:fuji") },
|
c.Assert(func() { s.context.GetPublishedStorage("filesystem:fuji") },
|
||||||
FatalErrorPanicMatches,
|
FatalErrorPanicMatches,
|
||||||
&FatalError{ReturnCode: 1, Message: fmt.Sprintf("error loading config file %s/.aptly.conf: not valid yaml or json",
|
&FatalError{ReturnCode: 1, Message: fmt.Sprintf("error loading config file %s/.aptly.conf: invalid yaml (EOF) or json (EOF)",
|
||||||
os.Getenv("HOME"))})
|
os.Getenv("HOME"))})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
ERROR: error loading config file ${HOME}/.aptly.conf: not valid yaml or json
|
ERROR: error loading config file ${HOME}/.aptly.conf: invalid yaml (yaml: line 1: did not find expected ',' or '}') or json (invalid character 's' looking for beginning of object key string)
|
||||||
|
|||||||
+5
-4
@@ -2,7 +2,6 @@ package utils
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
@@ -258,9 +257,11 @@ func LoadConfig(filename string, config *ConfigStructure) error {
|
|||||||
if err = decJSON.Decode(&config); err != nil {
|
if err = decJSON.Decode(&config); err != nil {
|
||||||
f.Seek(0, 0)
|
f.Seek(0, 0)
|
||||||
decYAML := yaml.NewDecoder(f)
|
decYAML := yaml.NewDecoder(f)
|
||||||
if err = decYAML.Decode(&config); err != nil {
|
if err2 := decYAML.Decode(&config); err2 != nil {
|
||||||
err = errors.New("not valid yaml or json")
|
err = fmt.Errorf("invalid yaml (%s) or json (%s)", err2, err)
|
||||||
}
|
} else {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
+20
-4
@@ -175,9 +175,22 @@ func (s *ConfigSuite) TestLoadYAMLConfig(c *C) {
|
|||||||
c.Check(s.config.DatabaseOpenAttempts, Equals, 10)
|
c.Check(s.config.DatabaseOpenAttempts, Equals, 10)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ConfigSuite) TestSaveYAMLConfig(c *C) {
|
func (s *ConfigSuite) TestLoadYAMLErrorConfig(c *C) {
|
||||||
configname := filepath.Join(c.MkDir(), "aptly.yaml2")
|
configname := filepath.Join(c.MkDir(), "aptly.yaml2")
|
||||||
f, _ := os.Create(configname)
|
f, _ := os.Create(configname)
|
||||||
|
f.WriteString(configFileYAMLError)
|
||||||
|
f.Close()
|
||||||
|
|
||||||
|
// start with empty config
|
||||||
|
s.config = ConfigStructure{}
|
||||||
|
|
||||||
|
err := LoadConfig(configname, &s.config)
|
||||||
|
c.Assert(err.Error(), Equals, "invalid yaml (unknown pool storage type: invalid) or json (invalid character 'p' looking for beginning of value)")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *ConfigSuite) TestSaveYAMLConfig(c *C) {
|
||||||
|
configname := filepath.Join(c.MkDir(), "aptly.yaml3")
|
||||||
|
f, _ := os.Create(configname)
|
||||||
f.WriteString(configFileYAML)
|
f.WriteString(configFileYAML)
|
||||||
f.Close()
|
f.Close()
|
||||||
|
|
||||||
@@ -207,7 +220,7 @@ func (s *ConfigSuite) TestSaveYAML2Config(c *C) {
|
|||||||
s.config.PackagePoolStorage.Local = &LocalPoolStorage{"/tmp/aptly-pool"}
|
s.config.PackagePoolStorage.Local = &LocalPoolStorage{"/tmp/aptly-pool"}
|
||||||
s.config.PackagePoolStorage.Azure = nil
|
s.config.PackagePoolStorage.Azure = nil
|
||||||
|
|
||||||
configname := filepath.Join(c.MkDir(), "aptly.yaml3")
|
configname := filepath.Join(c.MkDir(), "aptly.yaml4")
|
||||||
err := SaveConfigYAML(configname, &s.config)
|
err := SaveConfigYAML(configname, &s.config)
|
||||||
c.Assert(err, IsNil)
|
c.Assert(err, IsNil)
|
||||||
|
|
||||||
@@ -260,7 +273,7 @@ func (s *ConfigSuite) TestSaveYAML2Config(c *C) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *ConfigSuite) TestLoadEmptyConfig(c *C) {
|
func (s *ConfigSuite) TestLoadEmptyConfig(c *C) {
|
||||||
configname := filepath.Join(c.MkDir(), "aptly.yaml4")
|
configname := filepath.Join(c.MkDir(), "aptly.yaml5")
|
||||||
f, _ := os.Create(configname)
|
f, _ := os.Create(configname)
|
||||||
f.Close()
|
f.Close()
|
||||||
|
|
||||||
@@ -268,7 +281,7 @@ func (s *ConfigSuite) TestLoadEmptyConfig(c *C) {
|
|||||||
s.config = ConfigStructure{}
|
s.config = ConfigStructure{}
|
||||||
|
|
||||||
err := LoadConfig(configname, &s.config)
|
err := LoadConfig(configname, &s.config)
|
||||||
c.Assert(err.Error(), Equals, "not valid yaml or json")
|
c.Assert(err.Error(), Equals, "invalid yaml (EOF) or json (EOF)")
|
||||||
}
|
}
|
||||||
|
|
||||||
const configFile = `{"rootDir": "/opt/aptly/", "downloadConcurrency": 33, "databaseOpenAttempts": 33}`
|
const configFile = `{"rootDir": "/opt/aptly/", "downloadConcurrency": 33, "databaseOpenAttempts": 33}`
|
||||||
@@ -355,3 +368,6 @@ packagepool_storage:
|
|||||||
account_key: a key
|
account_key: a key
|
||||||
endpoint: ""
|
endpoint: ""
|
||||||
`
|
`
|
||||||
|
const configFileYAMLError = `packagepool_storage:
|
||||||
|
type: invalid
|
||||||
|
`
|
||||||
|
|||||||
Reference in New Issue
Block a user