diff options
Diffstat (limited to 'raven/contrib/django/management/commands/raven.py')
-rw-r--r-- | raven/contrib/django/management/commands/raven.py | 44 |
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) |