opentelemetry-instrumentation-rspec 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e51cdff28bf6029108f2cc5c48ceca7127a97e35e243e7d7dac2a7b7de91ad37
4
- data.tar.gz: '0459ef8871da363d80523e8ee392adbef5b953d0e8b07d5665d32aa8ba999ccf'
3
+ metadata.gz: 346fa1787fdfa19148d696aa2d05ebc01cd26886d93940dfc7116ef0b8b19d1f
4
+ data.tar.gz: 24fdfaabd072e31e881bff0cc2fc0fa40bf1fa6c0128b58afd756fd543ad441e
5
5
  SHA512:
6
- metadata.gz: 64429ca47726f0427b36a5da874e87ae3bd003f358ba6e16f8ccd6e2ed7843a6087f5b2072858e84fccd2c9ab31266458a82a8eb47fa5286527bdff2da3ff091
7
- data.tar.gz: 957feb5be38106f9038eb6d0a4f9bbb0dd9a5d5b9dc073e003140c259c4a19981715110fbed84e356f43bce57cda44520ad5840b694a5391c407309c5eb0dcb6
6
+ metadata.gz: 741275cf545231874fbad316b6ce6a84f1e73f6666bc2f884afd56d73c18ea75a4e742cf86d931882634edcf881a2f301ded56ed3de32ca00f088d3d7e6e3fd3
7
+ data.tar.gz: 9a8be568f83f3364e5bab24c92ab363348769e1517dcd59cca2b4b35bebe6c35cfa9c7400229938abf812a88096b0d15ff3649caf860b94317e7b0cad2378b80
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Release History: opentelemetry-instrumentation-rspec
2
2
 
3
+ ### v0.2.0 / 2022-06-09
4
+
5
+ * Upgrading Base dependency version
6
+ * FIXED: Strip console codes from RSpec messages and better handle multiple failures
7
+ * FIXED: Broken test file requirements
8
+
3
9
  ### v0.1.0 / 2021-12-01
4
10
 
5
11
  * Initial release.
@@ -72,11 +72,25 @@ module OpenTelemetry
72
72
 
73
73
  span.set_attribute('rspec.example.result', result.status.to_s)
74
74
 
75
- if (exception = result.exception)
76
- span.record_exception(exception)
77
- span.set_attribute('rspec.example.failure_message', exception.message) if exception.is_a? ::RSpec::Expectations::ExpectationNotMetError
78
- span.status = OpenTelemetry::Trace::Status.error(exception.message)
75
+ add_exception_and_failures(span, result.exception)
76
+ end
77
+ end
78
+
79
+ def add_exception_and_failures(span, exception)
80
+ return if exception.nil?
81
+
82
+ exception_message = strip_console_codes(exception.message)
83
+ span.status = OpenTelemetry::Trace::Status.error(exception_message)
84
+
85
+ span.set_attribute('rspec.example.failure_message', exception_message) if exception.is_a? ::RSpec::Expectations::ExpectationNotMetError
86
+
87
+ if exception.is_a? ::RSpec::Core::MultipleExceptionError
88
+ exception.all_exceptions.each do |error|
89
+ record_stripped_exception(span, error)
79
90
  end
91
+ span.set_attribute('rspec.example.failure_message', multiple_failure_message(exception)) if exception.failures.any?
92
+ else
93
+ span.record_exception(exception, attributes: { 'exception.message' => exception_message })
80
94
  end
81
95
  end
82
96
 
@@ -96,6 +110,19 @@ module OpenTelemetry
96
110
  span.finish(end_timestamp: current_timestamp)
97
111
  OpenTelemetry::Context.detach(token)
98
112
  end
113
+
114
+ def record_stripped_exception(span, error)
115
+ error_message = strip_console_codes(error.message)
116
+ span.record_exception(error, attributes: { 'exception.message' => error_message })
117
+ end
118
+
119
+ def strip_console_codes(string)
120
+ string.gsub(/\e\[([;\d]+)?m/, '')
121
+ end
122
+
123
+ def multiple_failure_message(exception)
124
+ exception.failures.map(&:message).map(&method(:strip_console_codes)).join("\n\n")
125
+ end
99
126
  end
100
127
  end
101
128
  end
@@ -7,7 +7,7 @@
7
7
  module OpenTelemetry
8
8
  module Instrumentation
9
9
  module RSpec
10
- VERSION = '0.1.0'
10
+ VERSION = '0.2.0'
11
11
  end
12
12
  end
13
13
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opentelemetry-instrumentation-rspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenTelemetry Authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-01 00:00:00.000000000 Z
11
+ date: 2022-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: opentelemetry-api
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.19.0
33
+ version: 0.21.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.19.0
40
+ version: 0.21.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: appraisal
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: opentelemetry-test-helpers
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: rake
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - "~>"
109
123
  - !ruby/object:Gem::Version
110
124
  version: 12.3.3
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 3.10.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 3.10.0
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: rubocop
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -199,10 +227,10 @@ homepage: https://github.com/open-telemetry/opentelemetry-ruby
199
227
  licenses:
200
228
  - Apache-2.0
201
229
  metadata:
202
- changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-rspec/v0.1.0/file.CHANGELOG.html
230
+ changelog_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-rspec/v0.2.0/file.CHANGELOG.html
203
231
  source_code_uri: https://github.com/open-telemetry/opentelemetry-ruby/tree/main/instrumentation/rspec
204
232
  bug_tracker_uri: https://github.com/open-telemetry/opentelemetry-ruby/issues
205
- documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-rspec/v0.1.0
233
+ documentation_uri: https://open-telemetry.github.io/opentelemetry-ruby/opentelemetry-instrumentation-rspec/v0.2.0
206
234
  post_install_message:
207
235
  rdoc_options: []
208
236
  require_paths:
@@ -211,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
211
239
  requirements:
212
240
  - - ">="
213
241
  - !ruby/object:Gem::Version
214
- version: 2.5.0
242
+ version: 2.6.0
215
243
  required_rubygems_version: !ruby/object:Gem::Requirement
216
244
  requirements:
217
245
  - - ">="