Loading django/core/checks/registry.py +4 −2 Original line number Diff line number Diff line Loading @@ -64,8 +64,10 @@ class CheckRegistry(object): return errors def tag_exists(self, tag): tags = chain(*[check.tags for check in self.registered_checks if hasattr(check, 'tags')]) return tag in tags return tag in self.tags_available() def tags_available(self): return set(chain(*[check.tags for check in self.registered_checks if hasattr(check, 'tags')])) registry = CheckRegistry() Loading django/core/management/commands/check.py +7 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ from optparse import make_option from django.apps import apps from django.core import checks from django.core.checks.registry import registry from django.core.management.base import BaseCommand, CommandError Loading @@ -16,9 +17,15 @@ class Command(BaseCommand): option_list = BaseCommand.option_list + ( make_option('--tag', '-t', action='append', dest='tags', help='Run only checks labeled with given tag.'), make_option('--list-tags', action='store_true', dest='list_tags', help='List available tags.'), ) def handle(self, *app_labels, **options): if options.get('list_tags'): self.stdout.write('\n'.join(sorted(registry.tags_available()))) return if app_labels: app_configs = [apps.get_app_config(app_label) for app_label in app_labels] else: Loading docs/ref/django-admin.txt +4 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,10 @@ to perform only security and compatibility checks, you would run:: python manage.py check --tag security --tag compatibility .. django-admin-option:: --list-tags List all available tags. compilemessages --------------- Loading tests/check_framework/tests.py +10 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,16 @@ class CheckCommandTests(TestCase): def test_invalid_tag(self): self.assertRaises(CommandError, call_command, 'check', tags=['missingtag']) @override_system_checks([simple_system_check]) def test_list_tags_empty(self): call_command('check', list_tags=True) self.assertEqual('\n', sys.stdout.getvalue()) @override_system_checks([tagged_system_check]) def test_list_tags(self): call_command('check', list_tags=True) self.assertEqual('simpletag\n', sys.stdout.getvalue()) def custom_error_system_check(app_configs, **kwargs): return [ Loading Loading
django/core/checks/registry.py +4 −2 Original line number Diff line number Diff line Loading @@ -64,8 +64,10 @@ class CheckRegistry(object): return errors def tag_exists(self, tag): tags = chain(*[check.tags for check in self.registered_checks if hasattr(check, 'tags')]) return tag in tags return tag in self.tags_available() def tags_available(self): return set(chain(*[check.tags for check in self.registered_checks if hasattr(check, 'tags')])) registry = CheckRegistry() Loading
django/core/management/commands/check.py +7 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ from optparse import make_option from django.apps import apps from django.core import checks from django.core.checks.registry import registry from django.core.management.base import BaseCommand, CommandError Loading @@ -16,9 +17,15 @@ class Command(BaseCommand): option_list = BaseCommand.option_list + ( make_option('--tag', '-t', action='append', dest='tags', help='Run only checks labeled with given tag.'), make_option('--list-tags', action='store_true', dest='list_tags', help='List available tags.'), ) def handle(self, *app_labels, **options): if options.get('list_tags'): self.stdout.write('\n'.join(sorted(registry.tags_available()))) return if app_labels: app_configs = [apps.get_app_config(app_label) for app_label in app_labels] else: Loading
docs/ref/django-admin.txt +4 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,10 @@ to perform only security and compatibility checks, you would run:: python manage.py check --tag security --tag compatibility .. django-admin-option:: --list-tags List all available tags. compilemessages --------------- Loading
tests/check_framework/tests.py +10 −0 Original line number Diff line number Diff line Loading @@ -194,6 +194,16 @@ class CheckCommandTests(TestCase): def test_invalid_tag(self): self.assertRaises(CommandError, call_command, 'check', tags=['missingtag']) @override_system_checks([simple_system_check]) def test_list_tags_empty(self): call_command('check', list_tags=True) self.assertEqual('\n', sys.stdout.getvalue()) @override_system_checks([tagged_system_check]) def test_list_tags(self): call_command('check', list_tags=True) self.assertEqual('simpletag\n', sys.stdout.getvalue()) def custom_error_system_check(app_configs, **kwargs): return [ Loading