coverband 1.5.4 → 2.0.0.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.travis.yml +3 -0
  4. data/Gemfile +2 -1
  5. data/Rakefile +5 -3
  6. data/coverband.gemspec +27 -23
  7. data/lib/coverband.rb +10 -14
  8. data/lib/coverband/adapters/file_store.rb +6 -7
  9. data/lib/coverband/adapters/memory_cache_store.rb +8 -5
  10. data/lib/coverband/adapters/redis_store.rb +10 -50
  11. data/lib/coverband/baseline.rb +5 -5
  12. data/lib/coverband/collectors/base.rb +140 -0
  13. data/lib/coverband/collectors/coverage.rb +148 -0
  14. data/lib/coverband/collectors/trace.rb +100 -0
  15. data/lib/coverband/configuration.rb +8 -10
  16. data/lib/coverband/middleware.rb +5 -5
  17. data/lib/coverband/reporters/base.rb +26 -31
  18. data/lib/coverband/reporters/console_report.rb +2 -3
  19. data/lib/coverband/reporters/simple_cov_report.rb +5 -6
  20. data/lib/coverband/s3_report_writer.rb +7 -8
  21. data/lib/coverband/s3_web.rb +3 -5
  22. data/lib/coverband/tasks.rb +23 -26
  23. data/lib/coverband/version.rb +3 -1
  24. data/test/benchmarks/benchmark.rake +38 -32
  25. data/test/benchmarks/dog.rb +3 -3
  26. data/test/fake_app/basic_rack.rb +4 -2
  27. data/test/test_helper.rb +17 -11
  28. data/test/unit/adapters_file_store_test.rb +12 -11
  29. data/test/unit/adapters_memory_cache_store_test.rb +3 -4
  30. data/test/unit/adapters_redis_store_test.rb +42 -118
  31. data/test/unit/baseline_test.rb +17 -20
  32. data/test/unit/collectors_base_test.rb +96 -0
  33. data/test/unit/collectors_coverage_test.rb +137 -0
  34. data/test/unit/collectors_trace_test.rb +96 -0
  35. data/test/unit/configuration_test.rb +8 -8
  36. data/test/unit/dog.rb +3 -1
  37. data/test/unit/middleware_test.rb +70 -61
  38. data/test/unit/reports_base_test.rb +62 -62
  39. data/test/unit/reports_console_test.rb +18 -21
  40. data/test/unit/reports_simple_cov_test.rb +23 -26
  41. data/test/unit/s3_report_writer_test.rb +6 -8
  42. data/test/unit/s3_web_test.rb +2 -1
  43. metadata +45 -25
  44. data/lib/coverband/base.rb +0 -210
  45. data/test/unit/base_test.rb +0 -100
