super_exception_notifier 3.0.13 → 3.0.14
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 +7 -0
- data/CHANGELOG.txt +9 -0
- data/{MIT-LICENSE → LICENSE} +0 -0
- data/README.md +189 -0
- data/Rakefile +40 -0
- data/lib/exception_notification.rb +3 -0
- data/lib/exception_notification/exception_notifiable.rb +3 -3
- data/lib/exception_notification/notifiable.rb +8 -7
- data/lib/exception_notification/version.rb +5 -0
- data/rails/init.rb +5 -2
- metadata +85 -63
- data/README +0 -120
- data/VERSION.yml +0 -5
- data/init.rb +0 -1
- data/super_exception_notifier.gemspec +0 -113
- data/test/exception_notifiable_test.rb +0 -34
- data/test/exception_notifier_helper_test.rb +0 -68
- data/test/exception_notifier_test.rb +0 -41
- data/test/exception_notify_functional_test.rb +0 -139
- data/test/mocks/controllers.rb +0 -89
- data/test/notifiable_test.rb +0 -79
- data/test/test_helper.rb +0 -34
data/test/mocks/controllers.rb
DELETED
@@ -1,89 +0,0 @@
|
|
1
|
-
module Rails
|
2
|
-
def self.public_path
|
3
|
-
File.dirname(__FILE__)
|
4
|
-
end
|
5
|
-
|
6
|
-
def self.env
|
7
|
-
'test'
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
class ApplicationController < ActionController::Base
|
12
|
-
|
13
|
-
def runtime_error
|
14
|
-
raise "This is a runtime error that we should be emailed about"
|
15
|
-
end
|
16
|
-
|
17
|
-
def ar_record_not_found
|
18
|
-
#From SuperExceptionNotifier::CustomExceptionMethods
|
19
|
-
record_not_found
|
20
|
-
end
|
21
|
-
|
22
|
-
def name_error
|
23
|
-
raise NameError
|
24
|
-
end
|
25
|
-
|
26
|
-
def unknown_controller
|
27
|
-
raise ActionController::UnknownController
|
28
|
-
end
|
29
|
-
|
30
|
-
def local_request?
|
31
|
-
false
|
32
|
-
end
|
33
|
-
|
34
|
-
end
|
35
|
-
|
36
|
-
class SpecialErrorThing < RuntimeError
|
37
|
-
end
|
38
|
-
|
39
|
-
class BasicController < ApplicationController
|
40
|
-
include ExceptionNotification::ExceptionNotifiable
|
41
|
-
self.exception_notifiable_noisy_environments = ['test']
|
42
|
-
end
|
43
|
-
|
44
|
-
class CustomSilentExceptions < ApplicationController
|
45
|
-
include ExceptionNotification::ExceptionNotifiable
|
46
|
-
self.exception_notifiable_noisy_environments = ['test']
|
47
|
-
self.exception_notifiable_verbose = false
|
48
|
-
self.exception_notifiable_silent_exceptions = [RuntimeError]
|
49
|
-
end
|
50
|
-
|
51
|
-
class EmptySilentExceptions < ApplicationController
|
52
|
-
include ExceptionNotification::ExceptionNotifiable
|
53
|
-
self.exception_notifiable_noisy_environments = ['test']
|
54
|
-
self.exception_notifiable_verbose = false
|
55
|
-
self.exception_notifiable_silent_exceptions = []
|
56
|
-
end
|
57
|
-
|
58
|
-
class NilSilentExceptions < ApplicationController
|
59
|
-
include ExceptionNotification::ExceptionNotifiable
|
60
|
-
self.exception_notifiable_noisy_environments = ['test']
|
61
|
-
self.exception_notifiable_verbose = false
|
62
|
-
self.exception_notifiable_silent_exceptions = nil
|
63
|
-
end
|
64
|
-
|
65
|
-
class DefaultSilentExceptions < ApplicationController
|
66
|
-
include ExceptionNotification::ExceptionNotifiable
|
67
|
-
self.exception_notifiable_noisy_environments = ['test']
|
68
|
-
self.exception_notifiable_verbose = false
|
69
|
-
end
|
70
|
-
|
71
|
-
class OldStyle < ApplicationController
|
72
|
-
include ExceptionNotification::ExceptionNotifiable
|
73
|
-
self.exception_notifiable_noisy_environments = ['test']
|
74
|
-
self.exception_notifiable_verbose = false
|
75
|
-
end
|
76
|
-
|
77
|
-
class NewStyle < ApplicationController
|
78
|
-
include ExceptionNotification::ExceptionNotifiable
|
79
|
-
self.exception_notifiable_noisy_environments = ['test']
|
80
|
-
self.exception_notifiable_verbose = false
|
81
|
-
|
82
|
-
rescue_from ActiveRecord::RecordNotFound do |exception|
|
83
|
-
render :text => "404", :status => 404
|
84
|
-
end
|
85
|
-
|
86
|
-
rescue_from RuntimeError do |exception|
|
87
|
-
render :text => "500", :status => 500
|
88
|
-
end
|
89
|
-
end
|
data/test/notifiable_test.rb
DELETED
@@ -1,79 +0,0 @@
|
|
1
|
-
# This is to test the ability to handle exceptions raised outside of the request response cycle
|
2
|
-
require File.expand_path(File.dirname(__FILE__) + '/test_helper')
|
3
|
-
require 'test/unit'
|
4
|
-
|
5
|
-
class Spaceship
|
6
|
-
# It is included by the init.rb in the Object super class,
|
7
|
-
# so we don't actually need to do anything to get notifiable { method } goodness.
|
8
|
-
#include ExceptionNotifiable.rb
|
9
|
-
end
|
10
|
-
|
11
|
-
class SpaceCarrier < Spaceship
|
12
|
-
end
|
13
|
-
|
14
|
-
class NotifiableTest < Test::Unit::TestCase
|
15
|
-
|
16
|
-
def setup
|
17
|
-
@@delivered_mail = []
|
18
|
-
ActionMailer::Base.class_eval do
|
19
|
-
def deliver!(mail = @mail)
|
20
|
-
@@delivered_mail << mail
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_notifiable_in_noisy_environment
|
26
|
-
@class = Spaceship.new
|
27
|
-
Spaceship.notifiable_noisy_environments = ['test']
|
28
|
-
ExceptionNotification::Notifier.config[:skip_local_notification] = true
|
29
|
-
assert_raises( AccessDenied ) {
|
30
|
-
notifiable { @class.access_denied }
|
31
|
-
assert_error_mail_contains("AccessDenied")
|
32
|
-
}
|
33
|
-
end
|
34
|
-
|
35
|
-
def test_notifiable_in_quiet_environment_not_skipping_local
|
36
|
-
@class = Spaceship.new
|
37
|
-
Spaceship.notifiable_noisy_environments = []
|
38
|
-
ExceptionNotification::Notifier.config[:skip_local_notification] = false
|
39
|
-
assert_raises( AccessDenied ) {
|
40
|
-
notifiable { @class.access_denied }
|
41
|
-
assert_error_mail_contains("AccessDenied")
|
42
|
-
}
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_notifiable_in_quiet_environment_skipping_local
|
46
|
-
@class = Spaceship.new
|
47
|
-
Spaceship.notifiable_noisy_environments = []
|
48
|
-
ExceptionNotification::Notifier.config[:skip_local_notification] = true
|
49
|
-
assert_raises( AccessDenied ) {
|
50
|
-
notifiable { @class.access_denied }
|
51
|
-
assert_nothing_mailed
|
52
|
-
}
|
53
|
-
end
|
54
|
-
|
55
|
-
private
|
56
|
-
|
57
|
-
def assert_view_path_for_status_cd_is_string(status)
|
58
|
-
assert(ExceptionNotification::Notifier.get_view_path_for_status_code(status).is_a?(String), "View Path is not a string for status code '#{status}'")
|
59
|
-
end
|
60
|
-
|
61
|
-
def assert_view_path_for_class_is_string(exception)
|
62
|
-
assert(ExceptionNotification::Notifier.get_view_path_for_class(exception).is_a?(String), "View Path is not a string for exception '#{exception}'")
|
63
|
-
end
|
64
|
-
|
65
|
-
def assert_error_mail_contains(text)
|
66
|
-
assert(mailed_error.index(text),
|
67
|
-
"Expected mailed error body to contain '#{text}', but not found. \n actual contents: \n#{mailed_error}")
|
68
|
-
end
|
69
|
-
|
70
|
-
def assert_nothing_mailed
|
71
|
-
assert @@delivered_mail.empty?, "Expected to have NOT mailed out a notification about an error occuring, but mailed: \n#{@@delivered_mail}"
|
72
|
-
end
|
73
|
-
|
74
|
-
def mailed_error
|
75
|
-
assert @@delivered_mail.last, "Expected to have mailed out a notification about an error occuring, but none mailed"
|
76
|
-
@@delivered_mail.last.encoded
|
77
|
-
end
|
78
|
-
|
79
|
-
end
|
data/test/test_helper.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'rubygems'
|
3
|
-
|
4
|
-
require 'rake'
|
5
|
-
require 'rake/tasklib'
|
6
|
-
require 'action_mailer'
|
7
|
-
require 'active_record'
|
8
|
-
|
9
|
-
#just requiring active record wasn't loading classes soon enough for SILENT_EXCEPTIONS
|
10
|
-
ActiveRecord::Base
|
11
|
-
|
12
|
-
require 'action_controller'
|
13
|
-
require 'action_controller/test_case'
|
14
|
-
require 'action_controller/test_process'
|
15
|
-
|
16
|
-
#just requiring action controller wasn't loading classes soon enough for SILENT_EXCEPTIONS
|
17
|
-
ActionController::Base
|
18
|
-
|
19
|
-
RAILS_ROOT = '.' unless defined?(RAILS_ROOT)
|
20
|
-
RAILS_ENV = 'test' unless defined?(RAILS_ENV)
|
21
|
-
RAILS_DEFAULT_LOGGER = Logger.new(StringIO.new) unless defined?(RAILS_DEFAULT_LOGGER)
|
22
|
-
#$:.unshift File.join(File.dirname(__FILE__), '../lib')
|
23
|
-
|
24
|
-
#require File.join(File.dirname(__FILE__), "..", "init")
|
25
|
-
require "init"
|
26
|
-
|
27
|
-
ExceptionNotification::Notifier.configure_exception_notifier do |config|
|
28
|
-
# If left empty web hooks will not be engaged
|
29
|
-
config[:web_hooks] = []
|
30
|
-
config[:exception_recipients] = ["test.errors@example.com"]
|
31
|
-
config[:view_path] = File.join(File.dirname(__FILE__), "mocks")
|
32
|
-
config[:skip_local_notification] = false
|
33
|
-
config[:notify_other_errors] = true
|
34
|
-
end
|