Commit f2423ca1 by Calen Pennington

Add a local system with a mako render function for testing problems

parent 684be8d2
...@@ -6,17 +6,33 @@ from __future__ import unicode_literals ...@@ -6,17 +6,33 @@ from __future__ import unicode_literals
import argparse import argparse
import logging import logging
import os.path
import sys import sys
from path import path
from cStringIO import StringIO from cStringIO import StringIO
from collections import defaultdict
from calc import UndefinedVariable from calc import UndefinedVariable
from capa_problem import LoncapaProblem from capa_problem import LoncapaProblem
from mako.lookup import TemplateLookup
logging.basicConfig(format="%(levelname)s %(message)s") logging.basicConfig(format="%(levelname)s %(message)s")
log = logging.getLogger('capa.checker') log = logging.getLogger('capa.checker')
class DemoSystem(object):
def __init__(self):
self.lookup = TemplateLookup(directories=[path(__file__).dirname() / 'templates'])
def render_template(self, template_filename, dictionary, context=None):
if context is None:
context = {}
context_dict = {}
context_dict.update(dictionary)
context_dict.update(context)
return self.lookup.get_template(template_filename).render(**context_dict)
def main(): def main():
parser = argparse.ArgumentParser(description='Check Problem Files') parser = argparse.ArgumentParser(description='Check Problem Files')
parser.add_argument("command", choices=['test', 'show']) # Watch? Render? Open? parser.add_argument("command", choices=['test', 'show']) # Watch? Render? Open?
...@@ -29,11 +45,13 @@ def main(): ...@@ -29,11 +45,13 @@ def main():
args = parser.parse_args() args = parser.parse_args()
log.setLevel(args.log_level.upper()) log.setLevel(args.log_level.upper())
system = DemoSystem()
for problem_file in args.files: for problem_file in args.files:
log.info("Opening {0}".format(problem_file.name)) log.info("Opening {0}".format(problem_file.name))
try: try:
problem = LoncapaProblem(problem_file, "fakeid", seed=args.seed) problem = LoncapaProblem(problem_file, "fakeid", seed=args.seed, system=system)
except Exception as ex: except Exception as ex:
log.error("Could not parse file {0}".format(problem_file.name)) log.error("Could not parse file {0}".format(problem_file.name))
log.exception(ex) log.exception(ex)
......
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