Skip to content

Commit 2af6e03

Browse files
added flag pkgs tets
1 parent 8320c4e commit 2af6e03

File tree

3 files changed

+108
-35
lines changed

3 files changed

+108
-35
lines changed

cmdutils/switches/switches.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,9 @@ func (s *Switches) setSettings(settings []string) {
127127
}
128128

129129
if !isDefault {
130-
s.settings = make(map[string]bool)
130+
for k := range s.settings {
131+
s.settings[k] = false
132+
}
131133
}
132134

133135
for _, v := range settings {

cmdutils/switches/switches_test.go

Lines changed: 104 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -14,55 +14,125 @@
1414
package switches
1515

1616
import (
17+
"flag"
18+
1719
. "github.com/onsi/ginkgo"
1820
. "github.com/onsi/gomega"
21+
"github.com/spf13/pflag"
22+
"sigs.k8s.io/kustomize/kyaml/sets"
1923
)
2024

2125
var _ = Describe("CMD Switches", func() {
22-
Context("Setting switches values", func() {
26+
Context("Testing Switches interface", func() {
2327
It("should disable runner", func() {
2428
s := New([]string{"runner-a", Disable("runner-b")})
2529
Expect(s.Enabled("runner-a")).To(BeTrue())
2630
Expect(s.Enabled("runner-b")).To(BeFalse())
2731
})
28-
It("should reuse default settings", func() {
32+
It("should return all items", func() {
2933
s := New([]string{"runner-a", Disable("runner-b")})
30-
defaults := make(map[string]bool, len(s.settings))
31-
for k, v := range s.settings {
32-
defaults[k] = v
33-
}
34-
35-
By("updating settings with empty value")
36-
Expect(s.Set("")).NotTo(HaveOccurred())
37-
Expect(s.settings).To(Equal(defaults))
38-
39-
By("updating settings with *")
40-
Expect(s.Set(DefaultValue)).NotTo(HaveOccurred())
41-
Expect(s.settings).To(Equal(defaults))
34+
35+
expected := make(sets.String)
36+
expected.Insert("runner-a", "runner-b")
37+
Expect(s.All()).To(Equal(expected))
4238
})
43-
It("shouldn't reuse default settings", func() {
39+
It("should return all disabled items", func() {
4440
s := New([]string{"runner-a", Disable("runner-b")})
45-
defaults := make(map[string]bool, len(s.settings))
46-
for k, v := range s.settings {
47-
defaults[k] = v
48-
}
49-
50-
By("updating settings with new values")
51-
Expect(s.Set("-runner-a,runner-b")).NotTo(HaveOccurred())
52-
Expect(s.settings).ToNot(Equal(defaults))
41+
42+
expected := make(sets.String)
43+
expected.Insert("runner-b")
44+
Expect(s.DisabledByDefault()).To(Equal(expected))
5345
})
54-
It("overriding existing settings", func() {
46+
It("should return string", func() {
5547
s := New([]string{"runner-a", Disable("runner-b")})
56-
defaults := make(map[string]bool, len(s.settings))
57-
for k, v := range s.settings {
58-
defaults[k] = v
59-
}
60-
61-
By("overriding settings")
62-
Expect(s.Set(DefaultValue + ",runner-b")).NotTo(HaveOccurred())
63-
Expect(s.settings).ToNot(Equal(defaults))
64-
defaults["runner-b"] = true
65-
Expect(s.settings).To(Equal(defaults))
48+
49+
Expect(s.String()).To(Equal("map[runner-a:true runner-b:false]"))
50+
})
51+
})
52+
53+
Context("Testing flag package behavior", func() {
54+
It("should keep default settings when no flag is passed", func() {
55+
fs := flag.NewFlagSet("", flag.ExitOnError)
56+
controllers := New([]string{"runner-a", Disable("runner-b"), "runner-c"})
57+
fs.Var(controllers, "controllers", "")
58+
59+
Expect(fs.Parse([]string{})).NotTo(HaveOccurred())
60+
Expect(controllers.Enabled("runner-a")).To(BeTrue())
61+
Expect(controllers.Enabled("runner-b")).To(BeFalse())
62+
Expect(controllers.Enabled("runner-c")).To(BeTrue())
63+
})
64+
It("should keep default settings when * is passed", func() {
65+
fs := flag.NewFlagSet("", flag.ExitOnError)
66+
controllers := New([]string{"runner-a", Disable("runner-b"), "runner-c"})
67+
fs.Var(controllers, "controllers", "")
68+
69+
Expect(fs.Parse([]string{"--controllers=*"})).NotTo(HaveOccurred())
70+
Expect(controllers.Enabled("runner-a")).To(BeTrue())
71+
Expect(controllers.Enabled("runner-b")).To(BeFalse())
72+
Expect(controllers.Enabled("runner-c")).To(BeTrue())
73+
})
74+
It("should override default settings", func() {
75+
fs := flag.NewFlagSet("", flag.ExitOnError)
76+
controllers := New([]string{"runner-a", Disable("runner-b"), "runner-c"})
77+
fs.Var(controllers, "controllers", "")
78+
79+
Expect(fs.Parse([]string{"--controllers=runner-a,-runner-c"})).NotTo(HaveOccurred())
80+
Expect(controllers.Enabled("runner-a")).To(BeTrue())
81+
Expect(controllers.Enabled("runner-b")).To(BeFalse())
82+
Expect(controllers.Enabled("runner-c")).To(BeFalse())
83+
})
84+
It("should override some of default settings", func() {
85+
fs := flag.NewFlagSet("", flag.ExitOnError)
86+
controllers := New([]string{"runner-a", Disable("runner-b"), "runner-c"})
87+
fs.Var(controllers, "controllers", "")
88+
89+
Expect(fs.Parse([]string{"--controllers=*,-runner-a"})).NotTo(HaveOccurred())
90+
Expect(controllers.Enabled("runner-a")).To(BeFalse())
91+
Expect(controllers.Enabled("runner-b")).To(BeFalse())
92+
Expect(controllers.Enabled("runner-c")).To(BeTrue())
93+
})
94+
})
95+
96+
Context("Testing pflag package behavior", func() {
97+
It("should keep default settings when no flag is passed", func() {
98+
fs := pflag.NewFlagSet("", pflag.ExitOnError)
99+
controllers := New([]string{"runner-a", Disable("runner-b"), "runner-c"})
100+
fs.Var(controllers, "controllers", "")
101+
102+
Expect(fs.Parse([]string{})).NotTo(HaveOccurred())
103+
Expect(controllers.Enabled("runner-a")).To(BeTrue())
104+
Expect(controllers.Enabled("runner-b")).To(BeFalse())
105+
Expect(controllers.Enabled("runner-c")).To(BeTrue())
106+
})
107+
It("should keep default settings when * is passed", func() {
108+
fs := pflag.NewFlagSet("", pflag.ExitOnError)
109+
controllers := New([]string{"runner-a", Disable("runner-b"), "runner-c"})
110+
fs.Var(controllers, "controllers", "")
111+
112+
Expect(fs.Parse([]string{"--controllers=*"})).NotTo(HaveOccurred())
113+
Expect(controllers.Enabled("runner-a")).To(BeTrue())
114+
Expect(controllers.Enabled("runner-b")).To(BeFalse())
115+
Expect(controllers.Enabled("runner-c")).To(BeTrue())
116+
})
117+
It("should override default settings", func() {
118+
fs := pflag.NewFlagSet("", pflag.ExitOnError)
119+
controllers := New([]string{"runner-a", Disable("runner-b"), "runner-c"})
120+
fs.Var(controllers, "controllers", "")
121+
122+
Expect(fs.Parse([]string{"--controllers=runner-a,-runner-c"})).NotTo(HaveOccurred())
123+
Expect(controllers.Enabled("runner-a")).To(BeTrue())
124+
Expect(controllers.Enabled("runner-b")).To(BeFalse())
125+
Expect(controllers.Enabled("runner-c")).To(BeFalse())
126+
})
127+
It("should override some of default settings", func() {
128+
fs := pflag.NewFlagSet("", pflag.ExitOnError)
129+
controllers := New([]string{"runner-a", Disable("runner-b"), "runner-c"})
130+
fs.Var(controllers, "controllers", "")
131+
132+
Expect(fs.Parse([]string{"--controllers=*,-runner-a"})).NotTo(HaveOccurred())
133+
Expect(controllers.Enabled("runner-a")).To(BeFalse())
134+
Expect(controllers.Enabled("runner-b")).To(BeFalse())
135+
Expect(controllers.Enabled("runner-c")).To(BeTrue())
66136
})
67137
})
68138
})

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ require (
77
github.com/google/addlicense v1.0.0
88
github.com/onsi/ginkgo v1.16.5
99
github.com/onsi/gomega v1.16.0
10+
github.com/spf13/pflag v1.0.5
1011
k8s.io/api v0.22.3
1112
k8s.io/apimachinery v0.22.3
1213
k8s.io/client-go v0.22.3

0 commit comments

Comments
 (0)