exception_handling 2.7.0.pre.1 → 2.8.1.pre.1

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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -1
  3. data/.jenkins/Jenkinsfile +24 -8
  4. data/.rspec +3 -0
  5. data/CHANGELOG.md +7 -2
  6. data/Gemfile +4 -4
  7. data/Gemfile.lock +66 -57
  8. data/Rakefile +7 -6
  9. data/gemfiles/rails_4.gemfile +4 -4
  10. data/gemfiles/rails_5.gemfile +4 -4
  11. data/gemfiles/rails_6.gemfile +4 -4
  12. data/lib/exception_handling.rb +3 -0
  13. data/lib/exception_handling/exception_info.rb +4 -3
  14. data/lib/exception_handling/log_stub_error.rb +2 -1
  15. data/lib/exception_handling/logging_methods.rb +1 -7
  16. data/lib/exception_handling/version.rb +1 -1
  17. data/{test → spec}/helpers/controller_helpers.rb +0 -0
  18. data/{test → spec}/helpers/exception_helpers.rb +2 -2
  19. data/{test → spec}/rake_test_warning_false.rb +0 -0
  20. data/{test/test_helper.rb → spec/spec_helper.rb} +50 -39
  21. data/spec/unit/exception_handling/exception_catalog_spec.rb +85 -0
  22. data/spec/unit/exception_handling/exception_description_spec.rb +82 -0
  23. data/{test/unit/exception_handling/exception_info_test.rb → spec/unit/exception_handling/exception_info_spec.rb} +125 -107
  24. data/{test/unit/exception_handling/honeybadger_callbacks_test.rb → spec/unit/exception_handling/honeybadger_callbacks_spec.rb} +20 -20
  25. data/{test/unit/exception_handling/log_error_stub_test.rb → spec/unit/exception_handling/log_error_stub_spec.rb} +38 -22
  26. data/{test/unit/exception_handling/logging_methods_test.rb → spec/unit/exception_handling/logging_methods_spec.rb} +8 -7
  27. data/{test/unit/exception_handling/mailer_test.rb → spec/unit/exception_handling/mailer_spec.rb} +17 -17
  28. data/spec/unit/exception_handling/methods_spec.rb +105 -0
  29. data/spec/unit/exception_handling/sensu_spec.rb +51 -0
  30. data/{test/unit/exception_handling_test.rb → spec/unit/exception_handling_spec.rb} +348 -329
  31. metadata +34 -33
  32. data/test/unit/exception_handling/exception_catalog_test.rb +0 -85
  33. data/test/unit/exception_handling/exception_description_test.rb +0 -82
  34. data/test/unit/exception_handling/methods_test.rb +0 -105
  35. data/test/unit/exception_handling/sensu_test.rb +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3794611262e09346bab80e7a683f4ce1d78d6ba04b46fa15fa4bc84ac087e41e
4
- data.tar.gz: 36f96bed7f2b3375df4730d35ee5ec96cdf70e7c07f4ba589e187c75275c1736
3
+ metadata.gz: be4fce66c798d0d7a85180e3cb569c297f6fe5a0b6f84390f0f3122781bc066e
4
+ data.tar.gz: f3987b0abb4d1af23c42e3d1799941b0fa438c7ac2cdf304cd5dd25e4c7d9b35
5
5
  SHA512:
6
- metadata.gz: 2d1dad10749b867696c0f4dcacedcfb4af466ba792fa0c98ae307ee4bbeda10657f172fc95ff3c9b0162d1787d39c3c2a15a220fa6c6f4a7f7b10d857dad5eec
7
- data.tar.gz: 8b28f2829a1e34787d7de51fdee4d0fe5a39356584d6d910c106edac2fe5d8ebcf0f3f5f1e9e1b7e4e7b0c36dd62035885214248072e47a7fdec7d1e4a854f94
6
+ metadata.gz: b5aee756b91d0a12b5d7d37cabeee83e4a95481c2968c1c3919a28899bfe82345dc8af3da9608df23863ce341d6313f06948005141bc3d3e86775c8d910afc94
7
+ data.tar.gz: 5c00b42b75288042226cde5f48e5d52d5e8c46381e1e114615f0fba64ff3c776c0e6b355976c79759a6ac6e48c87aee027abc743f610f5279ac9f533914b5361
data/.gitignore CHANGED
@@ -1,6 +1,6 @@
1
1
  .idea
2
2
  .DS_Store
3
3
  .rubocop-http*
