codeclimate-test-reporter 0.4.1 → 0.4.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 +4 -4
- data/README.md +1 -1
- data/codeclimate-test-reporter.gemspec +2 -0
- data/lib/code_climate/test_reporter/calculate_blob.rb +39 -0
- data/lib/code_climate/test_reporter/formatter.rb +1 -10
- data/lib/code_climate/test_reporter/version.rb +1 -1
- data/lib/codeclimate-test-reporter.rb +1 -1
- data/spec/lib/calculate_blob_spec.rb +27 -0
- data/spec/lib/formatter_spec.rb +0 -10
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 156905b7518e6be96dc1c73878da83eade488bc0
|
4
|
+
data.tar.gz: 2c67aaa1930dfab9d24dacbbc376fae4394ff112
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03603fd7e4059e13bca3c819ad25d052e4640cd00ae3037f4545085c338e3d4c5841054d2569c8f67ebbcdeb16e942956fc51d7f9a1727fe37dad5422e5c0dbf
|
7
|
+
data.tar.gz: 0a230cfe3bb2bc53b49c36c8fe2b9d4cf2bd3c03fb58e6df10f9374065618203c4ef261f1d93bd7340cdd46732a600d59ff1a6a3cea28a1abe76419205f929ec
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# codeclimate-test-reporter
|
2
2
|
|
3
|
-
[](https://codeclimate.com/github/codeclimate/ruby-test-reporter)
|
4
4
|
|
5
5
|
Collects test coverage data from your Ruby test suite and sends it to Code
|
6
6
|
Climate's hosted, automated code review service. Based on SimpleCov.
|
@@ -17,6 +17,8 @@ Gem::Specification.new do |spec|
|
|
17
17
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.required_ruby_version = ">= 1.9"
|
20
22
|
|
21
23
|
spec.add_dependency "simplecov", ">= 0.7.1", "< 1.0.0"
|
22
24
|
spec.add_development_dependency "bundler", "~> 1.3"
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module CodeClimate
|
2
|
+
module TestReporter
|
3
|
+
|
4
|
+
class CalculateBlob
|
5
|
+
|
6
|
+
def initialize(file_path)
|
7
|
+
@file_path = file_path
|
8
|
+
end
|
9
|
+
|
10
|
+
def blob_id
|
11
|
+
calculate_with_file or calculate_with_git
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def calculate_with_file
|
17
|
+
File.open(@file_path, "rb") do |file|
|
18
|
+
header = "blob #{file.size}\0"
|
19
|
+
content = file.read
|
20
|
+
store = header + content
|
21
|
+
|
22
|
+
return Digest::SHA1.hexdigest(store)
|
23
|
+
end
|
24
|
+
rescue EncodingError
|
25
|
+
puts "WARNING: Unable to read #{@file_path}\nUsing git for blob calculation"
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
|
29
|
+
def calculate_with_git
|
30
|
+
output = `git hash-object -t blob #{@file_path}`.chomp
|
31
|
+
raise 'ERROR: Failed to calculate blob with git' unless $?.success?
|
32
|
+
|
33
|
+
output
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
end
|
@@ -49,7 +49,7 @@ module CodeClimate
|
|
49
49
|
|
50
50
|
{
|
51
51
|
name: short_filename(file.filename),
|
52
|
-
blob_id:
|
52
|
+
blob_id: CalculateBlob.new(file.filename).blob_id,
|
53
53
|
coverage: file.coverage.to_json,
|
54
54
|
covered_percent: round(file.covered_percent, 2),
|
55
55
|
covered_strength: round(file.covered_strength, 2),
|
@@ -81,15 +81,6 @@ module CodeClimate
|
|
81
81
|
}
|
82
82
|
end
|
83
83
|
|
84
|
-
def calculate_blob_id(path)
|
85
|
-
File.open(path, "rb") do |file|
|
86
|
-
header = "blob #{file.size}\0"
|
87
|
-
content = file.read.force_encoding("iso-8859-1").encode("utf-8", replace: nil)
|
88
|
-
store = header + content
|
89
|
-
|
90
|
-
return Digest::SHA1.hexdigest(store)
|
91
|
-
end
|
92
|
-
end
|
93
84
|
|
94
85
|
def short_filename(filename)
|
95
86
|
return filename unless ::SimpleCov.root
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require "code_climate/test_reporter"
|
2
|
+
require "code_climate/test_reporter/calculate_blob"
|
2
3
|
require "code_climate/test_reporter/version"
|
3
4
|
require "code_climate/test_reporter/client"
|
4
5
|
require "code_climate/test_reporter/formatter"
|
5
6
|
require "code_climate/test_reporter/configuration"
|
6
7
|
require "code_climate/test_reporter/git"
|
7
8
|
require "code_climate/test_reporter/ci"
|
8
|
-
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module CodeClimate::TestReporter
|
4
|
+
|
5
|
+
describe CalculateBlob do
|
6
|
+
|
7
|
+
subject { CalculateBlob.new(fixture) }
|
8
|
+
let(:fixture) { File.expand_path("../../fixtures/encoding_test.rb", __FILE__) }
|
9
|
+
|
10
|
+
it 'hex digests content of file' do
|
11
|
+
expect(subject.blob_id).to_not be_nil
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'encoding error' do
|
15
|
+
|
16
|
+
let(:fixture) { File.expand_path("../../fixtures/encoding_test_iso.rb", __FILE__) }
|
17
|
+
|
18
|
+
it 'falls back to git' do
|
19
|
+
expect(File).to receive(:open).and_raise(EncodingError)
|
20
|
+
expect(subject.blob_id).to eq('eb82c22dadb9c47a7fed87211623f6856e112f46')
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/spec/lib/formatter_spec.rb
CHANGED
@@ -137,15 +137,5 @@ module CodeClimate::TestReporter
|
|
137
137
|
end
|
138
138
|
end
|
139
139
|
end
|
140
|
-
|
141
|
-
describe "#calculate_blob_id" do
|
142
|
-
it "forces UTF-8 as encoding for the file content" do
|
143
|
-
blob_id = formatter.calculate_blob_id(File.expand_path("../../fixtures/encoding_test_iso.rb", __FILE__))
|
144
|
-
expect(blob_id).to_not be_nil
|
145
|
-
|
146
|
-
blob_id = formatter.calculate_blob_id(File.expand_path("../../fixtures/encoding_test.rb", __FILE__))
|
147
|
-
expect(blob_id).to_not be_nil
|
148
|
-
end
|
149
|
-
end
|
150
140
|
end
|
151
141
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codeclimate-test-reporter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bryan Helmkamp
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: simplecov
|
@@ -120,6 +120,7 @@ files:
|
|
120
120
|
- codeclimate-test-reporter.gemspec
|
121
121
|
- config/cacert.pem
|
122
122
|
- lib/code_climate/test_reporter.rb
|
123
|
+
- lib/code_climate/test_reporter/calculate_blob.rb
|
123
124
|
- lib/code_climate/test_reporter/ci.rb
|
124
125
|
- lib/code_climate/test_reporter/client.rb
|
125
126
|
- lib/code_climate/test_reporter/configuration.rb
|
@@ -131,6 +132,7 @@ files:
|
|
131
132
|
- lib/codeclimate-test-reporter.rb
|
132
133
|
- spec/fixtures/encoding_test.rb
|
133
134
|
- spec/fixtures/encoding_test_iso.rb
|
135
|
+
- spec/lib/calculate_blob_spec.rb
|
134
136
|
- spec/lib/ci_spec.rb
|
135
137
|
- spec/lib/configuration_spec.rb
|
136
138
|
- spec/lib/formatter_spec.rb
|
@@ -150,7 +152,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
150
152
|
requirements:
|
151
153
|
- - ">="
|
152
154
|
- !ruby/object:Gem::Version
|
153
|
-
version: '
|
155
|
+
version: '1.9'
|
154
156
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
155
157
|
requirements:
|
156
158
|
- - ">="
|
@@ -165,6 +167,7 @@ summary: Uploads Ruby test coverage data to Code Climate.
|
|
165
167
|
test_files:
|
166
168
|
- spec/fixtures/encoding_test.rb
|
167
169
|
- spec/fixtures/encoding_test_iso.rb
|
170
|
+
- spec/lib/calculate_blob_spec.rb
|
168
171
|
- spec/lib/ci_spec.rb
|
169
172
|
- spec/lib/configuration_spec.rb
|
170
173
|
- spec/lib/formatter_spec.rb
|
@@ -172,3 +175,4 @@ test_files:
|
|
172
175
|
- spec/lib/payload_validator_spec.rb
|
173
176
|
- spec/lib/test_reporter_spec.rb
|
174
177
|
- spec/spec_helper.rb
|
178
|
+
has_rdoc:
|