Coverage for e2xgrader/apps/e2xgraderapp.py: 93%

14 statements  

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

1from textwrap import dedent 

2 

3from .activatemodeapp import ActivateModeApp 

4from .baseapp import E2xGrader 

5from .deactivatemodeapp import DeactivateModeApp 

6from .showmodeapp import ShowModeApp 

7 

8 

9class E2xGraderApp(E2xGrader): 

10 

11 subcommands = dict( 

12 activate=( 

13 ActivateModeApp, 

14 dedent( 

15 """\ 

16 Activate a specific mode (teacher, student, student_exam) 

17 """ 

18 ).strip(), 

19 ), 

20 deactivate=( 

21 DeactivateModeApp, 

22 dedent( 

23 """\ 

24 Deactivate all e2xgrader extensions 

25 """ 

26 ).strip(), 

27 ), 

28 show_mode=( 

29 ShowModeApp, 

30 dedent( 

31 """\ 

32 Show the currently active mode 

33 """ 

34 ).strip(), 

35 ), 

36 ) 

37 

38 def start(self) -> None: 

39 super().start() 

40 if self.subapp is None: 

41 print( 

42 "No subcommand given (run with --help for options). List of subcommands:\n" 

43 ) 

44 self.print_subcommands() 

45 

46 

47def main(): 

48 E2xGraderApp.launch_instance()