license_finder 1.1.1-java → 1.2-java
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/.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
|