@@ -0,0 +1,96 @@
1
+ # frozen_string_literal: true
2
+
3
+ require File.expand_path('../test_helper', File.dirname(__FILE__))
4
+ require File.expand_path('./dog', File.dirname(__FILE__))
5
+
6
+ class CollectorsTraceTest < Test::Unit::TestCase
7
+ test 'defaults to a redis store' do
8
+ coverband = Coverband::Collectors::Base.instance.reset_instance
9
+ assert_equal Coverband::Adapters::RedisStore, coverband.instance_variable_get('@store').class
10
+ end
11
+
12
+ test 'configure memory caching' do
13
+ Coverband.configuration.memory_caching = true
14
+ coverband = Coverband::Collectors::Base.instance.reset_instance
15
+ assert_equal Coverband::Adapters::MemoryCacheStore, coverband.instance_variable_get('@store').class
16
+ Coverband.configuration.memory_caching = false
17
+ end
18
+
19
+ test 'start should enable coverage' do
20
+ coverband = Coverband::Collectors::Base.instance.reset_instance
21
+ assert_equal false, coverband.instance_variable_get('@enabled')
22
+ coverband.expects(:record_coverage).once
23
+ coverband.start
24
+ assert_equal true, coverband.instance_variable_get('@enabled')
25
+ end
26
+
27
+ test 'stop should disable coverage' do
28
+ coverband = Coverband::Collectors::Base.instance.reset_instance
29
+ assert_equal false, coverband.instance_variable_get('@enabled')
30
+ coverband.expects(:record_coverage).once
31
+ coverband.start
32
+ assert_equal true, coverband.instance_variable_get('@enabled')
33
+ coverband.stop
34
+ assert_equal false, coverband.instance_variable_get('@enabled')
35
+ assert_equal false, coverband.instance_variable_get('@tracer_set')
36
+ end
37
+
38
+ test 'allow for sampling with a block and enable when 100 percent sample' do
39
+ logger = Logger.new(STDOUT)
40
+ coverband = Coverband::Collectors::Base.instance.reset_instance
41
+ coverband.instance_variable_set('@sample_percentage', 100.0)
42
+ coverband.instance_variable_set('@verbose', true)
43
+ coverband.instance_variable_set('@logger', logger)
44
+ coverband.instance_variable_set('@store', nil)
45
+ assert_equal false, coverband.instance_variable_get('@enabled')
46
+ logger.expects(:info).at_least_once
47
+ coverband.sample { 1 + 1 }
48
+ assert_equal true, coverband.instance_variable_get('@enabled')
49
+ end
50
+
51
+ test 'allow reporting with start stop save' do
52
+ logger = Logger.new(STDOUT)
53
+ coverband = Coverband::Collectors::Base.instance.reset_instance
54
+ coverband.instance_variable_set('@sample_percentage', 100.0)
55
+ coverband.instance_variable_set('@verbose', true)
56
+ coverband.instance_variable_set('@logger', logger)
57
+ coverband.instance_variable_set('@store', nil)
58
+ assert_equal false, coverband.instance_variable_get('@enabled')
59
+ logger.expects(:info).at_least_once
60
+ coverband.start
61
+ logger.info(1 + 1)
62
+ coverband.stop
63
+ coverband.save
64
+ end
65
+
66
+ test 'allow reporting to redis start stop save' do
67
+ dog_file = File.expand_path('./dog.rb', File.dirname(__FILE__))
68
+ coverband = Coverband::Collectors::Base.instance.reset_instance
69
+ coverband.instance_variable_set('@sample_percentage', 100.0)
70
+ coverband.instance_variable_set('@verbose', true)
71
+ Coverband.configuration.logger.stubs('info')
72
+ store = Coverband::Adapters::RedisStore.new(Redis.new)
73
+ coverband.instance_variable_set('@store', store)
74
+ store.expects(:save_report).once.with(has_entries(dog_file => { 5 => 5 }))
75
+ assert_equal false, coverband.instance_variable_get('@enabled')
76
+ coverband.start
77
+ 5.times { Dog.new.bark }
78
+ coverband.stop
79
+ coverband.save
80
+ end
81
+
82
+ test 'tracer should count line numbers' do
83
+ dog_file = File.expand_path('./dog.rb', File.dirname(__FILE__))
84
+ coverband = Coverband::Collectors::Base.instance.reset_instance
85
+ coverband.start
86
+ 100.times { Dog.new.bark }
87
+ assert_equal 100, coverband.instance_variable_get('@file_line_usage')[dog_file][5]
88
+ coverband.stop
89
+ coverband.save
90
+ end
91
+
92
+ test 'sample should return the result of the block' do
93
+ coverband = Coverband::Collectors::Base.instance.reset_instance
94
+ assert_equal 2, coverband.sample { 1 + 1 }
95
+ end
96
+ end
@@ -1,21 +1,21 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.expand_path('../test_helper', File.dirname(__FILE__))
2
4
 
3
5
  class BaseTest < Test::Unit::TestCase
4
-
5
- test "defaults to line trace point event" do
6
+ test 'defaults to line trace point event' do
6
7
  assert_equal Coverband.configuration.trace_point_events, [:line]
7
8
  end
8
9
 
9
- test "defaults to ignore gems" do
10
+ test 'defaults to ignore gems' do
10
11
  assert_equal Coverband.configuration.include_gems, false
