Commit 19ba3ee6 by Calen Pennington

Clean up how errors in import command are handled

parent cd7211b6
### ###
### One-off script for importing courseware form XML format ### One-off script for importing courseware form XML format
### ###
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand, CommandError
from keystore.django import keystore from keystore.django import keystore
from raw_module import RawDescriptor from raw_module import RawDescriptor
from lxml import etree from lxml import etree
...@@ -17,13 +17,18 @@ unnamed_modules = 0 ...@@ -17,13 +17,18 @@ unnamed_modules = 0
etree.set_default_parser(etree.XMLParser(dtd_validation=False, load_dtd=False, etree.set_default_parser(etree.XMLParser(dtd_validation=False, load_dtd=False,
remove_comments=True)) remove_comments=True))
class Command(BaseCommand): class Command(BaseCommand):
help = \ help = \
'''Import the specified data directory into the default keystore''' '''Import the specified data directory into the default keystore'''
def handle(self, *args, **options): def handle(self, *args, **options):
if len(args) != 3:
raise CommandError("import requires 3 arguments: <org> <course> <data directory>")
org, course, data_dir = args org, course, data_dir = args
data_dir = path(data_dir) data_dir = path(data_dir)
class ImportSystem(XMLParsingSystem): class ImportSystem(XMLParsingSystem):
def __init__(self): def __init__(self):
self.load_item = keystore().get_item self.load_item = keystore().get_item
...@@ -33,8 +38,8 @@ class Command(BaseCommand): ...@@ -33,8 +38,8 @@ class Command(BaseCommand):
try: try:
xml_data = etree.fromstring(xml) xml_data = etree.fromstring(xml)
except: except:
print xml raise CommandError("Unable to parse xml: " + xml)
raise
if not xml_data.get('name'): if not xml_data.get('name'):
global unnamed_modules global unnamed_modules
unnamed_modules += 1 unnamed_modules += 1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment