Coverage for e2xgrader/server_extensions/apps/help/help.py: 50%

20 statements  

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

1from e2xcore import BaseApp 

2from nbgrader.apps.baseapp import NbGrader 

3from tornado import web 

4from traitlets import List, Unicode 

5 

6from .apihandlers import default_handlers 

7 

8 

9class Help(NbGrader, BaseApp): 

10 shared_paths = List( 

11 trait=Unicode(), 

12 default_value=[], 

13 help="List of paths of files served via the help app", 

14 ).tag(config=True) 

15 

16 def __init__(self, **kwargs): 

17 NbGrader.__init__(self, **kwargs) 

18 BaseApp.__init__(self, **kwargs) 

19 

20 def get_static_handlers(self): 

21 static_handlers = [ 

22 ( 

23 f"/e2x/help/static/{idx}/(.*)", 

24 web.StaticFileHandler, 

25 dict(path=path, default_filename="index.html"), 

26 ) 

27 for idx, path in enumerate(self.shared_paths) 

28 ] 

29 for idx, path in enumerate(self.shared_paths): 

30 static_handlers.append( 

31 ( 

32 f"/e2x/help/static/{idx}/(.*)", 

33 web.StaticFileHandler, 

34 dict(path=path, default_filename="index.html"), 

35 ) 

36 ) 

37 return static_handlers 

38 

39 def load_app(self): 

40 self.initialize([]) 

41 self.log.info("Loading the e2xgrader help app") 

42 

43 self.update_tornado_settings( 

44 dict( 

45 e2xhelp_shared_dirs={ 

46 str(idx): path for idx, path in enumerate(self.shared_paths) 

47 } 

48 ) 

49 ) 

50 self.add_handlers(self.get_static_handlers() + default_handlers)