license-acceptance 1.0.11 → 2.0.0

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.
@@ -1,14 +0,0 @@
1
- require "spec_helper"
2
- require "license_acceptance/cli_flags/mixlib_cli"
3
-
4
- class TestMixlibKlass
5
- include Mixlib::CLI
6
- include LicenseAcceptance::CLIFlags::MixlibCLI
7
- end
8
-
9
- RSpec.describe LicenseAcceptance::CLIFlags::MixlibCLI do
10
- let(:klass) { TestMixlibKlass.new }
11
- it "adds the correct command line flag" do
12
- expect(klass.options).to include(:chef_license)
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- require "spec_helper"
2
- require "license_acceptance/cli_flags/thor"
3
- require "thor"
4
-
5
- class TestThorKlass < Thor
6
- include LicenseAcceptance::CLIFlags::Thor
7
- end
8
-
9
- RSpec.describe LicenseAcceptance::CLIFlags::Thor do
10
- let(:klass) { TestThorKlass.new }
11
- it "adds the correct command line flag" do
12
- expect(klass.class.class_options.keys).to eq([:chef_license])
13
- end
14
- end
@@ -1,111 +0,0 @@
1
- require "spec_helper"
2
- require "climate_control"
3
- require "license_acceptance/config"
4
- require "license_acceptance/product_relationship"
5
-
6
- RSpec.describe LicenseAcceptance::Config do
7
- let(:opts) { {} }
8
- let(:config) { LicenseAcceptance::Config.new(opts) }
9
-
10
- it "loads correctly with default values" do
11
- config
12
- end
13
-
14
- describe "with overwritten values" do
15
- let(:output) { StringIO.new }
16
- let(:logger) { "logger" }
17
- let(:license_locations) { [] }
18
- let(:persist_location) { "foo" }
19
- let(:persist) { false }
20
- let(:opts) { { output: output, logger: logger, license_locations: license_locations, persist_location: persist_location, persist: persist } }
21
-
22
- it "loads correctly" do
23
- expect(config.output).to eq(output)
24
- expect(config.logger).to eq(logger)
25
- expect(config.license_locations).to eq(license_locations)
26
- expect(config.persist_location).to eq("foo")
27
- expect(config.persist).to eq(false)
28
- end
29
- end
30
-
31
- describe "#default_license_locations and #default_persist_location" do
32
- before do
33
- expect(Process).to receive(:uid).and_return(uid)
34
- end
35
-
36
- describe "when platform is Windows" do
37
- before do
38
- stub_const("RUBY_PLATFORM", "mingw")
39
- end
40
-
41
- describe "when user is Administrator" do
42
- let(:uid) { 0 }
43
-
44
- it "returns the default value" do
45
- ClimateControl.modify HOMEDRIVE: "C:" do
46
- expect(config.license_locations).to eq(["C:/chef/accepted_licenses/"])
47
- expect(config.persist_location).to eq("C:/chef/accepted_licenses/")
48
- end
49
- end
50
- end
51
-
52
- describe "when user is not Administrator" do
53
- let(:uid) { 1000 }
54
-
55
- it "returns the default USERPROFILE value" do
56
- ClimateControl.modify HOMEDRIVE: "C:", USERPROFILE: "C:/Users/foo", HOME: nil do
57
- expect(Dir).to receive(:exist?).with("C:/Users/foo").and_return(true)
58
- expect(config.license_locations).to eq([
59
- "C:/chef/accepted_licenses/",
60
- "C:/Users/foo/.chef/accepted_licenses/"
61
- ])
62
- expect(config.persist_location).to eq("C:/Users/foo/.chef/accepted_licenses/")
63
- end
64
- end
65
-
66
- it "returns the default HOMEDRIVE + HOMEPATH value" do
67
- ClimateControl.modify HOMEDRIVE: "C:", USERPROFILE: "C:/Users/bar", HOME: nil do
68
- expect(Dir).to receive(:exist?).with("C:/Users/bar").and_return(true)
69
- expect(config.license_locations).to eq([
70
- "C:/chef/accepted_licenses/",
71
- "C:/Users/bar/.chef/accepted_licenses/"
72
- ])
73
- expect(config.persist_location).to eq("C:/Users/bar/.chef/accepted_licenses/")
74
- end
75
- end
76
- end
77
-
78
- end
79
-
80
- describe "when platform is non-Windows" do
81
- before do
82
- stub_const("RUBY_PLATFORM", "darwin")
83
- end
84
-
85
- describe "when user is root" do
86
- let(:uid) { 0 }
87
-
88
- it "returns the default value" do
89
- expect(config.license_locations).to eq(["/etc/chef/accepted_licenses/"])
90
- expect(config.persist_location).to eq("/etc/chef/accepted_licenses/")
91
- end
92
- end
93
-
94
- describe "when user is not root" do
95
- let(:uid) { 1000 }
96
-
97
- it "returns the default user value" do
98
- ClimateControl.modify HOME: "/Users/foo" do
99
- expect(config.license_locations).to eq([
100
- "/etc/chef/accepted_licenses/",
101
- "/Users/foo/.chef/accepted_licenses/"
102
- ])
103
- expect(config.persist_location).to eq("/Users/foo/.chef/accepted_licenses/")
104
- end
105
- end
106
- end
107
-
108
- end
109
- end
110
-
111
- end
@@ -1,155 +0,0 @@
1
- require "spec_helper"
2
- require "license_acceptance/product_reader"
3
- require "license_acceptance/product_relationship"
4
-
5
- RSpec.describe LicenseAcceptance::ProductReader do
6
- let(:reader) { LicenseAcceptance::ProductReader.new }
7
- let(:version) { "0.1.0" }
8
- let(:location) { "location" }
9
-
10
- let(:p1) { {"id" => "p1", "pretty_name" => "P1", "filename" => "f1", "mixlib_name" => "p1m", "license_required_version" => "p1v"} }
11
- let(:p2) { {"id" => "p2", "pretty_name" => "P2", "filename" => "f2", "mixlib_name" => "p2m", "license_required_version" => "p2v"} }
12
- # defined the `==` operator on Product for ease of comparison
13
- let(:product1) { LicenseAcceptance::Product.new(p1["id"], p1["pretty_name"], p1["filename"], p1["mixlib_name"], p1["license_required_version"]) }
14
- let(:product2) { LicenseAcceptance::Product.new(p2["id"], p2["pretty_name"], p2["filename"], p2["mixlib_name"], p2["license_required_version"]) }
15
- let(:r1) { {p1 => p2} }
16
- let(:toml) { {"products" => [p1, p2], "relationships" => {"p1" => ["p2"]}} }
17
-
18
- describe "#read" do
19
- it "reads products and relationships" do
20
- expect(reader).to receive(:get_location).and_return(location)
21
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return(toml)
22
- reader.read
23
- expect(reader.products).to eq({
24
- "p1" => product1,
25
- "p2" => product2
26
- })
27
- expect(reader.relationships.size).to eq(1)
28
- expect(reader.relationships.first).to eq([product1, [product2]])
29
- end
30
-
31
- describe "with an empty file" do
32
- it "raises a InvalidProductInfo error" do
33
- expect(reader).to receive(:get_location).and_return(location)
34
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return({})
35
-
36
- expect { reader.read }.to raise_error(LicenseAcceptance::InvalidProductInfo)
37
- end
38
- end
39
-
40
- describe "with an unknown parent" do
41
- let(:toml) { {"products" => [p1, p2], "relationships" => {"p3" => ["p2"]}} }
42
-
43
- it "raises a UnknownParent error" do
44
- expect(reader).to receive(:get_location).and_return(location)
45
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return(toml)
46
-
47
- expect { reader.read }.to raise_error(LicenseAcceptance::UnknownParent)
48
- end
49
- end
50
-
51
- describe "with a relationship of nil children" do
52
- let(:toml) { {"products" => [p1], "relationships" => {"p1" => nil}} }
53
-
54
- it "raises a NoChildRelationships error" do
55
- expect(reader).to receive(:get_location).and_return(location)
56
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return(toml)
57
-
58
- expect { reader.read }.to raise_error(LicenseAcceptance::NoChildRelationships)
59
- end
60
- end
61
-
62
- describe "with a relationship of empty children" do
63
- let(:toml) { {"products" => [p1], "relationships" => {"p1" => []}} }
64
-
65
- it "raises a NoChildRelationships error" do
66
- expect(reader).to receive(:get_location).and_return(location)
67
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return(toml)
68
-
69
- expect { reader.read }.to raise_error(LicenseAcceptance::NoChildRelationships)
70
- end
71
- end
72
-
73
- describe "with a relationship of non-array children" do
74
- let(:toml) { {"products" => [p1], "relationships" => {"p1" => "p2"}} }
75
-
76
- it "raises a NoChildRelationships error" do
77
- expect(reader).to receive(:get_location).and_return(location)
78
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return(toml)
79
-
80
- expect { reader.read }.to raise_error(LicenseAcceptance::NoChildRelationships)
81
- end
82
- end
83
-
84
- describe "with an unknown child" do
85
- let(:toml) { {"products" => [p1, p2], "relationships" => {"p1" => ["p2", "p3"]}} }
86
-
87
- it "raises a UnknownChild error" do
88
- expect(reader).to receive(:get_location).and_return(location)
89
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return(toml)
90
-
91
- expect { reader.read }.to raise_error(LicenseAcceptance::UnknownChild)
92
- end
93
- end
94
- end
95
-
96
- describe "::lookup" do
97
- before do
98
- expect(reader).to receive(:get_location).and_return(location)
99
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return(toml)
100
- reader.read
101
- end
102
-
103
- it "returns a ProductRelationship instance successfully" do
104
- expect(reader.lookup("p1", version)).to be_an_instance_of(LicenseAcceptance::ProductRelationship) do |instance|
105
- expect(instance.parent_product).to eq(product1)
106
- expect(instance.children).to eq([prouct2])
107
- expect(instance.version).to eq(version)
108
- end
109
- end
110
-
111
- describe "when called on an unknown product" do
112
- it "raises an UnknownProduct error" do
113
- expect { reader.lookup("DNE", nil) }.to raise_error(LicenseAcceptance::UnknownProduct)
114
- end
115
- end
116
-
117
- let(:nonya) { LicenseAcceptance::Product.new("nonya", "NonYa", "nofile", "no_mixlib", "no_version") }
118
- describe "when called on a product with no relationship" do
119
- before do
120
- reader.products = { "nonya" => nonya }
121
- end
122
-
123
- it "returns the product" do
124
- expect(reader.lookup('nonya', version)).to be_an_instance_of(LicenseAcceptance::ProductRelationship) do |instance|
125
- expect(instance.parent_product).to eq(nonya)
126
- expect(instance.children).to eq([])
127
- expect(instance.version).to eq(version)
128
- end
129
- end
130
- end
131
-
132
- describe "when called with an invalid parent version type" do
133
- it "raises an ProductVersionTypeError error" do
134
- expect { reader.lookup("p1", 1) }.to raise_error(LicenseAcceptance::ProductVersionTypeError)
135
- end
136
- end
137
- end
138
-
139
- describe "::lookup_by_mixlib" do
140
- before do
141
- expect(reader).to receive(:get_location).and_return(location)
142
- expect(Tomlrb).to receive(:load_file).with(location, symbolize_keys: false).and_return(toml)
143
- reader.read
144
- end
145
-
146
- it "returns a Product successfully" do
147
- expect(reader.lookup_by_mixlib("p1m")).to eq(product1)
148
- end
149
-
150
- it "returns nil for an unknown product" do
151
- expect(reader.lookup_by_mixlib("foo")).to eq(nil)
152
- end
153
- end
154
-
155
- end
@@ -1,15 +0,0 @@
1
- require "spec_helper"
2
- require "license_acceptance/product"
3
-
4
- RSpec.describe LicenseAcceptance::Product do
5
- let(:instance) { LicenseAcceptance::Product.new("id", "Pretty Name", "filename", "mixlib_name", "version") }
6
-
7
- it "can lookup the product attributes" do
8
- expect(instance.id).to eq("id")
9
- expect(instance.pretty_name).to eq("Pretty Name")
10
- expect(instance.filename).to eq("filename")
11
- expect(instance.mixlib_name).to eq("mixlib_name")
12
- expect(instance.license_required_version).to eq("version")
13
- end
14
-
15
- end
@@ -1,82 +0,0 @@
1
- require "spec_helper"
2
- require "license_acceptance/strategy/argument"
3
-
4
- RSpec.describe LicenseAcceptance::Strategy::Argument do
5
- let(:acc) { LicenseAcceptance::Strategy::Argument.new(argv) }
6
-
7
- describe "#accepted?" do
8
- describe "when value is space seperated" do
9
- let(:argv) { ["--chef-license", "accept"] }
10
- it "returns true if the args contain the required flag with spaces" do
11
- expect(acc.accepted?).to eq(true)
12
- end
13
- end
14
-
15
- describe "when the value is equal seperated" do
16
- let(:argv) { ["--chef-license=accept"] }
17
- it "returns true if the args contain the required flag with equal" do
18
- expect(acc.accepted?).to eq(true)
19
- end
20
- end
21
-
22
- [ ["--chef-license"], ["--chef-license=foo"], ["--chef-license", "foo"] ].each do |v|
23
- describe "when the value is #{v}" do
24
- let(:argv) { v }
25
- it "returns false if the args do not contain the required value" do
26
- expect(acc.accepted?).to eq(false)
27
- end
28
- end
29
- end
30
- end
31
-
32
- describe "#silent?" do
33
- describe "when value is space seperated" do
34
- let(:argv) { ["--chef-license", "accept-silent"] }
35
- it "returns true if the args contain the required flag with spaces" do
36
- expect(acc.silent?).to eq(true)
37
- end
38
- end
39
-
40
- describe "when the value is equal seperated" do
41
- let(:argv) { ["--chef-license=accept-silent"] }
42
- it "returns true if the args contain the required flag with equal" do
43
- expect(acc.silent?).to eq(true)
44
- end
45
- end
46
-
47
- [ ["--chef-license"], ["--chef-license=accept"], ["--chef-license", "accept"] ].each do |v|
48
- describe "when the value is #{v}" do
49
- let(:argv) { v }
50
- it "returns false if the args do not contain the required value" do
51
- expect(acc.silent?).to eq(false)
52
- end
53
- end
54
- end
55
- end
56
-
57
- describe "#no_persist?" do
58
- describe "when value is space seperated" do
59
- let(:argv) { ["--chef-license", "accept-no-persist"] }
60
- it "returns true if the args contain the required flag with spaces" do
61
- expect(acc.no_persist?).to eq(true)
62
- end
63
- end
64
-
65
- describe "when the value is equal seperated" do
66
- let(:argv) { ["--chef-license=accept-no-persist"] }
67
- it "returns true if the args contain the required flag with equal" do
68
- expect(acc.no_persist?).to eq(true)
69
- end
70
- end
71
-
72
- [ ["--chef-license"], ["--chef-license=accept"], ["--chef-license", "accept"] ].each do |v|
73
- describe "when the value is #{v}" do
74
- let(:argv) { v }
75
- it "returns false if the args do not contain the required value" do
76
- expect(acc.no_persist?).to eq(false)
77
- end
78
- end
79
- end
80
- end
81
-
82
- end
@@ -1,76 +0,0 @@
1
- require "spec_helper"
2
- require "license_acceptance/strategy/environment"
3
-
4
- RSpec.describe LicenseAcceptance::Strategy::Environment do
5
- let(:acc) { LicenseAcceptance::Strategy::Environment.new(env) }
6
-
7
- describe "#accepted?" do
8
- describe "when the environment contains the correct key and value" do
9
- let(:env) { {"CHEF_LICENSE" => "accept"} }
10
- it "returns true" do
11
- expect(acc.accepted?).to eq(true)
12
- end
13
- end
14
-
15
- describe "when the env has a key but nil value" do
16
- let(:env) { {"CHEF_LICENSE" => nil} }
17
- it "returns false" do
18
- expect(acc.accepted?).to eq(false)
19
- end
20
- end
21
-
22
- describe "when the env has a key but incorrect value" do
23
- let(:env) { {"CHEF_LICENSE" => "foo"} }
24
- it "returns false" do
25
- expect(acc.accepted?).to eq(false)
26
- end
27
- end
28
- end
29
-
30
- describe "#silent?" do
31
- describe "when the environment contains the correct key and value" do
32
- let(:env) { {"CHEF_LICENSE" => "accept-silent"} }
33
- it "returns true" do
34
- expect(acc.silent?).to eq(true)
35
- end
36
- end
37
-
38
- describe "when the env has a key but nil value" do
39
- let(:env) { {"CHEF_LICENSE" => nil} }
40
- it "returns false" do
41
- expect(acc.silent?).to eq(false)
42
- end
43
- end
44
-
45
- describe "when the env has a key but incorrect value" do
46
- let(:env) { {"CHEF_LICENSE" => "accept"} }
47
- it "returns false" do
48
- expect(acc.silent?).to eq(false)
49
- end
50
- end
51
- end
52
-
53
- describe "#no_persist?" do
54
- describe "when the environment contains the correct key and value" do
55
- let(:env) { {"CHEF_LICENSE" => "accept-no-persist"} }
56
- it "returns true" do
57
- expect(acc.no_persist?).to eq(true)
58
- end
59
- end
60
-
61
- describe "when the env has a key but nil value" do
62
- let(:env) { {"CHEF_LICENSE" => nil} }
63
- it "returns false" do
64
- expect(acc.no_persist?).to eq(false)
65
- end
66
- end
67
-
68
- describe "when the env has a key but incorrect value" do
69
- let(:env) { {"CHEF_LICENSE" => "accept-silent"} }
70
- it "returns false" do
71
- expect(acc.no_persist?).to eq(false)
72
- end
73
- end
74
- end
75
-
76
- end