Skip to content

Commit

Permalink
Support correctly disabling the Raven client with an empty dsn value
Browse files Browse the repository at this point in the history
  • Loading branch information
dcramer committed Aug 7, 2012
1 parent c5a6001 commit 8192121
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 6 deletions.
13 changes: 11 additions & 2 deletions raven/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -174,8 +174,7 @@ def __init__(self, servers=None, include_paths=None, exclude_paths=None,

# servers may be set to a NoneType (for Django)
if servers and not (key or (secret_key and public_key)):
msg = 'Missing configuration for client. Please see documentation.'
raise TypeError(msg)
self.logger.info('Raven is not configured (disabled). Please see documentation for more information.')

if kwargs.get('timeout') is not None:
warnings.warn('The ``timeout`` option no longer does anything. Pass the option to your transport instead.')
Expand Down Expand Up @@ -390,6 +389,9 @@ def capture(self, event_type, data=None, date=None, time_spent=None,
:return: a 32-length string identifying this event
"""

if not self.is_enabled():
return

data = self.build_msg(event_type, data, date, time_spent,
extra, stack, public_key=public_key, tags=tags, **kwargs)

Expand All @@ -413,6 +415,13 @@ def _get_log_message(self, data):
message = data.pop('message', '<no message value>')
return message

def is_enabled(self):
"""
Return a boolean describing whether the client should attempt to send
events.
"""
return bool(self.servers)

def send_remote(self, url, data, headers={}):
if not self.state.should_try():
message = self._get_log_message(data)
Expand Down
6 changes: 3 additions & 3 deletions raven/contrib/django/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@
class DjangoClient(Client):
logger = logging.getLogger('sentry.errors.client.django')

def is_enabled(self):
return self.servers or 'sentry' in settings.INSTALLED_APPS

def get_user_info(self, request):
if request.user.is_authenticated():
user_info = {
Expand Down Expand Up @@ -117,9 +120,6 @@ def send(self, **kwargs):
return self.send_integrated(kwargs)
except Exception, e:
self.error_logger.error('Unable to record event: %s', e, exc_info=True)
else:
self.error_logger.error('No servers configured, and sentry not installed. Cannot send message')
return None

def send_integrated(self, kwargs):
from sentry.models import Group
Expand Down
3 changes: 3 additions & 0 deletions tests/client/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ def __init__(self, servers=None, **kwargs):
self.events = []
super(TempStoreClient, self).__init__(servers=servers, **kwargs)

def is_enabled(self):
return True

def send(self, **kwargs):
self.events.append(kwargs)

Expand Down
2 changes: 1 addition & 1 deletion tests/contrib/celery/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

class ClientTest(TestCase):
def setUp(self):
self.client = CeleryClient()
self.client = CeleryClient(servers=['http://example.com'])

@mock.patch('raven.contrib.celery.CeleryClient.send_raw')
def test_send_encoded(self, send_raw):
Expand Down
3 changes: 3 additions & 0 deletions tests/contrib/flask/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ def __init__(self, servers=None, **kwargs):
self.events = []
super(TempStoreClient, self).__init__(servers=servers, **kwargs)

def is_enabled(self):
return True

def send(self, **kwargs):
self.events.append(kwargs)

Expand Down
3 changes: 3 additions & 0 deletions tests/contrib/zerorpc/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@ def __init__(self, servers=None, **kwargs):
self.events = []
super(TempStoreClient, self).__init__(servers=servers, **kwargs)

def is_enabled(self):
return True

def send(self, **kwargs):
self.events.append(kwargs)

Expand Down
3 changes: 3 additions & 0 deletions tests/handlers/logbook/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ def __init__(self, servers=None, **kwargs):
self.events = []
super(TempStoreClient, self).__init__(servers=servers, **kwargs)

def is_enabled(self):
return True

def send(self, **kwargs):
self.events.append(kwargs)

Expand Down
3 changes: 3 additions & 0 deletions tests/handlers/logging/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ def __init__(self, servers=None, **kwargs):
self.events = []
super(TempStoreClient, self).__init__(servers=servers, **kwargs)

def is_enabled(self):
return True

def send(self, **kwargs):
self.events.append(kwargs)

Expand Down
3 changes: 3 additions & 0 deletions tests/middleware/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ def __init__(self, servers=None, **kwargs):
self.events = []
super(TempStoreClient, self).__init__(servers=servers, **kwargs)

def is_enabled(self):
return True

def send(self, **kwargs):
self.events.append(kwargs)

Expand Down

0 comments on commit 8192121

Please sign in to comment.