Coverage for jutil/management/commands/apps.py: 38%

18 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2022-10-07 16:40 -0500

1import os 

2 

3from django.apps import apps 

4from django.conf import settings 

5from django.core.management.base import CommandParser 

6from jutil.command import SafeCommand 

7 

8 

9class Command(SafeCommand): 

10 help = "Lists project's top-level apps directly under BASE_DIR" 

11 

12 def add_arguments(self, parser: CommandParser): 

13 parser.add_argument("--nl", action="store_true", help="Use \\n as app separator") 

14 

15 def do(self, *args, **kw): 

16 sep = " " 

17 if kw["nl"]: 

18 sep = "\n" 

19 for app in apps.get_app_configs(): 

20 name = app.name 

21 full_path = os.path.join(os.path.join(settings.BASE_DIR, name), "apps.py") 

22 if os.path.isfile(full_path): 

23 self.stdout.write(name, ending=sep)