license-acceptance 0.2.6 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/license_acceptance/acceptor.rb +18 -4
- data/lib/license_acceptance/arg_acceptance.rb +15 -16
- data/lib/license_acceptance/cli_flags/mixlib_cli.rb +1 -1
- data/lib/license_acceptance/cli_flags/thor.rb +1 -1
- data/lib/license_acceptance/env_acceptance.rb +14 -7
- data/lib/license_acceptance/file_acceptance.rb +1 -1
- data/lib/license_acceptance/version.rb +1 -1
- data/spec/license_acceptance/acceptor_spec.rb +103 -53
- data/spec/license_acceptance/arg_acceptance_spec.rb +34 -14
- data/spec/license_acceptance/env_acceptance_spec.rb +38 -16
- data/spec/license_acceptance/file_acceptance_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d112a4c55882d1077473a7a895c41dc1ea39a44318fd875cf67e3055bf71e3ba
|
4
|
+
data.tar.gz: f37d0e22fb520876b151b063779355eb9f8ce6453ebc53c28880f2622de03297
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0b44866f1295dd5b862df99648fb8904e7041d90edfa502b8d2ee122d1da8bfc93075b83fa614102a190607a5b900c97479491fbad894cbcd61b69cebab7b1ea
|
7
|
+
data.tar.gz: eecca8e33010d24877e1e5839cb6bddc89c6fc8467feba8f2a41b6f5dbe06fe9ceb9fc438712999c8a7db5baa73b422e572ffe46d6eb9fec2a0df78c25159101
|
data/Gemfile.lock
CHANGED
@@ -38,7 +38,7 @@ module LicenseAcceptance
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def check_and_persist(product_name, version)
|
41
|
-
if
|
41
|
+
if accepted_no_persist?
|
42
42
|
logger.debug("Chef License accepted with no persistence")
|
43
43
|
return true
|
44
44
|
end
|
@@ -46,7 +46,7 @@ module LicenseAcceptance
|
|
46
46
|
product_reader.read
|
47
47
|
product_relationship = product_reader.lookup(product_name, version)
|
48
48
|
|
49
|
-
missing_licenses = file_acceptance.
|
49
|
+
missing_licenses = file_acceptance.accepted?(product_relationship)
|
50
50
|
|
51
51
|
# They have already accepted all licenses and stored their acceptance in the persistent files
|
52
52
|
if missing_licenses.empty?
|
@@ -54,11 +54,11 @@ module LicenseAcceptance
|
|
54
54
|
return true
|
55
55
|
end
|
56
56
|
|
57
|
-
if
|
57
|
+
if accepted? || accepted_silent?
|
58
58
|
if config.persist
|
59
59
|
errs = file_acceptance.persist(product_relationship, missing_licenses)
|
60
60
|
if errs.empty?
|
61
|
-
output_num_persisted(missing_licenses.size)
|
61
|
+
output_num_persisted(missing_licenses.size) unless accepted_silent?
|
62
62
|
else
|
63
63
|
output_persist_failed(errs)
|
64
64
|
end
|
@@ -85,6 +85,20 @@ module LicenseAcceptance
|
|
85
85
|
new(opts).check_and_persist(product_name, version)
|
86
86
|
end
|
87
87
|
|
88
|
+
def accepted?
|
89
|
+
env_acceptance.accepted?(ENV) || arg_acceptance.accepted?(ARGV)
|
90
|
+
end
|
91
|
+
|
92
|
+
# no-persist is silent too
|
93
|
+
def accepted_no_persist?
|
94
|
+
env_acceptance.no_persist?(ENV) || arg_acceptance.no_persist?(ARGV)
|
95
|
+
end
|
96
|
+
|
97
|
+
# persist but be silent like no-persist
|
98
|
+
def accepted_silent?
|
99
|
+
env_acceptance.silent?(ENV) || arg_acceptance.silent?(ARGV)
|
100
|
+
end
|
101
|
+
|
88
102
|
# In the case where users accept with a command line argument or environment variable
|
89
103
|
# we still want to output the fact that the filesystem was changed.
|
90
104
|
def output_num_persisted(count)
|
@@ -1,33 +1,32 @@
|
|
1
1
|
module LicenseAcceptance
|
2
2
|
class ArgAcceptance
|
3
3
|
|
4
|
-
def
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
val = argv[i+1]
|
11
|
-
if val != nil && val.downcase == "accept"
|
12
|
-
return true
|
13
|
-
end
|
14
|
-
end
|
15
|
-
return false
|
4
|
+
def accepted?(argv)
|
5
|
+
look_for_value(argv, "accept")
|
6
|
+
end
|
7
|
+
|
8
|
+
def silent?(argv)
|
9
|
+
look_for_value(argv, "accept-silent")
|
16
10
|
end
|
17
11
|
|
18
|
-
def
|
19
|
-
|
12
|
+
def no_persist?(argv)
|
13
|
+
look_for_value(argv, "accept-no-persist")
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def look_for_value(argv, sought)
|
19
|
+
if argv.include?("--chef-license=#{sought}")
|
20
20
|
return true
|
21
21
|
end
|
22
22
|
i = argv.index("--chef-license")
|
23
23
|
unless i.nil?
|
24
24
|
val = argv[i+1]
|
25
|
-
if val != nil && val.downcase ==
|
25
|
+
if val != nil && val.downcase == sought
|
26
26
|
return true
|
27
27
|
end
|
28
28
|
end
|
29
29
|
return false
|
30
30
|
end
|
31
|
-
|
32
31
|
end
|
33
32
|
end
|
@@ -12,7 +12,7 @@ module LicenseAcceptance
|
|
12
12
|
def self.included(klass)
|
13
13
|
klass.option :chef_license,
|
14
14
|
long: "--chef-license ACCEPTANCE",
|
15
|
-
description: "Accept the license for this product and any contained products ('accept'
|
15
|
+
description: "Accept the license for this product and any contained products ('accept', 'accept-no-persist', or 'accept-silent')",
|
16
16
|
required: false
|
17
17
|
end
|
18
18
|
|
@@ -12,7 +12,7 @@ module LicenseAcceptance
|
|
12
12
|
def self.included(klass)
|
13
13
|
klass.class_option :chef_license,
|
14
14
|
type: :string,
|
15
|
-
desc: 'Accept the license for this product and any contained products: accept, accept-no-persist'
|
15
|
+
desc: 'Accept the license for this product and any contained products: accept, accept-no-persist, accept-silent'
|
16
16
|
end
|
17
17
|
|
18
18
|
end
|
@@ -1,15 +1,22 @@
|
|
1
1
|
module LicenseAcceptance
|
2
2
|
class EnvAcceptance
|
3
3
|
|
4
|
-
def
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
def accepted?(env)
|
5
|
+
look_for_value(env, "accept")
|
6
|
+
end
|
7
|
+
|
8
|
+
def silent?(env)
|
9
|
+
look_for_value(env, "accept-silent")
|
10
|
+
end
|
11
|
+
|
12
|
+
def no_persist?(env)
|
13
|
+
look_for_value(env, "accept-no-persist")
|
9
14
|
end
|
10
15
|
|
11
|
-
|
12
|
-
|
16
|
+
private
|
17
|
+
|
18
|
+
def look_for_value(env, sought)
|
19
|
+
if env['CHEF_LICENSE'] && env['CHEF_LICENSE'].downcase == sought
|
13
20
|
return true
|
14
21
|
end
|
15
22
|
return false
|
@@ -18,7 +18,7 @@ module LicenseAcceptance
|
|
18
18
|
|
19
19
|
# For all the given products in the product set, search all possible locations for the
|
20
20
|
# license acceptance files.
|
21
|
-
def
|
21
|
+
def accepted?(product_relationship)
|
22
22
|
searching = [product_relationship.parent] + product_relationship.children
|
23
23
|
missing_licenses = searching.clone
|
24
24
|
logger.debug("Searching for the following licenses: #{missing_licenses.map(&:name)}")
|
@@ -45,38 +45,40 @@ RSpec.describe LicenseAcceptance::Acceptor do
|
|
45
45
|
|
46
46
|
describe "when check-no-persist environment variable is set" do
|
47
47
|
it "returns true" do
|
48
|
-
expect(env_acc).to receive(:
|
48
|
+
expect(env_acc).to receive(:no_persist?).and_return(true)
|
49
49
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
|
53
53
|
describe "when check-no-persist command line argument is set" do
|
54
54
|
it "returns true" do
|
55
|
-
expect(env_acc).to receive(:
|
56
|
-
expect(arg_acc).to receive(:
|
55
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
56
|
+
expect(arg_acc).to receive(:no_persist?).and_return(true)
|
57
57
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
61
61
|
describe "when there are no missing licenses" do
|
62
62
|
it "returns true" do
|
63
|
-
expect(env_acc).to receive(:
|
64
|
-
expect(arg_acc).to receive(:
|
63
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
64
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
65
65
|
expect(reader).to receive(:read)
|
66
66
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
67
|
-
expect(file_acc).to receive(:
|
67
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return([])
|
68
68
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
72
|
describe "when the user accepts as an environment variable" do
|
73
73
|
it "returns true" do
|
74
|
-
expect(env_acc).to receive(:
|
75
|
-
expect(arg_acc).to receive(:
|
74
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
75
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
76
76
|
expect(reader).to receive(:read)
|
77
77
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
78
|
-
expect(file_acc).to receive(:
|
79
|
-
expect(env_acc).to receive(:
|
78
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
79
|
+
expect(env_acc).to receive(:accepted?).with(ENV).and_return(true)
|
80
|
+
expect(env_acc).to receive(:silent?).with(ENV).and_return(false)
|
81
|
+
expect(arg_acc).to receive(:silent?).with(ARGV).and_return(false)
|
80
82
|
expect(file_acc).to receive(:persist).with(relationship, missing).and_return([])
|
81
83
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
82
84
|
expect(output.string).to match(/1 product license accepted./)
|
@@ -86,25 +88,43 @@ RSpec.describe LicenseAcceptance::Acceptor do
|
|
86
88
|
let(:opts) { { output: output, persist: false } }
|
87
89
|
|
88
90
|
it "returns true" do
|
89
|
-
expect(env_acc).to receive(:
|
90
|
-
expect(arg_acc).to receive(:
|
91
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
92
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
91
93
|
expect(reader).to receive(:read)
|
92
94
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
93
|
-
expect(file_acc).to receive(:
|
94
|
-
expect(env_acc).to receive(:
|
95
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
96
|
+
expect(env_acc).to receive(:accepted?).with(ENV).and_return(true)
|
95
97
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
96
98
|
expect(output.string).to_not match(/accepted./)
|
97
99
|
end
|
98
100
|
end
|
99
101
|
|
102
|
+
describe "when the silent option is used" do
|
103
|
+
let(:opts) { { output: output } }
|
104
|
+
|
105
|
+
it "returns true and silently persists the file" do
|
106
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
107
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
108
|
+
expect(reader).to receive(:read)
|
109
|
+
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
110
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
111
|
+
expect(env_acc).to receive(:accepted?).with(ENV).and_return(false)
|
112
|
+
expect(arg_acc).to receive(:accepted?).with(ARGV).and_return(false)
|
113
|
+
expect(env_acc).to receive(:silent?).with(ENV).twice.and_return(true)
|
114
|
+
expect(file_acc).to receive(:persist).with(relationship, missing).and_return([])
|
115
|
+
expect(acc.check_and_persist(product, version)).to eq(true)
|
116
|
+
expect(output.string).to be_empty
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
100
120
|
describe "when file persistance fails" do
|
101
121
|
it "returns true" do
|
102
|
-
expect(env_acc).to receive(:
|
103
|
-
expect(arg_acc).to receive(:
|
122
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
123
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
104
124
|
expect(reader).to receive(:read)
|
105
125
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
106
|
-
expect(file_acc).to receive(:
|
107
|
-
expect(env_acc).to receive(:
|
126
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
127
|
+
expect(env_acc).to receive(:accepted?).with(ENV).and_return(true)
|
108
128
|
expect(file_acc).to receive(:persist).with(relationship, missing).and_return([StandardError.new("foo")])
|
109
129
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
110
130
|
expect(output.string).to match(/Could not persist acceptance:/)
|
@@ -114,29 +134,51 @@ RSpec.describe LicenseAcceptance::Acceptor do
|
|
114
134
|
|
115
135
|
describe "when the user accepts as an arg" do
|
116
136
|
it "returns true" do
|
117
|
-
expect(env_acc).to receive(:
|
118
|
-
expect(arg_acc).to receive(:
|
137
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
138
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
119
139
|
expect(reader).to receive(:read)
|
120
140
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
121
|
-
expect(file_acc).to receive(:
|
122
|
-
expect(env_acc).to receive(:
|
123
|
-
expect(arg_acc).to receive(:
|
141
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
142
|
+
expect(env_acc).to receive(:accepted?).and_return(false)
|
143
|
+
expect(arg_acc).to receive(:accepted?).with(ARGV).and_return(true)
|
144
|
+
expect(env_acc).to receive(:silent?).with(ENV).and_return(false)
|
145
|
+
expect(arg_acc).to receive(:silent?).with(ARGV).and_return(false)
|
124
146
|
expect(file_acc).to receive(:persist).with(relationship, missing).and_return([])
|
125
147
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
126
148
|
expect(output.string).to match(/1 product license accepted./)
|
127
149
|
end
|
128
150
|
|
151
|
+
describe "when the silent option is used" do
|
152
|
+
let(:opts) { { output: output } }
|
153
|
+
|
154
|
+
it "returns true and silently persists the file" do
|
155
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
156
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
157
|
+
expect(reader).to receive(:read)
|
158
|
+
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
159
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
160
|
+
expect(env_acc).to receive(:accepted?).and_return(false)
|
161
|
+
expect(arg_acc).to receive(:accepted?).with(ARGV).and_return(false)
|
162
|
+
expect(env_acc).to receive(:silent?).with(ENV).twice.and_return(false)
|
163
|
+
expect(arg_acc).to receive(:silent?).with(ARGV).twice.and_return(true)
|
164
|
+
expect(file_acc).to receive(:persist).with(relationship, missing).and_return([])
|
165
|
+
expect(acc.check_and_persist(product, version)).to eq(true)
|
166
|
+
expect(output.string).to be_empty
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
|
129
171
|
describe "when persist is set to false" do
|
130
172
|
let(:opts) { { output: output, persist: false } }
|
131
173
|
|
132
174
|
it "returns true" do
|
133
|
-
expect(env_acc).to receive(:
|
134
|
-
expect(arg_acc).to receive(:
|
175
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
176
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
135
177
|
expect(reader).to receive(:read)
|
136
178
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
137
|
-
expect(file_acc).to receive(:
|
138
|
-
expect(env_acc).to receive(:
|
139
|
-
expect(arg_acc).to receive(:
|
179
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
180
|
+
expect(env_acc).to receive(:accepted?).and_return(false)
|
181
|
+
expect(arg_acc).to receive(:accepted?).with(ARGV).and_return(true)
|
140
182
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
141
183
|
expect(output.string).to_not match(/accepted./)
|
142
184
|
end
|
@@ -144,13 +186,13 @@ RSpec.describe LicenseAcceptance::Acceptor do
|
|
144
186
|
|
145
187
|
describe "when file persistance fails" do
|
146
188
|
it "returns true" do
|
147
|
-
expect(env_acc).to receive(:
|
148
|
-
expect(arg_acc).to receive(:
|
189
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
190
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
149
191
|
expect(reader).to receive(:read)
|
150
192
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
151
|
-
expect(file_acc).to receive(:
|
152
|
-
expect(env_acc).to receive(:
|
153
|
-
expect(arg_acc).to receive(:
|
193
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
194
|
+
expect(env_acc).to receive(:accepted?).and_return(false)
|
195
|
+
expect(arg_acc).to receive(:accepted?).with(ARGV).and_return(true)
|
154
196
|
expect(file_acc).to receive(:persist).with(relationship, missing).and_return([StandardError.new("bar")])
|
155
197
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
156
198
|
expect(output.string).to match(/Could not persist acceptance:/)
|
@@ -161,13 +203,15 @@ RSpec.describe LicenseAcceptance::Acceptor do
|
|
161
203
|
describe "when the prompt is not a tty" do
|
162
204
|
let(:opts) { { output: File.open(File::NULL, "w") } }
|
163
205
|
it "raises a LicenseNotAcceptedError error" do
|
164
|
-
expect(env_acc).to receive(:
|
165
|
-
expect(arg_acc).to receive(:
|
206
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
207
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
166
208
|
expect(reader).to receive(:read)
|
167
209
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
168
|
-
expect(file_acc).to receive(:
|
169
|
-
expect(env_acc).to receive(:
|
170
|
-
expect(arg_acc).to receive(:
|
210
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
211
|
+
expect(env_acc).to receive(:accepted?).and_return(false)
|
212
|
+
expect(arg_acc).to receive(:accepted?).and_return(false)
|
213
|
+
expect(env_acc).to receive(:silent?).and_return(false)
|
214
|
+
expect(arg_acc).to receive(:silent?).and_return(false)
|
171
215
|
expect(prompt_acc).to_not receive(:request)
|
172
216
|
expect { acc.check_and_persist(product, version) }.to raise_error(LicenseAcceptance::LicenseNotAcceptedError)
|
173
217
|
end
|
@@ -175,13 +219,15 @@ RSpec.describe LicenseAcceptance::Acceptor do
|
|
175
219
|
|
176
220
|
describe "when the user accepts with the prompt" do
|
177
221
|
it "returns true" do
|
178
|
-
expect(env_acc).to receive(:
|
179
|
-
expect(arg_acc).to receive(:
|
222
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
223
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
180
224
|
expect(reader).to receive(:read)
|
181
225
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
182
|
-
expect(file_acc).to receive(:
|
183
|
-
expect(env_acc).to receive(:
|
184
|
-
expect(arg_acc).to receive(:
|
226
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
227
|
+
expect(env_acc).to receive(:accepted?).and_return(false)
|
228
|
+
expect(arg_acc).to receive(:accepted?).and_return(false)
|
229
|
+
expect(env_acc).to receive(:silent?).and_return(false)
|
230
|
+
expect(arg_acc).to receive(:silent?).and_return(false)
|
185
231
|
expect(prompt_acc).to receive(:request).with(missing).and_yield.and_return(true)
|
186
232
|
expect(file_acc).to receive(:persist).with(relationship, missing)
|
187
233
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
@@ -191,13 +237,15 @@ RSpec.describe LicenseAcceptance::Acceptor do
|
|
191
237
|
let(:opts) { { output: output, persist: false } }
|
192
238
|
|
193
239
|
it "returns true" do
|
194
|
-
expect(env_acc).to receive(:
|
195
|
-
expect(arg_acc).to receive(:
|
240
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
241
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
196
242
|
expect(reader).to receive(:read)
|
197
243
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
198
|
-
expect(file_acc).to receive(:
|
199
|
-
expect(env_acc).to receive(:
|
200
|
-
expect(arg_acc).to receive(:
|
244
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
245
|
+
expect(env_acc).to receive(:accepted?).and_return(false)
|
246
|
+
expect(arg_acc).to receive(:accepted?).and_return(false)
|
247
|
+
expect(env_acc).to receive(:silent?).and_return(false)
|
248
|
+
expect(arg_acc).to receive(:silent?).and_return(false)
|
201
249
|
expect(prompt_acc).to receive(:request).with(missing).and_yield.and_return(true)
|
202
250
|
expect(acc.check_and_persist(product, version)).to eq(true)
|
203
251
|
end
|
@@ -206,13 +254,15 @@ RSpec.describe LicenseAcceptance::Acceptor do
|
|
206
254
|
|
207
255
|
describe "when the user declines with the prompt" do
|
208
256
|
it "raises a LicenseNotAcceptedError error" do
|
209
|
-
expect(env_acc).to receive(:
|
210
|
-
expect(arg_acc).to receive(:
|
257
|
+
expect(env_acc).to receive(:no_persist?).and_return(false)
|
258
|
+
expect(arg_acc).to receive(:no_persist?).and_return(false)
|
211
259
|
expect(reader).to receive(:read)
|
212
260
|
expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
|
213
|
-
expect(file_acc).to receive(:
|
214
|
-
expect(env_acc).to receive(:
|
215
|
-
expect(arg_acc).to receive(:
|
261
|
+
expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
|
262
|
+
expect(env_acc).to receive(:accepted?).and_return(false)
|
263
|
+
expect(arg_acc).to receive(:accepted?).and_return(false)
|
264
|
+
expect(env_acc).to receive(:silent?).and_return(false)
|
265
|
+
expect(arg_acc).to receive(:silent?).and_return(false)
|
216
266
|
expect(prompt_acc).to receive(:request).with(missing).and_return(false)
|
217
267
|
expect { acc.check_and_persist(product, version) }.to raise_error(LicenseAcceptance::LicenseNotAcceptedError)
|
218
268
|
end
|
@@ -4,33 +4,53 @@ require "license_acceptance/arg_acceptance"
|
|
4
4
|
RSpec.describe LicenseAcceptance::ArgAcceptance do
|
5
5
|
let(:acc) { LicenseAcceptance::ArgAcceptance.new }
|
6
6
|
|
7
|
-
describe "
|
8
|
-
|
9
|
-
|
7
|
+
describe "with an accept option" do
|
8
|
+
describe "#accepted?" do
|
9
|
+
it "returns true if the args contain the required flag with spaces" do
|
10
|
+
expect(acc.accepted?(["--chef-license", "accept"])).to eq(true)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "returns true if the args contain the required flag with equal" do
|
14
|
+
expect(acc.accepted?(["--chef-license=accept"])).to eq(true)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "returns false if the args do not contain the required value" do
|
18
|
+
expect(acc.accepted?(["--chef-license"])).to eq(false)
|
19
|
+
expect(acc.accepted?(["--chef-license=foo"])).to eq(false)
|
20
|
+
expect(acc.accepted?(["--chef-license", "foo"])).to eq(false)
|
21
|
+
end
|
10
22
|
end
|
11
23
|
|
12
|
-
|
13
|
-
|
14
|
-
|
24
|
+
describe "#silent?" do
|
25
|
+
it "returns true if the args contain the required flag with spaces" do
|
26
|
+
expect(acc.silent?(["--chef-license", "accept-silent"])).to eq(true)
|
27
|
+
end
|
15
28
|
|
16
|
-
|
17
|
-
|
29
|
+
it "returns true if the args contain the required flag with equal" do
|
30
|
+
expect(acc.silent?(["--chef-license=accept-silent"])).to eq(true)
|
31
|
+
end
|
32
|
+
|
33
|
+
it "returns false if the args do not contain the required value" do
|
34
|
+
expect(acc.silent?(["--chef-license"])).to eq(false)
|
35
|
+
expect(acc.silent?(["--chef-license=accept"])).to eq(false)
|
36
|
+
expect(acc.silent?(["--chef-license", "accept"])).to eq(false)
|
37
|
+
end
|
18
38
|
end
|
19
39
|
end
|
20
40
|
|
21
|
-
describe "#
|
41
|
+
describe "#no_persist?" do
|
22
42
|
it "returns true if the args contain the required flag with spaces" do
|
23
|
-
expect(acc.
|
43
|
+
expect(acc.no_persist?(["--chef-license", "accept-no-persist"])).to eq(true)
|
24
44
|
end
|
25
45
|
|
26
46
|
it "returns true if the args contain the required flag with equal" do
|
27
|
-
expect(acc.
|
47
|
+
expect(acc.no_persist?(["--chef-license=accept-no-persist"])).to eq(true)
|
28
48
|
end
|
29
49
|
|
30
50
|
it "returns false if the args do not contain the required value" do
|
31
|
-
expect(acc.
|
32
|
-
expect(acc.
|
33
|
-
expect(acc.
|
51
|
+
expect(acc.no_persist?(["--chef-license"])).to eq(false)
|
52
|
+
expect(acc.no_persist?(["--chef-license=accept"])).to eq(false)
|
53
|
+
expect(acc.no_persist?(["--chef-license", "accept"])).to eq(false)
|
34
54
|
end
|
35
55
|
end
|
36
56
|
|
@@ -4,39 +4,61 @@ require "license_acceptance/env_acceptance"
|
|
4
4
|
RSpec.describe LicenseAcceptance::EnvAcceptance do
|
5
5
|
let(:acc) { LicenseAcceptance::EnvAcceptance.new }
|
6
6
|
|
7
|
-
describe "
|
8
|
-
|
9
|
-
env
|
10
|
-
|
11
|
-
|
7
|
+
describe "when passed an accept value" do
|
8
|
+
describe "#accepted?" do
|
9
|
+
it "returns true if the env contains the correct key and value" do
|
10
|
+
env = {"CHEF_LICENSE" => "accept"}
|
11
|
+
expect(acc.accepted?(env)).to eq(true)
|
12
|
+
end
|
12
13
|
|
13
|
-
|
14
|
-
|
15
|
-
|
14
|
+
it "returns false if the env has a key but nil value" do
|
15
|
+
env = {"CHEF_LICENSE" => nil}
|
16
|
+
expect(acc.accepted?(env)).to eq(false)
|
17
|
+
end
|
18
|
+
|
19
|
+
it "returns false if the env has a key but incorrect value" do
|
20
|
+
env = {"CHEF_LICENSE" => "foo"}
|
21
|
+
expect(acc.accepted?(env)).to eq(false)
|
22
|
+
end
|
16
23
|
end
|
17
24
|
|
18
|
-
|
19
|
-
env
|
20
|
-
|
25
|
+
describe "#silent?" do
|
26
|
+
it "returns true if the env contains the correct key and value" do
|
27
|
+
env = {"CHEF_LICENSE" => "accept-silent"}
|
28
|
+
expect(acc.silent?(env)).to eq(true)
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns false if the env has a key but nil value" do
|
32
|
+
env = {"CHEF_LICENSE" => nil}
|
33
|
+
expect(acc.silent?(env)).to eq(false)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "returns false if the env has a key but incorrect value" do
|
37
|
+
env = {"CHEF_LICENSE" => "foo"}
|
38
|
+
expect(acc.silent?(env)).to eq(false)
|
39
|
+
env = {"CHEF_LICENSE" => "accept"}
|
40
|
+
expect(acc.silent?(env)).to eq(false)
|
41
|
+
end
|
21
42
|
end
|
43
|
+
|
22
44
|
end
|
23
45
|
|
24
|
-
describe "#
|
46
|
+
describe "#no_persist?" do
|
25
47
|
it "returns true if the env contains the correct key and value" do
|
26
48
|
env = {"CHEF_LICENSE" => "accept-no-persist"}
|
27
|
-
expect(acc.
|
49
|
+
expect(acc.no_persist?(env)).to eq(true)
|
28
50
|
end
|
29
51
|
|
30
52
|
it "returns false if the env has a key but nil value" do
|
31
53
|
env = {"CHEF_LICENSE" => nil}
|
32
|
-
expect(acc.
|
54
|
+
expect(acc.no_persist?(env)).to eq(false)
|
33
55
|
end
|
34
56
|
|
35
57
|
it "returns false if the env has a key but incorrect value" do
|
36
58
|
env = {"CHEF_LICENSE" => "foo"}
|
37
|
-
expect(acc.
|
59
|
+
expect(acc.no_persist?(env)).to eq(false)
|
38
60
|
env = {"CHEF_LICENSE" => "accept"}
|
39
|
-
expect(acc.
|
61
|
+
expect(acc.no_persist?(env)).to eq(false)
|
40
62
|
end
|
41
63
|
end
|
42
64
|
|
@@ -23,7 +23,7 @@ RSpec.describe LicenseAcceptance::FileAcceptance do
|
|
23
23
|
describe "when there is an existing license file" do
|
24
24
|
it "returns an empty missing product list" do
|
25
25
|
expect(File).to receive(:exist?).with(File.join(dir1, p1_filename)).and_return(true)
|
26
|
-
expect(acc.
|
26
|
+
expect(acc.accepted?(product_relationship)).to eq([])
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -31,7 +31,7 @@ RSpec.describe LicenseAcceptance::FileAcceptance do
|
|
31
31
|
it "returns the product in the missing product list" do
|
32
32
|
expect(File).to receive(:exist?).with(File.join(dir1, p1_filename)).and_return(false)
|
33
33
|
expect(File).to receive(:exist?).with(File.join(dir2, p1_filename)).and_return(false)
|
34
|
-
expect(acc.
|
34
|
+
expect(acc.accepted?(product_relationship)).to eq([p1])
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: license-acceptance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tyler-ball
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pastel
|