mirror of
https://github.com/zulip/zulip.git
synced 2025-10-24 16:43:57 +00:00
Using sys.exit in a management command makes it impossible
to unit test the code in question. The correct approach to do the same
thing in Django management commands is to raise CommandError.
Followup of b570c0dafa
21 lines
719 B
Python
21 lines
719 B
Python
from argparse import ArgumentParser
|
|
from typing import Any
|
|
|
|
from django.core.management.base import BaseCommand, CommandError
|
|
|
|
from analytics.lib.counts import do_drop_all_analytics_tables
|
|
|
|
class Command(BaseCommand):
|
|
help = """Clear analytics tables."""
|
|
|
|
def add_arguments(self, parser: ArgumentParser) -> None:
|
|
parser.add_argument('--force',
|
|
action='store_true',
|
|
help="Clear analytics tables.")
|
|
|
|
def handle(self, *args: Any, **options: Any) -> None:
|
|
if options['force']:
|
|
do_drop_all_analytics_tables()
|
|
else:
|
|
raise CommandError("Would delete all data from analytics tables (!); use --force to do so.")
|