mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #8280 -- Allowed management command discovery for eggs
Thanks jdetaeye for the report, bhuztez and jdetaeye for the initial patches, Tim Graham and Berker Peksag for the reviews.
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
import os
|
||||
|
||||
from django.apps import apps
|
||||
from django.db import connection
|
||||
from django.core import management
|
||||
from django.core.management import BaseCommand, CommandError
|
||||
from django.core.management import BaseCommand, CommandError, find_commands
|
||||
from django.core.management.utils import find_command, popen_wrapper
|
||||
from django.test import SimpleTestCase, ignore_warnings
|
||||
from django.test.utils import captured_stderr, captured_stdout
|
||||
from django.test.utils import captured_stderr, captured_stdout, extend_sys_path
|
||||
from django.utils import translation
|
||||
from django.utils.deprecation import RemovedInDjango20Warning
|
||||
from django.utils._os import upath
|
||||
from django.utils.six import StringIO
|
||||
|
||||
|
||||
@@ -72,6 +74,17 @@ class CommandTests(SimpleTestCase):
|
||||
if current_path is not None:
|
||||
os.environ['PATH'] = current_path
|
||||
|
||||
def test_discover_commands_in_eggs(self):
|
||||
"""
|
||||
Test that management commands can also be loaded from Python eggs.
|
||||
"""
|
||||
egg_dir = '%s/eggs' % os.path.dirname(upath(__file__))
|
||||
egg_name = '%s/basic.egg' % egg_dir
|
||||
with extend_sys_path(egg_name):
|
||||
with self.settings(INSTALLED_APPS=['commandegg']):
|
||||
cmds = find_commands(os.path.join(apps.get_app_config('commandegg').path, 'management'))
|
||||
self.assertEqual(cmds, ['eggcommand'])
|
||||
|
||||
def test_call_command_option_parsing(self):
|
||||
"""
|
||||
When passing the long option name to call_command, the available option
|
||||
|
||||
Reference in New Issue
Block a user