statsd-instrument 2.6.0 → 2.7.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +79 -9
  3. data/benchmark/datagram-client +0 -1
  4. data/benchmark/send-metrics-to-dev-null-log +0 -1
  5. data/lib/statsd/instrument.rb +66 -292
  6. data/lib/statsd/instrument/assertions.rb +83 -93
  7. data/lib/statsd/instrument/client.rb +2 -2
  8. data/lib/statsd/instrument/datagram.rb +12 -3
  9. data/lib/statsd/instrument/environment.rb +9 -3
  10. data/lib/statsd/instrument/expectation.rb +93 -0
  11. data/lib/statsd/instrument/helpers.rb +29 -11
  12. data/lib/statsd/instrument/legacy_client.rb +301 -0
  13. data/lib/statsd/instrument/metric.rb +8 -8
  14. data/lib/statsd/instrument/rubocop.rb +18 -0
  15. data/lib/statsd/instrument/rubocop/singleton_configuration.rb +53 -0
  16. data/lib/statsd/instrument/version.rb +1 -1
  17. data/test/assertions_on_legacy_client_test.rb +376 -0
  18. data/test/assertions_test.rb +105 -39
  19. data/test/capture_sink_test.rb +0 -2
  20. data/test/client_test.rb +0 -2
  21. data/test/compatibility/dogstatsd_datagram_compatibility_test.rb +0 -1
  22. data/test/datagram_builder_test.rb +1 -3
  23. data/test/datagram_test.rb +14 -0
  24. data/test/dogstatsd_datagram_builder_test.rb +0 -2
  25. data/test/environment_test.rb +1 -1
  26. data/test/helpers_test.rb +17 -0
  27. data/test/log_sink_test.rb +0 -2
  28. data/test/logger_backend_test.rb +2 -2
  29. data/test/metric_test.rb +2 -2
  30. data/test/null_sink_test.rb +0 -2
  31. data/test/rubocop/singleton_configuration_test.rb +43 -0
  32. data/test/statsd_datagram_builder_test.rb +0 -2
  33. data/test/statsd_instrumentation_test.rb +4 -6
  34. data/test/statsd_test.rb +1 -1
  35. data/test/test_helper.rb +0 -2
  36. data/test/udp_backend_test.rb +1 -1
  37. data/test/udp_sink_test.rb +0 -2
  38. metadata +11 -3
  39. data/lib/statsd/instrument/metric_expectation.rb +0 -82
@@ -4,11 +4,19 @@ require 'test_helper'
4
4
 
5
5
  class AssertionsTest < Minitest::Test
6
6
  def setup
7
+ @old_client = StatsD.singleton_client
8
+ env = StatsD::Instrument::Environment.new('STATSD_IMPLEMENTATION' => 'datadog')
9
+ StatsD.singleton_client = env.default_client
10
+
7
11
  test_class = Class.new(Minitest::Test)
8
12
  test_class.send(:include, StatsD::Instrument::Assertions)
9
13
  @test_case = test_class.new('fake')
10
14
  end
11
15
 
16
+ def teardown
17
+ StatsD.singleton_client = @old_client
18
+ end
19
+
12
20
  def test_assert_no_statsd_calls
13
21
  @test_case.assert_no_statsd_calls('counter') do
14
22
  # noop
@@ -41,7 +49,7 @@ class AssertionsTest < Minitest::Test
41
49
  assert_equal assertion.message, "No StatsD calls for metric other, another expected."
42
50
  end
43
51
 
44
- def test_assert_statsd_call
52
+ def test_assert_statsd
45
53
  @test_case.assert_statsd_increment('counter') do
46
54
  StatsD.increment('counter')
47
55
  end
@@ -130,6 +138,46 @@ class AssertionsTest < Minitest::Test
130
138
  end
131
139
  end
132
140
 
