Commit df419f31 by Victor Shnayder

Make the LMS check_course command work again.

parent 9a0213bf
...@@ -14,6 +14,10 @@ import mitxmako.middleware as middleware ...@@ -14,6 +14,10 @@ import mitxmako.middleware as middleware
middleware.MakoMiddleware() middleware.MakoMiddleware()
def check_names(user, course): def check_names(user, course):
'''
Complain if any problems have alphanumeric names.
TODO (vshnayder): there are some in 6.002x that don't. Is that actually a problem?
'''
all_ok = True all_ok = True
print "Confirming all problems have alphanumeric names" print "Confirming all problems have alphanumeric names"
for problem in course.xpath('//problem'): for problem in course.xpath('//problem'):
...@@ -53,7 +57,10 @@ def check_sections(user, course): ...@@ -53,7 +57,10 @@ def check_sections(user, course):
print "Checking all section includes are valid XML" print "Checking all section includes are valid XML"
for f in os.listdir(sections_dir): for f in os.listdir(sections_dir):
sectionfile = sections_dir + '/' + f sectionfile = sections_dir + '/' + f
print sectionfile #print sectionfile
# skip non-xml files:
if not sectionfile.endswith('xml'):
continue
try: try:
etree.parse(sectionfile) etree.parse(sectionfile)
except Exception as ex: except Exception as ex:
...@@ -69,12 +76,23 @@ class Command(BaseCommand): ...@@ -69,12 +76,23 @@ class Command(BaseCommand):
help = "Does basic validity tests on course.xml." help = "Does basic validity tests on course.xml."
def handle(self, *args, **options): def handle(self, *args, **options):
all_ok = True all_ok = True
# TODO (vshnayder): create dummy user objects. Anon, authenticated, staff.
# Check that everything works for each.
# The objects probably shouldn't be actual django users to avoid unneeded
# dependency on django.
# TODO: use args as list of files to check. Fix loading to work for other files.
sample_user = User.objects.all()[0] sample_user = User.objects.all()[0]
print "Attempting to load courseware" print "Attempting to load courseware"
course = course_file(sample_user) course = course_file(sample_user)
to_run = [check_names, to_run = [check_names,
# TODO (vshnayder) : make check_rendering work (use module_render.py),
# turn it on
# check_rendering, # check_rendering,
check_sections, check_sections,
] ]
......
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