diff --git a/django/core/management/__init__.py b/django/core/management/__init__.py index adc7d173eb..cf6b60c93e 100644 --- a/django/core/management/__init__.py +++ b/django/core/management/__init__.py @@ -229,7 +229,7 @@ class ManagementUtility: # (get_commands() swallows the original one) so the user is # informed about it. settings.INSTALLED_APPS - else: + elif not settings.configured: sys.stderr.write("No Django settings specified.\n") possible_matches = get_close_matches(subcommand, commands) sys.stderr.write('Unknown command: %r' % subcommand) diff --git a/tests/admin_scripts/tests.py b/tests/admin_scripts/tests.py index 1e4477ed34..de220f0282 100644 --- a/tests/admin_scripts/tests.py +++ b/tests/admin_scripts/tests.py @@ -634,6 +634,15 @@ class DjangoAdminSettingsDirectory(AdminScriptTestCase): # of the generated manage.py script ########################################################################## +class ManageManullyConfiguredSettings(AdminScriptTestCase): + """Customized manage.py calling settings.configure().""" + def test_non_existent_command_output(self): + out, err = self.run_manage(['invalid_command'], manage_py='configured_settings_manage.py') + self.assertNoOutput(out) + self.assertOutput(err, "Unknown command: 'invalid_command'") + self.assertNotInOutput(err, 'No Django settings specified') + + class ManageNoSettings(AdminScriptTestCase): "A series of tests for manage.py when there is no settings.py file."