11
- coverband = Coverband::Base.instance.reset_instance
12
- assert_equal ['vendor', 'internal:prelude', 'schema.rb', 'gems'], coverband.instance_variable_get("@ignore_patterns")
12
+ coverband = Coverband::Collectors::Base.instance.reset_instance
13
+ assert_equal ['vendor', 'internal:prelude', 'schema.rb', 'gems'], coverband.instance_variable_get('@ignore_patterns')
13
14
  end
14
15
 
15
16
  test "doesn't ignore gems if include_gems = true" do
16
17
  Coverband.configuration.include_gems = true
17
- coverband = Coverband::Base.instance.reset_instance
18
- assert_equal ['vendor', 'internal:prelude', 'schema.rb'], coverband.instance_variable_get("@ignore_patterns")
18
+ coverband = Coverband::Collectors::Base.instance.reset_instance
19
+ assert_equal ['vendor', 'internal:prelude', 'schema.rb'], coverband.instance_variable_get('@ignore_patterns')
19
20
  end
20
-
21
21
  end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Dog
2
4
  def bark
3
- "woof"
5
+ 'woof'
4
6
  end
5
7
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.expand_path('../test_helper', File.dirname(__FILE__))
2
4
  require File.expand_path('../fake_app/basic_rack', File.dirname(__FILE__))
3
5
  require 'rack'
@@ -5,128 +7,135 @@ require 'rack'
5
7
  class MiddlewareTest < Test::Unit::TestCase
6
8
  BASE_KEY = Coverband::Adapters::RedisStore::BASE_KEY
7
9
 
8
- test "call app" do
9
- request = Rack::MockRequest.env_for("/anything.json")
10
- Coverband::Base.instance.reset_instance
10
+ test 'call app' do
11
+ request = Rack::MockRequest.env_for('/anything.json')
12
+ Coverband::Collectors::Base.instance.reset_instance
11
13
  middleware = Coverband::Middleware.new(fake_app)
12
14
  results = middleware.call(request)
13
- assert_equal "/anything.json", results.last
15
+ assert_equal '/anything.json', results.last
14
16
  end
15
17
 
16
18
  test 'pass all rack lint checks' do
17
- Coverband::Base.instance.reset_instance
19
+ Coverband::Collectors::Base.instance.reset_instance
18
20
  app = Rack::Lint.new(Coverband::Middleware.new(fake_app))
19
21
  env = Rack::MockRequest.env_for('/hello')
20
22
  app.call(env)
21
23
  end
22
24
 
23
25
  test 'always be enabled with sample percentage of 100' do
24
- request = Rack::MockRequest.env_for("/anything.json")
25
- Coverband::Base.instance.reset_instance
26
+ request = Rack::MockRequest.env_for('/anything.json')
27
+ Coverband::Collectors::Base.instance.reset_instance
26
28
  middleware = Coverband::Middleware.new(fake_app)
27
- assert_equal false, Coverband::Base.instance.instance_variable_get("@enabled")
28
- Coverband::Base.instance.instance_variable_set("@sample_percentage", 100.0)
29
- results = middleware.call(request)
30
- assert_equal true, Coverband::Base.instance.instance_variable_get("@enabled")
29
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
30
+ Coverband::Collectors::Base.instance.instance_variable_set('@sample_percentage', 100.0)
31
+ middleware.call(request)
32
+ assert_equal true, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
31
33
  end
32
34
 
33
35
  test 'never be enabled with sample percentage of 0' do
34
- request = Rack::MockRequest.env_for("/anything.json")
35
- Coverband::Base.instance.reset_instance
36
+ request = Rack::MockRequest.env_for('/anything.json')
37
+ Coverband::Collectors::Base.instance.reset_instance
36
38
  middleware = Coverband::Middleware.new(fake_app)
37
- assert_equal false, Coverband::Base.instance.instance_variable_get("@enabled")
38
- Coverband::Base.instance.instance_variable_set("@sample_percentage", 0.0)
39
- results = middleware.call(request)
40
- assert_equal false, Coverband::Base.instance.instance_variable_get("@enabled")
39
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
40
+ Coverband::Collectors::Base.instance.instance_variable_set('@sample_percentage', 0.0)
41
+ middleware.call(request)
42
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
41
43
  end
