mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #19724 -- Output note when showing only core management commands
When listing available management commands, only core commands are listed if settings have any error. This commit adds a note in this case so errors are not totally silently skipped. Thanks Peter Davis for the report.
This commit is contained in:
		| @@ -249,6 +249,15 @@ class ManagementUtility(object): | ||||
|                 usage.append(style.NOTICE("[%s]" % app)) | ||||
|                 for name in sorted(commands_dict[app]): | ||||
|                     usage.append("    %s" % name) | ||||
|             # Output an extra note if settings are not properly configured | ||||
|             try: | ||||
|                 from django.conf import settings | ||||
|                 settings.INSTALLED_APPS | ||||
|             except ImproperlyConfigured as e: | ||||
|                 usage.append(style.NOTICE( | ||||
|                     "Note that only Django core commands are listed as settings " | ||||
|                     "are not properly configured (error: %s)." % e)) | ||||
|  | ||||
|         return '\n'.join(usage) | ||||
|  | ||||
|     def fetch_command(self, subcommand): | ||||
|   | ||||
| @@ -1055,6 +1055,17 @@ class ManageSettingsWithSettingsErrors(AdminScriptTestCase): | ||||
|         self.assertNoOutput(out) | ||||
|         self.assertOutput(err, "KeyError: 'blah'") | ||||
|  | ||||
|     def test_help(self): | ||||
|         """ | ||||
|         Test listing available commands output note when only core commands are | ||||
|         available. | ||||
|         """ | ||||
|         self.write_settings('settings.py', sdict={'MEDIA_URL': '"/no_ending_slash"'}) | ||||
|         args = ['help'] | ||||
|         out, err = self.run_manage(args) | ||||
|         self.assertOutput(out, 'only Django core commands are listed') | ||||
|         self.assertNoOutput(err) | ||||
|  | ||||
|  | ||||
| class ManageValidate(AdminScriptTestCase): | ||||
|     def tearDown(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user