skillnad 1.2.2
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 +7 -0
- data/LICENSE +20 -0
- data/README.md +172 -0
- data/Rakefile +17 -0
- data/lib/rubygems/commands/compare_command.rb +105 -0
- data/lib/rubygems/comparator/base.rb +45 -0
- data/lib/rubygems/comparator/dependency_comparator.rb +110 -0
- data/lib/rubygems/comparator/dir_utils.rb +51 -0
- data/lib/rubygems/comparator/file_list_comparator.rb +212 -0
- data/lib/rubygems/comparator/gemfile_comparator.rb +149 -0
- data/lib/rubygems/comparator/monitor.rb +140 -0
- data/lib/rubygems/comparator/report/entry.rb +40 -0
- data/lib/rubygems/comparator/report.rb +131 -0
- data/lib/rubygems/comparator/spec_comparator.rb +66 -0
- data/lib/rubygems/comparator/utils.rb +134 -0
- data/lib/rubygems/comparator/version.rb +5 -0
- data/lib/rubygems/comparator.rb +308 -0
- data/lib/rubygems_plugin.rb +4 -0
- data/test/gemfiles/lorem-0.0.1/Gemfile +4 -0
- data/test/gemfiles/lorem-0.0.1/LICENSE.txt +22 -0
- data/test/gemfiles/lorem-0.0.1/README.md +29 -0
- data/test/gemfiles/lorem-0.0.1/Rakefile +2 -0
- data/test/gemfiles/lorem-0.0.1/lib/lorem/version.rb +3 -0
- data/test/gemfiles/lorem-0.0.1/lib/lorem.rb +7 -0
- data/test/gemfiles/lorem-0.0.1/lorem.gemspec +24 -0
- data/test/gemfiles/lorem-0.0.1.gem +0 -0
- data/test/gemfiles/lorem-0.0.2/CHANGELOG.md +6 -0
- data/test/gemfiles/lorem-0.0.2/Gemfile +4 -0
- data/test/gemfiles/lorem-0.0.2/LICENSE.txt +3 -0
- data/test/gemfiles/lorem-0.0.2/README.md +29 -0
- data/test/gemfiles/lorem-0.0.2/Rakefile +2 -0
- data/test/gemfiles/lorem-0.0.2/lib/lorem/version.rb +3 -0
- data/test/gemfiles/lorem-0.0.2/lib/lorem.rb +11 -0
- data/test/gemfiles/lorem-0.0.2/lorem.gemspec +24 -0
- data/test/gemfiles/lorem-0.0.2.gem +0 -0
- data/test/gemfiles/lorem-0.0.3/CHANGELOG.md +14 -0
- data/test/gemfiles/lorem-0.0.3/Gemfile +7 -0
- data/test/gemfiles/lorem-0.0.3/LICENSE.txt +3 -0
- data/test/gemfiles/lorem-0.0.3/README.md +29 -0
- data/test/gemfiles/lorem-0.0.3/Rakefile +2 -0
- data/test/gemfiles/lorem-0.0.3/bin/lorem +3 -0
- data/test/gemfiles/lorem-0.0.3/lib/lorem/utils.rb +7 -0
- data/test/gemfiles/lorem-0.0.3/lib/lorem/version.rb +3 -0
- data/test/gemfiles/lorem-0.0.3/lib/lorem.rb +11 -0
- data/test/gemfiles/lorem-0.0.3/lorem.gemspec +25 -0
- data/test/gemfiles/lorem-0.0.3.gem +0 -0
- data/test/gemfiles/lorem-0.0.4/CHANGELOG.md +21 -0
- data/test/gemfiles/lorem-0.0.4/Gemfile +6 -0
- data/test/gemfiles/lorem-0.0.4/LICENSE.txt +3 -0
- data/test/gemfiles/lorem-0.0.4/README.md +29 -0
- data/test/gemfiles/lorem-0.0.4/Rakefile +2 -0
- data/test/gemfiles/lorem-0.0.4/bin/lorem +3 -0
- data/test/gemfiles/lorem-0.0.4/lib/lorem/utils.rb +7 -0
- data/test/gemfiles/lorem-0.0.4/lib/lorem/version.rb +3 -0
- data/test/gemfiles/lorem-0.0.4/lib/lorem.rb +11 -0
- data/test/gemfiles/lorem-0.0.4/lorem.gemspec +25 -0
- data/test/gemfiles/lorem-0.0.4.gem +0 -0
- data/test/rubygems/comparator/test_dependency_comparator.rb +32 -0
- data/test/rubygems/comparator/test_dir_utils.rb +47 -0
- data/test/rubygems/comparator/test_file_list_comparator.rb +29 -0
- data/test/rubygems/comparator/test_gemfile_comparator.rb +16 -0
- data/test/rubygems/comparator/test_monitor.rb +183 -0
- data/test/rubygems/comparator/test_report.rb +25 -0
- data/test/rubygems/comparator/test_spec_comparator.rb +150 -0
- data/test/rubygems/comparator/test_utils.rb +35 -0
- data/test/rubygems/test_gem_commands_compare_command.rb +41 -0
- data/test/test_helper.rb +53 -0
- metadata +165 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'lorem/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "lorem"
|
|
8
|
+
spec.version = Lorem::VERSION
|
|
9
|
+
spec.authors = ["Josef Stribny"]
|
|
10
|
+
spec.email = ["jstribny@redhat.com"]
|
|
11
|
+
spec.summary = "lorem is a gem for testing skillnad"
|
|
12
|
+
spec.description = "lorem changes a lot so we can test skillnad a lot"
|
|
13
|
+
spec.homepage = ""
|
|
14
|
+
spec.license = "GPLv2"
|
|
15
|
+
|
|
16
|
+
spec.files = ["lorem.gemspec", "CHANGELOG.md", "Gemfile", "Rakefile", "LICENSE.txt", "README.md"] +
|
|
17
|
+
Dir.glob("lib/**/*")
|
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
20
|
+
spec.require_paths = ["lib"]
|
|
21
|
+
|
|
22
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
|
23
|
+
spec.add_development_dependency "rake"
|
|
24
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
lorem 0.0.3
|
|
2
|
+
===========
|
|
3
|
+
|
|
4
|
+
- add homepage
|
|
5
|
+
- add some lib files
|
|
6
|
+
- add an executable file
|
|
7
|
+
- change dependencies in gemspec and Gemfile
|
|
8
|
+
|
|
9
|
+
lorem 0.0.2
|
|
10
|
+
===========
|
|
11
|
+
|
|
12
|
+
- add changelog file
|
|
13
|
+
- change license to GPLv2
|
|
14
|
+
- add new method to lib/lorem.rb
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Lorem
|
|
2
|
+
|
|
3
|
+
TODO: Write a gem description
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Add this line to your application's Gemfile:
|
|
8
|
+
|
|
9
|
+
gem 'lorem'
|
|
10
|
+
|
|
11
|
+
And then execute:
|
|
12
|
+
|
|
13
|
+
$ bundle
|
|
14
|
+
|
|
15
|
+
Or install it yourself as:
|
|
16
|
+
|
|
17
|
+
$ gem install lorem
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
TODO: Write usage instructions here
|
|
22
|
+
|
|
23
|
+
## Contributing
|
|
24
|
+
|
|
25
|
+
1. Fork it ( https://github.com/[my-github-username]/lorem/fork )
|
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
|
29
|
+
5. Create a new Pull Request
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'lorem/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "lorem"
|
|
8
|
+
spec.version = Lorem::VERSION
|
|
9
|
+
spec.authors = ["Josef Stribny"]
|
|
10
|
+
spec.email = ["jstribny@redhat.com"]
|
|
11
|
+
spec.summary = "lorem is a gem for testing skillnad"
|
|
12
|
+
spec.description = "lorem changes a lot so we can test skillnad a lot"
|
|
13
|
+
spec.homepage = "http://lorem.lorem"
|
|
14
|
+
spec.license = "GPLv2"
|
|
15
|
+
|
|
16
|
+
spec.files = ["lorem.gemspec", "bin/lorem", "CHANGELOG.md", "Gemfile", "Rakefile", "LICENSE.txt", "README.md"] +
|
|
17
|
+
Dir.glob("lib/**/*")
|
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
20
|
+
spec.require_paths = ["lib"]
|
|
21
|
+
|
|
22
|
+
spec.add_dependency "rails", ">= 4.0.0"
|
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.0"
|
|
24
|
+
spec.add_development_dependency "rake", ">= 10.0.0"
|
|
25
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
lorem 0.0.4
|
|
2
|
+
===========
|
|
3
|
+
|
|
4
|
+
- change summary and description
|
|
5
|
+
- make bin/lorem really executable
|
|
6
|
+
- bump dependencies
|
|
7
|
+
|
|
8
|
+
lorem 0.0.3
|
|
9
|
+
===========
|
|
10
|
+
|
|
11
|
+
- add homepage
|
|
12
|
+
- add some lib files
|
|
13
|
+
- add an executable file
|
|
14
|
+
- change dependencies in gemspec and Gemfile
|
|
15
|
+
|
|
16
|
+
lorem 0.0.2
|
|
17
|
+
===========
|
|
18
|
+
|
|
19
|
+
- add changelog file
|
|
20
|
+
- change license to GPLv2
|
|
21
|
+
- add new method to lib/lorem.rb
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Lorem
|
|
2
|
+
|
|
3
|
+
TODO: Write a gem description
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Add this line to your application's Gemfile:
|
|
8
|
+
|
|
9
|
+
gem 'lorem'
|
|
10
|
+
|
|
11
|
+
And then execute:
|
|
12
|
+
|
|
13
|
+
$ bundle
|
|
14
|
+
|
|
15
|
+
Or install it yourself as:
|
|
16
|
+
|
|
17
|
+
$ gem install lorem
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
TODO: Write usage instructions here
|
|
22
|
+
|
|
23
|
+
## Contributing
|
|
24
|
+
|
|
25
|
+
1. Fork it ( https://github.com/[my-github-username]/lorem/fork )
|
|
26
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
|
27
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
|
28
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
|
29
|
+
5. Create a new Pull Request
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
|
+
require 'lorem/version'
|
|
5
|
+
|
|
6
|
+
Gem::Specification.new do |spec|
|
|
7
|
+
spec.name = "lorem"
|
|
8
|
+
spec.version = Lorem::VERSION
|
|
9
|
+
spec.authors = ["Josef Stribny"]
|
|
10
|
+
spec.email = ["jstribny@redhat.com"]
|
|
11
|
+
spec.summary = "lorem is a gem for testing skillnad plugin"
|
|
12
|
+
spec.description = "lorem changes a lot so we can test skillnad plugin a lot"
|
|
13
|
+
spec.homepage = "http://lorem.lorem"
|
|
14
|
+
spec.license = "GPLv2"
|
|
15
|
+
|
|
16
|
+
spec.files = ["lorem.gemspec", "bin/lorem", "CHANGELOG.md", "Gemfile", "Rakefile", "LICENSE.txt", "README.md"] +
|
|
17
|
+
Dir.glob("lib/**/*")
|
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
20
|
+
spec.require_paths = ["lib"]
|
|
21
|
+
|
|
22
|
+
spec.add_dependency "rails", ">= 4.1.0"
|
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.1"
|
|
24
|
+
spec.add_development_dependency "rake", ">= 10.0.0"
|
|
25
|
+
end
|
|
Binary file
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
|
|
5
|
+
class TestDependencyComparator < TestGemComparator
|
|
6
|
+
|
|
7
|
+
def test_runtime_dependencies_comparison
|
|
8
|
+
assert_equal 'DIFFERENT runtime dependencies:', @report['runtime_dependency'].header.data
|
|
9
|
+
assert_equal 'DIFFERENT runtime dependencies:', @report['runtime_dependency'].lines(0)
|
|
10
|
+
assert_equal '0.0.2->0.0.3:', @report['runtime_dependency']['0.0.2->0.0.3'].header.data
|
|
11
|
+
assert_equal '0.0.2->0.0.3:', @report['runtime_dependency'].lines(1)
|
|
12
|
+
assert_equal '* Added:', @report['runtime_dependency']['0.0.2->0.0.3']['added'].lines(0)
|
|
13
|
+
assert_equal [], @report['runtime_dependency']['0.0.2->0.0.3']['deleted'].messages
|
|
14
|
+
assert_equal [], @report['runtime_dependency']['0.0.2->0.0.3']['updated'].messages
|
|
15
|
+
assert_equal ['rails [">= 4.0.0"] (runtime)'], @report['runtime_dependency']['0.0.2->0.0.3']['added'].lines(1)
|
|
16
|
+
assert_equal '0.0.3->0.0.4:', @report['runtime_dependency']['0.0.3->0.0.4'].header.data
|
|
17
|
+
assert_equal '0.0.3->0.0.4:', @report['runtime_dependency'].lines(4)
|
|
18
|
+
assert_equal [], @report['runtime_dependency']['0.0.3->0.0.4']['added'].messages
|
|
19
|
+
assert_equal [], @report['runtime_dependency']['0.0.3->0.0.4']['deleted'].messages
|
|
20
|
+
assert_equal ['rails from: [">= 4.0.0"] to: [">= 4.1.0"]'], @report['runtime_dependency']['0.0.3->0.0.4']['updated'].lines(1)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_development_dependencies_comparison
|
|
24
|
+
assert_equal [], @report['development_dependency']['0.0.1->0.0.2']['added'].messages
|
|
25
|
+
assert_equal [], @report['development_dependency']['0.0.1->0.0.2']['deleted'].messages
|
|
26
|
+
assert_equal [], @report['development_dependency']['0.0.1->0.0.2']['updated'].messages
|
|
27
|
+
assert_equal [], @report['development_dependency']['0.0.2->0.0.3']['added'].messages
|
|
28
|
+
assert_equal [], @report['development_dependency']['0.0.2->0.0.3']['deleted'].messages
|
|
29
|
+
assert_equal 'bundler from: ["~> 1.6"] to: ["~> 1.0"]', @report['development_dependency']['0.0.2->0.0.3']['updated'].lines(1)[0]
|
|
30
|
+
assert_equal 'rake from: [">= 0"] to: [">= 10.0.0"]', @report['development_dependency']['0.0.2->0.0.3']['updated'].lines(1)[1]
|
|
31
|
+
end
|
|
32
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
|
|
5
|
+
class TestDirUtils < TestGemModule
|
|
6
|
+
|
|
7
|
+
def test_file_first_line
|
|
8
|
+
file1 = File.join(@v001, 'lib/lorem.rb')
|
|
9
|
+
file2 = File.join(@v002, 'bin/lorem')
|
|
10
|
+
file3 = File.join(@v003, 'bin/lorem')
|
|
11
|
+
assert_equal 'require "lorem/version"', Gem::Comparator::DirUtils.file_first_line(file1)
|
|
12
|
+
assert_nil Gem::Comparator::DirUtils.file_first_line(file2)
|
|
13
|
+
assert_equal '#!/usr/bin/ruby', Gem::Comparator::DirUtils.file_first_line(file3)
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def test_file_has_shebang?
|
|
17
|
+
file1 = File.join(@v003, 'lib/lorem.rb')
|
|
18
|
+
file2 = File.join(@v004, 'bin/lorem')
|
|
19
|
+
assert_nil Gem::Comparator::DirUtils.file_has_shebang?(file1)
|
|
20
|
+
assert_equal 0, Gem::Comparator::DirUtils.file_has_shebang?(file2)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def test_files_same_first_line?
|
|
24
|
+
file1 = File.join(@v001, 'lib/lorem.rb')
|
|
25
|
+
file2 = File.join(@v002, 'lib/lorem.rb')
|
|
26
|
+
file3 = File.join(@v003, 'bin/lorem')
|
|
27
|
+
assert_equal true, Gem::Comparator::DirUtils.files_same_first_line?(file1, file2)
|
|
28
|
+
assert_equal false, Gem::Comparator::DirUtils.files_same_first_line?(file1, file3)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def test_gem_bin_file
|
|
32
|
+
file1 = File.join(@v001, 'lib/lorem.rb')
|
|
33
|
+
file2 = File.join(@v004, 'bin/lorem')
|
|
34
|
+
assert_nil Gem::Comparator::DirUtils.gem_bin_file?(file1)
|
|
35
|
+
assert_equal 0, Gem::Comparator::DirUtils.gem_bin_file?(file2)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def test_dirs_of_files
|
|
39
|
+
files = ['Rakefile', '/dir1/file1', '/dir2/file2']
|
|
40
|
+
assert_equal ["Rakefile", "/dir1/", "/dir2/"], Gem::Comparator::DirUtils.dirs_of_files(files)
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def test_remove_subdirs
|
|
44
|
+
dirs = ['/dir1/dir2/dir3', '/dir1/dir2', '/dir', 'Gemfile']
|
|
45
|
+
assert_equal ["/dir1/dir2", "/dir", "Gemfile"], Gem::Comparator::DirUtils.remove_subdirs(dirs)
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
|
|
5
|
+
class TestFileListComparator < TestGemComparator
|
|
6
|
+
|
|
7
|
+
def test_files_comparison
|
|
8
|
+
assert_equal 'DIFFERENT files:', @report['files'].header.data
|
|
9
|
+
assert_equal '0.0.1->0.0.2:', @report['files'].lines(1)
|
|
10
|
+
assert_equal "CHANGELOG.md +6/-0", @report['files']['0.0.1->0.0.2']['added'].lines(1)
|
|
11
|
+
assert_equal [], @report['files']['0.0.1->0.0.2']['deleted'].messages
|
|
12
|
+
assert_equal [], @report['files']['0.0.1->0.0.2']['updated'].messages
|
|
13
|
+
assert_equal "bin/lorem +3/-0", @report['files']['0.0.2->0.0.3']['added'].lines(1)
|
|
14
|
+
assert_equal "(!) Unexpected permissions: 100664", @report['files']['0.0.2->0.0.3']['added'].lines(2).strip
|
|
15
|
+
assert_equal "(!) File is not executable", @report['files']['0.0.2->0.0.3']['added'].lines(3).strip
|
|
16
|
+
assert_equal "(!) Shebang found: #!/usr/bin/ruby", @report['files']['0.0.2->0.0.3']['added'].lines(4).strip
|
|
17
|
+
assert_equal "lib/lorem/utils.rb +7/-0", @report['files']['0.0.2->0.0.3']['added'].lines(5).strip
|
|
18
|
+
assert_nil @report['files']['0.0.2->0.0.3']['added'].lines(6)
|
|
19
|
+
assert_equal [], @report['files']['0.0.2->0.0.3']['deleted'].messages
|
|
20
|
+
assert_equal [], @report['files']['0.0.2->0.0.3']['updated'].messages
|
|
21
|
+
assert_equal [], @report['files']['0.0.3->0.0.4']['added'].messages
|
|
22
|
+
assert_equal [], @report['files']['0.0.3->0.0.4']['deleted'].messages
|
|
23
|
+
assert_equal [], @report['files']['0.0.3->0.0.4']['updated'].messages
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_test_files_comparison
|
|
27
|
+
assert_equal 'SAME test_files:', @report['test_files'].header.data
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
|
|
5
|
+
class TestGemfileComparator < TestGemComparator
|
|
6
|
+
|
|
7
|
+
def test_gemfile_comparison
|
|
8
|
+
assert_equal '0.0.1->0.0.2:', @report['gemfiles']['0.0.1->0.0.2'].header.data
|
|
9
|
+
assert_equal [], @report['gemfiles']['0.0.1->0.0.2'].messages
|
|
10
|
+
assert_equal [], @report['gemfiles']['0.0.2->0.0.3'].messages
|
|
11
|
+
assert_equal [], @report['gemfiles']['0.0.3->0.0.4']['added'].messages
|
|
12
|
+
assert_equal '* Deleted', @report['gemfiles']['0.0.3->0.0.4'].lines(1)
|
|
13
|
+
assert_equal ['appraisal [">= 0"] (runtime)'], @report['gemfiles']['0.0.3->0.0.4']['deleted'].lines(1)
|
|
14
|
+
assert_equal ['minitest from: [">= 0"] to: ["= 5.0.0"]'], @report['gemfiles']['0.0.3->0.0.4']['updated'].lines(1)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'test_helper'
|
|
4
|
+
|
|
5
|
+
class TestMonitor < TestGemModule
|
|
6
|
+
|
|
7
|
+
def test_lines_changed
|
|
8
|
+
file1 = File.join(@v001, 'lib/lorem.rb')
|
|
9
|
+
file2 = File.join(@v002, 'lib/lorem.rb')
|
|
10
|
+
assert_equal '+4/-0', Gem::Comparator::Monitor.lines_changed(file1, file2)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def test_compact_files_diff
|
|
14
|
+
file1 = File.join(@v001, 'lib/lorem.rb')
|
|
15
|
+
file2 = File.join(@v002, 'lib/lorem.rb')
|
|
16
|
+
assert_equal '++++', Gem::Comparator::Monitor.compact_files_diff(file1, file2)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def test_files_added_diff
|
|
20
|
+
file1 = nil
|
|
21
|
+
file2 = File.join(@v003, 'lib/lorem/utils.rb')
|
|
22
|
+
diff = Gem::Comparator::Monitor.files_diff(file1, file2)
|
|
23
|
+
expected_diff = <<~EOF
|
|
24
|
+
@@ -0,0 +1,7 @@
|
|
25
|
+
+def check_something
|
|
26
|
+
+
|
|
27
|
+
+end
|
|
28
|
+
+
|
|
29
|
+
+def make_something
|
|
30
|
+
+
|
|
31
|
+
+end
|
|
32
|
+
EOF
|
|
33
|
+
assert_equal expected_diff, diff.split(/\n/, 3)[2]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def test_files_diff
|
|
37
|
+
file1 = File.join(@v001, 'lib/lorem.rb')
|
|
38
|
+
file2 = File.join(@v002, 'lib/lorem.rb')
|
|
39
|
+
diff = Gem::Comparator::Monitor.files_diff(file1, file2)
|
|
40
|
+
expected_diff = <<~EOF
|
|
41
|
+
@@ -6,0 +7,4 @@
|
|
42
|
+
+
|
|
43
|
+
+ def new_method
|
|
44
|
+
+ raise 'needs to be implemented'
|
|
45
|
+
+ end
|
|
46
|
+
EOF
|
|
47
|
+
assert_equal expected_diff, diff.split(/\n/, 3)[2]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def test_files_permissions_changes
|
|
51
|
+
file1 = File.join(@v003, 'bin/lorem')
|
|
52
|
+
file2 = File.join(@v004, 'bin/lorem')
|
|
53
|
+
assert_equal '(!) New permissions: 100664 -> 100775', Gem::Comparator::Monitor.files_permissions_changes(file1, file2).strip
|
|
54
|
+
assert_equal '(!) New permissions: 100664 -> 100775', Gem::Comparator::Monitor.files_permissions_changes(file1, file2, true).strip
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def test_files_permissions_changes_no_change
|
|
58
|
+
file1 = Tempfile.new
|
|
59
|
+
file2 = Tempfile.new
|
|
60
|
+
begin
|
|
61
|
+
File.chmod(0644, file1)
|
|
62
|
+
File.chmod(0644, file2)
|
|
63
|
+
assert_equal '', Gem::Comparator::Monitor.files_permissions_changes(file1.path, file2.path)
|
|
64
|
+
assert_equal '', Gem::Comparator::Monitor.files_permissions_changes(file1.path, file2.path, true)
|
|
65
|
+
ensure
|
|
66
|
+
file1.unlink
|
|
67
|
+
file2.unlink
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def test_files_permissions_changes_ignores_group_writable_added
|
|
72
|
+
file1 = Tempfile.new
|
|
73
|
+
file2 = Tempfile.new
|
|
74
|
+
begin
|
|
75
|
+
File.chmod(0644, file1)
|
|
76
|
+
File.chmod(0664, file2)
|
|
77
|
+
assert_equal '', Gem::Comparator::Monitor.files_permissions_changes(file1.path, file2.path, true)
|
|
78
|
+
ensure
|
|
79
|
+
file1.unlink
|
|
80
|
+
file2.unlink
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def test_files_permissions_changes_ignores_group_writable_other_changes
|
|
85
|
+
file1 = Tempfile.new
|
|
86
|
+
file2 = Tempfile.new
|
|
87
|
+
begin
|
|
88
|
+
File.chmod(0644, file1)
|
|
89
|
+
File.chmod(0660, file2)
|
|
90
|
+
assert_equal ' (!) New permissions: 100644 -> 100660', Gem::Comparator::Monitor.files_permissions_changes(file1.path, file2.path, true)
|
|
91
|
+
ensure
|
|
92
|
+
file1.unlink
|
|
93
|
+
file2.unlink
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
def test_files_permissions_changes_ignores_group_writable_removed
|
|
98
|
+
file1 = Tempfile.new
|
|
99
|
+
file2 = Tempfile.new
|
|
100
|
+
begin
|
|
101
|
+
File.chmod(0664, file1)
|
|
102
|
+
File.chmod(0644, file2)
|
|
103
|
+
assert_equal '', Gem::Comparator::Monitor.files_permissions_changes(file1.path, file2.path, true)
|
|
104
|
+
ensure
|
|
105
|
+
file1.unlink
|
|
106
|
+
file2.unlink
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def test_new_file_permissions
|
|
111
|
+
file1 = File.join(@v004, 'bin/lorem')
|
|
112
|
+
file2 = File.join(@v004, 'lib/lorem.rb')
|
|
113
|
+
assert_equal '(!) Unexpected permissions: 100775', Gem::Comparator::Monitor.new_file_permissions(file1).strip
|
|
114
|
+
assert_equal '(!) Unexpected permissions: 100664', Gem::Comparator::Monitor.new_file_permissions(file2).strip
|
|
115
|
+
ignore_group_writable = true
|
|
116
|
+
assert_equal '', Gem::Comparator::Monitor.new_file_permissions(file1, ignore_group_writable).strip
|
|
117
|
+
assert_equal '', Gem::Comparator::Monitor.new_file_permissions(file2, ignore_group_writable).strip
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def test_new_file_permissions_ignore_group_writable_when_not_group_writable
|
|
121
|
+
file = Tempfile.new
|
|
122
|
+
bin_file = temp_bin_file
|
|
123
|
+
begin
|
|
124
|
+
File.chmod(0644, file)
|
|
125
|
+
assert_equal '', Gem::Comparator::Monitor.new_file_permissions(file.path, true)
|
|
126
|
+
|
|
127
|
+
File.chmod(0755, bin_file)
|
|
128
|
+
assert_equal '', Gem::Comparator::Monitor.new_file_permissions(bin_file.path, true)
|
|
129
|
+
ensure
|
|
130
|
+
file.unlink
|
|
131
|
+
bin_file.unlink
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def test_new_file_permissions_ignore_group_writable
|
|
136
|
+
file = Tempfile.new
|
|
137
|
+
bin_file = temp_bin_file
|
|
138
|
+
begin
|
|
139
|
+
File.chmod(0664, file)
|
|
140
|
+
assert_equal '', Gem::Comparator::Monitor.new_file_permissions(file.path, true)
|
|
141
|
+
|
|
142
|
+
File.chmod(0775, bin_file)
|
|
143
|
+
assert_equal '', Gem::Comparator::Monitor.new_file_permissions(bin_file.path, true)
|
|
144
|
+
ensure
|
|
145
|
+
file.unlink
|
|
146
|
+
bin_file.unlink
|
|
147
|
+
end
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def test_new_file_permissions_ignore_group_writable_unreadable
|
|
151
|
+
file = Tempfile.new
|
|
152
|
+
begin
|
|
153
|
+
File.chmod(0660, file)
|
|
154
|
+
assert_equal ' (!) Unexpected permissions: 100660', Gem::Comparator::Monitor.new_file_permissions(file.path, true)
|
|
155
|
+
ensure
|
|
156
|
+
file.unlink
|
|
157
|
+
end
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
def test_files_executability_changes
|
|
161
|
+
file1 = File.join(@v003, 'bin/lorem')
|
|
162
|
+
file2 = File.join(@v004, 'bin/lorem')
|
|
163
|
+
assert_equal '(!) File is now executable!', Gem::Comparator::Monitor.files_executability_changes(file1, file2).strip
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
def test_new_file_executability
|
|
167
|
+
file1 = File.join(@v003, 'bin/lorem')
|
|
168
|
+
file2 = File.join(@v004, 'bin/lorem')
|
|
169
|
+
assert_equal '(!) File is not executable', Gem::Comparator::Monitor.new_file_executability(file1).strip
|
|
170
|
+
assert_equal '', Gem::Comparator::Monitor.new_file_executability(file2).strip
|
|
171
|
+
end
|
|
172
|
+
|
|
173
|
+
def test_files_shebang_changes
|
|
174
|
+
file1 = File.join(@v003, 'bin/lorem')
|
|
175
|
+
file2 = File.join(@v004, 'bin/lorem')
|
|
176
|
+
assert_equal '', Gem::Comparator::Monitor.files_shebang_changes(file1, file2).strip
|
|
177
|
+
end
|
|
178
|
+
|
|
179
|
+
def test_new_file_shebang
|
|
180
|
+
file1 = File.join(@v003, 'bin/lorem')
|
|
181
|
+
assert_equal '(!) Shebang found: #!/usr/bin/ruby', Gem::Comparator::Monitor.new_file_shebang(file1).strip
|
|
182
|
+
end
|
|
183
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../test_helper'
|
|
4
|
+
require 'rubygems/comparator'
|
|
5
|
+
|
|
6
|
+
class TestGemComparatorReport < Minitest::Test
|
|
7
|
+
def setup
|
|
8
|
+
super
|
|
9
|
+
@report = Gem::Comparator::Report.new
|
|
10
|
+
@report['1'] << '1'
|
|
11
|
+
@report['1']['2'] << '2'
|
|
12
|
+
@report['1']['unused'].set_header 'Unused'
|
|
13
|
+
@report['1.1'].section do
|
|
14
|
+
nest('1.1.1').section do
|
|
15
|
+
puts [3, 3]
|
|
16
|
+
end
|
|
17
|
+
puts []
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def test_all_messages
|
|
22
|
+
assert_equal 2, @report['1'].all_messages.size
|
|
23
|
+
assert_equal 1, @report['1.1'].all_messages.size
|
|
24
|
+
end
|
|
25
|
+
end
|