exception_handling 2.9.0 → 2.10.0.pre.1

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: 98d4a360c553e3d8505ddf0d0de7d4028416f3e1bd62f513b9848dfa95de7cf3
4
- data.tar.gz: 4e4ee581d5fb7f4490b1db162ba49113eee07b748a32f0854a53801633156a73
3
+ metadata.gz: c5c1447aa42d931a3c1536f82ca2f9ed8131736d993eb663cbb1b48b14450839
4
+ data.tar.gz: b62e05ededb07b0b0eb9cb40187c5fb98ae1bf57c6a94577174be6161c011199
5
5
  SHA512:
6
- metadata.gz: f6b7f7e6d8ccd286e97aec2bc28833a041108a3b16043dfe437f688bbdf45a034c5b3f407ccffa06d26bfe949e7e1aa164747ea4e797fac4ace4f2dc7fce9c34
7
- data.tar.gz: fea43abeaf0400f78a975037c5e881b9a41e07b20b934fda5ac7bf35b59ca652daee4ccaa1503abafe818ad3b741edc1ec1a3665ce32e7fdc15ee91f1bb1afb4
6
+ metadata.gz: 2bb9077980b89d4535e53447b18e0cdf7d188e497c48e1d51db30a22ad31474d6b006f64023e12003775d21633960a5a99420f48ffeea783a3c219976f3570c3
7
+ data.tar.gz: 4c0e1c5712b3250255808d49faf9c4af26e78cd218a45b720fae552edf104366d168deb4ce86732910e46082bf4539c3d42978a1fd07d49ab6bbb0045b1a1cc8
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: Pipeline
3
+ on: [push]
4
+ jobs:
5
+ tests:
6
+ name: Unit Tests
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ fail-fast: false
10
+ matrix:
11
+ ruby: [2.5, 2.6]
12
+ gemfile:
13
+ - Gemfile
14
+ - gemfiles/rails_4.gemfile
15
+ - gemfiles/rails_5.gemfile
16
+ - gemfiles/rails_6.gemfile
17
+ env:
18
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
19
+ steps:
20
+ - uses: actions/checkout@v2
21
+ - uses: ruby/setup-ruby@v1
22
+ with:
23
+ ruby-version: ${{ matrix.ruby }}
24
+ bundler: 1.17.3
25
+ bundler-cache: true
26
+ - name: Unit tests
27
+ run: bundle exec rspec
data/CHANGELOG.md CHANGED
@@ -4,6 +4,14 @@ Inspired by [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
5
  Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
+ ## [2.10.0] - Unreleased
8
+ ### Removed
9
+ - Remove custom object inspection
10
+ This removed Honeybadger-specific callbacks (`lib/exception_handling/honeybadger_callbacks.rb`)
11
+
12
+ ### Deprecated
13
+ - Deprecated use of Honeybadger fork
14
+
7
15
  ## [2.9.0] - 2020-03-02
8
16
  ### Added
9
17
  - Automatically registers with the `escalate` gem's `on_escalate` callback.
data/Gemfile CHANGED
@@ -2,12 +2,17 @@
2
2
 
3
3
  source 'https://rubygems.org'
4
4
 
5
+ git_source(:github) do |repo_name|
6
+ repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
7
+ "https://github.com/#{repo_name}.git"
8
+ end
9
+
5
10
  gemspec
6
11
 
7
12
  gem 'actionmailer', '< 6.1'
8
13
  gem 'activesupport', '< 6.1'
9
14
  gem 'appraisal', '~> 2.2'
10
- gem 'honeybadger', '3.3.1-1', git: 'git@github.com:Invoca/honeybadger-ruby', ref: 'bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6'
15
+ gem 'honeybadger'
11
16
  gem 'pry'
12
17
  gem 'pry-byebug'
13
18
  gem 'rake'
data/Gemfile.lock CHANGED
@@ -1,19 +1,12 @@
1
- GIT
2
- remote: git@github.com:Invoca/honeybadger-ruby
3
- revision: bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6
4
- ref: bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6
5
- specs:
6
- honeybadger (3.3.1.pre.1)
7
-
8
1
  PATH
9
2
  remote: .
10
3
  specs:
11
- exception_handling (2.9.0)
4
+ exception_handling (2.10.0.pre.1)
12
5
  actionmailer (>= 4.2, < 7.0)
13
6
  actionpack (>= 4.2, < 7.0)
14
7
  activesupport (>= 4.2, < 7.0)
15
8
  contextual_logger (~> 0.7)
16
- escalate (~> 0.2)
9
+ escalate (~> 0.3)
17
10
  eventmachine (~> 1.0)
18
11
  invoca-utils (~> 0.3)
19
12
 
@@ -63,16 +56,16 @@ GEM
63
56
  crass (1.0.6)
64
57
  diff-lcs (1.4.4)
65
58
  erubi (1.10.0)
66
- escalate (0.2.0)
67
- activesupport
59
+ escalate (0.3.0)
68
60
  eventmachine (1.2.7)
69
61
  globalid (0.4.2)
70
62
  activesupport (>= 4.2.0)
63
+ honeybadger (4.11.0)
71
64
  i18n (1.8.9)
72
65
  concurrent-ruby (~> 1.0)
73
66
  invoca-utils (0.4.1)
74
67
  jaro_winkler (1.5.3)
75
- json (2.5.1)
68
+ json (2.6.1)
76
69
  loofah (2.9.0)
77
70
  crass (~> 1.0.2)
78
71
  nokogiri (>= 1.5.9)
@@ -146,7 +139,7 @@ DEPENDENCIES
146
139
  activesupport (< 6.1)
147
140
  appraisal (~> 2.2)
148
141
  exception_handling!
149
- honeybadger (= 3.3.1.pre.1)!
142
+ honeybadger
150
143
  pry
151
144
  pry-byebug
152
145
  rake
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.add_dependency 'actionpack', '>= 4.2', '< 7.0'
25
25
  spec.add_dependency 'activesupport', '>= 4.2', '< 7.0'
26
26
  spec.add_dependency 'contextual_logger', '~> 0.7'
27
- spec.add_dependency 'escalate', '~> 0.2'
27
+ spec.add_dependency 'escalate', '~> 0.3'
28
28
  spec.add_dependency 'eventmachine', '~> 1.0'
29
29
  spec.add_dependency 'invoca-utils', '~> 0.3'
30
30
  end
@@ -5,8 +5,7 @@ source "https://rubygems.org"
5
5
  gem "actionmailer", "~> 4.2"
6
6
  gem "activesupport", "~> 4.2"
7
7
  gem "appraisal", "~> 2.2"
8
- gem "escalate", "0.2.0.pre.1"
9
- gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
8
+ gem "honeybadger"
10
9
  gem "pry"
11
10
  gem "pry-byebug"
12
11
  gem "rake"
@@ -5,8 +5,7 @@ source "https://rubygems.org"
5
5
  gem "actionmailer", "~> 5.2"
6
6
  gem "activesupport", "~> 5.2"
7
7
  gem "appraisal", "~> 2.2"
8
- gem "escalate", "0.2.0.pre.1"
9
- gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
8
+ gem "honeybadger"
10
9
  gem "pry"
11
10
  gem "pry-byebug"
12
11
  gem "rake"
@@ -5,8 +5,7 @@ source "https://rubygems.org"
5
5
  gem "actionmailer", "~> 6.0"
6
6
  gem "activesupport", "~> 6.0"
7
7
  gem "appraisal", "~> 2.2"
8
- gem "escalate", "0.2.0.pre.1"
9
- gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
8
+ gem "honeybadger"
10
9
  gem "pry"
11
10
  gem "pry-byebug"
12
11
  gem "rake"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExceptionHandling
4
- VERSION = '2.9.0'
4
+ VERSION = '2.10.0.pre.1'
5
5
  end
@@ -14,7 +14,6 @@ require 'exception_handling/log_stub_error'
14
14
  require 'exception_handling/exception_description'
15
15
  require 'exception_handling/exception_catalog'
16
16
  require 'exception_handling/exception_info'
17
- require 'exception_handling/honeybadger_callbacks'
18
17
  require 'exception_handling/escalate_callback'
19
18
 
20
19
  _ = ActiveSupport::HashWithIndifferentAccess
@@ -47,7 +47,7 @@ module ExceptionHandling
47
47
  expect(logger).to_not receive(:fatal)
48
48
  expect(ExceptionHandling).to receive(:log_error).with(exception, location_message, context_hash)
49
49
 
50
- TestGem.escalate(exception, location_message, context_hash)
50
+ TestGem.escalate(exception, location_message, context: context_hash)
51
51
  end
52
52
  end
53
53
 
@@ -73,7 +73,7 @@ module ExceptionHandling
73
73
  expect(logger).to_not receive(:fatal)
74
74
  expect(ExceptionHandling).to receive(:log_error).with(exception, location_message, context_hash)
75
75
 
76
- TestGem.escalate(exception, location_message, context_hash)
76
+ TestGem.escalate(exception, location_message, context: context_hash)
77
77
  end
78
78
  end
79
79
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: exception_handling
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.0
4
+ version: 2.10.0.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Invoca
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-02 00:00:00.000000000 Z
11
+ date: 2022-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -90,14 +90,14 @@ dependencies:
90
90
  requirements:
91
91
  - - "~>"
92
92
  - !ruby/object:Gem::Version
93
- version: '0.2'
93
+ version: '0.3'
94
94
  type: :runtime
95
95
  prerelease: false
96
96
  version_requirements: !ruby/object:Gem::Requirement
97
97
  requirements:
98
98
  - - "~>"
99
99
  - !ruby/object:Gem::Version
100
- version: '0.2'
100
+ version: '0.3'
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: eventmachine
103
103
  requirement: !ruby/object:Gem::Requirement
@@ -133,9 +133,8 @@ executables: []
133
133
  extensions: []
134
134
  extra_rdoc_files: []
135
135
  files:
136
+ - ".github/workflows/pipeline.yml"
136
137
  - ".gitignore"
137
- - ".jenkins/Jenkinsfile"
138
- - ".jenkins/ruby_build_pod.yml"
139
138
  - ".rspec"
140
139
  - ".rubocop.yml"
141
140
  - ".ruby-version"
@@ -148,7 +147,6 @@ files:
148
147
  - Rakefile
149
148
  - config/exception_filters.yml
150
149
  - exception_handling.gemspec
151
- - gemfiles/.bundle/config
152
150
  - gemfiles/rails_4.gemfile
153
151
  - gemfiles/rails_5.gemfile
154
152
  - gemfiles/rails_6.gemfile
@@ -157,7 +155,6 @@ files:
157
155
  - lib/exception_handling/exception_catalog.rb
158
156
  - lib/exception_handling/exception_description.rb
159
157
  - lib/exception_handling/exception_info.rb
160
- - lib/exception_handling/honeybadger_callbacks.rb
161
158
  - lib/exception_handling/log_stub_error.rb
162
159
  - lib/exception_handling/logging_methods.rb
163
160
  - lib/exception_handling/mailer.rb
@@ -173,7 +170,6 @@ files:
173
170
  - spec/unit/exception_handling/exception_catalog_spec.rb
174
171
  - spec/unit/exception_handling/exception_description_spec.rb
175
172
  - spec/unit/exception_handling/exception_info_spec.rb
176
- - spec/unit/exception_handling/honeybadger_callbacks_spec.rb
177
173
  - spec/unit/exception_handling/log_error_stub_spec.rb
178
174
  - spec/unit/exception_handling/logging_methods_spec.rb
179
175
  - spec/unit/exception_handling/mailer_spec.rb
@@ -188,7 +184,7 @@ licenses: []
188
184
  metadata:
189
185
  source_code_uri: https://github.com/Invoca/exception_handling
190
186
  allowed_push_host: https://rubygems.org
191
- post_install_message:
187
+ post_install_message:
192
188
  rdoc_options: []
193
189
  require_paths:
194
190
  - lib
@@ -199,12 +195,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
199
195
  version: '0'
200
196
  required_rubygems_version: !ruby/object:Gem::Requirement
201
197
  requirements:
202
- - - ">="
198
+ - - ">"
203
199
  - !ruby/object:Gem::Version
204
- version: '0'
200
+ version: 1.3.1
205
201
  requirements: []
206
202
  rubygems_version: 3.0.3
207
- signing_key:
203
+ signing_key:
208
204
  specification_version: 4
209
205
  summary: Invoca's exception handling logger/emailer layer, based on exception_notifier.
210
206
  Works with Rails or EventMachine or EventMachine+Synchrony.
@@ -217,7 +213,6 @@ test_files:
217
213
  - spec/unit/exception_handling/exception_catalog_spec.rb
218
214
  - spec/unit/exception_handling/exception_description_spec.rb
219
215
  - spec/unit/exception_handling/exception_info_spec.rb
220
- - spec/unit/exception_handling/honeybadger_callbacks_spec.rb
221
216
  - spec/unit/exception_handling/log_error_stub_spec.rb
222
217
  - spec/unit/exception_handling/logging_methods_spec.rb
223
218
  - spec/unit/exception_handling/mailer_spec.rb
data/.jenkins/Jenkinsfile DELETED
@@ -1,113 +0,0 @@
1
- #!/usr/bin/groovy
2
- @Library('jenkins-pipeline@v0.4.5')
3
- import com.invoca.docker.*;
4
- pipeline {
5
- agent {
6
- kubernetes {
7
- defaultContainer "ruby"
8
- yamlFile ".jenkins/ruby_build_pod.yml"
9
- }
10
- }
11
-
12
- environment {
13
- GITHUB_TOKEN = credentials('github_token')
14
- GITHUB_KEY = credentials('github_key')
15
- BUNDLE_GEM__FURY__IO = credentials('gemfury_deploy_token')
16
- }
17
-
18
- stages {
19
- stage('Setup') {
20
- steps {
21
- script {
22
- updateGitHubStatus('clean-build', 'pending', 'Unit tests.')
23
- sh '''
24
- # get SSH setup inside the container
25
- eval `ssh-agent -s`
26
- echo "$GITHUB_KEY" | ssh-add -
27
- mkdir -p /root/.ssh
28
- ssh-keyscan -t rsa github.com > /root/.ssh/known_hosts
29
-
30
- bundle install
31
- bundle exec appraisal install
32
- '''
33
- }
34
- }
35
- }
36
- stage('Appraisals') {
37
- parallel {
38
- stage('Current') {
39
- environment {
40
- JUNIT_OUTPUT = 'spec/reports/current'
41
- }
42
-
43
- steps {
44
- sh "bundle exec rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
45
- }
46
-
47
- post {
48
- always { junit "${JUNIT_OUTPUT}/*.xml" }
49
- }
50
- }
51
-
52
- stage('Rails 4') {
53
- environment {
54
- JUNIT_OUTPUT = 'spec/reports/rails-4'
55
- }
56
-
57
- steps {
58
- sh "bundle exec appraisal rails-4 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
59
- }
60
-
61
- post {
62
- always { junit "${JUNIT_OUTPUT}/*.xml" }
63
- }
64
- }
65
-
66
- stage('Rails 5') {
67
- environment {
68
- JUNIT_OUTPUT = 'spec/reports/rails-5'
69
- }
70
-
71
- steps {
72
- sh "bundle exec appraisal rails-5 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
73
- }
74
-
75
- post {
76
- always { junit "${JUNIT_OUTPUT}/*.xml" }
77
- }
78
- }
79
-
80
- stage('Rails 6') {
81
- environment {
82
- JUNIT_OUTPUT = 'spec/reports/rails-6'
83
- }
84
-
85
- steps {
86
- sh "bundle exec appraisal rails-6 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
87
- }
88
-
89
- post {
90
- always { junit "${JUNIT_OUTPUT}/*.xml" }
91
- }
92
- }
93
- }
94
-
95
- post {
96
- success { updateGitHubStatus('clean-build', 'success', 'Unit tests.') }
97
- failure { updateGitHubStatus('clean-build', 'failure', 'Unit tests.') }
98
- }
99
- }
100
- }
101
- }
102
-
103
- void updateGitHubStatus(String context, String status, String description) {
104
- gitHubStatus([
105
- repoSlug: 'Invoca/exception_handling',
106
- sha: env.GIT_COMMIT,
107
- description: description,
108
- context: context,
109
- targetURL: env.RUN_DISPLAY_URL,
110
- token: env.GITHUB_TOKEN,
111
- status: status
112
- ])
113
- }
@@ -1,18 +0,0 @@
1
- ---
2
- apiVersion: v1
3
- kind: Pod
4
- metadata:
5
- labels:
6
- jenkins/exception-handling: 'true'
7
- namespace: jenkins
8
- name: exception-handling
9
- spec:
10
- containers:
11
- - name: ruby
12
- image: ruby:2.6.5
13
- tty: true
14
- resources:
15
- requests:
16
- memory: "100Mi"
17
- command:
18
- - cat
@@ -1,2 +0,0 @@
1
- ---
2
- BUNDLE_RETRY: "1"
@@ -1,59 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module ExceptionHandling
4
- module HoneybadgerCallbacks
5
- class << self
6
- def register_callbacks
7
- if ExceptionHandling.honeybadger_defined?
8
- Honeybadger.local_variable_filter(&method(:local_variable_filter))
9
- end
10
- end
11
-
12
- private
13
-
14
- def inspect_object(object, filter_keys)
15
- inspection_output = object.inspect
16
-
17
- if contains_filter_key?(filter_keys, inspection_output)
18
- filtered_object(object)
19
- else
20
- inspection_output
21
- end
22
- rescue => ex
23
- details = if object.respond_to?(:to_pk)
24
- " @pk=#{object.to_pk}"
25
- elsif object.respond_to?(:id)
26
- " @id=#{object.id}"
27
- end
28
-
29
- "#<#{object.class.name}#{details} [error '#{ex.class.name}: #{ex.message}' while calling #inspect]>"
30
- end
31
-
32
- def local_variable_filter(_symbol, object, filter_keys)
33
- case object
34
- # Honeybadger will filter these data types for us
35
- when String, Hash, Array, Set, Numeric, TrueClass, FalseClass, NilClass
36
- object
37
- else # handle other Ruby objects, intended for POROs
38
- inspect_object(object, filter_keys)
39
- end
40
- end
41
-
42
- def contains_filter_key?(filter_keys, string)
43
- filter_keys&.any? { |key| string.include?(key) }
44
- end
45
-
46
- def filtered_object(object)
47
- # make the output look similar to inspect
48
- # use [FILTERED], just like honeybadger does
49
- if object.respond_to?(:to_pk)
50
- "#<#{object.class.name} @pk=#{object.to_pk}, [FILTERED]>"
51
- elsif object.respond_to?(:id)
52
- "#<#{object.class.name} @id=#{object.id}, [FILTERED]>"
53
- else
54
- "#<#{object.class.name} [FILTERED]>"
55
- end
56
- end
57
- end
58
- end
59
- end
@@ -1,122 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require File.expand_path('../../spec_helper', __dir__)
4
-
5
- module ExceptionHandling
6
- describe HoneybadgerCallbacks do
7
-
8
- class TestPoroWithAttribute
9
- attr_reader :test_attribute
10
-
11
- def initialize
12
- @test_attribute = 'test'
13
- end
14
- end
15
-
16
- class TestPoroWithFilteredAttribute
17
- attr_reader :password
18
-
19
- def initialize
20
- @password = 'secret'
21
- end
22
- end
23
-
24
- class TestPoroWithFilteredAttributeAndId < TestPoroWithFilteredAttribute
25
- attr_reader :id
26
-
27
- def initialize
28
- super
29
- @id = 1
30
- end
31
- end
32
-
33
- class TestPoroWithFilteredAttributePkAndId < TestPoroWithFilteredAttributeAndId
34
- def to_pk
35
- 'TestPoroWithFilteredAttributePkAndId_1'
36
- end
37
- end
38
-
39
- class TestRaiseOnInspect < TestPoroWithAttribute
40
- def inspect
41
- raise "some error"
42
- end
43
- end
44
-
45
- class TestRaiseOnInspectWithId < TestRaiseOnInspect
46
- def id
47
- 123
48
- end
49
- end
50
-
51
- class TestRaiseOnInspectWithToPk < TestRaiseOnInspect
52
- def to_pk
53
- "SomeRecord-123"
54
- end
55
- end
56
-
57
- context "register_callbacks" do
58
- it "store the callbacks in the honeybadger object" do
59
- HoneybadgerCallbacks.register_callbacks
60
- result = Honeybadger.config.local_variable_filter.call(:variable_name, 'test', [])
61
- expect(result).to eq('test')
62
- end
63
- end
64
-
65
- context "local_variable_filter" do
66
- it "not inspect String, Hash, Array, Set, Numeric, TrueClass, FalseClass, NilClass" do
67
- [
68
- ['test', String],
69
- [{ a: 1 }, Hash],
70
- [[1, 2], Array],
71
- [Set.new([1, 2]), Set],
72
- [4.5, Numeric],
73
- [true, TrueClass],
74
- [false, FalseClass],
75
- [nil, NilClass]
76
- ].each do |object, expected_class|
77
- result = HoneybadgerCallbacks.send(:local_variable_filter, :variable_name, object, [])
78
- expect(result.is_a?(expected_class)).to be_truthy
79
- end
80
- end
81
-
82
- it "inspect other classes" do
83
- result = HoneybadgerCallbacks.send(:local_variable_filter, :variable_name, TestPoroWithAttribute.new, ['password'])
84
- expect(result).to match(/#<ExceptionHandling::TestPoroWithAttribute:.* @test_attribute="test">/)
85
- end
86
-
87
- context "when inspect raises exceptions" do
88
- it "handle exceptions for objects" do
89
- result = HoneybadgerCallbacks.send(:local_variable_filter, :variable_name, TestRaiseOnInspect.new, ['password'])
90
- expect(result).to eq("#<ExceptionHandling::TestRaiseOnInspect [error 'RuntimeError: some error' while calling #inspect]>")
91
- end
92
-
93
- it "handle exceptions for objects responding to id" do
94
- result = HoneybadgerCallbacks.send(:local_variable_filter, :variable_name, TestRaiseOnInspectWithId.new, ['password'])
95
- expect(result).to eq("#<ExceptionHandling::TestRaiseOnInspectWithId @id=123 [error 'RuntimeError: some error' while calling #inspect]>")
96
- end
97
-
98
- it "handle exceptions for objects responding to to_pk" do
99
- result = HoneybadgerCallbacks.send(:local_variable_filter, :variable_name, TestRaiseOnInspectWithToPk.new, ['password'])
100
- expect(result).to eq("#<ExceptionHandling::TestRaiseOnInspectWithToPk @pk=SomeRecord-123 [error 'RuntimeError: some error' while calling #inspect]>")
101
- end
102
- end
103
-
104
- context "not inspect objects that contain filter keys" do
105
- it "use to_pk if available, even if id is available" do
106
- result = HoneybadgerCallbacks.send(:local_variable_filter, :variable_name, TestPoroWithFilteredAttributePkAndId.new, ['password'])
107
- expect(result).to match(/#<ExceptionHandling::TestPoroWithFilteredAttributePkAndId @pk=TestPoroWithFilteredAttributePkAndId_1, \[FILTERED\]>/)
108
- end
109
-
110
- it "use id if to_pk is not available" do
111
- result = HoneybadgerCallbacks.send(:local_variable_filter, :variable_name, TestPoroWithFilteredAttributeAndId.new, ['password'])
112
- expect(result).to match(/#<ExceptionHandling::TestPoroWithFilteredAttributeAndId @id=1, \[FILTERED\]>/)
113
- end
114
-
115
- it "print the object name if no id or to_pk" do
116
- result = HoneybadgerCallbacks.send(:local_variable_filter, :variable_name, TestPoroWithFilteredAttribute.new, ['password'])
117
- expect(result).to match(/#<ExceptionHandling::TestPoroWithFilteredAttribute \[FILTERED\]>/)
118
- end
119
- end
120
- end
121
- end
122
- end