42
44
 
43
45
  test 'always unset function when sampling' do
44
- request = Rack::MockRequest.env_for("/anything.json")
45
- Coverband::Base.instance.reset_instance
46
+ request = Rack::MockRequest.env_for('/anything.json')
47
+ Coverband::Collectors::Base.instance.reset_instance
46
48
  middleware = Coverband::Middleware.new(fake_app)
47
- assert_equal false, Coverband::Base.instance.instance_variable_get("@tracer_set")
48
- Coverband::Base.instance.instance_variable_set("@sample_percentage", 100.0)
49
- results = middleware.call(request)
50
- assert_equal false, Coverband::Base.instance.instance_variable_get("@tracer_set")
49
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@tracer_set')
50
+ Coverband::Collectors::Base.instance.instance_variable_set('@sample_percentage', 100.0)
51
+ middleware.call(request)
52
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@tracer_set')
51
53
  end
52
54
 
53
55
  test 'always unset function when not sampling' do
54
- request = Rack::MockRequest.env_for("/anything.json")
55
- Coverband::Base.instance.reset_instance
56
+ request = Rack::MockRequest.env_for('/anything.json')
57
+ Coverband::Collectors::Base.instance.reset_instance
56
58
  middleware = Coverband::Middleware.new(fake_app)
57
- assert_equal false, Coverband::Base.instance.instance_variable_get("@tracer_set")
58
- middleware.instance_variable_set("@sample_percentage", 0.0)
59
- results = middleware.call(request)
60
- assert_equal false, Coverband::Base.instance.instance_variable_get("@tracer_set")
59
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@tracer_set')
60
+ middleware.instance_variable_set('@sample_percentage', 0.0)
61
+ middleware.call(request)
62
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@tracer_set')
61
63
  end
62
64
 
63
65
  test 'always record coverage, set trace func, and add_files when sampling' do
64
- request = Rack::MockRequest.env_for("/anything.json")
65
- Coverband::Base.instance.reset_instance
66
+ request = Rack::MockRequest.env_for('/anything.json')
67
+ Coverband::Collectors::Base.instance.reset_instance
66
68
  middleware = Coverband::Middleware.new(fake_app)
67
- assert_equal false, Coverband::Base.instance.instance_variable_get("@enabled")
68
- Coverband::Base.instance.instance_variable_set("@sample_percentage", 100.0)
69
- results = middleware.call(request)
70
- assert_equal true, Coverband::Base.instance.instance_variable_get("@enabled")
69
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
70
+ Coverband::Collectors::Base.instance.instance_variable_set('@sample_percentage', 100.0)
71
+ middleware.call(request)
72
+ assert_equal true, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
71
73
  end
72
74
 
73
75
  test 'reports coverage when an error is raised' do
74
- request = Rack::MockRequest.env_for("/anything.json")
75
- Coverband::Base.instance.reset_instance
76
- Coverband::Base.instance.expects(:report_coverage).once
76
+ request = Rack::MockRequest.env_for('/anything.json')
77
+ Coverband::Collectors::Base.instance.reset_instance
78
+ Coverband::Collectors::Base.instance.expects(:report_coverage).once
77
79
  middleware = Coverband::Middleware.new(fake_app_raise_error)
78
- middleware.call(request) rescue nil
80
+ begin
81
+ middleware.call(request)
82
+ rescue StandardError
83
+ nil
84
+ end
79
85
  end
80
86
 
81
87
  test 'always report coverage when sampling' do
82
- request = Rack::MockRequest.env_for("/anything.json")
83
- Coverband::Base.instance.reset_instance
88
+ request = Rack::MockRequest.env_for('/anything.json')
89
+ Coverband::Collectors::Base.instance.reset_instance
84
90
  middleware = Coverband::Middleware.new(fake_app_with_lines)
