Coverage for e2xgrader/apps/baseapp.py: 100%

17 statements  

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

1from textwrap import dedent 

2 

3from jupyter_core.application import JupyterApp 

4from traitlets import Enum 

5 

6from ..utils.mode import E2xGraderMode, infer_e2xgrader_mode 

7 

8 

9class E2xGrader(JupyterApp): 

10 

11 mode = Enum( 

12 values=[mode.value for mode in E2xGraderMode], 

13 default_value=E2xGraderMode.INACTIVE.value, 

14 help=dedent( 

15 """ 

16 Which mode is activated, can be teacher, student, student_exam or deactivated. 

17 Is set to invalid if the mode cannot be inferred. 

18 """ 

19 ), 

20 ) 

21 

22 def fail(self, msg, *args): 

23 self.log.error(msg, *args) 

24 self.exit(1) 

25 

26 def initialize(self, argv=None): 

27 try: 

28 mode = infer_e2xgrader_mode() 

29 self.mode = mode 

30 except ValueError as e: 

31 self.log.error(str(e)) 

32 self.mode = E2xGraderMode.INVALID.value 

33 super().initialize(argv)