4
- test/reports/*
4
+ spec/reports/*
5
5
  gemfiles/*.lock
6
6
  pkg/
@@ -36,42 +36,58 @@ pipeline {
36
36
  stage('Appraisals') {
37
37
  parallel {
38
38
  stage('Current') {
39
+ environment {
40
+ JUNIT_OUTPUT = 'spec/reports/current'
41
+ }
42
+
39
43
  steps {
40
- sh 'JUNIT_OUTPUT_DIR=test/reports/current bundle exec rake'
44
+ sh "bundle exec rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
41
45
  }
42
46
 
43
47
  post {
44
- always { junit '*/reports/current/*.xml' }
48
+ always { junit "${JUNIT_OUTPUT}/*.xml" }
45
49
  }
46
50
  }
47
51
 
48
52
  stage('Rails 4') {
53
+ environment {
54
+ JUNIT_OUTPUT = 'spec/reports/rails-4'
55
+ }
56
+
49
57
  steps {
50
- sh 'JUNIT_OUTPUT_DIR=test/reports/rails-4 bundle exec appraisal rails-4 rake'
58
+ sh "bundle exec appraisal rails-4 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
51
59
  }
52
60
 
53
61
  post {
54
- always { junit '*/reports/rails-4/*.xml' }
62
+ always { junit "${JUNIT_OUTPUT}/*.xml" }
55
63
  }
56
64
  }
57
65
 
58
66
  stage('Rails 5') {
67
+ environment {
68
+ JUNIT_OUTPUT = 'spec/reports/rails-5'
69
+ }
70
+
59
71
  steps {
60
- sh 'JUNIT_OUTPUT_DIR=test/reports/rails-5 bundle exec appraisal rails-5 rake'
72
+ sh "bundle exec appraisal rails-5 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
61
73
  }
62
74
 
63
75
  post {
64
- always { junit '*/reports/rails-5/*.xml' }
76
+ always { junit "${JUNIT_OUTPUT}/*.xml" }
65
77
  }
66
78
  }
67
79
 
68
80
  stage('Rails 6') {
81
+ environment {
82
+ JUNIT_OUTPUT = 'spec/reports/rails-6'
83
+ }
84
+
69
85
  steps {
70
- sh 'JUNIT_OUTPUT_DIR=test/reports/rails-6 bundle exec appraisal rails-6 rake'
86
+ sh "bundle exec appraisal rails-6 rspec --format RspecJunitFormatter --out ${JUNIT_OUTPUT}/rspec.xml"
71
87
  }
72
88
 
73
89
  post {
74
- always { junit '*/reports/rails-6/*.xml' }
90
+ always { junit "${JUNIT_OUTPUT}/*.xml" }
75
91
  }
76
92
  }
77
93
  }
data/.rspec ADDED
@@ -0,0 +1,3 @@
1
+ --require spec_helper
2
+ --format progress
3
+ --color
@@ -4,13 +4,17 @@ 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.7.0] - Unreleased
7
+ ## [2.8.0] - Unreleased
8
+ ### Deprecated
9
+ - Deprecated Email Escalation Methods: `escalate_to_production_support`, `escalate_error`, `escalate_warning`, `ensure_escalation`
10
+
11
+ ## [2.7.0] - 2020-10-14
8
12
  ### Added
9
13
  - Added `LoggingMethods` as a replacement for `Methods` without setting controller or checking for long controller action.
10
14
  ### Deprecated
11
15
  - Deprecated `Methods` in favor of `LoggingMethods`.
12
16
 
13
- ## [2.6.1] - Unreleased
17
+ ## [2.6.1] - 2020-10-14
14
18
  ### Fixed
15
19
  - Fixed honeybadger_context_data to always merge `current_context_for_thread`, even if `log_context:` is passed as `nil`.
16
20
 
@@ -52,6 +56,7 @@ Note: this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0
52
56
  ### Changed
53
57
  - No longer depends on hobo_support. Uses invoca-utils 0.3 instead.
54
58
 
59
+ [2.8.0]: https://github.com/Invoca/exception_handling/compare/v2.7.0...v2.8.0
55
60
  [2.7.0]: https://github.com/Invoca/exception_handling/compare/v2.6.1...v2.7.0
56
61
  [2.6.1]: https://github.com/Invoca/exception_handling/compare/v2.6.0...v2.6.1
57
62
  [2.6.0]: https://github.com/Invoca/exception_handling/compare/v2.5.0...v2.6.0
data/Gemfile CHANGED
@@ -6,10 +6,10 @@ gemspec
6
6
 
7
7
  gem 'appraisal', '~> 2.2'
8
8
  gem 'honeybadger', '3.3.1-1', git: 'git@github.com:Invoca/honeybadger-ruby', ref: 'bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6'
9
- gem "minitest"
10
- gem "minitest-reporters"
11
9
  gem 'pry'
10
+ gem 'pry-byebug'
12
11
  gem 'rake'
13
- gem 'rr'
12
+ gem 'rspec'
13
+ gem 'rspec_junit_formatter'
14
14
  gem 'rubocop'
15
- gem 'shoulda'
15
+ gem 'test-unit'
@@ -8,7 +8,7 @@ GIT
8
8
  PATH
9
9
  remote: .
10
10
  specs:
11
- exception_handling (2.7.0.pre.1)
11
+ exception_handling (2.8.1.pre.1)
12
12
  actionmailer (>= 4.2, < 7.0)
13
13
  actionpack (>= 4.2, < 7.0)
14
14
  activesupport (>= 4.2, < 7.0)
@@ -19,56 +19,58 @@ PATH
19
19
  GEM
20
20
  remote: https://rubygems.org/
21
21
  specs:
22
- actionmailer (4.2.11.1)
23
- actionpack (= 4.2.11.1)
24
- actionview (= 4.2.11.1)
25
- activejob (= 4.2.11.1)
22
+ actionmailer (6.0.3.4)
23
+ actionpack (= 6.0.3.4)
24
+ actionview (= 6.0.3.4)
25
+ activejob (= 6.0.3.4)
26
26
  mail (~> 2.5, >= 2.5.4)
27
- rails-dom-testing (~> 1.0, >= 1.0.5)
28
- actionpack (4.2.11.1)
29
- actionview (= 4.2.11.1)
30
- activesupport (= 4.2.11.1)
31
- rack (~> 1.6)
32
- rack-test (~> 0.6.2)
33
- rails-dom-testing (~> 1.0, >= 1.0.5)
34
- rails-html-sanitizer (~> 1.0, >= 1.0.2)
35
- actionview (4.2.11.1)
36
- activesupport (= 4.2.11.1)
27
+ rails-dom-testing (~> 2.0)
28
+ actionpack (6.0.3.4)
29
+ actionview (= 6.0.3.4)
30
+ activesupport (= 6.0.3.4)
31
+ rack (~> 2.0, >= 2.0.8)
32
+ rack-test (>= 0.6.3)
33
+ rails-dom-testing (~> 2.0)
34
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
35
+ actionview (6.0.3.4)
36
+ activesupport (= 6.0.3.4)
37
37
  builder (~> 3.1)
38
- erubis (~> 2.7.0)
39
- rails-dom-testing (~> 1.0, >= 1.0.5)
40
- rails-html-sanitizer (~> 1.0, >= 1.0.3)
41
- activejob (4.2.11.1)
42
- activesupport (= 4.2.11.1)
43
- globalid (>= 0.3.0)
44
- activesupport (4.2.11.1)
45
- i18n (~> 0.7)
38
+ erubi (~> 1.4)
39
+ rails-dom-testing (~> 2.0)
40
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
41
+ activejob (6.0.3.4)
42
+ activesupport (= 6.0.3.4)
43
+ globalid (>= 0.3.6)
44
+ activesupport (6.0.3.4)
45
+ concurrent-ruby (~> 1.0, >= 1.0.2)
46
+ i18n (>= 0.7, < 2)
46
47
  minitest (~> 5.1)
47
- thread_safe (~> 0.3, >= 0.3.4)
48
48
  tzinfo (~> 1.1)
49
- ansi (1.5.0)
49
+ zeitwerk (~> 2.2, >= 2.2.2)
50
50
  appraisal (2.2.0)
51
51
  bundler
52
52
  rake
53
53
  thor (>= 0.14.0)
54
54
  ast (2.4.0)
55
- builder (3.2.3)
55
+ builder (3.2.4)
56
+ byebug (11.1.3)
56
57
  coderay (1.1.2)
57
- concurrent-ruby (1.1.5)
58
+ concurrent-ruby (1.1.7)
58
59
  contextual_logger (0.11.0)
59
60
  activesupport
60
61
  json
61
62
  crass (1.0.6)
62
- erubis (2.7.0)
63
+ diff-lcs (1.4.4)
64
+ erubi (1.10.0)
63
65
  eventmachine (1.2.7)
64
66
  globalid (0.4.2)
65
67
  activesupport (>= 4.2.0)
66
- i18n (0.9.5)
68
+ i18n (1.8.5)
67
69
  concurrent-ruby (~> 1.0)
68
70
  invoca-utils (0.4.1)
69
71
  jaro_winkler (1.5.3)
70
72
  json (2.3.1)
71
- loofah (2.7.0)
73
+ loofah (2.8.0)
72
74
  crass (~> 1.0.2)
73
75
  nokogiri (>= 1.5.9)
74
76
  mail (2.7.1)
@@ -76,34 +78,44 @@ GEM
76
78
  method_source (0.9.2)
77
79
  mini_mime (1.0.2)
78
80
  mini_portile2 (2.4.0)
79
- minitest (5.11.3)
80
- minitest-reporters (1.0.20)
81
- ansi
82
- builder
83
- minitest (>= 5.0)
84
- ruby-progressbar
81
+ minitest (5.14.2)
85
82
  nokogiri (1.10.10)
86
83
  mini_portile2 (~> 2.4.0)
87
84
  parallel (1.17.0)
88
85
  parser (2.6.3.0)
89
86
  ast (~> 2.4.0)
87
+ power_assert (1.2.0)
90
88
  pry (0.12.2)
91
89
  coderay (~> 1.1.0)
92
90
  method_source (~> 0.9.0)
93
- rack (1.6.13)
94
- rack-test (0.6.3)
95
- rack (>= 1.0)
96
- rails-deprecated_sanitizer (1.0.3)
97
- activesupport (>= 4.2.0.alpha)
98
- rails-dom-testing (1.0.9)
99
- activesupport (>= 4.2.0, < 5.0)
100
- nokogiri (~> 1.6)
101
- rails-deprecated_sanitizer (>= 1.0.1)
91
+ pry-byebug (3.8.0)
92
+ byebug (~> 11.0)
93
+ pry (~> 0.10)
94
+ rack (2.2.3)
95
+ rack-test (1.1.0)
96
+ rack (>= 1.0, < 3)
97
+ rails-dom-testing (2.0.3)
98
+ activesupport (>= 4.2.0)
99
+ nokogiri (>= 1.6)
102
100
  rails-html-sanitizer (1.3.0)
103
101
  loofah (~> 2.3)
104
102
  rainbow (3.0.0)
105
103
  rake (13.0.1)
106
- rr (1.2.1)
104
+ rspec (3.9.0)
105
+ rspec-core (~> 3.9.0)
106
+ rspec-expectations (~> 3.9.0)
107
+ rspec-mocks (~> 3.9.0)
108
+ rspec-core (3.9.2)
109
+ rspec-support (~> 3.9.3)
110
+ rspec-expectations (3.9.2)
111
+ diff-lcs (>= 1.2.0, < 2.0)
112
+ rspec-support (~> 3.9.0)
113
+ rspec-mocks (3.9.1)
114
+ diff-lcs (>= 1.2.0, < 2.0)
115
+ rspec-support (~> 3.9.0)
116
+ rspec-support (3.9.3)
117
+ rspec_junit_formatter (0.4.1)
118
+ rspec-core (>= 2, < 4, != 2.12.0)
107
119
  rubocop (0.74.0)
108
120
  jaro_winkler (~> 1.5.1)
109
121
  parallel (~> 1.10)
@@ -112,17 +124,14 @@ GEM
112
124
  ruby-progressbar (~> 1.7)
113
125
  unicode-display_width (>= 1.4.0, < 1.7)
114
126
  ruby-progressbar (1.10.1)
115
- shoulda (3.6.0)
116
- shoulda-context (~> 1.0, >= 1.0.1)
117
- shoulda-matchers (~> 3.0)
118
- shoulda-context (1.2.2)
119
- shoulda-matchers (3.1.3)
120
- activesupport (>= 4.0.0)
127
+ test-unit (3.3.6)
128
+ power_assert
121
129
  thor (1.0.1)
122
130
  thread_safe (0.3.6)
123
- tzinfo (1.2.5)
131
+ tzinfo (1.2.8)
124
132
  thread_safe (~> 0.1)
125
133
  unicode-display_width (1.6.0)
134
+ zeitwerk (2.4.1)
126
135
 
127
136
  PLATFORMS
128
137
  ruby
@@ -131,13 +140,13 @@ DEPENDENCIES
131
140
  appraisal (~> 2.2)
132
141
  exception_handling!
133
142
  honeybadger (= 3.3.1.pre.1)!
134
- minitest
135
- minitest-reporters
136
143
  pry
144
+ pry-byebug
137
145
  rake
138
- rr
146
+ rspec
147
+ rspec_junit_formatter
139
148
  rubocop
140
- shoulda
149
+ test-unit
141
150
 
142
151
  BUNDLED WITH
143
152
  1.17.3
data/Rakefile CHANGED
@@ -1,14 +1,15 @@
1
1
  #!/usr/bin/env rake
2
2
  # frozen_string_literal: true
3
3
 
4
- require "bundler/gem_tasks"
5
4
  require 'rake/testtask'
5
+ require "bundler/gem_tasks"
6
6
 
7
- require_relative 'test/rake_test_warning_false'
8
-
9
- task default: :test
7
+ require_relative 'spec/rake_test_warning_false'
10
8
 
11
- Rake::TestTask.new do |t|
12
- t.pattern = "test/**/*_test.rb"
9
+ desc "run rspec unit tests"
10
+ begin
11
+ require 'rspec/core/rake_task'
12
+ RSpec::Core::RakeTask.new(:rspec)
13
13
  end
