mirror of
https://github.com/containrrr/watchtower.git
synced 2025-12-13 21:56:38 +01:00
feat: add porcelain output (#1337)
* feat: add porcaline output * feat(du-cli): add create-stale action add create-stale action Signed-off-by: nils måsén * test(flags): add alias tests * fix stray format string ref * fix shell liniting problems * feat(du-cli): remove created images * add test for common template * fix interval/schedule logic * use porcelain arg as template version * fix editor save artifacts * use simpler v1 template Signed-off-by: nils måsén
This commit is contained in:
parent
a429c373ff
commit
7900471f88
13 changed files with 344 additions and 63 deletions
|
|
@ -5,6 +5,7 @@ import (
|
|||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
|
@ -127,3 +128,71 @@ func TestIsFile(t *testing.T) {
|
|||
assert.False(t, isFile("https://google.com"), "an URL should never be considered a file")
|
||||
assert.True(t, isFile(os.Args[0]), "the currently running binary path should always be considered a file")
|
||||
}
|
||||
|
||||
func TestReadFlags(t *testing.T) {
|
||||
logrus.StandardLogger().ExitFunc = func(_ int) { t.FailNow() }
|
||||
|
||||
}
|
||||
|
||||
func TestProcessFlagAliases(t *testing.T) {
|
||||
logrus.StandardLogger().ExitFunc = func(_ int) { t.FailNow() }
|
||||
cmd := new(cobra.Command)
|
||||
SetDefaults()
|
||||
RegisterDockerFlags(cmd)
|
||||
RegisterSystemFlags(cmd)
|
||||
RegisterNotificationFlags(cmd)
|
||||
|
||||
require.NoError(t, cmd.ParseFlags([]string{
|
||||
`--porcelain`, `v1`,
|
||||
`--interval`, `10`,
|
||||
}))
|
||||
flags := cmd.Flags()
|
||||
ProcessFlagAliases(flags)
|
||||
|
||||
urls, _ := flags.GetStringArray(`notification-url`)
|
||||
assert.Contains(t, urls, `logger://`)
|
||||
|
||||
logStdout, _ := flags.GetBool(`notification-log-stdout`)
|
||||
assert.True(t, logStdout)
|
||||
|
||||
report, _ := flags.GetBool(`notification-report`)
|
||||
assert.True(t, report)
|
||||
|
||||
template, _ := flags.GetString(`notification-template`)
|
||||
assert.Equal(t, `porcelain.v1.summary-no-log`, template)
|
||||
|
||||
sched, _ := flags.GetString(`schedule`)
|
||||
assert.Equal(t, `@every 10s`, sched)
|
||||
}
|
||||
|
||||
func TestProcessFlagAliasesSchedAndInterval(t *testing.T) {
|
||||
logrus.StandardLogger().ExitFunc = func(_ int) { panic(`FATAL`) }
|
||||
cmd := new(cobra.Command)
|
||||
SetDefaults()
|
||||
RegisterDockerFlags(cmd)
|
||||
RegisterSystemFlags(cmd)
|
||||
RegisterNotificationFlags(cmd)
|
||||
|
||||
require.NoError(t, cmd.ParseFlags([]string{`--schedule`, `@now`, `--interval`, `10`}))
|
||||
flags := cmd.Flags()
|
||||
|
||||
assert.PanicsWithValue(t, `FATAL`, func() {
|
||||
ProcessFlagAliases(flags)
|
||||
})
|
||||
}
|
||||
|
||||
func TestProcessFlagAliasesInvalidPorcelaineVersion(t *testing.T) {
|
||||
logrus.StandardLogger().ExitFunc = func(_ int) { panic(`FATAL`) }
|
||||
cmd := new(cobra.Command)
|
||||
SetDefaults()
|
||||
RegisterDockerFlags(cmd)
|
||||
RegisterSystemFlags(cmd)
|
||||
RegisterNotificationFlags(cmd)
|
||||
|
||||
require.NoError(t, cmd.ParseFlags([]string{`--porcelain`, `cowboy`}))
|
||||
flags := cmd.Flags()
|
||||
|
||||
assert.PanicsWithValue(t, `FATAL`, func() {
|
||||
ProcessFlagAliases(flags)
|
||||
})
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue