license_finder 0.9.5.1-java → 1.0.0.0-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.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +9 -0
  4. data/CHANGELOG.rdoc +9 -0
  5. data/MIT.LICENSE +20 -0
  6. data/db/migrate/201401302113_re_reassociate_license.rb +23 -0
  7. data/features/gradle_dependencies.feature +9 -0
  8. data/features/maven_dependencies.feature +9 -0
  9. data/features/step_definitions/gradle_steps.rb +8 -0
  10. data/features/step_definitions/maven_steps.rb +8 -0
  11. data/features/step_definitions/node_steps.rb +1 -1
  12. data/features/step_definitions/set_license_steps.rb +0 -1
  13. data/features/step_definitions/shared_steps.rb +26 -13
  14. data/lib/license_finder.rb +6 -1
  15. data/lib/license_finder/cli.rb +13 -9
  16. data/lib/license_finder/configuration.rb +113 -72
  17. data/lib/license_finder/dependency_manager.rb +12 -7
  18. data/lib/license_finder/license.rb +39 -65
  19. data/lib/license_finder/license/any_matcher.rb +13 -0
  20. data/lib/license_finder/license/definitions.rb +106 -0
  21. data/lib/license_finder/license/header_matcher.rb +10 -0
  22. data/lib/license_finder/license/matcher.rb +17 -0
  23. data/lib/license_finder/license/template.rb +16 -0
  24. data/lib/license_finder/license/text.rb +19 -0
  25. data/lib/license_finder/license_url.rb +1 -4
  26. data/lib/license_finder/package.rb +18 -2
  27. data/lib/license_finder/package_managers/bower_package.rb +3 -17
  28. data/lib/license_finder/package_managers/bundler_package.rb +2 -2
  29. data/lib/license_finder/package_managers/gradle.rb +29 -0
  30. data/lib/license_finder/package_managers/gradle_package.rb +41 -0
  31. data/lib/license_finder/package_managers/maven.rb +31 -0
  32. data/lib/license_finder/package_managers/maven_package.rb +46 -0
  33. data/lib/license_finder/package_managers/npm_package.rb +2 -16
  34. data/lib/license_finder/package_managers/pip_package.rb +7 -7
  35. data/lib/license_finder/package_saver.rb +1 -1
  36. data/lib/license_finder/possible_license_file.rb +1 -5
  37. data/lib/license_finder/possible_license_files.rb +4 -2
  38. data/lib/license_finder/reports/dependency_report.rb +5 -1
  39. data/lib/license_finder/reports/detailed_text_report.rb +0 -1
  40. data/lib/license_finder/reports/formatted_report.rb +21 -0
  41. data/lib/license_finder/reports/html_report.rb +1 -21
  42. data/lib/license_finder/reports/markdown_report.rb +1 -21
  43. data/lib/license_finder/reports/reporter.rb +8 -7
  44. data/lib/license_finder/reports/text_report.rb +0 -2
  45. data/lib/license_finder/tables.rb +1 -1
  46. data/lib/license_finder/tables/dependency.rb +12 -12
  47. data/lib/license_finder/yml_to_sql.rb +4 -4
  48. data/license_finder.gemspec +3 -2
  49. data/readme.md +10 -1
  50. data/release/publish.sh +10 -7
  51. data/spec/fixtures/build.gradle +24 -0
  52. data/spec/fixtures/pom.xml +19 -0
  53. data/spec/lib/license_finder/cli_spec.rb +13 -3
  54. data/spec/lib/license_finder/configuration_spec.rb +121 -74
  55. data/spec/lib/license_finder/dependency_manager_spec.rb +34 -16
  56. data/spec/lib/license_finder/license/{new_bsd_spec.rb → definitions_spec.rb} +93 -7
  57. data/spec/lib/license_finder/license_spec.rb +72 -26
  58. data/spec/lib/license_finder/license_url_spec.rb +10 -14
  59. data/spec/lib/license_finder/package_managers/bower_package_spec.rb +17 -5
  60. data/spec/lib/license_finder/package_managers/bundler_package_spec.rb +2 -2
  61. data/spec/lib/license_finder/package_managers/gradle_package_spec.rb +66 -0
  62. data/spec/lib/license_finder/package_managers/gradle_spec.rb +89 -0
  63. data/spec/lib/license_finder/package_managers/maven_package_spec.rb +72 -0
  64. data/spec/lib/license_finder/package_managers/maven_spec.rb +115 -0
  65. data/spec/lib/license_finder/package_managers/npm_package_spec.rb +17 -3
  66. data/spec/lib/license_finder/package_managers/pip_package_spec.rb +27 -5
  67. data/spec/lib/license_finder/possible_license_file_spec.rb +2 -2
  68. data/spec/lib/license_finder/{detailed_text_report_spec.rb → reports/detailed_text_report_spec.rb} +0 -0
  69. data/spec/lib/license_finder/{html_report_spec.rb → reports/html_report_spec.rb} +0 -0
  70. data/spec/lib/license_finder/{markdown_report_spec.rb → reports/markdown_report_spec.rb} +0 -0
  71. data/spec/lib/license_finder/reports/reporter_spec.rb +33 -0
  72. data/spec/lib/license_finder/{text_report_spec.rb → reports/text_report_spec.rb} +0 -0
  73. data/spec/lib/license_finder/tables/dependency_spec.rb +1 -2
  74. data/spec/lib/license_finder/tables/license_alias_spec.rb +1 -2
  75. data/spec/lib/license_finder/yml_to_sql_spec.rb +10 -11
  76. data/spec/lib/license_finder_spec.rb +5 -71
  77. metadata +64 -53
  78. data/features/rails_rake.feature +0 -9
  79. data/features/step_definitions/rails_rake_steps.rb +0 -12
  80. data/lib/license_finder/license/apache2.rb +0 -8
  81. data/lib/license_finder/license/bsd.rb +0 -4
  82. data/lib/license_finder/license/gplv2.rb +0 -4
  83. data/lib/license_finder/license/isc.rb +0 -3
  84. data/lib/license_finder/license/lgpl.rb +0 -4
  85. data/lib/license_finder/license/mit.rb +0 -23
  86. data/lib/license_finder/license/new_bsd.rb +0 -27
  87. data/lib/license_finder/license/python.rb +0 -8
  88. data/lib/license_finder/license/ruby.rb +0 -11
  89. data/lib/license_finder/license/simplified_bsd.rb +0 -8
  90. data/lib/license_finder/railtie.rb +0 -7
  91. data/lib/tasks/license_finder.rake +0 -7
  92. data/spec/lib/license_finder/license/apache_spec.rb +0 -7
  93. data/spec/lib/license_finder/license/bsd_spec.rb +0 -41
  94. data/spec/lib/license_finder/license/gplv2_spec.rb +0 -7
  95. data/spec/lib/license_finder/license/isc_spec.rb +0 -7
  96. data/spec/lib/license_finder/license/lgpl_spec.rb +0 -7
  97. data/spec/lib/license_finder/license/mit_spec.rb +0 -33
  98. data/spec/lib/license_finder/license/python_spec.rb +0 -7
  99. data/spec/lib/license_finder/license/ruby_spec.rb +0 -19
  100. data/spec/lib/license_finder/license/simplified_bsd_spec.rb +0 -7
  101. data/spec/lib/license_finder/reporter_spec.rb +0 -46
  102. data/spec/support/license_examples.rb +0 -30
