1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
10 check "gopkg.in/check.v1"
13 var _ = check.Suite(&CommandSuite{})
15 type CommandSuite struct{}
17 func (s *CommandSuite) TestBadArg(c *check.C) {
18 var stderr bytes.Buffer
19 code := DumpCommand.RunCommand("arvados config-dump", []string{"-badarg"}, bytes.NewBuffer(nil), bytes.NewBuffer(nil), &stderr)
20 c.Check(code, check.Equals, 2)
21 c.Check(stderr.String(), check.Matches, `(?ms)usage: .*`)
24 func (s *CommandSuite) TestEmptyInput(c *check.C) {
25 var stdout, stderr bytes.Buffer
26 code := DumpCommand.RunCommand("arvados config-dump", nil, &bytes.Buffer{}, &stdout, &stderr)
27 c.Check(code, check.Equals, 1)
28 c.Check(stderr.String(), check.Matches, `config does not define any clusters\n`)
31 func (s *CommandSuite) TestCheckNoDeprecatedKeys(c *check.C) {
32 var stdout, stderr bytes.Buffer
37 MaxItemsPerResponse: 1234
39 code := CheckCommand.RunCommand("arvados config-check", nil, bytes.NewBufferString(in), &stdout, &stderr)
40 c.Check(code, check.Equals, 0)
41 c.Check(stdout.String(), check.Equals, "")
42 c.Check(stderr.String(), check.Equals, "")
45 func (s *CommandSuite) TestCheckDeprecatedKeys(c *check.C) {
46 var stdout, stderr bytes.Buffer
51 MaxItemsPerResponse: 1234
53 code := CheckCommand.RunCommand("arvados config-check", nil, bytes.NewBufferString(in), &stdout, &stderr)
54 c.Check(code, check.Equals, 1)
55 c.Check(stdout.String(), check.Matches, `(?ms).*API:\n\- +.*MaxItemsPerResponse: 1000\n\+ +MaxItemsPerResponse: 1234\n.*`)
58 func (s *CommandSuite) TestCheckUnknownKey(c *check.C) {
59 var stdout, stderr bytes.Buffer
73 code := CheckCommand.RunCommand("arvados config-check", nil, bytes.NewBufferString(in), &stdout, &stderr)
74 c.Log(stderr.String())
75 c.Check(code, check.Equals, 1)
76 c.Check(stderr.String(), check.Matches, `(?ms).*deprecated or unknown config entry: Clusters.z1234.Bogus1\n.*`)
77 c.Check(stderr.String(), check.Matches, `(?ms).*deprecated or unknown config entry: Clusters.z1234.BogusSection\n.*`)
78 c.Check(stderr.String(), check.Matches, `(?ms).*deprecated or unknown config entry: Clusters.z1234.API.Bogus3\n.*`)
79 c.Check(stderr.String(), check.Matches, `(?ms).*unexpected object in config entry: Clusters.z1234.PostgreSQL.ConnectionPool\n.*`)
82 func (s *CommandSuite) TestDumpUnknownKey(c *check.C) {
83 var stdout, stderr bytes.Buffer
88 ManagementToken: secret
90 code := DumpCommand.RunCommand("arvados config-dump", nil, bytes.NewBufferString(in), &stdout, &stderr)
91 c.Check(code, check.Equals, 0)
92 c.Check(stderr.String(), check.Matches, `(?ms).*deprecated or unknown config entry: Clusters.z1234.UnknownKey.*`)
93 c.Check(stdout.String(), check.Matches, `(?ms)Clusters:\n z1234:\n.*`)
94 c.Check(stdout.String(), check.Matches, `(?ms).*\n *ManagementToken: secret\n.*`)
95 c.Check(stdout.String(), check.Not(check.Matches), `(?ms).*UnknownKey.*`)