85
- assert_equal false, Coverband::Base.instance.instance_variable_get("@enabled")
86
- Coverband::Base.instance.instance_variable_set("@sample_percentage", 100.0)
91
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
92
+ Coverband::Collectors::Base.instance.instance_variable_set('@sample_percentage', 100.0)
87
93
  fake_redis = Redis.new
88
- Coverband::Base.instance.instance_variable_set("@store", Coverband::Adapters::RedisStore.new(fake_redis))
89
- fake_redis.stubs(:info).returns({'redis_version' => 3.0})
94
+ redis_store = Coverband::Adapters::RedisStore.new(fake_redis)
95
+ redis_store.clear!
96
+ Coverband::Collectors::Base.instance.instance_variable_set('@store', redis_store)
97
+ fake_redis.stubs(:info).returns('redis_version' => 3.0)
90
98
  fake_redis.expects(:sadd).at_least_once
91
99
  fake_redis.expects(:mapped_hmset).at_least_once
92
- fake_redis.expects(:mapped_hmset).at_least_once.with("#{BASE_KEY}.#{basic_rack_ruby_file}", {'5' => 1})
93
- results = middleware.call(request)
94
- assert_equal true, Coverband::Base.instance.instance_variable_get("@enabled")
100
+ fake_redis.expects(:mapped_hmset).at_least_once.with("#{BASE_KEY}.#{basic_rack_ruby_file}", '7' => 1)
101
+ middleware.call(request)
102
+ assert_equal true, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
95
103
  end
96
104
 
97
105
  test 'report only on calls when configured' do
98
- request = Rack::MockRequest.env_for("/anything.json")
106
+ request = Rack::MockRequest.env_for('/anything.json')
99
107
  Coverband.configuration.trace_point_events = [:call]
100
- Coverband::Base.instance.reset_instance
108
+ Coverband::Collectors::Base.instance.reset_instance
101
109
  middleware = Coverband::Middleware.new(fake_app_with_lines)
102
- assert_equal false, Coverband::Base.instance.instance_variable_get("@enabled")
103
- Coverband::Base.instance.instance_variable_set("@sample_percentage", 100.0)
110
+ assert_equal false, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
111
+ Coverband::Collectors::Base.instance.instance_variable_set('@sample_percentage', 100.0)
104
112
  fake_redis = Redis.new
105
- Coverband::Base.instance.instance_variable_set("@store", Coverband::Adapters::RedisStore.new(fake_redis))
106
- fake_redis.stubs(:info).returns({'redis_version' => 3.0})
113
+ redis_store = Coverband::Adapters::RedisStore.new(fake_redis)
114
+ redis_store.clear!
115
+ Coverband::Collectors::Base.instance.instance_variable_set('@store', redis_store)
116
+ fake_redis.stubs(:info).returns('redis_version' => 3.0)
107
117
  fake_redis.expects(:sadd).at_least_once
108
118
  fake_redis.expects(:mapped_hmset).at_least_once
109
- fake_redis.expects(:mapped_hmset).at_least_once.with("#{BASE_KEY}.#{basic_rack_ruby_file}", {'4'=>1})
110
- results = middleware.call(request)
111
- assert_equal true, Coverband::Base.instance.instance_variable_get("@enabled")
119
+ fake_redis.expects(:mapped_hmset).at_least_once.with("#{BASE_KEY}.#{basic_rack_ruby_file}", '6' => 1)
120
+ middleware.call(request)
121
+ assert_equal true, Coverband::Collectors::Base.instance.instance_variable_get('@enabled')
112
122
  end
113
123
 
114
124
  private
115
125
 
116
126
  def fake_app
117
- @app ||= lambda { |env| [200, {'Content-Type' => 'text/plain'}, env['PATH_INFO']] }
127
+ @fake_app ||= ->(env) { [200, { 'Content-Type' => 'text/plain' }, env['PATH_INFO']] }
118
128
  end
119
129
 
120
130
  def fake_app_raise_error
121
- @fake_app_raise_error ||= lambda { raise "sh** happens" }
131
+ @fake_app_raise_error ||= -> { raise 'sh** happens' }
122
132
  end
