Fixed #19257 -- Don't swallow command's KeyError in call_command

Thanks Giovanni Bajo for the report.
This commit is contained in:
Claude Paroz 2012-11-07 18:24:49 +01:00
parent e8f696097b
commit 9a09558e9f
1 changed files with 6 additions and 5 deletions

View File

@ -136,14 +136,15 @@ def call_command(name, *args, **options):
# Load the command object. # Load the command object.
try: try:
app_name = get_commands()[name] app_name = get_commands()[name]
if isinstance(app_name, BaseCommand):
# If the command is already loaded, use it directly.
klass = app_name
else:
klass = load_command_class(app_name, name)
except KeyError: except KeyError:
raise CommandError("Unknown command: %r" % name) raise CommandError("Unknown command: %r" % name)
if isinstance(app_name, BaseCommand):
# If the command is already loaded, use it directly.
klass = app_name
else:
klass = load_command_class(app_name, name)
# Grab out a list of defaults from the options. optparse does this for us # Grab out a list of defaults from the options. optparse does this for us
# when the script runs from the command line, but since call_command can # when the script runs from the command line, but since call_command can
# be called programatically, we need to simulate the loading and handling # be called programatically, we need to simulate the loading and handling