license_finder 1.1.1-java → 1.2-java
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/CHANGELOG.rdoc +10 -0
- data/Gemfile +1 -1
- data/README.md +363 -0
- data/Rakefile +30 -1
- data/TODO.md +28 -0
- data/bin/license_finder_pip.py +18 -0
- data/db/migrate/201410031451_rename_dependency_license_name.rb +6 -0
- data/features/multiple_licenses.feature +9 -0
- data/features/step_definitions/cli_steps.rb +9 -9
- data/features/step_definitions/cocoapod_steps.rb +1 -1
- data/features/step_definitions/configure_bundler_groups_steps.rb +3 -3
- data/features/step_definitions/configure_whitelist_steps.rb +4 -4
- data/features/step_definitions/gradle_steps.rb +1 -1
- data/features/step_definitions/manually_added_steps.rb +3 -3
- data/features/step_definitions/manually_approved_steps.rb +5 -5
- data/features/step_definitions/manually_assigned_license_steps.rb +4 -4
- data/features/step_definitions/maven_steps.rb +1 -1
- data/features/step_definitions/multiple_licenses_steps.rb +14 -0
- data/features/step_definitions/node_steps.rb +1 -1
- data/features/step_definitions/python_steps.rb +1 -1
- data/features/step_definitions/report_csv_steps.rb +3 -3
- data/features/step_definitions/report_html_steps.rb +5 -5
- data/features/step_definitions/shared_steps.rb +23 -6
- data/lib/license_finder.rb +3 -0
- data/lib/license_finder/cli.rb +13 -34
- data/lib/license_finder/configuration.rb +8 -4
- data/lib/license_finder/dependency_manager.rb +25 -15
- data/lib/license_finder/license.rb +8 -0
- data/lib/license_finder/logger.rb +59 -0
- data/lib/license_finder/package.rb +37 -30
- data/lib/license_finder/package_manager.rb +20 -0
- data/lib/license_finder/package_managers/bower.rb +4 -9
- data/lib/license_finder/package_managers/bower_package.rb +2 -1
- data/lib/license_finder/package_managers/bundler.rb +26 -41
- data/lib/license_finder/package_managers/bundler_package.rb +6 -3
- data/lib/license_finder/package_managers/cocoa_pods.rb +18 -10
- data/lib/license_finder/package_managers/cocoa_pods_package.rb +4 -3
- data/lib/license_finder/package_managers/gradle.rb +7 -11
- data/lib/license_finder/package_managers/gradle_package.rb +2 -7
- data/lib/license_finder/package_managers/maven.rb +5 -9
- data/lib/license_finder/package_managers/maven_package.rb +4 -8
- data/lib/license_finder/package_managers/npm.rb +6 -10
- data/lib/license_finder/package_managers/npm_package.rb +2 -1
- data/lib/license_finder/package_managers/pip.rb +11 -24
- data/lib/license_finder/package_managers/pip_package.rb +2 -1
- data/lib/license_finder/package_saver.rb +2 -2
- data/lib/license_finder/platform.rb +4 -0
- data/lib/license_finder/possible_license_file.rb +4 -0
- data/lib/license_finder/possible_license_files.rb +2 -1
- data/lib/license_finder/reports/detailed_text_report.rb +1 -1
- data/lib/license_finder/reports/formatted_report.rb +1 -1
- data/lib/license_finder/tables/dependency.rb +22 -12
- data/lib/license_finder/yml_to_sql.rb +1 -1
- data/lib/templates/html_report.erb +4 -4
- data/lib/templates/markdown_report.erb +4 -4
- data/lib/templates/text_report.erb +1 -1
- data/license_finder.gemspec +28 -12
- data/spec/lib/license_finder/cli_spec.rb +193 -185
- data/spec/lib/license_finder/configuration_spec.rb +46 -47
- data/spec/lib/license_finder/dependency_manager_spec.rb +48 -44
- data/spec/lib/license_finder/license/definitions_spec.rb +26 -26
- data/spec/lib/license_finder/license_spec.rb +25 -25
- data/spec/lib/license_finder/package_managers/bower_package_spec.rb +33 -17
- data/spec/lib/license_finder/package_managers/bower_spec.rb +35 -35
- data/spec/lib/license_finder/package_managers/bundler_package_spec.rb +20 -15
- data/spec/lib/license_finder/package_managers/bundler_spec.rb +12 -19
- data/spec/lib/license_finder/package_managers/cocoa_pods_package_spec.rb +8 -5
- data/spec/lib/license_finder/package_managers/cocoa_pods_spec.rb +20 -22
- data/spec/lib/license_finder/package_managers/gradle_package_spec.rb +8 -5
- data/spec/lib/license_finder/package_managers/gradle_spec.rb +20 -20
- data/spec/lib/license_finder/package_managers/maven_package_spec.rb +8 -5
- data/spec/lib/license_finder/package_managers/maven_spec.rb +18 -18
- data/spec/lib/license_finder/package_managers/npm_package_spec.rb +36 -17
- data/spec/lib/license_finder/package_managers/npm_spec.rb +17 -17
- data/spec/lib/license_finder/package_managers/pip_package_spec.rb +16 -10
- data/spec/lib/license_finder/package_managers/pip_spec.rb +21 -18
- data/spec/lib/license_finder/package_saver_spec.rb +15 -25
- data/spec/lib/license_finder/possible_license_file_spec.rb +5 -4
- data/spec/lib/license_finder/possible_license_files_spec.rb +11 -5
- data/spec/lib/license_finder/reports/detailed_text_report_spec.rb +3 -3
- data/spec/lib/license_finder/reports/html_report_spec.rb +23 -23
- data/spec/lib/license_finder/reports/markdown_report_spec.rb +12 -12
- data/spec/lib/license_finder/reports/reporter_spec.rb +11 -11
- data/spec/lib/license_finder/reports/text_report_spec.rb +3 -3
- data/spec/lib/license_finder/tables/dependency_spec.rb +59 -41
- data/spec/lib/license_finder/yml_to_sql_spec.rb +21 -21
- data/spec/lib/license_finder_spec.rb +1 -1
- data/spec/spec_helper.rb +0 -13
- data/spec/support/shared_examples_for_package.rb +46 -0
- data/spec/support/shared_examples_for_package_manager.rb +15 -0
- metadata +19 -100
- data/readme.md +0 -259
@@ -7,7 +7,7 @@ module LicenseFinder
|
|
7
7
|
Dependency.new(
|
8
8
|
'name' => 'gem_a',
|
9
9
|
'version' => '1.0',
|
10
|
-
'
|
10
|
+
'licenses' => [License.find_by_name('other')].to_set
|
11
11
|
)
|
12
12
|
end
|
13
13
|
|
@@ -15,7 +15,7 @@ module LicenseFinder
|
|
15
15
|
dependency = Dependency.create(
|
16
16
|
'name' => 'gem_b',
|
17
17
|
'version' => '2.3',
|
18
|
-
'
|
18
|
+
'licenses' => [License.find_by_name('BSD')].to_set
|
19
19
|
)
|
20
20
|
dependency.approve!
|
21
21
|
dependency
|
@@ -25,28 +25,28 @@ module LicenseFinder
|
|
25
25
|
|
26
26
|
it 'should have the correct header' do
|
27
27
|
LicenseFinder.config.project_name = "new_project_name"
|
28
|
-
|
28
|
+
is_expected.to match "# new_project_name"
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'should list the total, and unapproved counts' do
|
32
|
-
|
33
|
-
|
32
|
+
is_expected.to match "2 total"
|
33
|
+
is_expected.to match /1 \*unapproved\*/
|
34
34
|
end
|
35
35
|
|
36
36
|
it "should list the unapproved dependency" do
|
37
|
-
|
37
|
+
is_expected.to match "href='#gem_a'"
|
38
38
|
end
|
39
39
|
|
40
40
|
it "should display a summary" do
|
41
|
-
|
42
|
-
|
43
|
-
|
41
|
+
is_expected.to match "## Summary"
|
42
|
+
is_expected.to match /\s+\* 1 other/
|
43
|
+
is_expected.to match /\s+\* 1 BSD/
|
44
44
|
end
|
45
45
|
|
46
46
|
it "should list both gems" do
|
47
|
-
|
48
|
-
|
49
|
-
|
47
|
+
is_expected.to match "## Items"
|
48
|
+
is_expected.to match "### gem_a v1.0"
|
49
|
+
is_expected.to match "### gem_b v2.3"
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
@@ -6,26 +6,26 @@ module LicenseFinder
|
|
6
6
|
subject { Reporter.write_reports }
|
7
7
|
|
8
8
|
before do
|
9
|
-
Dependency.
|
9
|
+
allow(Dependency).to receive(:acknowledged) { [double(:dep)] }
|
10
10
|
|
11
|
-
MarkdownReport.
|
12
|
-
DetailedTextReport.
|
13
|
-
TextReport.
|
14
|
-
HtmlReport.
|
11
|
+
allow(MarkdownReport).to receive(:of) { 'markdown report' }
|
12
|
+
allow(DetailedTextReport).to receive(:of) { 'detailed csv report' }
|
13
|
+
allow(TextReport).to receive(:of) { 'csv report' }
|
14
|
+
allow(HtmlReport).to receive(:of) { 'html report' }
|
15
15
|
end
|
16
16
|
|
17
17
|
it "writes an html file" do
|
18
18
|
subject
|
19
|
-
LicenseFinder.config.artifacts.text_file.read.
|
20
|
-
LicenseFinder.config.artifacts.detailed_text_file.read.
|
21
|
-
LicenseFinder.config.artifacts.markdown_file.read.
|
22
|
-
LicenseFinder.config.artifacts.html_file.read.
|
19
|
+
expect(LicenseFinder.config.artifacts.text_file.read).to eq("csv report\n")
|
20
|
+
expect(LicenseFinder.config.artifacts.detailed_text_file.read).to eq("detailed csv report\n")
|
21
|
+
expect(LicenseFinder.config.artifacts.markdown_file.read).to eq("markdown report\n")
|
22
|
+
expect(LicenseFinder.config.artifacts.html_file.read).to eq("html report\n")
|
23
23
|
end
|
24
24
|
|
25
25
|
it "deletes old dependencies.txt file" do
|
26
26
|
fake_file = double(:fake_file, :exist? => true)
|
27
|
-
LicenseFinder.config.artifacts.
|
28
|
-
fake_file.
|
27
|
+
allow(LicenseFinder.config.artifacts).to receive(:legacy_text_file) { fake_file }
|
28
|
+
expect(fake_file).to receive(:delete)
|
29
29
|
subject
|
30
30
|
end
|
31
31
|
end
|
@@ -7,7 +7,7 @@ module LicenseFinder
|
|
7
7
|
Dependency.new(
|
8
8
|
'name' => 'gem_a',
|
9
9
|
'version' => '1.0',
|
10
|
-
'
|
10
|
+
'licenses' => [License.find_by_name('MIT')].to_set
|
11
11
|
)
|
12
12
|
end
|
13
13
|
|
@@ -15,14 +15,14 @@ module LicenseFinder
|
|
15
15
|
Dependency.new(
|
16
16
|
'name' => 'gem_b',
|
17
17
|
'version' => '1.0',
|
18
|
-
'
|
18
|
+
'licenses' => [License.find_by_name('MIT')].to_set
|
19
19
|
)
|
20
20
|
end
|
21
21
|
|
22
22
|
subject { TextReport.new([dep2, dep1]).to_s }
|
23
23
|
|
24
24
|
it 'should generate a text report with the name, version and license of each dependency, sorted by name' do
|
25
|
-
|
25
|
+
is_expected.to eq("gem_a, 1.0, MIT\ngem_b, 1.0, MIT")
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
@@ -4,7 +4,7 @@ module LicenseFinder
|
|
4
4
|
describe Dependency do
|
5
5
|
describe '.unapproved' do
|
6
6
|
before do
|
7
|
-
License.find_by_name('MIT').
|
7
|
+
allow(License.find_by_name('MIT')).to receive_messages(:whitelisted? => true)
|
8
8
|
allow(LicenseFinder.config).to receive(:ignore_dependencies) { ['this ignored dependency', 'that ignored dependency'] }
|
9
9
|
end
|
10
10
|
|
@@ -15,28 +15,28 @@ module LicenseFinder
|
|
15
15
|
that_ignored = Dependency.create(name: "that ignored dependency", version: '0.0.1')
|
16
16
|
approved.approve!
|
17
17
|
whitelisted = Dependency.create(name: "approved dependency", version: '0.0.1')
|
18
|
-
whitelisted.
|
18
|
+
whitelisted.licenses = [License.find_by_name('MIT')].to_set
|
19
19
|
whitelisted.save
|
20
20
|
|
21
21
|
unapproved = Dependency.unapproved
|
22
|
-
unapproved.count.
|
23
|
-
unapproved.
|
22
|
+
expect(unapproved.count).to eq(1)
|
23
|
+
expect(unapproved).not_to be_any(&:approved?)
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
describe ".named" do
|
28
28
|
it "creates a new dependency" do
|
29
29
|
dep = described_class.named("never_seen")
|
30
|
-
dep.name.
|
31
|
-
dep.
|
30
|
+
expect(dep.name).to eq("never_seen")
|
31
|
+
expect(dep).not_to be_new
|
32
32
|
end
|
33
33
|
|
34
34
|
it "returns an existing dependency" do
|
35
35
|
described_class.named("referenced_again")
|
36
36
|
dep = described_class.named("referenced_again")
|
37
|
-
dep.name.
|
38
|
-
dep.
|
39
|
-
Dependency.count(name: "referenced_again").
|
37
|
+
expect(dep.name).to eq("referenced_again")
|
38
|
+
expect(dep).not_to be_new
|
39
|
+
expect(Dependency.count(name: "referenced_again")).to eq(1)
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
@@ -54,15 +54,15 @@ module LicenseFinder
|
|
54
54
|
it "should update the database to show the dependency is approved" do
|
55
55
|
dependency = Dependency.named("foo")
|
56
56
|
dependency.approve!
|
57
|
-
dependency.reload.
|
57
|
+
expect(dependency.reload).to be_approved
|
58
58
|
end
|
59
59
|
|
60
60
|
it "should record the approver and notes" do
|
61
61
|
dependency = Dependency.named("foo")
|
62
62
|
dependency.approve!("Julian", "We really need this")
|
63
63
|
approval = dependency.reload.manual_approval
|
64
|
-
approval.approver.
|
65
|
-
approval.notes.
|
64
|
+
expect(approval.approver).to eq "Julian"
|
65
|
+
expect(approval.notes).to eq "We really need this"
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
@@ -71,18 +71,25 @@ module LicenseFinder
|
|
71
71
|
let(:approved_manually) { Dependency.create(name: 'some gem').approve!.reload }
|
72
72
|
|
73
73
|
it "is true if its license is whitelisted" do
|
74
|
-
|
75
|
-
not_approved_manually.
|
74
|
+
fake_license = double(:license, whitelisted?: true)
|
75
|
+
allow(not_approved_manually).to receive(:licenses).and_return [fake_license].to_set
|
76
|
+
expect(not_approved_manually).to be_approved
|
77
|
+
end
|
78
|
+
|
79
|
+
it "is true if one of its licenses is whitelisted" do
|
80
|
+
fake_licenses = [double(:license, whitelisted?: false), double(:license, whitelisted?: true)].to_set
|
81
|
+
allow(not_approved_manually).to receive(:licenses).and_return fake_licenses
|
82
|
+
expect(not_approved_manually).to be_approved
|
76
83
|
end
|
77
84
|
|
78
85
|
it "is true if it has been approved" do
|
79
|
-
approved_manually.
|
80
|
-
approved_manually.
|
86
|
+
allow(approved_manually).to receive_message_chain(:license, whitelisted?: false)
|
87
|
+
expect(approved_manually).to be_approved
|
81
88
|
end
|
82
89
|
|
83
90
|
it "is false otherwise" do
|
84
|
-
not_approved_manually.
|
85
|
-
not_approved_manually.
|
91
|
+
allow(not_approved_manually).to receive_message_chain(:license, whitelisted?: false)
|
92
|
+
expect(not_approved_manually).not_to be_approved
|
86
93
|
end
|
87
94
|
end
|
88
95
|
|
@@ -90,14 +97,14 @@ module LicenseFinder
|
|
90
97
|
let(:dependency) { Dependency.create(name: 'foogem') }
|
91
98
|
|
92
99
|
it "sets manual license to true" do
|
93
|
-
dependency.
|
100
|
+
expect(dependency).not_to be_license_assigned_manually
|
94
101
|
dependency.set_license_manually! License.find_by_name("Updated")
|
95
|
-
dependency.
|
102
|
+
expect(dependency).to be_license_assigned_manually
|
96
103
|
end
|
97
104
|
|
98
105
|
it "modifies the license" do
|
99
106
|
dependency.set_license_manually! License.find_by_name("Updated")
|
100
|
-
dependency.reload.
|
107
|
+
expect(dependency.reload.licenses.first.name).to eq('Updated')
|
101
108
|
end
|
102
109
|
end
|
103
110
|
|
@@ -106,14 +113,14 @@ module LicenseFinder
|
|
106
113
|
|
107
114
|
it "saves the bundler groups" do
|
108
115
|
dependency.bundler_group_names = %w[1 2 3]
|
109
|
-
dependency.bundler_groups.map(&:name).
|
116
|
+
expect(dependency.bundler_groups.map(&:name)).to match_array(%w[1 2 3])
|
110
117
|
end
|
111
118
|
|
112
119
|
it "removed outdated groups and adds new groups" do
|
113
120
|
dependency.add_bundler_group BundlerGroup.named('old')
|
114
121
|
dependency.add_bundler_group BundlerGroup.named('maintained')
|
115
122
|
dependency.bundler_group_names = %w[new maintained]
|
116
|
-
dependency.bundler_groups.map(&:name).
|
123
|
+
expect(dependency.bundler_groups.map(&:name)).to match_array(%w[new maintained])
|
117
124
|
end
|
118
125
|
end
|
119
126
|
|
@@ -122,55 +129,66 @@ module LicenseFinder
|
|
122
129
|
|
123
130
|
it "saves the children" do
|
124
131
|
dependency.children_names = %w[1 2 3]
|
125
|
-
dependency.children.map(&:name).
|
132
|
+
expect(dependency.children.map(&:name)).to match_array(%w[1 2 3])
|
126
133
|
end
|
127
134
|
|
128
135
|
it "removes outdated children and adds new children" do
|
129
136
|
dependency.add_child Dependency.named('old')
|
130
137
|
dependency.add_child Dependency.named('maintained')
|
131
138
|
dependency.children_names = %w[new maintained]
|
132
|
-
dependency.children.map(&:name).
|
139
|
+
expect(dependency.children.map(&:name)).to match_array(%w[new maintained])
|
133
140
|
end
|
134
141
|
end
|
135
142
|
|
136
|
-
describe "#
|
143
|
+
describe "#set_licenses" do
|
137
144
|
let(:dependency) { Dependency.named('some gem') }
|
138
145
|
|
139
146
|
it "keeps a manually assigned license" do
|
140
147
|
dependency.set_license_manually! License.find_by_name("manual")
|
141
|
-
dependency.
|
142
|
-
dependency.
|
148
|
+
dependency.set_licenses [License.find_by_name("new")].to_set
|
149
|
+
expect(dependency.licenses.first.name).to eq "manual"
|
143
150
|
end
|
144
151
|
|
145
152
|
it "saves a new license" do
|
146
|
-
dependency.
|
147
|
-
dependency.
|
153
|
+
dependency.set_licenses [License.find_by_name("new license")].to_set
|
154
|
+
expect(dependency.licenses.first.name).to eq "new license"
|
148
155
|
end
|
149
156
|
|
150
157
|
it "updates the license's name" do
|
151
|
-
dependency.
|
158
|
+
dependency.licenses = [License.find_by_name("old")].to_set
|
152
159
|
|
153
|
-
dependency.
|
154
|
-
dependency.
|
160
|
+
dependency.set_licenses [License.find_by_name("new license")].to_set
|
161
|
+
expect(dependency.licenses.first.name).to eq "new license"
|
155
162
|
end
|
156
163
|
|
157
164
|
it "won't update the database if the license isn't changing" do
|
158
165
|
# See note in PackageSaver#save
|
159
|
-
dependency.
|
160
|
-
dependency.
|
166
|
+
dependency.licenses = [License.find_by_name("same")].to_set
|
167
|
+
expect(dependency).to be_modified
|
168
|
+
dependency.save
|
169
|
+
expect(dependency).not_to be_modified
|
170
|
+
|
171
|
+
dependency.set_licenses [License.find_by_name("same")].to_set
|
172
|
+
expect(dependency).not_to be_modified
|
173
|
+
end
|
174
|
+
|
175
|
+
it "updates the database if an additional license is added" do
|
176
|
+
# See note in PackageSaver#save
|
177
|
+
dependency.licenses = [License.find_by_name("first")].to_set
|
178
|
+
expect(dependency).to be_modified
|
161
179
|
dependency.save
|
162
|
-
dependency.
|
180
|
+
expect(dependency).not_to be_modified
|
163
181
|
|
164
|
-
dependency.
|
165
|
-
dependency.
|
182
|
+
dependency.set_licenses [License.find_by_name("first"), License.find_by_name("second")].to_set
|
183
|
+
expect(dependency).to be_modified
|
166
184
|
end
|
167
185
|
|
168
186
|
it "does not change the approval" do
|
169
|
-
dependency.
|
187
|
+
dependency.licenses = [License.find_by_name("old")].to_set
|
170
188
|
dependency.approve!
|
171
189
|
|
172
|
-
dependency.
|
173
|
-
dependency.
|
190
|
+
dependency.set_licenses [License.find_by_name("new license")].to_set
|
191
|
+
expect(dependency).to be_approved
|
174
192
|
end
|
175
193
|
end
|
176
194
|
end
|
@@ -27,25 +27,25 @@ module LicenseFinder
|
|
27
27
|
describe ".needs_conversion?" do
|
28
28
|
it "is true if the yml still exists" do
|
29
29
|
yaml_file = double(:yaml_file, :exist? => true)
|
30
|
-
LicenseFinder.config.artifacts.
|
30
|
+
allow(LicenseFinder.config.artifacts).to receive_messages(legacy_yaml_file: yaml_file)
|
31
31
|
|
32
|
-
described_class.needs_conversion
|
32
|
+
expect(described_class.needs_conversion?).to be_truthy
|
33
33
|
end
|
34
34
|
|
35
35
|
it "is false otherwise" do
|
36
36
|
yaml_file = double(:yaml_file, :exist? => false)
|
37
|
-
LicenseFinder.config.artifacts.
|
37
|
+
allow(LicenseFinder.config.artifacts).to receive_messages(legacy_yaml_file: yaml_file)
|
38
38
|
|
39
|
-
described_class.needs_conversion
|
39
|
+
expect(described_class.needs_conversion?).to be_falsey
|
40
40
|
end
|
41
41
|
end
|
42
42
|
|
43
43
|
describe ".remove_yml" do
|
44
44
|
it "removes the yml file" do
|
45
45
|
yaml_file = double(:yaml_file)
|
46
|
-
LicenseFinder.config.artifacts.
|
46
|
+
allow(LicenseFinder.config.artifacts).to receive_messages(legacy_yaml_file: yaml_file)
|
47
47
|
|
48
|
-
yaml_file.
|
48
|
+
expect(yaml_file).to receive(:delete)
|
49
49
|
described_class.remove_yml
|
50
50
|
end
|
51
51
|
end
|
@@ -62,7 +62,7 @@ module LicenseFinder
|
|
62
62
|
described_class.convert_all([legacy_attributes])
|
63
63
|
|
64
64
|
saved_dep = described_class::Sql::Dependency.first
|
65
|
-
saved_dep.
|
65
|
+
expect(saved_dep).not_to be_added_manually
|
66
66
|
end
|
67
67
|
end
|
68
68
|
|
@@ -73,36 +73,36 @@ module LicenseFinder
|
|
73
73
|
described_class.convert_all([legacy_attributes])
|
74
74
|
|
75
75
|
saved_dep = described_class::Sql::Dependency.first
|
76
|
-
saved_dep.
|
76
|
+
expect(saved_dep).to be_added_manually
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
80
80
|
it "persists all of the dependency's attributes" do
|
81
81
|
described_class.convert_all([legacy_attributes])
|
82
82
|
|
83
|
-
described_class::Sql::Dependency.count.
|
83
|
+
expect(described_class::Sql::Dependency.count).to eq(1)
|
84
84
|
saved_dep = described_class::Sql::Dependency.first
|
85
|
-
saved_dep.name.
|
86
|
-
saved_dep.version.
|
87
|
-
saved_dep.summary.
|
88
|
-
saved_dep.description.
|
89
|
-
saved_dep.homepage.
|
90
|
-
saved_dep.manual_approval.
|
85
|
+
expect(saved_dep.name).to eq("spec_name")
|
86
|
+
expect(saved_dep.version).to eq("2.1.3")
|
87
|
+
expect(saved_dep.summary).to eq("some summary")
|
88
|
+
expect(saved_dep.description).to eq("some description")
|
89
|
+
expect(saved_dep.homepage).to eq("www.homepage.com")
|
90
|
+
expect(saved_dep.manual_approval).to be
|
91
91
|
end
|
92
92
|
|
93
93
|
it "associates the license to the dependency" do
|
94
94
|
described_class.convert_all([legacy_attributes])
|
95
95
|
|
96
96
|
saved_dep = described_class::Sql::Dependency.first
|
97
|
-
saved_dep.
|
97
|
+
expect(saved_dep.license_names).to eq("GPLv2")
|
98
98
|
end
|
99
99
|
|
100
100
|
it "associates bundler groups" do
|
101
101
|
described_class.convert_all([legacy_attributes])
|
102
102
|
|
103
103
|
saved_dep = described_class::Sql::Dependency.first
|
104
|
-
saved_dep.bundler_groups.count.
|
105
|
-
saved_dep.bundler_groups.first.name.
|
104
|
+
expect(saved_dep.bundler_groups.count).to eq(1)
|
105
|
+
expect(saved_dep.bundler_groups.first.name).to eq('test')
|
106
106
|
end
|
107
107
|
|
108
108
|
it "associates children" do
|
@@ -113,10 +113,10 @@ module LicenseFinder
|
|
113
113
|
}
|
114
114
|
described_class.convert_all([legacy_attributes, child_attrs])
|
115
115
|
|
116
|
-
described_class::Sql::Dependency.count.
|
116
|
+
expect(described_class::Sql::Dependency.count).to eq(2)
|
117
117
|
saved_dep = described_class::Sql::Dependency.first(name: 'spec_name')
|
118
|
-
saved_dep.children.count.
|
119
|
-
saved_dep.children.first.name.
|
118
|
+
expect(saved_dep.children.count).to eq(1)
|
119
|
+
expect(saved_dep.children.first.name).to eq('child1_name')
|
120
120
|
end
|
121
121
|
end
|
122
122
|
end
|
@@ -5,7 +5,7 @@ describe LicenseFinder do
|
|
5
5
|
it "should load the configuration exactly once" do
|
6
6
|
LicenseFinder.instance_variable_set(:@config, nil)
|
7
7
|
|
8
|
-
LicenseFinder::Configuration.
|
8
|
+
expect(LicenseFinder::Configuration).to receive(:ensure_default).once.and_return(double(:config))
|
9
9
|
|
10
10
|
LicenseFinder.config
|
11
11
|
LicenseFinder.config
|
data/spec/spec_helper.rb
CHANGED
@@ -28,16 +28,3 @@ RSpec.configure do |config|
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
end
|
31
|
-
|
32
|
-
module LicenseFinder
|
33
|
-
shared_examples "it conforms to interface required by PackageSaver" do
|
34
|
-
it { expect { subject.name }.to_not raise_error }
|
35
|
-
it { expect { subject.version }.to_not raise_error }
|
36
|
-
it { expect { subject.summary }.to_not raise_error }
|
37
|
-
it { expect { subject.description }.to_not raise_error }
|
38
|
-
it { expect { subject.homepage }.to_not raise_error }
|
39
|
-
it { expect { subject.groups }.to_not raise_error }
|
40
|
-
it { expect { subject.children }.to_not raise_error }
|
41
|
-
it { expect { subject.license }.to_not raise_error }
|
42
|
-
end
|
43
|
-
end
|