123
133
 
124
134
  def fake_app_with_lines
125
- @lines_app ||= ::HelloWorld.new
135
+ @fake_app_with_lines ||= ::HelloWorld.new
126
136
  end
127
137
 
128
138
  def basic_rack_ruby_file
129
139
  File.expand_path('../fake_app/basic_rack.rb', File.dirname(__FILE__))
130
140
  end
131
-
132
141
  end
@@ -1,64 +1,65 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require File.expand_path('../test_helper', File.dirname(__FILE__))
2
4
 
3
5
  class ReportsBaseTest < Test::Unit::TestCase
4
-
5
- test "filename_from_key fix filename from a key with a swappable path" do
6
+ test 'filename_from_key fix filename from a key with a swappable path' do
6
7
  Coverband.configure do |config|
7
8
  config.reporter = 'std_out'
8
9
  config.root = '/full/remote_app/path'
9
10
  end
10
11
 
11
- key = "/app/is/a/path.rb"
12
- #the code takes config.root expands and adds a '/' for the final path in roots
13
- roots = ["/app/", '/full/remote_app/path/']
12
+ key = '/app/is/a/path.rb'
13
+ # the code takes config.root expands and adds a '/' for the final path in roots
14
+ roots = ['/app/', '/full/remote_app/path/']
14
15
 
15
- assert_equal "/full/remote_app/path/is/a/path.rb", Coverband::Reporters::Base.filename_from_key(key, roots)
16
+ assert_equal '/full/remote_app/path/is/a/path.rb', Coverband::Reporters::Base.filename_from_key(key, roots)
16
17
  end
17
18
 
18
- test "filename_from_key fix filename a changing deploy path with double quotes" do
19
+ test 'filename_from_key fix filename a changing deploy path with double quotes' do
19
20
  Coverband.configure do |config|
20
21
  config.reporter = 'std_out'
21
22
  config.root = '/full/remote_app/path'
22
23
  end
23
24
 
24
- key = "/box/apps/app_name/releases/20140725203539/app/models/user.rb"
25
+ key = '/box/apps/app_name/releases/20140725203539/app/models/user.rb'
25
26
  # the code takes config.root expands and adds a '/' for the final path in roots
26
27
  # note to get regex to work for changing deploy directories it must be double escaped in double quotes or use single qoutes
27
- roots = ["/box/apps/app_name/releases/\\d+/", '/full/remote_app/path/']
28
+ roots = ['/box/apps/app_name/releases/\\d+/', '/full/remote_app/path/']
28
29
 
29
- assert_equal "/full/remote_app/path/app/models/user.rb", Coverband::Reporters::Base.filename_from_key(key, roots)
30
+ assert_equal '/full/remote_app/path/app/models/user.rb', Coverband::Reporters::Base.filename_from_key(key, roots)
30
31
  end
31
32
 
32
- test "filename_from_key fix filename a changing deploy path with single quotes" do
33
+ test 'filename_from_key fix filename a changing deploy path with single quotes' do
33
34
  Coverband.configure do |config|
34
35
  config.reporter = 'std_out'
35
36
  config.root = '/full/remote_app/path'
36
37
  end
37
38
 
38
- key = "/box/apps/app_name/releases/20140725203539/app/models/user.rb"
39
+ key = '/box/apps/app_name/releases/20140725203539/app/models/user.rb'
39
40
  # the code takes config.root expands and adds a '/' for the final path in roots
40
41
  # note to get regex to work for changing deploy directories it must be double escaped in double quotes or use single qoutes
41
42
  roots = ['/box/apps/app_name/releases/\d+/', '/full/remote_app/path/']
42
43
 
43
- assert_equal "/full/remote_app/path/app/models/user.rb", Coverband::Reporters::Base.filename_from_key(key, roots)
44
+ assert_equal '/full/remote_app/path/app/models/user.rb', Coverband::Reporters::Base.filename_from_key(key, roots)
44
45
  end
45
46
 