141
+ def test_assert_statsd_gauge_call_with_numeric_value
142
+ @test_case.assert_statsd_gauge('gauge', value: 42) do
143
+ StatsD.gauge('gauge', 42)
144
+ end
145
+
146
+ @test_case.assert_statsd_gauge('gauge', value: '42') do
147
+ StatsD.gauge('gauge', 42)
148
+ end
149
+
150
+ assert_raises(Minitest::Assertion) do
151
+ @test_case.assert_statsd_gauge('gauge', value: 42) do
152
+ StatsD.gauge('gauge', 45)
153
+ end
154
+ end
155
+ end
156
+
157
+ def test_assert_statsd_set_call_with_string_value
158
+ @test_case.assert_statsd_set('set', value: 12345) do
159
+ StatsD.set('set', '12345')
160
+ end
161
+
162
+ @test_case.assert_statsd_set('set', value: '12345') do
163
+ StatsD.set('set', '12345')
164
+ end
165
+
166
+ @test_case.assert_statsd_set('set', value: 12345) do
167
+ StatsD.set('set', 12345)
168
+ end
169
+
170
+ @test_case.assert_statsd_set('set', value: '12345') do
171
+ StatsD.set('set', 12345)
172
+ end
173
+
174
+ assert_raises(Minitest::Assertion) do
175
+ @test_case.assert_statsd_set('set', value: '42') do
176
+ StatsD.set('set', 45)
177
+ end
178
+ end
179
+ end
180
+
133
181
  def test_tags_will_match_subsets
134
182
  @test_case.assert_statsd_increment('counter', sample_rate: 0.5, tags: { a: 1 }) do
135
183
  StatsD.increment('counter', sample_rate: 0.5, tags: { a: 1, b: 2 })
@@ -153,60 +201,89 @@ class AssertionsTest < Minitest::Test
153
201
  assert_includes assertion.message, "MyJob"
154
202
  end
155
203
 
156
- def test_multiple_metrics_are_not_order_dependent
157
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:1'])
158
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
159
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
204
+ def test_capture_and_assert
205
+ datagrams = @test_case.capture_statsd_datagrams do
206
+ StatsD.increment('counter', tags: { foo: 1 })
207
+ StatsD.increment('counter', tags: { foo: 2 })
208
+ end
209
+
210
+ @test_case.assert_statsd_increment('counter', tags: ['foo:1'], datagrams: datagrams)
211
+ @test_case.assert_statsd_increment('counter', tags: ['foo:2'], datagrams: datagrams)
212
+ end
213
+
214
+ def test_capture_from_different_client
215
+ client = StatsD::Instrument::Client.new
216
+ @test_case.assert_statsd_increment('foo', client: client) do
217
+ client.increment('foo')
218
+ end
219
+
220
+ assert_raises(Minitest::Assertion) do
221
+ @test_case.assert_statsd_increment('foo', client: client) do
222
+ StatsD.increment('foo')
223
+ end
224
+ end
225
+
226
+ assert_raises(Minitest::Assertion) do
227
+ @test_case.assert_statsd_increment('foo') do
228
+ client.increment('foo')
229
+ end
230
+ end
231
+ end
232
+
233
+ def test_multiple_expectations_are_not_order_dependent
234
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:1'])
235
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
236
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
160
237
  StatsD.increment('counter', tags: { foo: 1 })
161
238
  StatsD.increment('counter', tags: { foo: 2 })
162
239
  end
163
240
 
164
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:1'])
165
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
166
- @test_case.assert_statsd_calls([foo_2_metric, foo_1_metric]) do
241
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:1'])
242
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
243
+ @test_case.assert_statsd_expectations([foo_2_metric, foo_1_metric]) do
167
244
  StatsD.increment('counter', tags: { foo: 1 })
168
245
  StatsD.increment('counter', tags: { foo: 2 })
169
246
  end
170
247
 
171
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
172
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
173
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
248
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
249
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
250
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
174
251
  StatsD.increment('counter', tags: { foo: 1 })
175
252
  StatsD.increment('counter', tags: { foo: 1 })
176
253
  StatsD.increment('counter', tags: { foo: 2 })
177
254
  end
178
255
 