14
14
 
15
+ task default: :rspec
@@ -4,13 +4,13 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.2"
6
6
  gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
7
- gem "minitest"
8
- gem "minitest-reporters"
9
7
  gem "pry"
8
+ gem "pry-byebug"
10
9
  gem "rake"
11
- gem "rr"
10
+ gem "rspec"
11
+ gem "rspec_junit_formatter"
12
12
  gem "rubocop"
13
- gem "shoulda"
13
+ gem "test-unit"
14
14
  gem "actionmailer", "~> 4.2"
15
15
  gem "actionpack", "~> 4.2"
16
16
  gem "activesupport", "~> 4.2"
@@ -4,13 +4,13 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.2"
6
6
  gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
7
- gem "minitest"
8
- gem "minitest-reporters"
9
7
  gem "pry"
8
+ gem "pry-byebug"
10
9
  gem "rake"
11
- gem "rr"
10
+ gem "rspec"
11
+ gem "rspec_junit_formatter"
12
12
  gem "rubocop"
13
- gem "shoulda"
13
+ gem "test-unit"
14
14
  gem "actionmailer", "~> 5.2"
15
15
  gem "actionpack", "~> 5.2"
16
16
  gem "activesupport", "~> 5.2"
@@ -4,13 +4,13 @@ source "https://rubygems.org"
4
4
 