46
- test "filename_from_key leave filename from a key with a local path" do
47
+ test 'filename_from_key leave filename from a key with a local path' do
47
48
  Coverband.configure do |config|
48
49
  config.reporter = 'std_out'
49
50
  config.root = '/full/remote_app/path'
50
51
  end
51
52
 
52
- key = "/full/remote_app/path/is/a/path.rb"
53
- #the code takes config.root expands and adds a '/' for the final path in roots
54
- roots = ["/app/", '/full/remote_app/path/']
53
+ key = '/full/remote_app/path/is/a/path.rb'
54
+ # the code takes config.root expands and adds a '/' for the final path in roots
55
+ roots = ['/app/', '/full/remote_app/path/']
55
56
 
56
- assert_equal "/full/remote_app/path/is/a/path.rb", Coverband::Reporters::Base.filename_from_key(key, roots)
57
+ assert_equal '/full/remote_app/path/is/a/path.rb', Coverband::Reporters::Base.filename_from_key(key, roots)
57
58
  end
58
59
 
59
- test "line_hash gets correct hash entry for a line key" do
60
+ test 'line_hash gets correct hash entry for a line key' do
60
61
  @fake_redis = fake_redis
61
- store = Coverband::Adapters::RedisStore.new(@fake_redis, array: true)
62
+ store = Coverband::Adapters::RedisStore.new(@fake_redis)
62
63
 
63
64
  Coverband.configure do |config|
64
65
  config.redis = @fake_redis
@@ -66,23 +67,23 @@ class ReportsBaseTest < Test::Unit::TestCase
66
67
  config.root = '/full/remote_app/path'
67
68
  end
68
69
 
69
- key = "/full/remote_app/path/is/a/path.rb"
70
- #the code takes config.root expands and adds a '/'
71
- roots = ["/app/", '/full/remote_app/path/']
72
-
73
- lines_hit = ['1','3','6']
74
- @fake_redis.stubs(:smembers).returns(lines_hit)
75
- #expects to show hit counts on 1,3,6
76
- expected = {"/full/remote_app/path/is/a/path.rb" => [1,nil,1,nil,nil,1]}
77
- File.stubs(:exists?).returns(true)
78
- File.stubs(:foreach).returns(['line 1','line2','line3','line4','line5','line6'])
79
-
70
+ key = '/full/remote_app/path/is/a/path.rb'
71
+ # the code takes config.root expands and adds a '/'
72
+ roots = ['/app/', '/full/remote_app/path/']
73
+
74
+ lines_hit = [1, 3, 6]
75
+ store.stubs(:covered_lines_for_file).returns(lines_hit)
76
+ # expects to show hit counts on 1,3,6
77
+ expected = { '/full/remote_app/path/is/a/path.rb' => [1, nil, 1, nil, nil, 1] }
78
+ File.stubs(:exist?).returns(true)
79
+ File.stubs(:foreach).returns(['line 1', 'line2', 'line3', 'line4', 'line5', 'line6'])
80
+
80
81
  assert_equal expected, Coverband::Reporters::Base.line_hash(store, key, roots)
81
82
  end
82
83
 
83
- test "line_hash adjusts relative paths" do
84
+ test 'line_hash adjusts relative paths' do
84
85
  @fake_redis = fake_redis
85
- store = Coverband::Adapters::RedisStore.new(@fake_redis, array: true)
86
+ store = Coverband::Adapters::RedisStore.new(@fake_redis)
86
87
 
87
88
  Coverband.configure do |config|
88
89
  config.redis = @fake_redis
@@ -90,51 +91,50 @@ class ReportsBaseTest < Test::Unit::TestCase
90
91
  config.root = '/full/remote_app/path'
91
92
  end
92
93
 
