summaryrefslogtreecommitdiff
path: root/raven/contrib/django/management/commands/raven.py
diff options
context:
space:
mode:
Diffstat (limited to 'raven/contrib/django/management/commands/raven.py')
-rw-r--r--raven/contrib/django/management/commands/raven.py44
1 files changed, 34 insertions, 10 deletions
diff --git a/raven/contrib/django/management/commands/raven.py b/raven/contrib/django/management/commands/raven.py
index 50f044f..33c48bc 100644
--- a/raven/contrib/django/management/commands/raven.py
+++ b/raven/contrib/django/management/commands/raven.py
@@ -2,7 +2,7 @@
raven.contrib.django.management.commands.raven
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-:copyright: (c) 2010-2013 by the Sentry Team, see AUTHORS for more details
+:copyright: (c) 2010-2016 by the Sentry Team, see AUTHORS for more details
:license: BSD, see LICENSE for more details.
"""
from __future__ import absolute_import, print_function
@@ -10,21 +10,42 @@ from __future__ import absolute_import, print_function
from django.core.management.base import BaseCommand
from optparse import make_option
from raven.scripts.runner import store_json, send_test_message
+
+import argparse
+import django
import sys
import time
+DJANGO_18 = django.VERSION >= (1, 8, 0)
+
+
+class StoreJsonAction(argparse.Action):
+ def __call__(self, parser, namespace, values, option_string=None):
+ setattr(namespace, self.dest, store_json(values[0]))
+
class Command(BaseCommand):
help = 'Commands to interact with the Sentry client'
- option_list = BaseCommand.option_list + (
- make_option(
- "--data", action="callback", callback=store_json,
- type="string", nargs=1, dest="data"),
- make_option(
- "--tags", action="callback", callback=store_json,
- type="string", nargs=1, dest="tags"),
- )
+ if not DJANGO_18:
+ option_list = BaseCommand.option_list + (
+ make_option(
+ '--data', action='callback', callback=store_json,
+ type='string', nargs=1, dest='data'),
+ make_option(
+ '--tags', action='callback', callback=store_json,
+ type='string', nargs=1, dest='tags'),
+ )
+ else:
+ def add_arguments(self, parser):
+ parser.add_argument(
+ '--data', action=StoreJsonAction,
+ nargs=1, dest='data',
+ )
+ parser.add_argument(
+ '--tags', action=StoreJsonAction,
+ nargs=1, dest='tags',
+ )
def handle(self, *args, **options):
if len(args) != 1 or args[0] != 'test':
@@ -33,5 +54,8 @@ class Command(BaseCommand):
from raven.contrib.django.models import client
- send_test_message(client, options)
+ send_test_message(client, {
+ 'tags': options.get('tags'),
+ 'data': options.get('data'),
+ })
time.sleep(3)