179
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
180
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
181
- @test_case.assert_statsd_calls([foo_2_metric, foo_1_metric]) do
256
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
257
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
258
+ @test_case.assert_statsd_expectations([foo_2_metric, foo_1_metric]) do
182
259
  StatsD.increment('counter', tags: { foo: 1 })
183
260
  StatsD.increment('counter', tags: { foo: 1 })
184
261
  StatsD.increment('counter', tags: { foo: 2 })
185
262
  end
186
263
 
187
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
188
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
189
- @test_case.assert_statsd_calls([foo_2_metric, foo_1_metric]) do
264
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
265
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
266
+ @test_case.assert_statsd_expectations([foo_2_metric, foo_1_metric]) do
190
267
  StatsD.increment('counter', tags: { foo: 1 })
191
268
  StatsD.increment('counter', tags: { foo: 2 })
192
269
  StatsD.increment('counter', tags: { foo: 1 })
193
270
  end
194
271
  end
195
272
 
196
- def test_assert_multiple_statsd_calls
273
+ def test_assert_multiple_statsd_expectations
197
274
  assert_raises(Minitest::Assertion) do
198
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
199
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
200
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
275
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
276
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
277
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
201
278
  StatsD.increment('counter', tags: { foo: 1 })
202
279
  StatsD.increment('counter', tags: { foo: 2 })
203
280
  end
204
281
  end
205
282
 
206
283
  assert_raises(Minitest::Assertion) do
207
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
208
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
209
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
284
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
285
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
286
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
210
287
  StatsD.increment('counter', tags: { foo: 1 })
211
288
  StatsD.increment('counter', tags: { foo: 1 })
212
289
  StatsD.increment('counter', tags: { foo: 2 })
@@ -214,16 +291,16 @@ class AssertionsTest < Minitest::Test
214
291
  end
215
292
  end
216
293
 
217
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
218
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
219
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
294
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
295
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
296
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
220
297
  StatsD.increment('counter', tags: { foo: 1 })
221
298
  StatsD.increment('counter', tags: { foo: 1 })
222
299
  StatsD.increment('counter', tags: { foo: 2 })
223
300
  end
224
301
  end
225
302
 
226
- def test_assert_statsd_call_with_tags
303
+ def test_assert_statsd_increment_with_tags
227
304
  @test_case.assert_statsd_increment('counter', tags: ['a:b', 'c:d']) do
228
305
  StatsD.increment('counter', tags: { a: 'b', c: 'd' })
229
306
  end
@@ -233,17 +310,6 @@ class AssertionsTest < Minitest::Test
233
310
  end
234
311
  end
235
312
 
236
- def test_assert_statsd_call_with_wrong_sample_rate_type
237
- skip("In Strict mode, the StatsD.increment call will raise") if StatsD::Instrument.strict_mode_enabled?
238
-
239
- assertion = assert_raises(Minitest::Assertion) do
240
- @test_case.assert_statsd_increment('counter', tags: ['a', 'b']) do
241
- StatsD.increment('counter', sample_rate: 'abc', tags: ['a', 'b'])
242
- end
243
- end
244
- assert_equal "Unexpected sample rate type for metric counter, must be numeric", assertion.message
245
- end
246
-
247
313
  def test_nested_assertions
248
314
  @test_case.assert_statsd_increment('counter1') do
249
315
  @test_case.assert_statsd_increment('counter2') do
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class CaptureSinktest < Minitest::Test
8
6
  def test_capture_sink_captures_datagram_instances
9
7
  capture_sink = StatsD::Instrument::CaptureSink.new(parent: [])
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class ClientTest < Minitest::Test
8
6
  def setup
9
7
  @client = StatsD::Instrument::Client.new(datagram_builder_class: StatsD::Instrument::StatsDDatagramBuilder)
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'test_helper'
4
- require 'statsd/instrument/client'
5
4
 
6
5
  module Compatibility
7
6
  class DogStatsDDatagramCompatibilityTest < Minitest::Test
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class DatagramBuilderTest < Minitest::Test
8
6
  def setup