93
- key = "./is/a/path.rb"
94
- #the code takes config.root expands and adds a '/'
95
- roots = ["/app/", '/full/remote_app/path/']
96
-
97
- lines_hit = ['1','3','6']
98
- @fake_redis.stubs(:smembers).returns(lines_hit)
99
- #expects to show hit counts on 1,3,6
100
- expected = {"/full/remote_app/path/is/a/path.rb" => [1,nil,1,nil,nil,1]}
101
- File.stubs(:exists?).returns(true)
102
- File.stubs(:foreach).returns(['line 1','line2','line3','line4','line5','line6'])
103
-
94
+ key = './is/a/path.rb'
95
+ # the code takes config.root expands and adds a '/'
96
+ roots = ['/app/', '/full/remote_app/path/']
97
+
98
+ lines_hit = [1, 3, 6]
99
+ store.stubs(:covered_lines_for_file).returns(lines_hit)
100
+ # expects to show hit counts on 1,3,6
101
+ expected = { '/full/remote_app/path/is/a/path.rb' => [1, nil, 1, nil, nil, 1] }
102
+ File.stubs(:exist?).returns(true)
103
+ File.stubs(:foreach).returns(['line 1', 'line2', 'line3', 'line4', 'line5', 'line6'])
104
+
104
105
  assert_equal expected, Coverband::Reporters::Base.line_hash(store, key, roots)
105
106
  end
106
107
 
107
- test "#merge_arrays basic merge preserves order and counts" do
108
- first = [0,0,1,0,1]
109
- second = [nil,0,1,0,0]
110
- expects = [0,0,2,0,1]
108
+ test '#merge_arrays basic merge preserves order and counts' do
109
+ first = [0, 0, 1, 0, 1]
110
+ second = [nil, 0, 1, 0, 0]
111
+ expects = [0, 0, 2, 0, 1]
111
112
 
112
113
  assert_equal expects, Coverband::Reporters::Base.merge_arrays(first, second)
113
114
  end
114
115
 
115
- test "#merge_arrays basic merge preserves order and counts different lengths" do
116
- first = [0,0,1,0,1]
117
- second = [nil,0,1,0,0,0,0,1]
118
- expects = [0,0,2,0,1,0,0,1]
116
+ test '#merge_arrays basic merge preserves order and counts different lengths' do
117
+ first = [0, 0, 1, 0, 1]
118
+ second = [nil, 0, 1, 0, 0, 0, 0, 1]
119
+ expects = [0, 0, 2, 0, 1, 0, 0, 1]
119
120
 
120
121
  assert_equal expects, Coverband::Reporters::Base.merge_arrays(first, second)
121
122
  end
122
123
 
123
- test "#merge_existing_coverage basic merge preserves order and counts different lengths" do
124
- first = {"file.rb" => [0,1,2,nil,nil,nil]}
125
- second = {"file.rb" => [0,1,2,nil,0,1,2]}
126
- expects = {"file.rb" => [0,2,4,nil,0,1,2]}
124
+ test '#merge_existing_coverage basic merge preserves order and counts different lengths' do
125
+ first = { 'file.rb' => [0, 1, 2, nil, nil, nil] }
126
+ second = { 'file.rb' => [0, 1, 2, nil, 0, 1, 2] }
127
+ expects = { 'file.rb' => [0, 2, 4, nil, 0, 1, 2] }
127
128
 
128
129
  assert_equal expects, Coverband::Reporters::Base.merge_existing_coverage(first, second)
129
130
  end
130
131
 
131
- test "#merge_existing_coverage mismatched" do
132
- first = {"file.rb" => [0,1,2,nil,nil,nil]}
133
- second = {"diff.rb" => [0,1,2,nil,0,1,2]}
134
- expects = {"file.rb" => [0,1,2,nil,nil,nil],
135
- "diff.rb" => [0,1,2,nil,0,1,2]}
132
+ test '#merge_existing_coverage mismatched' do
133
+ first = { 'file.rb' => [0, 1, 2, nil, nil, nil] }
134
+ second = { 'diff.rb' => [0, 1, 2, nil, 0, 1, 2] }
135
+ expects = { 'file.rb' => [0, 1, 2, nil, nil, nil],
136
+ 'diff.rb' => [0, 1, 2, nil, 0, 1, 2] }
136
137
 
137
138
  assert_equal expects, Coverband::Reporters::Base.merge_existing_coverage(first, second)
138
139
  end
139
-
140
140
  end