@@ -0,0 +1,72 @@
1
+ require 'spec_helper'
2
+
3
+ module LicenseFinder
4
+ describe MavenPackage do
5
+ subject do
6
+ described_class.new(
7
+ {
8
+ "groupId" => "org.hamcrest",
9
+ "artifactId" => "hamcrest-core",
10
+ "version" => "4.11",
11
+ "licenses" => [{
12
+ "name" => "Common Public License Version 1.0",
13
+ "url" => "http://www.opensource.org/licenses/cpl1.0.txt"
14
+ }]
15
+ }
16
+ )
17
+ end
18
+
19
+ it_behaves_like "it conforms to interface required by PackageSaver"
20
+
21
+ its(:name) { should == "hamcrest-core" }
22
+ its(:version) { should == "4.11" }
23
+ its(:description) { should == "" }
24
+ its(:licenses_from_spec) { should == ["Common Public License Version 1.0"] }
25
+
26
+ describe "#license" do
27
+ it "returns the license if found" do
28
+ subject.license.should == "Common Public License Version 1.0"
29
+ end
30
+
31
+ context "when there are multiple licenses" do
32
+ subject do
33
+ described_class.new(
34
+ {
35
+ "groupId" => "org.hamcrest",
36
+ "artifactId" => "hamcrest-core",
37
+ "licenses" => [{
38
+ "name" => "Common Public License Version 1.0",
39
+ "url" => "http://www.opensource.org/licenses/cpl1.0.txt"
40
+ },
41
+ {
42
+ "name" => "Apache 2",
43
+ "url" => "http://www.apache.org/licenses/LICENSE-2.0.txt"
44
+ }]
45
+ }
46
+ )
47
+ end
48
+
49
+ it "returns 'other'" do
50
+ subject.license.should == 'other'
51
+ end
52
+ end
53
+
54
+ context "when the license is not found" do
55
+ subject do
56
+ described_class.new(
57
+ {
58
+ "groupId" => "org.hamcrest",
59
+ "artifactId" => "hamcrest-core",
60
+ "licenses" => {}
61
+ }
62
+ )
63
+ end
64
+
65
+ it "returns 'other' otherwise" do
66
+ subject.license.should == "other"
67
+ end
68
+ end
69
+ end
70
+ end
71
+ end
72
+
@@ -0,0 +1,115 @@
1
+ require 'spec_helper'
2
+
3
+ module LicenseFinder
4
+ describe Maven do
5
+ def license_xml(xml)
6
+ <<-resp
7
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
8
+ <licenseSummary>
9
+ <dependencies>
10
+ #{xml}
11
+ </dependencies>
12
+ </licenseSummary>
13
+ resp
14
+ end
15
+
16
+ describe '.current_packages' do
17
+ before do
18
+ expect(described_class).to receive(:`).with(/mvn/)
19
+ end
20
+
21
+ it 'lists all the current packages' do
22
+ license_xml = license_xml("""
23
+ <dependency>
24
+ <groupId>junit</groupId>
25
+ <artifactId>junit</artifactId>
26
+ <version>4.11</version>
27
+ <licenses>
28
+ <license>
29
+ <name>Common Public License Version 1.0</name>
30
+ <url>http://www.opensource.org/licenses/cpl1.0.txt</url>
31
+ </license>
32
+ </licenses>
33
+ </dependency>
34
+ <dependency>
35
+ <groupId>org.hamcrest</groupId>
36
+ <artifactId>hamcrest-core</artifactId>
37
+ <version>1.3</version>
38
+ <licenses>
39
+ <license>
40
+ <name>New BSD License</name>
41
+ <url>http://www.opensource.org/licenses/bsd-license.php</url>
42
+ <distribution>repo</distribution>
43
+ </license>
44
+ </licenses>
45
+ </dependency>
46
+ """)
47
+ allow(File).to receive(:read).with("target/generated-resources/licenses.xml").and_return(license_xml)
48
+
49
+ current_packages = Maven.current_packages
50
+
51
+ expect(current_packages.size).to eq(2)
52
+ expect(current_packages.first).to be_a(Package)
53
+ end
54
+
55
+ it "handles multiple licenses" do
56
+ license_xml = license_xml("""
57
+ <dependency>
58
+ <licenses>
59
+ <license>
60
+ <name>License 1</name>
61
+ </license>
62
+ <license>
63
+ <name>License 2</name>
64
+ </license>
65
+ </licenses>
66
+ </dependency>
67
+ """)
68
+
69
+ allow(File).to receive(:read).with("target/generated-resources/licenses.xml").and_return(license_xml)
70
+
71
+ MavenPackage.should_receive(:new).with("licenses" => [{"name" => "License 1"}, {"name" => "License 2"}])
72
+ Maven.current_packages
73
+ end
74
+
75
+ it "handles no licenses" do
76
+ license_xml = license_xml("""
77
+ <dependency>
78
+ <licenses>
79
+ <!-- comment -->
80
+ </licenses>
81
+ </dependency>
82
+ """)
83
+
84
+ allow(File).to receive(:read).with("target/generated-resources/licenses.xml").and_return(license_xml)
85
+
86
+ MavenPackage.should_receive(:new).with("licenses" => {})
87
+ Maven.current_packages
88
+ end
89
+ end
90
+
91
+ describe '.active?' do
92
+ let(:package) { Pathname.new('pom.xml').expand_path }
93
+
94
+ context 'with a pom.xml file' do
95
+ before :each do
96
+ allow(File).to receive(:exists?).with(package).and_return(true)
97
+ end
98
+
99
+ it 'returns true' do
100
+ expect(Maven.active?).to eq(true)
101
+ end
102
+ end
103
+
104
+ context 'without a pom.xml file' do
105
+ before :each do
106
+ allow(File).to receive(:exists?).with(package).and_return(false)
107
+ end
108
+
109
+ it 'returns false' do
110
+ expect(Maven.active?).to eq(false)
111
+ end
112
+ end
113
+ end
114
+ end
115
+ end
@@ -28,14 +28,16 @@ module LicenseFinder
28
28
  PossibleLicenseFiles.stub(:find).with("some/node/package/path").and_return(license_files)
29
29
  end
30
30
 
31
- let(:node_module1) { {"license" => "MIT"} }
32
- let(:node_module2) { {"licenses" => [{"type" => "BSD"}]} }
33
- let(:node_module3) { {"license" => {"type" => "PSF"}} }
31
+ let(:node_module1) { {"license" => "MIT", "path" => "/some/path"} }
32
+ let(:node_module2) { {"licenses" => [{"type" => "BSD"}], "path" => "/some/path"} }
33
+ let(:node_module3) { {"license" => {"type" => "PSF"}, "path" => "/some/path"} }
34
+ let(:node_module4) { {"licenses" => ["MIT"], "path" => "/some/path"} }
34
35
 
35
36
  it 'finds the license for both license structures' do
36
37
  NpmPackage.new(node_module1).license.should eq("MIT")
37
38
  NpmPackage.new(node_module2).license.should eq("BSD")
38
39
  NpmPackage.new(node_module3).license.should eq("PSF")
40
+ NpmPackage.new(node_module4).license.should eq("MIT")
39
41
  end
40
42
 
41
43
  it "returns a license in a file if detected" do
@@ -44,6 +46,18 @@ module LicenseFinder
44
46
  subject.license.should == "Detected License"
45
47
  end
46
48
 
49
+ it "returns other if there's more than one license" do
50
+ package = NpmPackage.new({ "licenses" => ["MIT", "BSD"], "path" => "/some/path" })
51
+ expect(package.license).to eq("other")
52
+ end
53
+
54
+ it "returns other if the license from spec and license from files are different" do
55
+ stub_license_files [double(:file, license: 'Detected License')]
56
+ package = NpmPackage.new({ "licenses" => ["MIT"], "path" => "some/node/package/path" })
57
+
58
+ expect(package.license).to eq("other")
59
+ end
60
+
47
61
  it "returns 'other' otherwise" do
48
62
  stub_license_files []
49
63
 
@@ -50,7 +50,7 @@ module LicenseFinder
50
50
  end
51
51
 
52
52
  describe '#license' do
53
- describe "with pypi license" do
53
+ describe "with valid pypi license" do
54
54
  it "returns the license from 'license' preferentially" do
55
55
  data = { "license" => "MIT", "classifiers" => [ 'License :: OSI Approved :: Apache 2.0 License' ] }
56
56
 
@@ -59,15 +59,37 @@ module LicenseFinder
59
59
  expect(subject.license).to eq('MIT')
60
60
  end
61
61
 
62
- it "returns the first license from the 'classifiers' if no 'license' exists" do
63
- data = { "classifiers" => [ 'License :: OSI Approved :: Apache 2.0 License' ] }
62
+ context "when there's no explicit license" do
63
+ it "returns the license from the 'classifiers' if there is only one" do
64
+ data = { "classifiers" => [ 'License :: OSI Approved :: Apache 2.0 License' ] }
64
65
 
65
- subject = make_package(data)
66
+ subject = make_package(data)
67
+
68
+ expect(subject.license).to eq('Apache 2.0 License')
69
+ end
70
+
71
+ it "returns 'other' if there is are multiple licenses in 'classifiers'" do
72
+ data = { "classifiers" => [ 'License :: OSI Approved :: Apache 2.0 License', 'License :: OSI Approved :: GPL' ] }
73
+
74
+ subject = make_package(data)
75
+
76
+ expect(subject.license).to eq('other')
77
+ end
78
+ end
79
+
80
+
81
+ context "with UNKNOWN license" do
82
+ it "returns the license from the classifier if it exists" do
83
+ data = { "license" => "UNKNOWN", "classifiers" => [ 'License :: OSI Approved :: Apache 2.0 License' ] }
66
84
 
67
- expect(subject.license).to eq('Apache 2.0 License')
85
+ subject = make_package(data)
86
+
87
+ expect(subject.license).to eq('Apache 2.0 License')
88
+ end
68
89
  end
69
90
  end
70
91
 
92
+
71
93
  describe "without pypi license" do
72
94
  def stub_license_files(license_files)
73
95
  PossibleLicenseFiles.stub(:find).with("jasmine/install/path").and_return(license_files)
@@ -10,7 +10,7 @@ describe LicenseFinder::PossibleLicenseFile do
10
10
  end
11
11
 
12
12
  its(:file_path) { should == 'nested/path' }
13
- its(:text) { should == 'file text' }
13
+ its(:text) { should == 'file text' } # this is a terrible test, considering the stubbing
14
14
  end
15
15
  end
16
16
 
@@ -20,7 +20,7 @@ describe LicenseFinder::PossibleLicenseFile do
20
20
  before do
21
21
  subject.stub(:text).and_return('a known license')
22
22
 
23
- LicenseFinder::License::MIT.stub(:new).with('a known license').and_return(double('MIT license', :matches? => true))
23
+ LicenseFinder::License.stub(:find_by_text).with('a known license').and_return(LicenseFinder::License.find_by_name("MIT"))
24
24
  end
25
25
 
26
26
  its(:license) { should == "MIT" }
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ module LicenseFinder
4
+ describe Reporter do
5
+ describe "#write_reports" do
6
+ subject { Reporter.write_reports }
7
+
8
+ before do
9
+ Dependency.stub(:all) { [double(:dep)] }
10
+
11
+ MarkdownReport.stub(:of) { 'markdown report' }
12
+ DetailedTextReport.stub(:of) { 'detailed csv report' }
13
+ TextReport.stub(:of) { 'csv report' }
14
+ HtmlReport.stub(:of) { 'html report' }
15
+ end
16
+
17
+ it "writes an html file" do
18
+ subject
19
+ LicenseFinder.config.artifacts.text_file.read.should == "csv report\n"
20
+ LicenseFinder.config.artifacts.detailed_text_file.read.should == "detailed csv report\n"
21
+ LicenseFinder.config.artifacts.markdown_file.read.should == "markdown report\n"
22
+ LicenseFinder.config.artifacts.html_file.read.should == "html report\n"
23
+ end
24
+
25
+ it "deletes old dependencies.txt file" do
26
+ fake_file = double(:fake_file, :exist? => true)
27
+ LicenseFinder.config.artifacts.stub(:legacy_text_file) { fake_file }
28
+ fake_file.should_receive(:delete)
29
+ subject
30
+ end
31
+ end
32
+ end
33
+ end
@@ -3,11 +3,10 @@ require 'spec_helper'
3
3
  module LicenseFinder
4
4
  describe Dependency do
5
5
  describe '.unapproved' do
6
- let(:config) { Configuration.new }
6
+ let(:config) { Configuration.new('whitelist' => ['MIT', 'other']) }
7
7
 
8
8
  before do
9
9
  LicenseFinder.stub(:config).and_return config
10
- config.whitelist = ["MIT", "other"]
11
10
  end
12
11
 
13
12
  it "should return all unapproved dependencies" do
@@ -11,11 +11,10 @@ module LicenseFinder
11
11
  end
12
12
 
13
13
  describe "#whitelisted?" do
14
- let(:config) { Configuration.new }
14
+ let(:config) { Configuration.new('whitelist' => ['MIT', 'other']) }
15
15
 
16
16
  before do
17
17
  LicenseFinder.stub(:config).and_return config
18
- config.whitelist = ["MIT", "other"]
19
18
  end
20
19
 
21
20
  it "should return true when the license is whitelisted" do
@@ -20,31 +20,30 @@ describe LicenseFinder::YmlToSql do
20
20
  'license_files' => ['/Users/pivotal/foo/lic1', '/Users/pivotal/bar/lic2'],
21
21
  }
22
22
  end
23
- let(:config) { LicenseFinder::Configuration.new }
24
23
  let(:source) { nil }
25
24
 
26
- before do
27
- LicenseFinder.stub(:config) { config }
28
- end
29
-
30
25
  describe ".needs_conversion?" do
31
26
  it "is true if the yml still exists" do
32
- config.stub(dependencies_dir: 'path/to')
33
- File.should_receive(:exists?).with('path/to/dependencies.yml') { true }
27
+ yaml_file = double(:yaml_file, :exist? => true)
28
+ LicenseFinder.config.artifacts.stub(legacy_yaml_file: yaml_file)
29
+
34
30
  described_class.needs_conversion?.should be_true
35
31
  end
36
32
 
37
33
  it "is false otherwise" do
38
- config.stub(dependencies_dir: 'path/to')
39
- File.should_receive(:exists?).with('path/to/dependencies.yml') { false }
34
+ yaml_file = double(:yaml_file, :exist? => false)
35
+ LicenseFinder.config.artifacts.stub(legacy_yaml_file: yaml_file)
36
+
40
37
  described_class.needs_conversion?.should be_false
41
38
  end
42
39
  end
43
40
 
44
41
  describe ".remove_yml" do
45
42
  it "removes the yml file" do
46
- config.stub(dependencies_dir: 'path/to')
47
- File.should_receive(:delete).with('path/to/dependencies.yml')
43
+ yaml_file = double(:yaml_file)
44
+ LicenseFinder.config.artifacts.stub(legacy_yaml_file: yaml_file)
45
+
46
+ yaml_file.should_receive(:delete)
48
47
  described_class.remove_yml
49
48
  end
50
49
  end
@@ -2,81 +2,15 @@ require 'spec_helper'
2
2
 
3
3
  describe LicenseFinder do
4
4
  describe ".config" do
5
- let(:config) do
6
- {
7
- 'whitelist' => %w(MIT Apache),
8
- 'ignore_groups' => %w(test development)
9
- }
10
- end
11
-
12
- before do
13
- LicenseFinder.instance_variable_set(:@config, nil)
14
- File.stub(:exists?).with('./config/license_finder.yml').and_return(true)
15
- File.stub(:read).with('./config/license_finder.yml').and_return(config.to_yaml)
16
- end
17
-
18
- after do
19
- LicenseFinder.instance_variable_set(:@config, nil)
20
- end
21
-
22
- it "should handle a missing configuration file" do
23
- File.stub(:exists?).with('./config/license_finder.yml').and_return(false)
24
- File.should_not_receive(:open).with('./config/license_finder.yml')
25
-
26
- LicenseFinder.config.whitelist.should == []
27
- LicenseFinder.config.ignore_groups.should == []
28
- LicenseFinder.config.dependencies_dir.should == './doc/'
29
- end
30
-
31
5
  it "should load the configuration exactly once" do
32
- File.should_receive(:read).with('./config/license_finder.yml').once.and_return(config.to_yaml)
33
-
34
- LicenseFinder.config.whitelist
35
- LicenseFinder.config.whitelist
36
- end
37
-
38
- describe "#whitelist" do
39
- it "should load a whitelist from license_finder.yml" do
40
- LicenseFinder.config.whitelist.should =~ %w(MIT Apache)
41
- end
42
-
43
- it "should load an empty whitelist from license_finder.yml when there are no whitelist items" do
44
- File.stub(:read).with('./config/license_finder.yml').and_return(config.merge('whitelist' => nil).to_yaml)
45
-
46
- LicenseFinder.config.whitelist.should =~ []
47
- end
48
- end
49
-
50
- describe "#ignore_groups" do
51
- it "should load a ignore_groups list from license_finder.yml" do
52
- LicenseFinder.config.ignore_groups.should == ["test", "development"]
53
- end
54
-
55
- it "should load an empty ignore_groups list from license_finder.yml when there are no ignore groups" do
56
- File.stub(:read).with('./config/license_finder.yml').and_return(config.merge('ignore_groups' => nil).to_yaml)
57
-
58
- LicenseFinder.config.ignore_groups.should == []
59
- end
60
- end
6
+ LicenseFinder.instance_variable_set(:@config, nil)
61
7
 
62
- describe "#dependencies_dir" do
63
- it 'should allow the dependencies file directory to be configured' do
64
- File.stub(:read).with('./config/license_finder.yml').and_return(config.merge('dependencies_file_dir' => './elsewhere').to_yaml)
8
+ LicenseFinder::Configuration.should_receive(:ensure_default).once.and_return(double(:config))
65
9
 
66
- config = LicenseFinder.config
67
- config.dependencies_dir.should == './elsewhere'
68
- config.dependencies_yaml.should == './elsewhere/dependencies.yml'
69
- config.dependencies_text.should == './elsewhere/dependencies.csv'
70
- config.dependencies_html.should == './elsewhere/dependencies.html'
71
- end
10
+ LicenseFinder.config
11
+ LicenseFinder.config
72
12
 
73
- it 'should default the dependency files when the directory is not provided' do
74
- config = LicenseFinder.config
75
- config.dependencies_dir.should == './doc/'
76
- config.dependencies_yaml.should == './doc/dependencies.yml'
77
- config.dependencies_text.should == './doc/dependencies.csv'
78
- config.dependencies_html.should == './doc/dependencies.html'
79
- end
13
+ LicenseFinder.instance_variable_set(:@config, nil)
80
14
  end
81
15
  end
82
16
  end