9
7
  @datagram_builder = StatsD::Instrument::DatagramBuilder.new
@@ -17,7 +15,7 @@ class DatagramBuilderTest < Minitest::Test
17
15
  end
18
16
 
19
17
  def test_normalize_unsupported_tag_names
20
- assert_equal ['ignored'], @datagram_builder.send(:normalize_tags, ['igno|re,d'])
18
+ assert_equal ['ign#ored'], @datagram_builder.send(:normalize_tags, ['ign#o|re,d'])
21
19
  # Note: how this is interpreted by the backend is undefined.
22
20
  # We rely on the user to not do stuff like this if they don't want to be surprised.
23
21
  # We do not want to take the performance hit of normaling this.
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class DatagramTest < Minitest::Test
6
+ def test_parsing_datagrams
7
+ datagram = 'Kernel.Orders.order_creation_path:1|c|' \
8
+ '#order_source:web,code_source:NilController#NilAction,order_builder:false,' \
9
+ 'multi_currency:false,fulfillment_orders_beta_enabled:false'
10
+
11
+ parsed = StatsD::Instrument::Datagram.new(datagram)
12
+ assert_includes parsed.tags, 'code_source:NilController#NilAction'
13
+ end
14
+ end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class DogStatsDDatagramBuilderTest < Minitest::Test
8
6
  def setup
9
7
  @datagram_builder = StatsD::Instrument::DogStatsDDatagramBuilder.new
@@ -103,7 +103,7 @@ class EnvironmentTest < Minitest::Test
103
103
  def test_default_client_has_sensible_defaults
104
104
  env = StatsD::Instrument::Environment.new('STATSD_ENV' => 'production')
105
105
 
106
- assert_equal StatsD::Instrument::StatsDDatagramBuilder, env.default_client.datagram_builder_class
106
+ assert_equal StatsD::Instrument::DogStatsDDatagramBuilder, env.default_client.datagram_builder_class
107
107
  assert_equal 'localhost', env.default_client.sink.host
108
108
  assert_equal 8125, env.default_client.sink.port
109
109
  assert_equal 1.0, env.default_client.default_sample_rate
@@ -22,4 +22,21 @@ class HelpersTest < Minitest::Test
22
22
  assert_equal 'gauge', metrics[1].name
23
23
  assert_equal 12, metrics[1].value
24
24
  end
25
+
26
+ def test_capture_metrics_with_new_client
27
+ @old_client = StatsD.singleton_client
28
+ StatsD.singleton_client = StatsD.client
29
+
30
+ StatsD.increment('counter')
31
+ metrics = @test_case.capture_statsd_datagrams do
32
+ StatsD.increment('counter')
33
+ StatsD.gauge('gauge', 12)
34
+ end
35
+ StatsD.gauge('gauge', 15)
36
+
37
+ assert_equal 2, metrics.length
38
+
39
+ ensure
40
+ StatsD.singleton_client = @old_client
41
+ end
25
42
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class LogSinktest < Minitest::Test
8
6
  def test_log_sink
9
7
  logger = Logger.new(log = StringIO.new)
@@ -15,8 +15,8 @@ class LoggerBackendTest < Minitest::Test
15
15
  @backend.collect_metric(@metric1)
16
16
  @backend.collect_metric(@metric2)
17
17
  assert_equal <<~LOG, @io.string
18
- [StatsD] increment mock.counter:1 #a:b #c:d
19
- [StatsD] measure mock.measure:123 @0.3
18
+ [StatsD] mock.counter:1|c|#a:b,c:d
19
+ [StatsD] mock.measure:123|ms|@0.3
20
20
  LOG
21
21
  end
22
22
  end
@@ -36,11 +36,11 @@ class MetricTest < Minitest::Test
36
36
  end
37
37
 
38
38
  def test_default_tags
39
- StatsD.stubs(:default_tags).returns(['default_tag:default_value'])
39
+ StatsD.legacy_singleton_client.stubs(:default_tags).returns(['default_tag:default_value'])
40
40
  m = StatsD::Instrument::Metric.new(type: :c, name: 'counter', tags: { tag: 'value' })
