opentelemetry-instrumentation-rspec 0.1.0 → 0.2.0

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 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
  - - ">="