mirror of
https://github.com/aptly-dev/aptly.git
synced 2026-01-12 03:21:33 +00:00
add test
This commit is contained in:
37
system/t02_config/ConfigShowYAMLTest_gold
Normal file
37
system/t02_config/ConfigShowYAMLTest_gold
Normal file
@@ -0,0 +1,37 @@
|
||||
root_dir: ${HOME}/.aptly
|
||||
log_level: debug
|
||||
log_format: default
|
||||
database_open_attempts: 10
|
||||
architectures: []
|
||||
skip_legacy_pool: false
|
||||
dep_follow_suggests: false
|
||||
dep_follow_recommends: false
|
||||
dep_follow_all_variants: false
|
||||
dep_follow_source: false
|
||||
dep_verboseresolve: false
|
||||
ppa_distributor_id: ubuntu
|
||||
ppa_codename: ""
|
||||
serve_in_api_mode: true
|
||||
enable_metrics_endpoint: true
|
||||
enable_swagger_endpoint: false
|
||||
async_api: false
|
||||
database_backend:
|
||||
type: ""
|
||||
db_path: ""
|
||||
url: ""
|
||||
downloader: default
|
||||
download_concurrency: 4
|
||||
download_limit: 0
|
||||
download_retries: 5
|
||||
download_sourcepackages: false
|
||||
gpg_provider: gpg
|
||||
gpg_disable_sign: false
|
||||
gpg_disable_verify: false
|
||||
skip_contents_publishing: false
|
||||
skip_bz2_publishing: false
|
||||
filesystem_publish_endpoints: {}
|
||||
s3_publish_endpoints: {}
|
||||
swift_publish_endpoints: {}
|
||||
azure_publish_endpoints: {}
|
||||
packagepool_storage: {}
|
||||
|
||||
@@ -64,3 +64,11 @@ class ConfigShowTest(BaseTest):
|
||||
"""
|
||||
runCmd = ["aptly", "config", "show"]
|
||||
gold_processor = BaseTest.expand_environ
|
||||
|
||||
|
||||
class ConfigShowYAMLTest(BaseTest):
|
||||
"""
|
||||
config showing
|
||||
"""
|
||||
runCmd = ["aptly", "config", "show", "-yaml"]
|
||||
gold_processor = BaseTest.expand_environ
|
||||
|
||||
@@ -294,6 +294,23 @@ func SaveConfigRaw(filename string, conf []byte) error {
|
||||
return err
|
||||
}
|
||||
|
||||
// SaveConfigYAML write configuration to yaml file
|
||||
func SaveConfigYAML(filename string, config *ConfigStructure) error {
|
||||
f, err := os.Create(filename)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
yamlData, err := yaml.Marshal(&config)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error marshaling to YAML: %s", err)
|
||||
}
|
||||
|
||||
_, err = f.Write(yamlData)
|
||||
return err
|
||||
}
|
||||
|
||||
// GetRootDir returns the RootDir with expanded ~ as home directory
|
||||
func (conf *ConfigStructure) GetRootDir() string {
|
||||
return strings.Replace(conf.RootDir, "~", os.Getenv("HOME"), 1)
|
||||
|
||||
@@ -14,11 +14,14 @@ type ConfigSuite struct {
|
||||
var _ = Suite(&ConfigSuite{})
|
||||
|
||||
func (s *ConfigSuite) TestLoadConfig(c *C) {
|
||||
configname := filepath.Join(c.MkDir(), "aptly.json")
|
||||
configname := filepath.Join(c.MkDir(), "aptly.json1")
|
||||
f, _ := os.Create(configname)
|
||||
f.WriteString(configFile)
|
||||
f.Close()
|
||||
|
||||
// start with empty config
|
||||
s.config = ConfigStructure{}
|
||||
|
||||
err := LoadConfig(configname, &s.config)
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(s.config.GetRootDir(), Equals, "/opt/aptly/")
|
||||
@@ -27,7 +30,10 @@ func (s *ConfigSuite) TestLoadConfig(c *C) {
|
||||
}
|
||||
|
||||
func (s *ConfigSuite) TestSaveConfig(c *C) {
|
||||
configname := filepath.Join(c.MkDir(), "aptly.json")
|
||||
configname := filepath.Join(c.MkDir(), "aptly.json2")
|
||||
|
||||
// start with empty config
|
||||
s.config = ConfigStructure{}
|
||||
|
||||
s.config.RootDir = "/tmp/aptly"
|
||||
s.config.DownloadConcurrency = 5
|
||||
@@ -153,4 +159,199 @@ func (s *ConfigSuite) TestSaveConfig(c *C) {
|
||||
"}")
|
||||
}
|
||||
|
||||
func (s *ConfigSuite) TestLoadYAMLConfig(c *C) {
|
||||
configname := filepath.Join(c.MkDir(), "aptly.yaml1")
|
||||
f, _ := os.Create(configname)
|
||||
f.WriteString(configFileYAML)
|
||||
f.Close()
|
||||
|
||||
// start with empty config
|
||||
s.config = ConfigStructure{}
|
||||
|
||||
err := LoadConfig(configname, &s.config)
|
||||
c.Assert(err, IsNil)
|
||||
c.Check(s.config.GetRootDir(), Equals, "/opt/aptly/")
|
||||
c.Check(s.config.DownloadConcurrency, Equals, 40)
|
||||
c.Check(s.config.DatabaseOpenAttempts, Equals, 10)
|
||||
}
|
||||
|
||||
func (s *ConfigSuite) TestSaveYAMLConfig(c *C) {
|
||||
configname := filepath.Join(c.MkDir(), "aptly.yaml2")
|
||||
f, _ := os.Create(configname)
|
||||
f.WriteString(configFileYAML)
|
||||
f.Close()
|
||||
|
||||
// start with empty config
|
||||
s.config = ConfigStructure{}
|
||||
|
||||
err := LoadConfig(configname, &s.config)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
err = SaveConfigYAML(configname, &s.config)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
f, _ = os.Open(configname)
|
||||
defer f.Close()
|
||||
|
||||
st, _ := f.Stat()
|
||||
buf := make([]byte, st.Size())
|
||||
f.Read(buf)
|
||||
|
||||
c.Check(string(buf), Equals, configFileYAML)
|
||||
}
|
||||
|
||||
func (s *ConfigSuite) TestSaveYAML2Config(c *C) {
|
||||
// start with empty config
|
||||
s.config = ConfigStructure{}
|
||||
|
||||
s.config.PackagePoolStorage.Local = &LocalPoolStorage{"/tmp/aptly-pool"}
|
||||
s.config.PackagePoolStorage.Azure = nil
|
||||
|
||||
configname := filepath.Join(c.MkDir(), "aptly.yaml3")
|
||||
err := SaveConfigYAML(configname, &s.config)
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
f, _ := os.Open(configname)
|
||||
defer f.Close()
|
||||
|
||||
st, _ := f.Stat()
|
||||
buf := make([]byte, st.Size())
|
||||
f.Read(buf)
|
||||
|
||||
c.Check(string(buf), Equals, "" +
|
||||
"root_dir: \"\"\n" +
|
||||
"log_level: \"\"\n" +
|
||||
"log_format: \"\"\n" +
|
||||
"database_open_attempts: 0\n" +
|
||||
"architectures: []\n" +
|
||||
"skip_legacy_pool: false\n" +
|
||||
"dep_follow_suggests: false\n" +
|
||||
"dep_follow_recommends: false\n" +
|
||||
"dep_follow_all_variants: false\n" +
|
||||
"dep_follow_source: false\n" +
|
||||
"dep_verboseresolve: false\n" +
|
||||
"ppa_distributor_id: \"\"\n" +
|
||||
"ppa_codename: \"\"\n" +
|
||||
"serve_in_api_mode: false\n" +
|
||||
"enable_metrics_endpoint: false\n" +
|
||||
"enable_swagger_endpoint: false\n" +
|
||||
"async_api: false\n" +
|
||||
"database_backend:\n" +
|
||||
" type: \"\"\n" +
|
||||
" db_path: \"\"\n" +
|
||||
" url: \"\"\n" +
|
||||
"downloader: \"\"\n" +
|
||||
"download_concurrency: 0\n" +
|
||||
"download_limit: 0\n" +
|
||||
"download_retries: 0\n" +
|
||||
"download_sourcepackages: false\n" +
|
||||
"gpg_provider: \"\"\n" +
|
||||
"gpg_disable_sign: false\n" +
|
||||
"gpg_disable_verify: false\n" +
|
||||
"skip_contents_publishing: false\n" +
|
||||
"skip_bz2_publishing: false\n" +
|
||||
"filesystem_publish_endpoints: {}\n" +
|
||||
"s3_publish_endpoints: {}\n" +
|
||||
"swift_publish_endpoints: {}\n" +
|
||||
"azure_publish_endpoints: {}\n" +
|
||||
"packagepool_storage:\n" +
|
||||
" type: local\n" +
|
||||
" path: /tmp/aptly-pool\n")
|
||||
}
|
||||
|
||||
func (s *ConfigSuite) TestLoadEmptyConfig(c *C) {
|
||||
configname := filepath.Join(c.MkDir(), "aptly.yaml4")
|
||||
f, _ := os.Create(configname)
|
||||
f.Close()
|
||||
|
||||
// start with empty config
|
||||
s.config = ConfigStructure{}
|
||||
|
||||
err := LoadConfig(configname, &s.config)
|
||||
c.Assert(err.Error(), Equals, "not valid yaml or json")
|
||||
}
|
||||
|
||||
const configFile = `{"rootDir": "/opt/aptly/", "downloadConcurrency": 33, "databaseOpenAttempts": 33}`
|
||||
const configFileYAML = `root_dir: /opt/aptly/
|
||||
log_level: error
|
||||
log_format: json
|
||||
database_open_attempts: 10
|
||||
architectures:
|
||||
- amd64
|
||||
- arm64
|
||||
skip_legacy_pool: true
|
||||
dep_follow_suggests: true
|
||||
dep_follow_recommends: true
|
||||
dep_follow_all_variants: true
|
||||
dep_follow_source: true
|
||||
dep_verboseresolve: true
|
||||
ppa_distributor_id: Ubuntu
|
||||
ppa_codename: short
|
||||
serve_in_api_mode: true
|
||||
enable_metrics_endpoint: true
|
||||
enable_swagger_endpoint: true
|
||||
async_api: true
|
||||
database_backend:
|
||||
type: etcd
|
||||
db_path: ""
|
||||
url: 127.0.0.1:2379
|
||||
downloader: grab
|
||||
download_concurrency: 40
|
||||
download_limit: 100
|
||||
download_retries: 10
|
||||
download_sourcepackages: true
|
||||
gpg_provider: gpg
|
||||
gpg_disable_sign: true
|
||||
gpg_disable_verify: true
|
||||
skip_contents_publishing: true
|
||||
skip_bz2_publishing: true
|
||||
filesystem_publish_endpoints:
|
||||
test1:
|
||||
root_dir: /opt/srv/aptly_public
|
||||
link_method: hardlink
|
||||
verify_method: md5
|
||||
s3_publish_endpoints:
|
||||
test:
|
||||
region: us-east-1
|
||||
bucket: test-bucket
|
||||
prefix: ""
|
||||
acl: public-read
|
||||
access_key_id: "2"
|
||||
secret_access_key: secret
|
||||
session_token: none
|
||||
endpoint: endpoint
|
||||
storage_class: STANDARD
|
||||
encryption_method: AES256
|
||||
plus_workaround: true
|
||||
disable_multidel: true
|
||||
force_sigv2: true
|
||||
force_virtualhosted_style: true
|
||||
debug: true
|
||||
swift_publish_endpoints:
|
||||
test:
|
||||
container: c1
|
||||
prefix: pre
|
||||
username: user
|
||||
password: pass
|
||||
tenant: t
|
||||
tenant_id: "2"
|
||||
domain: pop
|
||||
domain_id: "1"
|
||||
tenant_domain: td
|
||||
tenant_domain_id: "3"
|
||||
auth_url: http://auth.url
|
||||
azure_publish_endpoints:
|
||||
test:
|
||||
container: container1
|
||||
prefix: pre2
|
||||
account_name: aname
|
||||
account_key: akey
|
||||
endpoint: https://end.point
|
||||
packagepool_storage:
|
||||
type: azure
|
||||
container: test-pool1
|
||||
prefix: pre3
|
||||
account_name: a name
|
||||
account_key: a key
|
||||
endpoint: ""
|
||||
`
|
||||
|
||||
Reference in New Issue
Block a user