Coverage for e2xgrader/server_extensions/apps/formgrader/formgrader.py: 46%

28 statements  

« prev     ^ index     » next       coverage.py v7.4.2, created at 2024-03-14 13:22 +0100

1import os 

2 

3from e2xcore import BaseApp 

4from nbgrader.apps.baseapp import NbGrader 

5from nbgrader.server_extensions.formgrader import handlers as nbgrader_handlers 

6from tornado import web 

7 

8from e2xgrader.exporters import E2xExporter 

9from e2xgrader.preprocessors import FilterCellsById 

10 

11from .handlers import default_handlers 

12 

13 

14class FormgradeApp(NbGrader, BaseApp): 

15 template_path = os.path.join(os.path.dirname(__file__), "templates") 

16 static_path = os.path.join(os.path.dirname(__file__), "static") 

17 

18 def __init__(self, **kwargs): 

19 NbGrader.__init__(self, **kwargs) 

20 BaseApp.__init__(self, **kwargs) 

21 self.initialize([]) 

22 if not self.config.has_key( 

23 "HTMLExporter" 

24 ) or not self.config.HTMLExporter.has_key("template_name"): 

25 self.config.HTMLExporter.template_name = "formgrade" 

26 

27 def load_app(self): 

28 self.log.info("Loading the formgrader app") 

29 exporter = E2xExporter(config=self.config) 

30 exporter.register_preprocessor(FilterCellsById) 

31 

32 self.update_tornado_settings( 

33 dict( 

34 nbgrader_jinja2_env=self.webapp.settings["e2xgrader"]["jinja_env"], 

35 nbgrader_exporter=exporter, 

36 ) 

37 ) 

38 self.add_template_path(self.template_path) 

39 self.add_template_path(nbgrader_handlers.template_path) 

40 self.add_handlers(default_handlers) 

41 self.add_handlers(nbgrader_handlers.default_handlers) 

42 

43 static_handlers = [ 

44 ( 

45 r"/formgrader/static/(.*)", 

46 web.StaticFileHandler, 

47 {"path": nbgrader_handlers.static_path}, 

48 ), 

49 ( 

50 r"/e2xgrader/static/(.*)", 

51 web.StaticFileHandler, 

52 {"path": self.static_path}, 

53 ), 

54 ] 

55 

56 self.add_handlers(static_handlers)