5
5
  gem "appraisal", "~> 2.2"
6
6
  gem "honeybadger", "3.3.1-1", git: "git@github.com:Invoca/honeybadger-ruby", ref: "bb5f2b8a86e4147c38a6270d39ad610fab4dd5e6"
7
- gem "minitest"
8
- gem "minitest-reporters"
9
7
  gem "pry"
8
+ gem "pry-byebug"
10
9
  gem "rake"
11
- gem "rr"
10
+ gem "rspec"
11
+ gem "rspec_junit_formatter"
12
12
  gem "rubocop"
13
- gem "shoulda"
13
+ gem "test-unit"
14
14
  gem "actionmailer", "~> 6.0"
15
15
  gem "actionpack", "~> 6.0"
16
16
  gem "activesupport", "~> 6.0"
@@ -348,6 +348,9 @@ module ExceptionHandling # never included
348
348
  nil
349
349
  end
350
350
 
351
+ deprecate :escalate_to_production_support, :escalate_error, :escalate_warning, :ensure_escalation,
352
+ deprecator: ActiveSupport::Deprecation.new('3.0', 'ExceptionHandling')
353
+
351
354
  def alert_warning(exception_or_string, alert_name, exception_context, log_context)
352
355
  ex = make_exception(exception_or_string)
353
356
  log_error(ex, exception_context, **log_context)
@@ -82,9 +82,10 @@ module ExceptionHandling
82
82
  end
83
83
 
84
84
  def controller_name
85
- @controller_name ||= if @controller
86
- @controller.request.parameters.with_indifferent_access[:controller]
87
- end.to_s
85
+ @controller_name ||= (
86
+ @merged_log_context[:honeybadger_grouping] ||
87
+ (@controller && @controller.request.parameters.with_indifferent_access[:controller])
88
+ ).to_s
88
89
  end
89
90
 
90
91
  private
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  #
4
- # Used by functional tests to track exceptions.
4
+ # Test Helper that supports Minitest::Test and Test::Unit
5
+ # Used by tests in the consumers of this gem to track exceptions.
5
6
  #
6
7
 
7
8
  module LogErrorStub