41
41
  assert_equal ['tag:value', 'default_tag:default_value'], m.tags
42
42
 
43
- StatsD.stubs(:default_tags).returns(['tag:value'])
43
+ StatsD.legacy_singleton_client.stubs(:default_tags).returns(['tag:value'])
44
44
  m = StatsD::Instrument::Metric.new(type: :c, name: 'counter', tags: { tag: 'value' })
45
45
  assert_equal ['tag:value', 'tag:value'], m.tags # we don't care about duplicates
46
46
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class NullSinktest < Minitest::Test
8
6
  def test_null_sink
9
7
  null_sink = StatsD::Instrument::NullSink.new
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ require 'statsd/instrument/rubocop'
5
+
6
+ module Rubocop
7
+ class SingletonConfigurationTest < Minitest::Test
8
+ include RubocopHelper
9
+
10
+ def setup
11
+ @cop = RuboCop::Cop::StatsD::SingletonConfiguration.new
12
+ end
13
+
14
+ def test_offense_statsd_backend
15
+ assert_offense('StatsD.backend = "foo"')
16
+ assert_offense('old_backend = StatsD.backend')
17
+ end
18
+
19
+ def test_offense_statsd_prefix
20
+ assert_offense('StatsD.prefix = "foo"')
21
+ assert_offense('"#{StatsD.prefix}.foo"')
22
+ end
23
+
24
+ def test_offense_statsd_default_tags
25
+ assert_offense('StatsD.default_tags = ["foo"]')
26
+ assert_offense('StatsD.default_tags.empty?')
27
+ end
28
+
29
+ def test_offense_statsd_default_sample_rate
30
+ assert_offense('StatsD.default_sample_rate = 1.0')
31
+ assert_offense('should_sample = StatsD.default_sample_rate > rand')
32
+ end
33
+
34
+ def test_no_offense_for_other_methods
35
+ assert_no_offenses('StatsD.singleton_client = my_client')
36
+ assert_no_offenses('StatsD.logger.info("foo")')
37
+ end
38
+
39
+ def test_no_offense_for_constant_reference
40
+ assert_no_offenses('legacy_client = StatsD')
41
+ end
42
+ end
43
+ end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class StatsDDatagramBuilderTest < Minitest::Test
8
6
  def setup
9
7
  @datagram_builder = StatsD::Instrument::StatsDDatagramBuilder.new
@@ -221,11 +221,10 @@ class StatsDInstrumentationTest < Minitest::Test
221
221
  ActiveMerchant::UniqueGateway.statsd_remove_measure :ssl_post, 'ActiveMerchant::Gateway.ssl_post'
222
222
  end
223
223
 
224
- def test_statsd_measure_yells_without_block
225
- err = assert_raises(ArgumentError) do
224
+ def test_statsd_measure_raises_without_a_provided_block
225
+ assert_raises(LocalJumpError) do
226
226
  assert_statsd_measure('ActiveMerchant.Gateway.ssl_post')
227
227
  end
228
- assert_equal "block must be given", err.to_s
229
228
  end
230
229
 
231
230
  def test_statsd_measure_with_method_receiving_block
@@ -268,11 +267,10 @@ class StatsDInstrumentationTest < Minitest::Test
268
267
  ActiveMerchant::UniqueGateway.statsd_remove_distribution :ssl_post, 'ActiveMerchant::Gateway.ssl_post'
269
268
  end
270
269
 
271
- def test_statsd_distribution_yells_without_block
272
- err = assert_raises(ArgumentError) do
270
+ def test_statsd_distribution_raises_without_a_provided_block
271
+ assert_raises(LocalJumpError) do
273
272
  assert_statsd_distribution('ActiveMerchant.Gateway.ssl_post')
274
273
  end
275
- assert_equal "block must be given", err.to_s
276
274
  end
277
275
 
278
276
  def test_statsd_distribution_with_method_receiving_block